1 # -*- coding: iso-8859-15 -*-
2 from Accas import SIMP,FACT,OPER,ASSD,AsException,AsType,CO,MACRO,JDC_CATA
4 JdC=JDC_CATA(code="ASTER")
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
11 def OP_ops(self,MATR,**args):
16 def op2_prod(self,MATR,**args):
17 self.type_sdprod(MATR,concept2)
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)),)
26 def op3_prod(self,MATR,**args):
29 if t == 'R':self.type_sdprod(m['MM'],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)),),)
36 def op4_prod(self,MATR,**args):
37 if MATR == None :raise AsException("impossible recuperer mot cle facteur par defaut")
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"),),)
43 OP5=MACRO(nom='OP5',op=OP_ops,sd_prod=op2_prod, MATR=SIMP(statut='o',typ=CO),)
45 def op6_prod(self,MATR,**args):
46 self.type_sdprod(MATR,concept4)
48 def OP6_ops(self,MATR,**args):
51 self.DeclareOut('cc',self.sd)
54 OP6=MACRO(nom='OP6',op=OP6_ops,sd_prod=op6_prod, MATR=SIMP(statut='o',typ=CO),)
56 def OP7_ops(self,MATR,**args):
59 self.DeclareOut('cc',self.sd)
62 OP7=MACRO(nom='OP7',op=OP7_ops,sd_prod=op2_prod, MATR=SIMP(statut='o',typ=CO),)
64 OP8=MACRO(nom='OP8',op=OP_ops,sd_prod=op6_prod, MATR=SIMP(statut='o',typ=(CO,concept4)),)
66 def OP9_ops(self,MATR,**args):
69 self.DeclareOut('cc',self.sd)
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):
76 self.DeclareOut('cc',self.sd)
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):
83 self.DeclareOut('cc',self.sd)
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):
90 self.DeclareOut('cc',self.sd)
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):
97 self.DeclareOut('cc',self.sd)
100 OP17=MACRO(nom='OP17',op=OP17_ops,sd_prod=op6_prod, MATR=SIMP(statut='o',typ=CO),)
102 def OP18_ops(self,MATR,**args):
105 self.DeclareOut('cc',self.sd)
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):
116 self.DeclareOut('cc',self.sd)
117 cc=OP20(MATR=MATR,MATRB=MATR)
119 OP19=MACRO(nom='OP19',op=OP19_ops,sd_prod=op6_prod, MATR=SIMP(statut='o',typ=CO),)
121 OP21=OPER(nom='OP21',op=1,sd_prod=concept)
122 def OP22_ops(self,MATR,**args):
125 self.DeclareOut('cc',self.sd)
128 OP22=MACRO(nom='OP22',op=OP22_ops,sd_prod=op6_prod, MATR=SIMP(statut='o',typ=CO),)
133 def poursuite_sdprod(self,PAR_LOT):
135 #j.UserError=j.codex.error
138 j.set_par_lot(PAR_LOT)
139 if hasattr(self,'already_init'):return
140 self.already_init=None
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
147 context=pickle.load(file)
150 # En cas d'erreur on ignore le contenu du fichier
152 traceback.print_exc()
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)
160 def poursuite(self,PAR_LOT):
165 POURSUITE=MACRO(nom='POURSUITE',op=poursuite,sd_prod=poursuite_sdprod,PAR_LOT=SIMP(typ='TXM',defaut='OUI'))
170 FIN=MACRO(nom='FIN',op=fin,sd_prod=None)
172 def debut_sdprod(self,PAR_LOT):
174 #j.UserError=j.codex.error
177 j.set_par_lot(PAR_LOT)
180 def debut(self,PAR_LOT):
185 DEBUT=MACRO(nom='DEBUT',op=debut,sd_prod=debut_sdprod,PAR_LOT=SIMP(typ='TXM',defaut='OUI'))
188 def __init__(self,valeur=None,**args):
189 ASSD.__init__(self,**args)
192 def __adapt__(self,validator):
193 if validator.name == "list":
194 #validateur liste,cardinalité
196 elif validator.name == "type":
198 return validator.adapt(self.valeur or 0)
200 #validateur into et valid
204 return "<concept entier>"