2 Vérification des cycles de références d'objets dans Accas
4 Cet exemple met en oeuvre plusieurs éléments de définition et
5 après l'opération de vérification du dictionnaire d
6 et l'appel à la méthode supprime de l'objet o
7 exécute l'utilitaire Cyclops pour vérifier qu'il ne reste plus
8 de cycles de références.
12 sys.path[:0]=['../..','../../..']
14 from Accas import SIMP,FACT,BLOC
15 from Accas import AU_MOINS_UN
17 # Construction objet de définition
19 cata= FACT(mcf1=FACT(a=SIMP(typ='I'),b=SIMP(typ='I')),
20 mcf2=FACT(c=SIMP(typ='I'),d=SIMP(typ='I')),
22 bloc1=BLOC(condition="a==1",
26 sect3=FACT(c=SIMP(typ='I'),d=SIMP(typ='I')),
27 regles=AU_MOINS_UN('sect3'),
30 # Vérification objet de définition
33 print "L'objet de définition est valide "
38 d= {'mcf1':{'a':1,'b':2},
39 'mcf2':({'c':3},{'c':5}),
40 'sect3':{'c':3,'d':5},
45 # Création de l'objet MCFACT de nom mcf1
47 # Vérification objet MCFACT
50 print "L'objet MCFACT basé sur le dictionnaire %s est valide " % d
52 print "L'objet MCFACT basé sur le dictionnaire %s n'est pas valide " % d
59 Cette fonction permet de détecter les cycles de références entre objets
60 à l'aide du module Cyclops
62 from Misc import Cyclops
64 z=Cyclops.CycleFinder()
74 print "dead root set objects:"
75 for rc, cyclic, x in z.get_rootset():