Salome HOME
modif Adao 7 6
[tools/eficas.git] / Tests / testelem / cata5.py
1 # -*- coding: iso-8859-15 -*-
2 from Accas import SIMP,FACT,OPER,ASSD,AsException,AsType,CO,MACRO,JDC_CATA
3 import Noyau
4 JdC=JDC_CATA(code="ASTER")
5
6 class concept(ASSD,Noyau.AsBase):pass
7 class concept2(ASSD,Noyau.AsBase):pass
8 class concept3(ASSD,Noyau.AsBase):pass
9 class concept4(concept2):pass
10
11 def OP_ops(self,MATR,**args):
12   ier=0
13   self.set_icmd(1)
14   return ier
15
16 def op2_prod(self,MATR,**args):
17    self.type_sdprod(MATR,concept2)
18    return concept
19 OP1=MACRO(nom='OP1',op=OP_ops,sd_prod=op2_prod, MATR=SIMP(statut='o',typ=CO),)
20 OP2=MACRO(nom='OP2',op=OP_ops,sd_prod=op2_prod, MATR=SIMP(statut='o',typ=(CO,concept2)),)
21 OP10=MACRO(nom='OP10',op=OP_ops,sd_prod=op2_prod, MATR=SIMP(statut='o',typ=concept2),)
22 OP11=MACRO(nom='OP11',op=OP_ops,sd_prod=concept, MATR=SIMP(statut='o',typ=concept2),)
23 OP12=MACRO(nom='OP12',op=OP_ops,sd_prod=concept, MATR=SIMP(statut='o',typ=CO),)
24 OP13=MACRO(nom='OP13',op=OP_ops,sd_prod=concept, MATR=SIMP(statut='o',typ=(CO,concept2)),)
25
26 def op3_prod(self,MATR,**args):
27    for m in MATR:
28       t=m['CHAM']
29       if t == 'R':self.type_sdprod(m['MM'],concept)
30    return concept
31 OP3=MACRO(nom='OP3',op=OP_ops,sd_prod=op3_prod,
32           MATR=FACT(statut='f',min=1,max='**',
33                     CHAM=SIMP(statut='o',typ='TXM',into=("R","I"),),
34                     MM=SIMP(statut='o',typ=(CO,concept)),),)
35
36 def op4_prod(self,MATR,**args):
37    if MATR == None :raise AsException("impossible recuperer mot cle facteur par defaut")
38    return concept
39 OP4=MACRO(nom='OP4',op=OP_ops,sd_prod=op4_prod,
40           MATR=FACT(statut='d',min=1,max='**',
41                     CHAM=SIMP(statut='f',typ='TXM',defaut="R"),),)
42
43 OP5=MACRO(nom='OP5',op=OP_ops,sd_prod=op2_prod, MATR=SIMP(statut='o',typ=CO),)
44
45 def op6_prod(self,MATR,**args):
46    self.type_sdprod(MATR,concept4)
47    return concept
48 def OP6_ops(self,MATR,**args):
49   ier=0
50   self.set_icmd(1)
51   self.DeclareOut('cc',self.sd)
52   cc=OP2(MATR=MATR)
53   return ier
54 OP6=MACRO(nom='OP6',op=OP6_ops,sd_prod=op6_prod, MATR=SIMP(statut='o',typ=CO),)
55
56 def OP7_ops(self,MATR,**args):
57   ier=0
58   self.set_icmd(1)
59   self.DeclareOut('cc',self.sd)
60   cc=OP8(MATR=MATR)
61   return ier
62 OP7=MACRO(nom='OP7',op=OP7_ops,sd_prod=op2_prod, MATR=SIMP(statut='o',typ=CO),)
63
64 OP8=MACRO(nom='OP8',op=OP_ops,sd_prod=op6_prod, MATR=SIMP(statut='o',typ=(CO,concept4)),)
65
66 def OP9_ops(self,MATR,**args):
67   ier=0
68   self.set_icmd(1)
69   self.DeclareOut('cc',self.sd)
70   cc=OP10(MATR=MATR)
71   return ier
72 OP9=MACRO(nom='OP9',op=OP9_ops,sd_prod=op6_prod, MATR=SIMP(statut='o',typ=CO),)
73 def OP14_ops(self,MATR,**args):
74   ier=0
75   self.set_icmd(1)
76   self.DeclareOut('cc',self.sd)
77   cc=OP1(MATR=MATR)
78   return ier
79 OP14=MACRO(nom='OP14',op=OP14_ops,sd_prod=op6_prod, MATR=SIMP(statut='o',typ=CO),)
80 def OP15_ops(self,MATR,**args):
81   ier=0
82   self.set_icmd(1)
83   self.DeclareOut('cc',self.sd)
84   cc=OP11(MATR=MATR)
85   return ier
86 OP15=MACRO(nom='OP15',op=OP15_ops,sd_prod=op6_prod, MATR=SIMP(statut='o',typ=CO),)
87 def OP16_ops(self,MATR,**args):
88   ier=0
89   self.set_icmd(1)
90   self.DeclareOut('cc',self.sd)
91   cc=OP12(MATR=MATR)
92   return ier
93 OP16=MACRO(nom='OP16',op=OP16_ops,sd_prod=op6_prod, MATR=SIMP(statut='o',typ=CO),)
94 def OP17_ops(self,MATR,**args):
95   ier=0
96   self.set_icmd(1)
97   self.DeclareOut('cc',self.sd)
98   cc=OP13(MATR=MATR)
99   return ier
100 OP17=MACRO(nom='OP17',op=OP17_ops,sd_prod=op6_prod, MATR=SIMP(statut='o',typ=CO),)
101
102 def OP18_ops(self,MATR,**args):
103   ier=0
104   self.set_icmd(1)
105   self.DeclareOut('cc',self.sd)
106   cc=OP6(MATR=MATR)
107   dd=OP2(MATR=MATR)
108   ee=OP11(MATR=MATR)
109   return ier
110 OP18=MACRO(nom='OP18',op=OP18_ops,sd_prod=op6_prod, MATR=SIMP(statut='o',typ=CO),)
111 OP20=MACRO(nom='OP20',op=OP_ops,sd_prod=op6_prod, MATR=SIMP(statut='o',typ=CO),
112                                                MATRB=SIMP(statut='o',typ=CO),)
113 def OP19_ops(self,MATR,**args):
114   ier=0
115   self.set_icmd(1)
116   self.DeclareOut('cc',self.sd)
117   cc=OP20(MATR=MATR,MATRB=MATR)
118   return ier
119 OP19=MACRO(nom='OP19',op=OP19_ops,sd_prod=op6_prod, MATR=SIMP(statut='o',typ=CO),)
120
121 OP21=OPER(nom='OP21',op=1,sd_prod=concept)
122 def OP22_ops(self,MATR,**args):
123   ier=0
124   self.set_icmd(1)
125   self.DeclareOut('cc',self.sd)
126   cc=OP21()
127   return ier
128 OP22=MACRO(nom='OP22',op=OP22_ops,sd_prod=op6_prod, MATR=SIMP(statut='o',typ=CO),)
129
130 import pickle
131 import Accas
132
133 def poursuite_sdprod(self,PAR_LOT):
134   j=self.jdc
135   #j.UserError=j.codex.error
136   j.actif_status=1
137   j.fico=None
138   j.set_par_lot(PAR_LOT)
139   if hasattr(self,'already_init'):return
140   self.already_init=None
141   context={}
142   try:
143        file=open("pick.1",'r')
144        # Le contexte sauvegardé a été picklé en une seule fois. Il est seulement
145        # possible de le récupérer en bloc. Si cette opération echoue, on ne récupère
146        # aucun objet.
147        context=pickle.load(file)
148        file.close()
149   except:
150        # En cas d'erreur on ignore le contenu du fichier
151        import traceback
152        traceback.print_exc()
153        pass
154   for k,v in context.items():
155     if isinstance(v,Accas.ASSD):
156        self.parent.NommerSdprod(v,k)
157   self.g_context.update(context)
158   return None
159
160 def poursuite(self,PAR_LOT):
161   ier=0
162   self.set_icmd(1)
163   return ier
164
165 POURSUITE=MACRO(nom='POURSUITE',op=poursuite,sd_prod=poursuite_sdprod,PAR_LOT=SIMP(typ='TXM',defaut='OUI'))
166
167 def fin(self):
168   self.set_icmd(1)
169   raise EOFError
170 FIN=MACRO(nom='FIN',op=fin,sd_prod=None)
171
172 def debut_sdprod(self,PAR_LOT):
173   j=self.jdc
174   #j.UserError=j.codex.error
175   j.actif_status=1
176   j.fico=None
177   j.set_par_lot(PAR_LOT)
178   return None
179
180 def debut(self,PAR_LOT):
181   ier=0
182   self.set_icmd(1)
183   return ier
184
185 DEBUT=MACRO(nom='DEBUT',op=debut,sd_prod=debut_sdprod,PAR_LOT=SIMP(typ='TXM',defaut='OUI'))
186
187 class entier   (ASSD):
188    def __init__(self,valeur=None,**args):
189       ASSD.__init__(self,**args)
190       self.valeur=valeur
191
192    def __adapt__(self,validator):
193       if validator.name == "list":
194           #validateur liste,cardinalité
195           return (self,)
196       elif validator.name == "type":
197           #validateur type
198           return validator.adapt(self.valeur or 0)
199       else:
200           #validateur into et valid
201           return self
202
203    def __repr__(self):
204       return "<concept entier>"
205