1 from Accas import SIMP,FACT,OPER,ASSD,AsException,AsType,CO,MACRO,JDC_CATA
3 class concept(ASSD):pass
5 JdC=JDC_CATA(code="ASTER")
7 OP1 = OPER(nom='OP1',op=1,sd_prod=concept,
9 c=SIMP(typ='I',position='global'),
12 class concept2(ASSD):pass
13 class concept3(ASSD):pass
15 def op2_prod(self,MATR,**args):
16 self.type_sdprod(MATR,concept2)
19 OP2=MACRO(nom='OP2',op=-2,sd_prod=op2_prod,
20 MATR=SIMP(statut='o',typ=(CO,concept2)),
23 def op3_prod(self,MATR,**args):
26 if t == 'R':self.type_sdprod(m['MM'],concept)
29 OP3=MACRO(nom='OP3',op=-3,sd_prod=op3_prod,
30 MATR=FACT(statut='f',min=1,max='**',
31 CHAM=SIMP(statut='o',typ='TXM',into=("R","I"),),
32 MM=SIMP(statut='o',typ=(CO,concept)),
37 def op4_prod(self,MATR,**args):
38 if MATR == None :raise AsException("impossible recuperer mot cle facteur par defaut")
41 OP4=MACRO(nom='OP4',op=-4,sd_prod=op4_prod,
42 MATR=FACT(statut='d',min=1,max='**',
43 CHAM=SIMP(statut='f',typ='TXM',defaut="R"),
47 def INCLUDE_prod(self,UNITE,**args):
48 """ Fonction sd_prod pour la macro include
50 # Si unite a change on reevalue le fichier associe
51 if not hasattr(self,'unite') or self.unite != UNITE:
52 f,text=self.get_file(unite=UNITE)
55 # on execute le texte fourni dans le contexte forme par
56 # le contexte de l etape pere (global au sens Python)
57 # et le contexte de l etape (local au sens Python)
58 code=compile(text,f,'exec')
59 if self.jdc and self.jdc.par_lot == 'NON':
60 # On est en mode commande par commande
61 # On teste la validite de la commande avec interruption eventuelle
63 self.parent.cr.add(cr)
68 self.contexte_fichier_init = d
69 exec code in self.parent.g_context,d
71 def INCLUDE_context(self,d):
72 """ Fonction op_init pour macro INCLUDE
74 for k,v in self.g_context.items():
77 INCLUDE=MACRO(nom="INCLUDE",op=-1,
79 op_init=INCLUDE_context,
81 UNITE = SIMP(statut='o',typ='I'),