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