From 38174249bc66b4c53599e0863537537108fcdc08 Mon Sep 17 00:00:00 2001 From: "pascale.noyret" Date: Mon, 1 Apr 2019 15:56:53 +0200 Subject: [PATCH] pour les BLOC_FICHIER --- Accas/A_BLOC.py | 1 + Accas/__init__.py | 1 + Efi2Xsd/AccasXsd.py | 27 ++++++++++++++++++------ JP/cata_Vimmp.py | 51 ++++++++++----------------------------------- 4 files changed, 34 insertions(+), 46 deletions(-) diff --git a/Accas/A_BLOC.py b/Accas/A_BLOC.py index ba29c97d..b3839928 100644 --- a/Accas/A_BLOC.py +++ b/Accas/A_BLOC.py @@ -31,4 +31,5 @@ class BLOC(N_BLOC.BLOC,X_BLOC,I_ENTITE.ENTITE): N_BLOC.BLOC.__init__(self,*tup,**args) class BLOC_EXCLUS_ABC(BLOC): pass +class BLOC_FICHIER(BLOC):pass diff --git a/Accas/__init__.py b/Accas/__init__.py index 51677f4d..d84c9ed3 100644 --- a/Accas/__init__.py +++ b/Accas/__init__.py @@ -42,6 +42,7 @@ from .A_MACRO import MACRO from .A_FORM import FORM from .A_BLOC import BLOC from .A_BLOC import BLOC_EXCLUS_ABC +from .A_BLOC import BLOC_FICHIER from .A_FACT import FACT from .A_SIMP import SIMP from .A_EVAL import EVAL diff --git a/Efi2Xsd/AccasXsd.py b/Efi2Xsd/AccasXsd.py index 606daacc..06d20b7b 100755 --- a/Efi2Xsd/AccasXsd.py +++ b/Efi2Xsd/AccasXsd.py @@ -2,6 +2,7 @@ # -*- coding: utf-8 -*- import sys,os import types +import Accas # CONTEXT est accessible (__init__.py de Noyau) @@ -20,9 +21,9 @@ from .mapDesTypes import listeParamDeTypeTypeAttendu, listeParamDeTypeStr, dictP from .mapDesTypes import listeParamTjsSequence, listeParamSelonType from .mapDesTypes import Tuple +PourTraduction = False from .balises import * - # ----------------- class X_definition: # ----------------- @@ -78,17 +79,26 @@ class X_definitionComposee (X_definition): def CreeTexteComplexeVenantDesFils(self): texteComplexeVenantDesFils="" + fichierDejaDumpe=False for nom in self.ordre_mc: mcFils = self.entites[nom] mcFils.dumpXsd() - self.texteComplexe += mcFils.texteElt - self.texteSimple += mcFils.texteSimple - texteComplexeVenantDesFils += mcFils.texteComplexe + if not (isinstance(mcFils, Accas.BLOC_FICHIER)) : + self.texteComplexe += mcFils.texteElt + self.texteSimple += mcFils.texteSimple + texteComplexeVenantDesFils += mcFils.texteComplexe + continue + elif not fichierDejaDumpe : + self.texteComplexe += mcFils.texteElt + self.texteSimple += mcFils.texteSimple + texteComplexeVenantDesFils += mcFils.texteComplexe + fichierDejaDumpe = True return texteComplexeVenantDesFils def dumpXsd(self): #print ('------------------------------------------------') #print ('dumpXsd de ' , self.nom) + if PourTraduction : print (self.nom) self.getCode() self.nomDuTypePyxb = self.definitNomDuTypePyxb() @@ -187,6 +197,7 @@ class X_BLOC (X_definitionComposee): class X_SIMP (X_definition): #-------------------------------- def dumpXsd(self): + if PourTraduction : print (self.nom) #print ('exploreObjet SIMP') self.getCode() self.aCreer = True @@ -209,7 +220,9 @@ class X_SIMP (X_definition): for val in self.defaut : txtDefaut+=str(val) +" " self.texteElt = eltWithDefautDsSequence.format(self.nom,self.code,self.nomDuTypePyxb,minOccurs,1,txtDefaut) else : - self.texteElt = eltWithDefautDsSequence.format(self.nom,self.code,self.nomDuTypePyxb,minOccurs,1,self.defaut) + if self.defaut == True : txtDefaut = 'true' + else : txtDefaut = str(self.defaut) + self.texteElt = eltWithDefautDsSequence.format(self.nom,self.code,self.nomDuTypePyxb,minOccurs,1,txtDefaut) else : self.texteElt = eltDsSequence.format(self.nom,self.code,self.nomDuTypePyxb,minOccurs,1) @@ -263,7 +276,9 @@ class X_SIMP (X_definition): # il faut gerer les types tuple et fichier if hasattr(self.type[0], 'ntuple') : return ('XXXXXXXX') - #print (self.type[0]) + if not (self.type[0] in list(dictNomsDesTypes.keys())) : + if (isinstance(self.type[0], Accas.ASSD) or issubclass(self.type[0], Accas.ASSD)) : return 'string' + else : return ('YYYYY') return dictNomsDesTypes[self.type[0]] def traduitValMinValMax(self): diff --git a/JP/cata_Vimmp.py b/JP/cata_Vimmp.py index f2b62dd0..78e46006 100755 --- a/JP/cata_Vimmp.py +++ b/JP/cata_Vimmp.py @@ -34,43 +34,12 @@ class Tuple: def info(self): return "Tuple de %s elements" % self.ntuple -liste_Objets_Surface_Elementaire = [] +#liste_Objets_Surface_Elementaire = [] class Surface_Elementaire (UserASSD): def __init__(self, nom): ASSD.__init__(self) self.setName(nom) -dico_Modeles_Numeriques = { - 'DPD' : { 'hybride': ('hybride_microscopic', 'hybride_macroscopic SPDP'), - 'standalone' : ('DPD'), - } -} -def description_manuelle_particule_DEM(): - return FACT(statut ='o', max= "**", - Position = SIMP(statut='o', typ='R', max=3, min =3), - Vitesse = SIMP(statut='o', typ='R', max=3, min =3), - Vitesse_Rotation = SIMP(statut='o', typ='R', max=3, min =3 ), - ) - -def description_manuelle_particule_cinetique(): - return FACT(statut ='o', max= "**", - Position = SIMP(statut='o', typ='R', max=3, min =3), - Vitesse = SIMP(statut='o', typ='R', max=3, min =3), - ) - -def description_manuelle_particule_cinetique_etendue(): - return FACT(statut ='o', max= "**", - Position = SIMP(statut='o', typ='R', max=3, min =3), - Vitesse = SIMP(statut='o', typ='R', max=3, min =3), - #Diffusivite = SIMP(statut='f', typ='R'), - #Concentration = SIMP(statut='f', typ='R'), -) - -def bloc_description_particule_fichier (): - return BLOC ( condition = 'type_description == "fichier"', - format_fichier = SIMP (statut='o', typ = 'TXM', into = ['txt','Autre',] ), - ) - def champ (nomDelaContante, labels ,nbReels ) : # ajouter les extensions pour le fichier et les blocs associes # certains champs ne seront jamais uniformes @@ -89,11 +58,13 @@ def champ (nomDelaContante, labels ,nbReels ) : ), #b_vsaisie b_vdsfich = BLOC (condition = "Mode_saisie == 'valeurs ds fichier'", Format = SIMP (statut='o', typ = 'TXM', into = ['txt','Med',] ), - td_txt = BLOC (condition = 'Format == "txt"', + td_txt = BLOC_FICHIER (condition = 'Format == "txt"', Fichier = SIMP(statut='o', typ = ('Fichier','Text Files(*.txt);All Files (*)'),), ), - td_med = BLOC ( condition = 'Format == "Med"', + td_med_1 = BLOC_FICHIER ( condition = 'Format == "Med"', Fichier = SIMP (statut='o', typ = ('Fichier','Med Files(*.med);All Files (*)'),), + ), + td_med_2 = BLOC ( condition = 'Format == "Med"', NomChamp = SIMP (statut='o', typ = 'TXM', ), ), ), @@ -130,7 +101,7 @@ def bloc_description_particule_tableau (nbReels, labels): def creeSurfaceElementaire(MC) : # PNPN pour qu eric puisse tester - #MC.creeObjetClasse(Surface_Elementaire) + MC.creeObjetClasse(Surface_Elementaire) return # @@ -175,13 +146,13 @@ Etude = PROC (nom = 'Etude', Composant_Du_Systeme= FACT( statut='o', max = "**", # #EF : Je ne ferais pas apparaître ici l'hybridation via le max=2 # # J'attendrais de définir la méthode numérique... - Composant = SIMP(statut='o', typ = 'TXM',into = ['Particule', 'Fluide','Solide','Plasma'], position = 'global_jdc'), + Composant = SIMP(statut='o', typ = 'TXM',into = ['Particule', 'Fluide','Solide','Plasma'], position = 'global'), Niveau_De_Description = FACT ( min=1, max= 2, statut='o', Niveau_De_Description_Generale = SIMP( statut ='o', typ = 'TXM',into = ['Microscopique','Mesoscopique', 'Macroscopique']), # PNPN voir le global qui ne fonctionne pas - b_Mesoscopique_Particule = BLOC( condition = "Niveau_De_Description_Generale == 'Mesoscopique' ", - #b_Mesoscopique_Particule = BLOC( condition = "Niveau_De_Description_Generale == 'Mesoscopique' and 'Composant' == 'Particule'", + #b_Mesoscopique_Particule = BLOC( condition = "Niveau_De_Description_Generale == 'Mesoscopique' ", + b_Mesoscopique_Particule = BLOC( condition = "Niveau_De_Description_Generale == 'Mesoscopique' and Composant == 'Particule'", Description_Physique = FACT( statut = 'o', Electrostatics = SIMP( statut='o', typ=bool, defaut=False, position ='global'), Nombre_D_Especes = SIMP( statut = 'o', typ = 'I', defaut =1, position ='global_jdc'), @@ -205,7 +176,7 @@ Etude = PROC (nom = 'Etude', ), # fin Interactions_Par_Paire ), # fin b_Interactionparpaire b_champ_moyen = BLOC( condition = 'Categorie_Interaction == "champ moyen"', - Interaction = FACT( statut='o', max = 2, # max = cardinalite du into + Interaction_champ_moyen = FACT( statut='o', max = 2, # max = cardinalite du into Type_Interaction = SIMP( statut='o', typ ='TXM', into = ['champ gravite','champ electrostatique']), b_gravite = BLOC (condition = 'Type_Interaction=="champ gravite"', G= SIMP( statut='o', typ='R',defaut =9.81), @@ -220,7 +191,7 @@ Etude = PROC (nom = 'Etude', ), # fin Interaction ), # fin b_champ_moyen b_champ_moyen_dynamique = BLOC( condition = 'Categorie_Interaction == "champ moyen dynamique"', - Interaction = FACT( statut='o', max = 2, # max = cardinalite du into + Interaction_champ_moyen_dynamique = FACT( statut='o', max = 2, # max = cardinalite du into Type_Interaction = SIMP( statut='o', typ ='TXM', into = ['champ electrostatique'], defaut='champ electrostatique'), Couple_D_especes = FACT (statut ='o', min=1, max = '**', # min=n, max=n(n+1)/2 Nom_Des_Especes = SIMP ( statut ='o', typ = 'TXM', min=2, max=2), -- 2.39.2