From 6372dddc309cd044de325a3a0300c8ca0eb81a39 Mon Sep 17 00:00:00 2001 From: PASCALE NOYRET Date: Thu, 25 Nov 2021 16:03:13 +0100 Subject: [PATCH] Traducteur3 deveint Traducteur (python3) --- Noyau/.context.py.swp | Bin 12288 -> 0 bytes Noyau/N_MCSIMP.py.pn | 350 ------------------ {Traducteur3 => Traducteur}/.mocles.py.swp | Bin {Traducteur3 => Traducteur}/.toto.comm.swp | Bin {Traducteur3 => Traducteur}/.visiteur.py.swp | Bin {Traducteur3 => Traducteur}/CMakeLists.txt | 0 {Traducteur3 => Traducteur}/__init__.py | 0 {Traducteur3 => Traducteur}/changeValeur.py | 0 {Traducteur3 => Traducteur}/demosRN.py | 0 {Traducteur3 => Traducteur}/dictErreurs.py | 0 .../edg_REP1300_FULL_PN.comm | 0 {Traducteur3 => Traducteur}/inseremocle.py | 0 {Traducteur3 => Traducteur}/load.py | 0 {Traducteur3 => Traducteur}/log.py | 0 {Traducteur3 => Traducteur}/log.txt | 0 {Traducteur3 => Traducteur}/mocles.py | 0 {Traducteur3 => Traducteur}/movemocle.py | 0 {Traducteur3 => Traducteur}/parseur.py | 0 {Traducteur3 => Traducteur}/regles.py | 0 {Traducteur3 => Traducteur}/removemocle.py | 0 {Traducteur3 => Traducteur}/renamemocle.py | 0 {Traducteur3 => Traducteur}/toto.comm | 0 {Traducteur3 => Traducteur}/tutu.comm | 0 {Traducteur3 => Traducteur}/utils.py | 0 {Traducteur3 => Traducteur}/visiteur.py | 0 25 files changed, 350 deletions(-) delete mode 100644 Noyau/.context.py.swp delete mode 100644 Noyau/N_MCSIMP.py.pn rename {Traducteur3 => Traducteur}/.mocles.py.swp (100%) rename {Traducteur3 => Traducteur}/.toto.comm.swp (100%) rename {Traducteur3 => Traducteur}/.visiteur.py.swp (100%) rename {Traducteur3 => Traducteur}/CMakeLists.txt (100%) rename {Traducteur3 => Traducteur}/__init__.py (100%) rename {Traducteur3 => Traducteur}/changeValeur.py (100%) rename {Traducteur3 => Traducteur}/demosRN.py (100%) rename {Traducteur3 => Traducteur}/dictErreurs.py (100%) rename {Traducteur3 => Traducteur}/edg_REP1300_FULL_PN.comm (100%) rename {Traducteur3 => Traducteur}/inseremocle.py (100%) rename {Traducteur3 => Traducteur}/load.py (100%) rename {Traducteur3 => Traducteur}/log.py (100%) rename {Traducteur3 => Traducteur}/log.txt (100%) rename {Traducteur3 => Traducteur}/mocles.py (100%) rename {Traducteur3 => Traducteur}/movemocle.py (100%) rename {Traducteur3 => Traducteur}/parseur.py (100%) rename {Traducteur3 => Traducteur}/regles.py (100%) rename {Traducteur3 => Traducteur}/removemocle.py (100%) rename {Traducteur3 => Traducteur}/renamemocle.py (100%) rename {Traducteur3 => Traducteur}/toto.comm (100%) rename {Traducteur3 => Traducteur}/tutu.comm (100%) rename {Traducteur3 => Traducteur}/utils.py (100%) rename {Traducteur3 => Traducteur}/visiteur.py (100%) diff --git a/Noyau/.context.py.swp b/Noyau/.context.py.swp deleted file mode 100644 index 1a3e2cfcd071df1f14e7aedd57b660a710fee035..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeI2O>7%Q6vwB9wtTdJ;8L|kJRH#`B263@`W02x+Fr+7ZFa5QbxOFH&3c@=a=d0g zqE@ZohEOFWs6ZUx0O|!%Zh*w40uDWL1_T#`5C9famoe?g!EElZc(C?Wk2~2T2XncD zht{@xsT**TH=2PT7y0s}6`u9e$slYe{7f>@IlH#Mda4vq3fztYJJ^BTR8~Y7$vjDq zJzBk;V9Hl1pcGIFC);INfGIErc7knSE7$^l zxsS0Q!6onxxB$+B{a_E+4R(Qh!S!v7T?JRbN8mE}5L^TozzjGJCcxuh57-U1g1@#h z_7%7aJ_VnEcfp(BdEkINcozJOUVH<-248^Bz&Q|u0Ek{WKwU}!rNIAA0m4-~T@UCO zSz((qF}iDH3* zFpd0n(hpMS4NBWFPYP)i@pf{eUKkxa%H;EvB#=sPE{gnS%t=2J@Q#>sG-E7v!Z>a& zAbfqF-)Qh4;gQU9f{YdtS%ynO%YG|tMlzGkn2gqJNUNiA@bAkDPWkOc%+%T!E}TZi zx2kQpGL+IQF5*cVwbxe^c95*i*PUr`m4;mr13&R^)=F_-TKuP83h!39nDTWyT7ac& zshq4=_PVpLs(bAj2h|VHR}*e1zds-0+UP10P8(Q8!fbdQ^=DgO+Zz{>aJ{v#gXL6! z-Ka1Y3rb2`i^4FuS*OK)X|aAbt9I=^p7@=9le>q32y^4UbrarM-Q^9>j9rxQHg;&s z7kibbkvKzIYt26B`0(648DeB4t46~&+;Nfc20AXxhC9CDN}*-%=-6vo`ytEZ zi=?+RdMAQ>xAhi_95kYEiE6b*ij$ewY6Pjm2of#CVGFXX|7jnA)u7cvR4f`g7w{ax|-;3xze)wr1$0 z;g!iN8!lBGd&bdbr^zUhWqadv(lI=pJe%}liJZMfD%eH6rn#Q(jKhE4u991}t7ehP z$b%fcpc`{~ku(@q=E*K0F0!!($yKU((L{U`211Bx?W#wbHBTos z2U>XZ)BU?T)Re}?Y{fKCNzVke!1>sYocVmi$u!$Vlpq`Xd5 zS1(n~ae}2Rc@&Q!o`NCYFhY85r%GEF)P z8Q4>_5!@2JS^=!T chgt pour Vimmp - for v in self.valeur : - try : v.ajoutUtilisePar(self) - except : print ('il y a un souci ici', self.nom, self.valeur) - self.buildObjPyxb() - self.listeNomsObjsCrees = [] - - def getValeurEffective(self, val): - """ - Retourne la valeur effective du mot-clé en fonction - de la valeur donnée. Defaut si val == None - Attention aux UserASSD et aux into (exple Wall gp de maille et 'Wall') - """ - #print ('getValeurEffective ________________', val) - if (val is None and hasattr(self.definition, 'defaut')): val = self.definition.defaut - if self.definition.type[0] == 'TXM' and isinstance(val,str) : return val - if self.definition.creeDesObjets : - # isinstance(val, self.definition.creeDesObjetsDeType) ne fonctionne pas car il y a un avec cata devant et l autre non - if val == None : return val - if not isinstance(val,(list,tuple)) : valATraiter=[val,] - else : valATraiter=val - listeRetour=[] - for v in valATraiter: - #print (v.__class__.__name__, self.definition.creeDesObjetsDeType.__name__) - if (not(v.__class__.__name__ == self.definition.creeDesObjetsDeType.__name__)) : - if self.jdc != None and v in list(self.jdc.sdsDict.keys()): v=self.jdc.sdsDict[v] - else : v=self.convProto.convert(v) - if v.parent== None : v.initialiseParent(self) - if issubclass(self.definition.creeDesObjetsDeType, UserASSDMultiple) : - v.ajouteUnPere(self) - else : - if v.nom=='sansNom' : - for leNom,laVariable in self.jdc.g_context.items(): - if id(laVariable)== id(v) and (leNom != 'sansNom'): - v.initialiseNom(leNom) - if v.parent== None : v.initialiseParent(self) - if issubclass(self.definition.creeDesObjetsDeType, UserASSDMultiple) : - v.ajouteUnPere(self) - listeRetour.append(v) - if isinstance(val,(list,tuple)) :newVal=listeRetour - else : newVal=listeRetour[0] - return newVal - if self.convProto: - val = self.convProto.convert(val) - return val - - def creeUserASSDetSetValeur(self, val): - self.state='changed' - nomVal=val - if nomVal in self.jdc.sdsDict.keys(): - if isinstance(self.jdc.sdsDict[nomVal],self.definition.creeDesObjetsDeType): - if issubclass(self.definition.creeDesObjetsDeType, UserASSDMultiple) : - p=self.parent - while p in self.parent : - if hasattr(p, 'listeDesReferencesCrees') : p.listeDesReferencesCrees.append(self.jdc.sdsDict[nomVal]) - else : p.listeDesReferencesCrees=[self.jdc.sdsDict[nomVal],] - p=p.parent - self.jdc.sdsDict[nomVal].ajouteUnPere(self) - #return (1, 'reference ajoutee') - else : - return (0, 'concept non multiple deja reference') - else : return (0, 'concept d un autre type existe deja') - if self.convProto: - objVal = self.convProto.convert(nomVal) - objVal.initialiseNom(nomVal) - if objVal.parent== None : objVal.initialiseParent(self) - objVal.ajouteUnPere(self) - p=self.parent - while p in self.parent : - if hasattr(p, 'listeDesReferencesCrees') : p.listeDesReferencesCrees.append(objVal) - else : p.listeDesReferencesCrees=[objVal,] - p=p.parent - return (self.setValeur(objVal), 'reference creee') - - def creeUserASSD(self, val): - self.state='changed' - nomVal=val - if nomVal in self.jdc.sdsDict.keys(): - if isinstance(self.jdc.sdsDict[nomVal],self.definition.creeDesObjetsDeType): - if issubclass(self.definition.creeDesObjetsDeType, UserASSDMultiple) : - p=self.parent - while p in self.parent : - if hasattr(p, 'listeDesReferencesCrees') : p.listeDesReferencesCrees.append(self.jdc.sdsDict[nomVal]) - else : p.listeDesReferencesCrees=[self.jdc.sdsDict[nomVal],] - p=p.parent - self.jdc.sdsDict[nomVal].ajouteUnPere(self) - return (1,self.jdc.sdsDict[nomVal], 'reference ajoutee') - else : return (0, None, 'concept d un autre type existe deja') - else : return (0, None, 'concept d un autre type existe deja') - if self.convProto: - objVal = self.convProto.convert(nomVal) - objVal.initialiseNom(nomVal) - objVal.ajouteUnPere(self) - return (1, objVal, 'reference creee') - - def rattacheUserASSD(self, objASSD): - if objASSD.parent== None : objASSD.initialiseParent(self) - p=self.parent - while p in self.parent : - if hasattr(p, 'listeDesReferencesCrees') : p.listeDesReferencesCrees.append(objASSD) - else : p.listeDesReferencesCrees=[objASSD,] - p=p.parent - - - def getValeur(self): - """ - Retourne la "valeur" d'un mot-clé simple. - Cette valeur est utilisée lors de la création d'un contexte - d'évaluation d'expressions à l'aide d'un interpréteur Python - """ - v = self.valeur - # Si singleton et max=1, on retourne la valeur. - # Si une valeur simple et max='**', on retourne un singleton. - # (si liste de longueur > 1 et max=1, on sera arrêté plus tard) - # Pour accepter les numpy.array, on remplace : "type(v) not in (list, tuple)" - # par "not has_attr(v, '__iter__')". - if v is None: - pass - elif isSequence(v) and len(v) == 1 and self.definition.max == 1: - v = v[0] - elif not isSequence(v) and self.definition.max != 1: - v = (v, ) - # traitement particulier pour les complexes ('RI', r, i) - if 'C' in self.definition.type and self.definition.max != 1 and v != None and v[0] in ('RI', 'MP'): - v = (v, ) - return v - - def getVal(self): - """ - Une autre méthode qui retourne une "autre" valeur du mot clé simple. - Elle est utilisée par la méthode getMocle - """ - return self.valeur - - def accept(self, visitor): - """ - Cette methode permet de parcourir l'arborescence des objets - en utilisant le pattern VISITEUR - """ - visitor.visitMCSIMP(self) - - def copy(self): - """ Retourne une copie de self """ - objet = self.makeobjet() - # il faut copier les listes et les tuples mais pas les autres valeurs - # possibles (réel,SD,...) - if type(self.valeur) in (list, tuple): - objet.valeur = copy(self.valeur) - else: - objet.valeur = self.valeur - objet.val = objet.valeur - return objet - - def makeobjet(self): - return self.definition(val=None, nom=self.nom, parent=self.parent) - - def reparent(self, parent): - """ - Cette methode sert a reinitialiser la parente de l'objet - """ - self.parent = parent - self.jdc = parent.jdc - self.etape = parent.etape - - def getSd_utilisees(self): - """ - Retourne une liste qui contient la ou les SD utilisée par self si c'est le cas - ou alors une liste vide - """ - l = [] - if isinstance(self.valeur, ASSD): - l.append(self.valeur) - elif type(self.valeur) in (list, tuple): - for val in self.valeur: - if isinstance(val, ASSD): - l.append(val) - return l - - def getSd_mcs_utilisees(self): - """ - Retourne la ou les SD utilisée par self sous forme d'un dictionnaire : - - Si aucune sd n'est utilisée, le dictionnaire est vide. - - Sinon, la clé du dictionnaire est le mot-clé simple ; la valeur est - la liste des sd attenante. - - Exemple :: - { 'VALE_F': [ , - ] } - """ - l = self.getSd_utilisees() - dico = {} - if len(l) > 0: - dico[self.nom] = l - return dico - - - def getMcsWithCo(self, co): - """ - Cette methode retourne l'objet MCSIMP self s'il a le concept co - comme valeur. - """ - if co in forceList(self.valeur): - return [self, ] - return [] - - def getAllCo(self): - """ - Cette methode retourne la liste de tous les concepts co - associés au mot cle simple - """ - return [co for co in forceList(self.valeur) - if isinstance(co, CO) and co.isTypCO()] - - def supprime(self): - if not type(self.valeur) in (list, tuple): lesValeurs=(self.valeur,) - else : lesValeurs=self.valeur - if self.valeur == None or self.valeur == [] : lesValeurs=[] - for val in lesValeurs: - if self.definition.creeDesObjets : val.deleteReference(self) - else : - if (hasattr (val, 'enleveUtilisePar')) : val.enleveUtilisePar(self) - N_OBJECT.OBJECT.supprime(self) - - def getUserAssdPossible(self): - classeAChercher = self.definition.type - l=[] - dicoValeurs={} - d={} - if self.definition.filtreVariables != None : - for (nomMC, Xpath) in self.definition.filtreVariables : - # print (nomMC, Xpath) - if Xpath == None : dicoValeurs[nomMC] = getattr(self,nomMC) - else : - try: #if 1 : - pereMC=eval(Xpath) - if pereMC : - exp=Xpath+'.getChild("'+nomMC+'")' - leMotCle=eval(exp) - else : leMotCle=None - if leMotCle : - if leMotCle.val : dicoValeurs[nomMC]=leMotCle.val - elif leMotCle.definition.max != 1 : dicoValeurs[nomMC] = [] - else : dicoValeurs[nomMC] = None - else : - #PN PN est-ce sur ? sinon quoi None ou [] - # je pense que les 2 valeurs doivent être renseignees si le filtre depend de 2 valeurs - return l - except: - return l - - - for k,v in self.parent.jdc.sdsDict.items(): - if (isinstance(v, classeAChercher)) : - if self.definition.filtreExpression : - try : - if v.executeExpression(self.definition.filtreExpression ,dicoValeurs) : l.append(v) - except : - print ('il faut comprendre except pour', self.nom) - #print (self.nom) - #print (self.parent.nom) - #print (k,v) - else : l.append(v) - return l diff --git a/Traducteur3/.mocles.py.swp b/Traducteur/.mocles.py.swp similarity index 100% rename from Traducteur3/.mocles.py.swp rename to Traducteur/.mocles.py.swp diff --git a/Traducteur3/.toto.comm.swp b/Traducteur/.toto.comm.swp similarity index 100% rename from Traducteur3/.toto.comm.swp rename to Traducteur/.toto.comm.swp diff --git a/Traducteur3/.visiteur.py.swp b/Traducteur/.visiteur.py.swp similarity index 100% rename from Traducteur3/.visiteur.py.swp rename to Traducteur/.visiteur.py.swp diff --git a/Traducteur3/CMakeLists.txt b/Traducteur/CMakeLists.txt similarity index 100% rename from Traducteur3/CMakeLists.txt rename to Traducteur/CMakeLists.txt diff --git a/Traducteur3/__init__.py b/Traducteur/__init__.py similarity index 100% rename from Traducteur3/__init__.py rename to Traducteur/__init__.py diff --git a/Traducteur3/changeValeur.py b/Traducteur/changeValeur.py similarity index 100% rename from Traducteur3/changeValeur.py rename to Traducteur/changeValeur.py diff --git a/Traducteur3/demosRN.py b/Traducteur/demosRN.py similarity index 100% rename from Traducteur3/demosRN.py rename to Traducteur/demosRN.py diff --git a/Traducteur3/dictErreurs.py b/Traducteur/dictErreurs.py similarity index 100% rename from Traducteur3/dictErreurs.py rename to Traducteur/dictErreurs.py diff --git a/Traducteur3/edg_REP1300_FULL_PN.comm b/Traducteur/edg_REP1300_FULL_PN.comm similarity index 100% rename from Traducteur3/edg_REP1300_FULL_PN.comm rename to Traducteur/edg_REP1300_FULL_PN.comm diff --git a/Traducteur3/inseremocle.py b/Traducteur/inseremocle.py similarity index 100% rename from Traducteur3/inseremocle.py rename to Traducteur/inseremocle.py diff --git a/Traducteur3/load.py b/Traducteur/load.py similarity index 100% rename from Traducteur3/load.py rename to Traducteur/load.py diff --git a/Traducteur3/log.py b/Traducteur/log.py similarity index 100% rename from Traducteur3/log.py rename to Traducteur/log.py diff --git a/Traducteur3/log.txt b/Traducteur/log.txt similarity index 100% rename from Traducteur3/log.txt rename to Traducteur/log.txt diff --git a/Traducteur3/mocles.py b/Traducteur/mocles.py similarity index 100% rename from Traducteur3/mocles.py rename to Traducteur/mocles.py diff --git a/Traducteur3/movemocle.py b/Traducteur/movemocle.py similarity index 100% rename from Traducteur3/movemocle.py rename to Traducteur/movemocle.py diff --git a/Traducteur3/parseur.py b/Traducteur/parseur.py similarity index 100% rename from Traducteur3/parseur.py rename to Traducteur/parseur.py diff --git a/Traducteur3/regles.py b/Traducteur/regles.py similarity index 100% rename from Traducteur3/regles.py rename to Traducteur/regles.py diff --git a/Traducteur3/removemocle.py b/Traducteur/removemocle.py similarity index 100% rename from Traducteur3/removemocle.py rename to Traducteur/removemocle.py diff --git a/Traducteur3/renamemocle.py b/Traducteur/renamemocle.py similarity index 100% rename from Traducteur3/renamemocle.py rename to Traducteur/renamemocle.py diff --git a/Traducteur3/toto.comm b/Traducteur/toto.comm similarity index 100% rename from Traducteur3/toto.comm rename to Traducteur/toto.comm diff --git a/Traducteur3/tutu.comm b/Traducteur/tutu.comm similarity index 100% rename from Traducteur3/tutu.comm rename to Traducteur/tutu.comm diff --git a/Traducteur3/utils.py b/Traducteur/utils.py similarity index 100% rename from Traducteur3/utils.py rename to Traducteur/utils.py diff --git a/Traducteur3/visiteur.py b/Traducteur/visiteur.py similarity index 100% rename from Traducteur3/visiteur.py rename to Traducteur/visiteur.py -- 2.39.2