# coding=utf-8
-# Copyright (C) 2007-2013 EDF R&D
+# person_in_charge: mathieu.courtois at edf.fr
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2015 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+# ======================================================================
"""
de toutes les classes de definition d'EFICAS.
"""
+from __future__ import absolute_import
+from __future__ import print_function
+try :
+ from builtins import str
+ from builtins import object
+except :
+ pass
import re
-import types
-import N_CR
-import N_OPS
-import N_VALIDATOR
-from strfunc import ufmt
+from . import N_CR
+from . import N_OPS
+from . import N_VALIDATOR
+import six
+stringTypes = (str, six.text_type)
-class ENTITE:
+
+class ENTITE(object):
"""
Classe de base pour tous les objets de definition : mots cles et commandes
directement
Il s'agit principalement des mots cles
"""
- for k, v in self.entites.items():
+ for k, v in list(self.entites.items()):
v.pere = self
v.nom = k
"""
self.cr = self.CR()
self.verif_cata()
- for k, v in self.entites.items():
+ for k, v in list(self.entites.items()):
try:
cr = v.report()
cr.debut = u"Début " + v.__class__.__name__ + ' : ' + k
cr.fin = u"Fin " + v.__class__.__name__ + ' : ' + k
self.cr.add(cr)
except:
- self.cr.fatal(
- _(u"Impossible d'obtenir le rapport de %s %s"), k, `v`)
- print "Impossible d'obtenir le rapport de %s %s" % (k, `v`)
- print "père =", self
+ self.cr.fatal("Impossible d'obtenir le rapport de %s %s" % (k, repr(v)))
+ print(("Impossible d'obtenir le rapport de %s %s" % (k, repr(v))))
+ print(("père =", self))
return self.cr
def verif_cata_regles(self):
for regle in self.regles:
l = []
for mc in regle.mcs:
- if not self.entites.has_key(mc):
+ if not mc in self.entites :
l.append(mc)
if l != []:
txt = str(regle)
"""Verifie la definition d'un objet composite (commande, fact, bloc)."""
args = self.entites.copy()
mcs = set()
- for nom, val in args.items():
+ for nom, val in list(args.items()):
if val.label == 'SIMP':
mcs.add(nom)
# XXX
del args[nom]
# seuls les blocs peuvent entrer en conflit avec les mcs du plus haut
# niveau
- for nom, val in args.items():
+ for nom, val in list(args.items()):
if val.label == 'BLOC':
mcbloc = val.check_definition(parent)
# XXX
def check_fr(self):
"""Vérifie l'attribut fr."""
- if type(self.fr) not in (str, unicode):
+ if type(self.fr) not in stringTypes:
self.cr.fatal(
_(u"L'attribut 'fr' doit être une chaine de caractères : %r"),
self.fr)
def check_docu(self):
"""Vérifie l'attribut docu."""
- if type(self.docu) not in (str, unicode):
+ if type(self.docu) not in stringTypes:
self.cr.fatal(
_(u"L'attribut 'docu' doit être une chaine de caractères : %r"),
self.docu)
def check_nom(self):
"""Vérifie l'attribut proc."""
- if type(self.nom) != types.StringType:
+ if type(self.nom) is not str:
self.cr.fatal(
_(u"L'attribut 'nom' doit être une chaine de caractères : %r"),
self.nom)
def check_condition(self):
"""Vérifie l'attribut condition."""
if self.condition != None:
- if type(self.condition) != types.StringType:
+ if type(self.condition) is not str:
self.cr.fatal(
_(u"L'attribut 'condition' doit être une chaine de caractères : %r"),
self.condition)
def check_min_max(self):
"""Vérifie les attributs min/max."""
- if type(self.min) != types.IntType:
- if self.min != '**':
+ if type(self.min) != int:
+ if self.min != '**'and self.min != float('-inf'):
self.cr.fatal(
_(u"L'attribut 'min' doit être un entier : %r"), self.min)
- if type(self.max) != types.IntType:
- if self.max != '**':
+ if type(self.max) != int:
+ if self.max != '**' and self.max != float('inf'):
self.cr.fatal(
_(u"L'attribut 'max' doit être un entier : %r"), self.max)
if self.min > self.max:
def check_into(self):
"""Vérifie l'attribut into."""
if self.into != None:
- if type(self.into) != types.TupleType:
+ if (type(self.into) not in (list, tuple)) and (type(self.into) != types.FunctionType) :
self.cr.fatal(
_(u"L'attribut 'into' doit être un tuple : %r"), self.into)