2 Ce module contient la classe JDC_INCLUDE qui sert a inclure
3 dans un jeu de commandes une partie de jeu de commandes
4 au moyen de la fonctionnalite INCLUDE ou INCLUDE_MATERIAU
5 Quand l'utilisateur veut inclure un fichier il faut versifier
6 que le jeu de commandes inclus est valide et compatible
7 avec le contexte avant et apres l'insertion
9 from Accas import JDC,ASSD,AsException,JDC_CATA
12 class JDC_POURSUITE(JDC):
13 def __init__(self,definition=None,procedure=None,cata=None,
14 cata_ord_dico=None,parent=None,
15 nom='SansNom',appli=None,context_ini=None,
16 jdc_pere=None,etape_include=None,prefix_include=None,**args):
18 JDC.__init__(self, definition=definition,
21 cata_ord_dico=cata_ord_dico,
25 context_ini=context_ini,
28 self.jdc_pere=jdc_pere
29 self.etape_include=etape_include
30 self.prefix_include=prefix_include
32 def NommerSdprod(self,sd,sdnom,restrict='non'):
34 Nomme la SD apres avoir verifie que le nommage est possible : nom
36 Ajoute un prefixe s'il est specifie (INCLUDE_MATERIAU)
37 Si le nom est deja utilise, leve une exception
38 Met le concept créé dans le concept global g_context
40 if self.prefix_include:
41 if sdnom != self.prefix_include:sdnom=self.prefix_include+sdnom
42 o=self.sds_dict.get(sdnom,None)
43 if isinstance(o,ASSD):
44 raise AsException("Nom de concept deja defini : %s" % sdnom)
45 # Il faut verifier en plus que le jdc_pere apres l'etape etape_include
46 # ne contient pas deja un concept de ce nom
48 mysd= self.jdc_pere.get_sd_apres_etape(sdnom,etape=self.etape_include)
50 #if self.jdc_pere.get_sd_apres_etape(sdnom,etape=self.etape_include):
51 # Il existe un concept apres self => impossible d'inserer
52 raise AsException("Nom de concept deja defini : %s" % sdnom)
54 # ATTENTION : Il ne faut pas ajouter sd dans sds car il s y trouve deja.
55 # Ajoute a la creation (appel de reg_sd).
56 self.sds_dict[sdnom]=sd
59 # En plus si restrict vaut 'non', on insere le concept dans le contexte du JDC
61 self.g_context[sdnom]=sd
63 class JDC_INCLUDE(JDC_POURSUITE):
64 def active_etapes(self):
68 class JDC_CATA_INCLUDE(JDC_CATA):
69 class_instance=JDC_INCLUDE
71 class JDC_CATA_POURSUITE(JDC_CATA):
72 class_instance=JDC_POURSUITE
74 from Accas import AU_MOINS_UN,A_CLASSER
76 JdC_include=JDC_CATA_INCLUDE(code='ASTER', execmodul=None)
78 JdC_poursuite=JDC_CATA_POURSUITE(code='ASTER', execmodul=None,
79 regles = (AU_MOINS_UN('DEBUT','POURSUITE'),
81 A_CLASSER(('DEBUT','POURSUITE'),'FIN')