Salome HOME
projects
/
tools
/
eficas.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fusion Telemac
[tools/eficas.git]
/
Noyau
/
N_FONCTION.py
diff --git
a/Noyau/N_FONCTION.py
b/Noyau/N_FONCTION.py
index 2fb52b665a79f0d86bdc3394d1aa4efa2231b430..537959f54dad49fc825abf8ef5e8c0da1e17def1 100644
(file)
--- a/
Noyau/N_FONCTION.py
+++ b/
Noyau/N_FONCTION.py
@@
-1,5
+1,5
@@
-#
-*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-20
13
EDF R&D
+#
coding=utf-8
+# Copyright (C) 2007-20
21
EDF R&D
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@@
-16,22
+16,30
@@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
# Attention : cet import permet d'avoir, en Python, le comportement
# Attention : cet import permet d'avoir, en Python, le comportement
-# de la division r
éelle pour les entiers, et non la division entiè
re
-# 1/2=0.5 (et non 0). Comportement par d
é
faut dans Python 3.0.
+# de la division r
éelle pour les entiers, et non la division entiè
re
+# 1/2=0.5 (et non 0). Comportement par d
é
faut dans Python 3.0.
from __future__ import division
from __future__ import division
+from __future__ import absolute_import
+try :
+ from builtins import zip
+ from builtins import str
+except :
+ pass
from math import sin, cos, tan, asin, acos, atan2, atan, sinh, cosh, tanh
from math import pi, exp, log, log10, sqrt
from math import sin, cos, tan, asin, acos, atan2, atan, sinh, cosh, tanh
from math import pi, exp, log, log10, sqrt
-from N_ASSD import ASSD
-from N_info import message, SUPERV
+from .N_ASSD import ASSD
+from six.moves import zip
+
class FONCTION(ASSD):
pass
class FONCTION(ASSD):
pass
+
class formule(ASSD):
class formule(ASSD):
+
def __init__(self, *args, **kwargs):
ASSD.__init__(self, *args, **kwargs)
self.nompar = None
def __init__(self, *args, **kwargs):
ASSD.__init__(self, *args, **kwargs)
self.nompar = None
@@
-40,40
+48,41
@@
class formule(ASSD):
ctxt.update(getattr(self.parent, 'const_context', {}))
ctxt.update(getattr(self.parent, 'macro_const_context', {}))
self.parent_context = self.filter_context(ctxt)
ctxt.update(getattr(self.parent, 'const_context', {}))
ctxt.update(getattr(self.parent, 'macro_const_context', {}))
self.parent_context = self.filter_context(ctxt)
- #message.debug(SUPERV, "add parent_context %s %s", self.nom, self.parent_context)
def __call__(self, *val):
"""Evaluation de la formule"""
def __call__(self, *val):
"""Evaluation de la formule"""
- # en POURSUITE, self.parent_context is None, on essaie de reprendre const_context
- context = getattr(self, 'parent_context') or getattr(self.parent, 'const_context', {})
+ # en POURSUITE, self.parent_context is None, on essaie de reprendre
+ # const_context
+ context = getattr(self, 'parent_context') or getattr(
+ self.parent, 'const_context', {})
for param, value in zip(self.nompar, val):
context[param] = value
try:
# globals() pour math.*
res = eval(self.code, context, globals())
for param, value in zip(self.nompar, val):
context[param] = value
try:
# globals() pour math.*
res = eval(self.code, context, globals())
- except Exception
,
exc:
- mes
sage.error(SUPERV, "ERREUR LORS DE L'ÉVALUATION DE LA FORMULE '%s' " \
-
":\n>> %s",self.nom, str(exc)
)
+ except Exception
as
exc:
+ mes
= "ERREUR LORS DE L EVALUATION DE LA FORMULE %s" %self.nom
+
print (mes
)
raise
return res
def setFormule(self, nom_para, texte):
"""Cette methode sert a initialiser les attributs
raise
return res
def setFormule(self, nom_para, texte):
"""Cette methode sert a initialiser les attributs
- nompar, expression et code qui sont utilis
é
s
- dans l'
é
valuation de la formule."""
+ nompar, expression et code qui sont utilis
é
s
+ dans l'
é
valuation de la formule."""
self.nompar = nom_para
self.expression = texte
self.nompar = nom_para
self.expression = texte
- try
:
+ try:
self.code = compile(texte, texte, 'eval')
self.code = compile(texte, texte, 'eval')
- except SyntaxError
,
exc:
- mes
sage.error(SUPERV, "ERREUR LORS DE LA CREATION DE LA FORMULE '%s' " \
-
":\n>> %s", self.nom, str(exc)
)
+ except SyntaxError
as
exc:
+ mes
= "ERREUR LORS DE LA CREATION DE LA FORMULE %s" %self.nom
+
print (mes
)
raise
raise
- def __setstate__(self,state):
+ def __setstate__(self,
state):
"""Cette methode sert a restaurer l'attribut code lors d'un unpickle."""
self.__dict__.update(state) # update attributes
"""Cette methode sert a restaurer l'attribut code lors d'un unpickle."""
self.__dict__.update(state) # update attributes
- self.setFormule(self.nompar, self.expression) # restore code attribute
+ self.setFormule(self.nompar, self.expression)
# restore code attribute
def __getstate__(self):
"""Pour les formules, il faut enlever l'attribut code qui n'est
def __getstate__(self):
"""Pour les formules, il faut enlever l'attribut code qui n'est
@@
-84,18
+93,18
@@
class formule(ASSD):
def supprime(self, force=False):
"""
def supprime(self, force=False):
"""
- Cassage des boucles de r
éfé
rences pour destruction du JDC.
- 'force' est utilis
ée pour faire des suppressions complé
mentaires.
-
- Pour
être évalué
es, les formules ont besoin du contexte des "constantes"
+ Cassage des boucles de r
éfé
rences pour destruction du JDC.
+ 'force' est utilis
ée pour faire des suppressions complé
mentaires.
+
+ Pour
être évalué
es, les formules ont besoin du contexte des "constantes"
(objets autres que les concepts) qui sont soit dans (jdc).const_context,
soit dans (macro).macro_const_context.
On le stocke dans 'parent_context'.
(objets autres que les concepts) qui sont soit dans (jdc).const_context,
soit dans (macro).macro_const_context.
On le stocke dans 'parent_context'.
- Deux pr
é
cautions valent mieux qu'une : on retire tous les concepts.
-
- Lors de la suppression du concept, 'supprime' est appel
é
e par
+ Deux pr
é
cautions valent mieux qu'une : on retire tous les concepts.
+
+ Lors de la suppression du concept, 'supprime' est appel
é
e par
'build_detruire' avec force=True afin de supprimer le "const_context"
'build_detruire' avec force=True afin de supprimer le "const_context"
- conserv
é
.
+ conserv
é
.
"""
if force:
for ctxt in ('parent_context', 'g_context'):
"""
if force:
for ctxt in ('parent_context', 'g_context'):
@@
-105,30
+114,30
@@
class formule(ASSD):
def Parametres(self):
"""Equivalent de fonction.Parametres pour pouvoir utiliser des formules
def Parametres(self):
"""Equivalent de fonction.Parametres pour pouvoir utiliser des formules
-
à
la place de fonctions dans certaines macro-commandes.
+
à
la place de fonctions dans certaines macro-commandes.
"""
from SD.sd_fonction import sd_formule
from Utilitai.Utmess import UTMESS
if self.accessible():
"""
from SD.sd_fonction import sd_formule
from Utilitai.Utmess import UTMESS
if self.accessible():
- TypeProl={ 'E':'EXCLU', 'L':'LINEAIRE', 'C':'CONSTANT', 'I':'INTERPRE' }
- sd = sd_formule(self.get_name())
+ TypeProl = {
+ 'E': 'EXCLU', 'L': 'LINEAIRE', 'C': 'CONSTANT', 'I': 'INTERPRE'}
+ sd = sd_formule(self.getName())
prol = sd.PROL.get()
nova = sd.NOVA.get()
if prol is None or nova is None:
UTMESS('F', 'SDVERI_2', valk=[objev])
prol = sd.PROL.get()
nova = sd.NOVA.get()
if prol is None or nova is None:
UTMESS('F', 'SDVERI_2', valk=[objev])
- dico
=
{
- 'INTERPOL'
: ['LIN',
'LIN'],
- 'NOM_PARA'
: [s.strip() for s in nova],
- 'NOM_RESU'
: prol[3][0:16].strip(),
- 'PROL_DROITE'
: TypeProl['E'],
- 'PROL_GAUCHE'
: TypeProl['E'],
+ dico
=
{
+ 'INTERPOL'
: ['LIN',
'LIN'],
+ 'NOM_PARA': [s.strip() for s in nova],
+ 'NOM_RESU': prol[3][0:16].strip(),
+ 'PROL_DROITE': TypeProl['E'],
+ 'PROL_GAUCHE': TypeProl['E'],
}
else:
}
else:
- raise Accas.AsException("Erreur dans fonction.Parametres en PAR_LOT='OUI'")
+ raise Accas.AsException(
+ "Erreur dans fonction.Parametres en PAR_LOT='OUI'")
return dico
class formule_c(formule):
pass
return dico
class formule_c(formule):
pass
-
-