1 # -*- coding: utf-8 -*-
3 Vérification des cycles de référence d'objets sur
4 un exemple avec des opérateurs
8 sys.path[:0]=['../..','../../..']
10 from Accas import SIMP,FACT,OPER
12 # Construction objet de définition
15 def __init__(self,etape):
18 """ Retourne 1 si sd est du bon type par rapport à la classe """
23 OP1 = OPER(nom='OP1',op=1,sd_prod=concept,reentrant='f',
25 c=SIMP(typ='I',position='global'),
29 # Vérification objet de définition
32 print "L'objet de définition est valide "
40 self.cata_ordonne_dico=None
43 def register(self,etape):
44 self.etapes.append(etape)
45 return self.etapes.index(etape)
46 def get_jdc_root(self):
48 def create_sdprod(self,etape,nomsd):
49 sd= etape.get_sd_prod()
50 if sd != None and etape.reuse == None:
51 # ATTENTION : On ne nomme la SD que dans le cas de non reutilisation d un concept
57 CONTEXT.set_current_step(cont)
60 # Création de l'objet ETAPE
63 # Vérification objet ETAPE
67 print "L'objet ETAPE est valide "
69 print "L'objet ETAPE n'est pas valide "
72 # Test avec reutilisation de concept
73 co=OP1(reuse=co1,a=1,b=sd)
77 print "L'objet ETAPE est valide "
79 print "L'objet ETAPE n'est pas valide "
87 Cette fonction permet de détecter les cycles de références entre objets
88 à l'aide du module Cyclops
90 from Misc import Cyclops
92 z=Cyclops.CycleFinder()
102 print "dead root set objects:"
103 for rc, cyclic, x in z.get_rootset():