1 # -*- coding: utf-8 -*-
3 Vérification des cycles de références d'objets dans Accas
5 Cet exemple met en oeuvre plusieurs éléments de définition et
6 après l'opération de vérification du dictionnaire d
7 et l'appel à la méthode supprime de l'objet o
8 exécute l'utilitaire Cyclops pour vérifier qu'il ne reste plus
9 de cycles de références.
13 sys.path[:0]=['../..','../../..']
15 from Accas import SIMP,FACT,BLOC
16 from Accas import AU_MOINS_UN
18 # Construction objet de définition
20 cata= FACT(mcf1=FACT(a=SIMP(typ='I'),b=SIMP(typ='I')),
21 mcf2=FACT(c=SIMP(typ='I'),d=SIMP(typ='I')),
23 bloc1=BLOC(condition="a==1",
27 sect3=FACT(c=SIMP(typ='I'),d=SIMP(typ='I')),
28 regles=AU_MOINS_UN('sect3'),
31 # Vérification objet de définition
34 print "L'objet de définition est valide "
39 d= {'mcf1':{'a':1,'b':2},
40 'mcf2':({'c':3},{'c':5}),
41 'sect3':{'c':3,'d':5},
46 # Création de l'objet MCFACT de nom mcf1
48 # Vérification objet MCFACT
51 print "L'objet MCFACT basé sur le dictionnaire %s est valide " % d
53 print "L'objet MCFACT basé sur le dictionnaire %s n'est pas valide " % d
60 Cette fonction permet de détecter les cycles de références entre objets
61 à l'aide du module Cyclops
63 from Misc import Cyclops
65 z=Cyclops.CycleFinder()
75 print "dead root set objects:"
76 for rc, cyclic, x in z.get_rootset():