2 Ce module contient le plugin generateur de fichier au format pyth pour EFICAS.
10 from Accas import MCSIMP,MCFACT
14 Retourne les informations nécessaires pour le chargeur de plugins
16 Ces informations sont retournées dans un dictionnaire
21 # La factory pour créer une instance du plugin
22 'factory' : PythGenerator,
28 Ce generateur parcourt un objet de type MCFACT et produit
29 un fichier au format pyth
31 L'acquisition et le parcours sont réalisés par la méthode
32 generator.gener(objet_mcfact)
34 L'écriture du fichier au format ini par appel de la méthode
35 generator.writefile(nom_fichier)
37 Ses caractéristiques principales sont exposées dans des attributs
40 - extensions : qui donne une liste d'extensions de fichier préconisées
43 # Les extensions de fichier préconisées
44 extensions=('.py','.comm')
46 def __init__(self,cr=None):
47 # Si l'objet compte-rendu n'est pas fourni, on utilise le compte-rendu standard
51 self.cr=N_CR.CR(debut='CR generateur format ini',
52 fin='fin CR format ini')
53 # Le texte au format pyth est stocké dans l'attribut text
56 def writefile(self,filename):
61 def gener(self,obj,format='standard'):
63 Tous les mots-clés simples du niveau haut sont transformés en variables
65 Tous les mots-clés facteurs sont convertis en dictionnaires
67 Les mots-clés multiples ne sont pas traités
70 for mocle in obj.mc_liste:
71 if isinstance(mocle,MCFACT):
72 valeur=self.generMCFACT(mocle)
73 s=s+"%s = %s\n" % (mocle.nom,valeur)
74 elif isinstance(v,MCSIMP):
75 valeur = self.generMCSIMP(mocle)
76 s=s+"%s = %s\n" % (mocle.nom,valeur)
78 self.cr.fatal("Entite inconnue ou interdite : "+`mocle`)
82 def generMCFACT(self,obj):
84 Cette méthode convertit un mot-clé facteur
85 en une chaine de caractères représentative d'un dictionnaire
88 for mocle in obj.mc_liste:
89 if isinstance(mocle,MCSIMP):
90 valeur = self.generMCSIMP(mocle)
91 s=s+"'%s' : %s,\n" % (mocle.nom,valeur)
92 elif isinstance(mocle,MCFACT):
93 valeur=self.generMCFACT(mocle)
94 s=s+"'%s' : %s,\n" % (mocle.nom,valeur)
96 self.cr.fatal("Entite inconnue ou interdite : "+`mocle`+" Elle est ignorée")
100 def generMCSIMP(self,obj):
102 Cette méthode convertit un mot-clé simple en une chaine de caractères
108 self.cr.fatal("Type de valeur non supporté par le format pyth : "+ obj.nom + '\n'+str(e))