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]=['../..','../../Aster']
10 from Accas import SIMP,FACT,OPER,JDC_CATA
11 JdC=JDC_CATA(code="ASTER")
13 # Construction objet de définition
16 def __init__(self,etape):
19 """ Retourne 1 si sd est du bon type par rapport à la classe """
24 OP1 = OPER(nom='OP1',op=1,sd_prod=concept,reentrant='f',
26 c=SIMP(typ='I',position='global'),
30 # Vérification objet de définition
33 print "L'objet de définition est valide "
41 self.cata_ordonne_dico=None
43 self.UserError="UserError"
45 def register(self,etape):
46 self.etapes.append(etape)
47 return self.etapes.index(etape)
48 def get_jdc_root(self):
50 def create_sdprod(self,etape,nomsd):
51 sd= etape.get_sd_prod()
52 if sd != None and etape.reuse == None:
53 # ATTENTION : On ne nomme la SD que dans le cas de non reutilisation d un concept
59 CONTEXT.set_current_step(cont)
62 # Création de l'objet ETAPE
65 # Vérification objet ETAPE
69 print "L'objet ETAPE est valide "
71 print "L'objet ETAPE n'est pas valide "
74 # Test avec reutilisation de concept
75 co=OP1(reuse=co1,a=1,b=sd)
79 print "L'objet ETAPE est valide "
81 print "L'objet ETAPE n'est pas valide "
89 Cette fonction permet de détecter les cycles de références entre objets
90 à l'aide du module Cyclops
92 from Misc import Cyclops
94 z=Cyclops.CycleFinder()
104 print "dead root set objects:"
105 for rc, cyclic, x in z.get_rootset():