]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
Modification des GNUmakefile pyxb
authorEric Fayolle <eric.fayolle@edf.fr>
Wed, 27 Mar 2024 15:55:04 +0000 (16:55 +0100)
committerEric Fayolle <eric.fayolle@edf.fr>
Wed, 27 Mar 2024 15:55:04 +0000 (16:55 +0100)
Codes/ReacteurNumerique/GNUmakefile [new file with mode: 0644]
Codes/ReacteurNumerique/a.txt [deleted file]
Web/accasConnecteur.py [deleted file]
config/GNUmakefile.env
config/GNUmakefile.mdm
recommends [new file with mode: 0644]
venv.cmd [new file with mode: 0644]

diff --git a/Codes/ReacteurNumerique/GNUmakefile b/Codes/ReacteurNumerique/GNUmakefile
new file mode 100644 (file)
index 0000000..878090c
--- /dev/null
@@ -0,0 +1,154 @@
+.SUFFIXES: .xsd .py _driver.py _test_driver_0.comm _test_driver_1.comm _test_driver_0.xml _test_driver_1.xml _test_driver_0.py _test_driver_1.py .comm .xml 
+#TODO : Supprimer les suffixes inutiles depuis l'utilisation des des règles pattern au lieu des règles suffixes
+#TODO : Ajouter la dépendance entre le make .xml et la présence du driver
+.PHONY: xsdAll driverAll
+SHELL=bash
+
+ifdef EFICAS4VIMMP_ROOT
+srcdir?=${EFICAS4VIMMP_ROOT}
+else
+srcdir?=../..
+endif
+
+confdir?=$(srcdir)/config
+tooldir=$(srcdir)/Tools
+
+# Règle en tête de Makefile
+all:  driverAll
+
+export PYXB_ROOT_DIR=/home/C65845/local/PyXB-1.2.6_Python-3.9.2.bin
+export PYXB_PYTHONPATH?=${PYXB_ROOT_DIR}/lib/python3.9/site-packages
+
+include $(confdir)/GNUmakefile.env
+
+
+PYXB            ?=pyxbgen
+#PYXB            ?=pyxbgen-py3
+
+ifndef PYXB
+  ifeq (, $(shell which pyxbgen))
+   ifeq (, $(shell which pyxbgen-py3))
+     $(error "No pyxbgen $(PATH), consider installing pyxb")
+   else
+    PYXB =pyxbgen-py3
+   endif
+  else
+    PYXB =pyxbgen
+  endif
+endif
+
+#################     REGLES DE CONSTRUCTION     ########################
+
+#Dépendances entre catalogues :
+define cata_dependencies =
+# Exemple: cata_gromacs$1              : cata_Vimmp$1
+endef
+
+#Définition des dépendances pour le modèle .py
+$(eval $(call cata_dependencies,.py))
+#Définition des dépendances pour le modèle .xsd
+$(eval $(call cata_dependencies,.xsd))
+
+# $(subst .py,.xsd,cata_dependencies)
+
+cata_files= \
+cata_RN.py 
+#cata_RN_UQ.py \
+#cata_RN_EDG.py \
+#cata_RN_pn.py 
+
+cata_basename=$(cata_files:%.py=%)
+xsd_files   = $(cata_files:%.py=%.xsd)
+driver_files= $(cata_files:%.py=%_driver.py)
+
+xsdAll: $(xsd_files)
+driverAll:  exec.sh environ.sh qtEficas.sh $(driver_files)
+# qtEficasSlm.sh
+
+
+# Exemple PyxB : $(PYXB) -m $(basename $@) -u $<  --location-prefix-rewrite http://chercheurs.edf.com/logiciels/vimmp=  --write-for-customization \
+# L'utilisation de $? ne fonctionne pas si l'on ne modifie qu'un seul catalogue car il liste uniquement les fichiers modifiés et pyxb détecte 
+# que l'autre fichier en dépend et qu'il n'a pas été regénéré en même temps: $^
+.py.xsd:
+       python3 $(tooldir)/generateXSD.py -c $(abspath $<)
+
+.xsd_driver.py:
+       ./exec.sh $(PYXB) -m $(basename $@) -u $^  --write-for-customization
+       xmllint --path $(confdir) --schema XMLSchema11_local.xsd --noout $^
+
+#Les Tools eficas ont besoins d'un chemin absolu
+#ATTENTION : La .sufix rule n'autorise pas les dépendances après le : (sinon la ligne entière est un nom de fichier bizzare)
+#_test_driver_$1.comm_test_driver_$1.xml: 
+#            il faut les définir à part
+# TODO : Gérer la dépendance au cata_..._driver.py et au fichier catalogue en utilisant la seconde expansion 
+#.SECONDEXPANSION:
+#%_test_driver_$1.xml : %_test_driver_$1.comm $$(realpath $$(*).py)  $$(*)_driver.py
+
+define test_xml_rule =
+%_test_driver_$1.xml : %_test_driver_$1.comm $$(realpath $$(*).py)
+       @echo -e "\n\n------ Generate xml test file $$(@) ------\n"
+       @[[ -f $$(*).py ]] || (echo "Le fichier catalogue $$(*).py est introuvable" && false)
+       @[[ -f $$(*)_driver.py ]] || (echo "Le fichier driver $$(*)_driver.py est introuvable" && false)
+       python3 $(tooldir)/validateDataSet.py -c $$(abspath $$(*).py) $$< 
+       python3 $(tooldir)/generateXML.py -c $$(abspath $$(*).py) $$<
+endef
+
+
+#ATTENTION : La .sufix rule n'autorise pas les dépendances après le : (sinon la ligne entière est un nom de fichier bizzare)
+#_test_driver_$1.comm_test_driver_$1.py:
+#            il faut les définir à part
+define test_driver_rule =
+%_test_driver_$1.py : %_test_driver_$1.xml $(confdir)/test_driver_subst.py
+       @echo -e "\n\n------ Generate xml test driver $$(@) ------\n"
+       sed -e "s,@module@,$$(*)_driver,g" -e "s,@file@,$$(<:%.comm=%.xml),g" $$(confdir)/test_driver_subst.py > $$(@) && \
+        chmod +x $$(<:%.comm=%.py);
+endef
+
+define test_comm_rule =
+%_test_driver_$1_modified.comm : %_test_driver_$1.xml
+       @echo -e "\n\n------ Generate modified.comm file $$(@) ------\n"
+       @[[ -f $$(*).py ]] || (echo "Le fichier catalogue $$(*).py est introuvable" && false)
+       @[[ -f $$(*)_driver.py ]] || (echo "Le fichier driver $$(*)_driver.py est introuvable" && false)
+       python3 $(tooldir)/generateUQComm.py -x -c $$(abspath $$(*).py) -o  $$(@)  $$<
+       diff -w  -I '^#' -I '^ #' $$(@:%_modified.comm=%.comm) $$(@)
+endef
+
+#Définition des règles de construction pour les tests
+#$(eval $(call test_driver_rule,0))
+#$(eval $(call test_driver_rule,1))
+$(foreach it,0 1 2 3 4 5 6 7 8 9, $(eval $(call test_xml_rule,$(it))) )
+$(foreach it,0 1 2 3 4 5 6 7 8 9, $(eval $(call test_driver_rule,$(it))) )
+$(foreach it,0 1 2 3 4 5 6 7 8 9, $(eval $(call test_comm_rule,$(it))) )
+
+#test_driver_xml:= $(patsubst %.comm,%.xml,$(wildcard *_test_driver_?.comm))
+#test_driver_py:= $(patsubst %.comm,%.py,$(wildcard *_test_driver_?.comm))
+
+new_test_driver_xml:= $(foreach it,$(cata_basename), $(patsubst %.comm,%.xml,$(wildcard $(it)_test_driver_?.comm)) )
+new_test_driver_py:= $(foreach it,$(cata_basename), $(patsubst %.comm,%.py,$(wildcard $(it)_test_driver_?.comm)) )
+new_test_driver_comm:= $(foreach it,$(cata_basename), $(patsubst %.comm,%_modified.comm,$(wildcard $(it)_test_driver_?.comm)) )
+
+#$(info $(new_test_driver_xml) "----" $(cata_basename) )
+#$(info $(new_test_driver_py) "----" $(cata_basename) )
+
+# xml:
+#      @echo "Reminder: a .comm file is needed for this step" 
+#      ../tools/generateXML.py -c cata_1.py cata_1_test_1.comm
+
+check test: testAll
+
+#################     REGLES DE TESTS     ########################
+
+testAll: exec.sh driverAll $(new_test_driver_py) $(new_test_driver_xml) $(new_test_driver_comm)
+       @for i in $(new_test_driver_py)  ; do echo -e "\n\n------ Launching $$i ------" && ./exec.sh python3 $$i ; done
+#      for i in `ls *_test_driver*.py`  ; do echo -e "\n\n------ Launching $$i ------" && ./exec.sh python $$i || break ; done
+
+#################   REGLES DE NETTOYAGE   ########################
+
+clean:
+       rm -f *.pyc *~ qtEficas.sh exec.sh environ.sh
+       rm -rf raw  binding.py __pycache__
+       rm -f $(xsd_files) $(driver_files)  *test_driver_?.py *test_driver_?.xml *test_driver_?_modified.comm
+
+cleantest:
+       rm -f  *test_driver_?.py *test_driver_?.xml *test_driver_?_modified.comm
+
diff --git a/Codes/ReacteurNumerique/a.txt b/Codes/ReacteurNumerique/a.txt
deleted file mode 100644 (file)
index ad61359..0000000
+++ /dev/null
@@ -1 +0,0 @@
-./qtEficasReacteurNumerique.py -c cata_RN.py essaiPN.comm
diff --git a/Web/accasConnecteur.py b/Web/accasConnecteur.py
deleted file mode 100644 (file)
index a732815..0000000
+++ /dev/null
@@ -1,434 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2021   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-"""
-   Ce module sert a lancer EFICAS configure pour le Web 
-"""
-# Modules Python
-import os, sys
-import os, sys
-sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..'))
-
-
-# Modules Eficas
-
-from collections import OrderedDict
-import pprint
-
-
-if sys.version_info[0] < 3:
-    print("Must be using Python 3")
-    sys.exit()
-
-class AccasConnecteur :
-    def __init__(self,code, fichierCata=None, langue=None, fichierComm=None,appWeb=None) :
-    #-------------------------------------------------------------------------------------
-
-        self.appWeb=appWeb
-
-        if code == None : multi = True
-        else : multi = False
-        from Editeur.eficas_go import getEficasSsIhm
-        self.monEficas=getEficasSsIhm(code=code, salome=0, multi=multi, langue=langue,fichierCata=fichierCata, GUIPath='Web')
-
-        if self.monEficas == None : 
-           self.toWebApp('afficheMessage', 'erreur à la construction de l appli Eficas', 'rouge')
-           return
-        # faire l equivalent du editorManager
-        if fichierCata == None and fichierComm : 
-           self.toWebApp('afficheMessage', 'pour ouvrir un JDC, il faut connaitre le catalogue', 'rouge')
-           return 
-        self.litFichierComm(fichierComm)
-
-    def toWebApp(self,fction,*args, **kwargs):
-    #-----------------------------------------
-        #if fction =='propageValide' :
-        debug=0
-        if debug  : print ('PNPNPN : self.appWeb.toWebApp', fction, *args, **kwargs)
-        if self.appWeb == None  : 
-           #if fction =='propageValide' : print ('self.appWeb.toWebApp propageValide', self.monEditeur.getNodeById(args[0]).nom)
-           return
-        self.appWeb.fromConnecteur(fction, *args, **kwargs)
-        
-    def litFichierComm(self,fichierComm=None):
-    #-----------------------------------------
-        from InterfaceGUI.Web.editor import JDCWebEditor
-        self.monEditeur=JDCWebEditor(self.monEficas,fichierComm,connecteur=self)
-
-    def getListeCommandes(self):
-    #---------------------------
-        if self.monEditeur == None : return
-        return (self.monEditeur.jdc.getListeCmd())
-
-    def getListeMotsClesFilsPossibles(self,nomCommande):
-    #-----------------------------------------
-        # ici il faut programmer getListeMotsClesFilsPossibles dans P_ENTITE
-        # Pour l instant on renvoie entites
-        # doit aussi pouvoir etre appele sur FACT et BLOC
-        maCommande= getattr(self.monEditeur.jdc.cata,nomCommande)
-        laListe=maCommande.entites
-        return laListe
-
-    #def generDicoPourWeb(self) :
-    #---------------------------------
-    #    dico=self.monEditeur.generDicoPourWeb()
-    #    return dico
-
-    #def getDicoObjetsPourWeb(self,obj) :
-    #---------------------------------
-    #    dico=self.monEditeur.getDicoObjetsPourWeb(obj)
-    #    return dico
-
-    #def getDicoObjetsCompletsPourTree(self,obj) :
-    #    dico=self.monEditeur.getDicoObjetsCompletsPourTree(obj)
-    #    return dico
-        
-    def getDicoForFancy(self,obj,debug=0) :
-    #---------------------------------
-        dico=self.monEditeur.getDicoForFancy(obj)
-        if debug :
-           import pprint
-           pprint.pprint (dico)
-        return dico
-
-    #def traiteDico(self,dico):
-    #---------------------------------
-    #    for k,v in dico.items():
-    #        monNode=self.monEditeur.getNodeById(k)
-    #        try    : print ('label', monNode.getLabelText())
-    #        except : print ('monNode', monNode)  # non operationnel pour jdc
-    #        try : print ('validite :', monNode.isValid())
-    #        except : pass # non operationnel pour jdc
-    #        if type(v) is OrderedDict : self.traiteDico(v)
-    #        else : print ('valeur :', v)
-        
-    def changeValeur(self,id,valeur) :
-    #---------------------------------
-         """
-         id : identifiant unique
-         valeur : valeur saisie dans le formulaire
-         doit-on mettre l ancienne valeur en retour qui serait utile si validité = Non 
-         """ 
-         monNode=self.monEditeur.getNodeById(id)
-         #print (' change Valeur', monNode)
-         #(idUnique, commentaire, validite)=monNode.fauxNoeudGraphique.traiteValeurSaisie(valeur)
-         #print ('retour ChangeValeur',idUnique, commentaire, validite )
-         return monNode.fauxNoeudGraphique.traiteValeurSaisie(valeur)
-
-    def updateSDName(self,id,sdnom) :
-    #---------------------------------
-         monNode=self.monEditeur.getNodeById(id)
-         return monNode.fauxNoeudGraphique.updateSDName(sdnom)
-
-    def suppNode(self,id):
-    #-------------------
-        
-        monNode=self.monEditeur.getNodeById(id)
-        print ('monNode', monNode)
-        retour=monNode.fauxNoeudGraphique.delete()
-        return retour
-
-    def appendChild(self,id,name,pos=None):
-    #-------------------------------------
-        """
-        Methode pour ajouter un objet fils name a l objet associe au noeud id.
-        On peut l'ajouter en debut de liste (pos='first'), en fin (pos='last')
-        ou en position pos_ieme de la liste. 
-        retour = nouvelIdUnique ou None 
-        """
-        monNode=self.monEditeur.getNodeById(id)
-        if monNode.fauxNoeudGraphique == None :
-           print ('PNPN pas de noeud Graphique associe a l id')
-           return
-        if debug : print (monNode.fauxNoeudGraphique)
-        retour = monNode.fauxNoeudGraphique.appendChild(name,pos)
-        return retour
-
-    def saveFile(self,fileName):
-    #----------------------------
-        """
-        sauve le .comm dans fileName (si fileName = None, 
-        alors la sauvegarde est faite dans le fichier courant)
-        retour = True/False et le nom du fichier sauvegarde
-        """
-        return self.monEditeur.saveFile(fileName)
-
-
-if __name__ == "__main__":
-    import prefs
-    name='prefs_'+prefs.code
-    __import__(name)
-    code=prefs.code
-    monEficasConnecteur=accasConnecteur(code, langue='ang')
-
-    testAjoutSuppProc=0
-    if testAjoutSuppProc : 
-        monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_2Procs.comm')
-        idRacine=monEficasConnecteur.monEditeur.tree.racine.item.idUnique
-        r=monEficasConnecteur.appendChild(idRacine,'MonProc',0)
-        print ('ajout de MonProc en postion 0', r)
-        r=monEficasConnecteur.appendChild(idRacine,'MonProc2',1)
-        print ('ajout de MonProc2 en postion 1', r)
-        r=monEficasConnecteur.appendChild(idRacine,'MonProc2','last')
-        print ('ajout de MonProc2 en postion last', r)
-        r=monEficasConnecteur.appendChild(idRacine,'MonProc2','first')
-        print ('ajout de MonProc2 en postion first', r)
-        r=monEficasConnecteur.appendChild(idRacine,'MonProc2',)
-        print ('ajout de MonProc2 sans poistion ne fonctionne pas', r)
-        d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
-        etape2=d['children'][0]['key']
-        print ('je detruis' ,etape2)
-        r=monEficasConnecteur.suppNode(etape2)
-        print (r)
-        monProc2=d['children'][0]['key']
-        r=monEficasConnecteur.appendChild(monProc2,'Fact2')
-        (ok,newFile)=monEficasConnecteur.saveFile('/tmp/ajoutProc.comm')
-
-    testAjoutSuppFact2=0
-    if testAjoutSuppFact2 : 
-        monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_2Procs.comm')
-        idRacine=monEficasConnecteur.monEditeur.tree.racine.item.idUnique
-        r=monEficasConnecteur.appendChild(idRacine,'MonProc2','last')
-        d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
-        monProc2=d['children'][2]['key']
-        r=monEficasConnecteur.appendChild(monProc2,'Fact2')
-        #print (r)
-        (ok,newFile)=monEficasConnecteur.saveFile('/tmp/ajoutFact2.comm')
-    
-    testAjoutSuppFact=0
-    if testAjoutSuppFact : 
-        monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_2Fact.comm')
-        idRacine=monEficasConnecteur.monEditeur.tree.racine.item.idUnique
-        d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
-        monProc2=d['children'][0]['key']
-        print ('id monProc2 : ', monProc2)
-        #r=monEficasConnecteur.appendChild(monProc2,'Fact2')
-        #print ('ajout de Fact2 dans monProc2 reussi', r)
-        #r=monEficasConnecteur.appendChild(monProc2,'Fact2')
-        #print ('ajout de  Fact2 dans monProc2 inadequat', r)
-        d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
-        fact11=d['children'][0]['children'][2]['key']
-        fact12=d['children'][0]['children'][3]['key']
-        fact13=d['children'][0]['children'][4]['key']
-        fact14=d['children'][0]['children'][5]['key']
-        pprint.pprint(d)
-        #print (d)
-        #monFact2=d['children'][0]['children'][3]['key']
-        #print (monFact2)
-        #r=monEficasConnecteur.suppNode(monFact2)
-        #print (r)
-        #fact11=d['children'][0]['children'][2]['key']
-        #monNode=monEficasConnecteur.monEditeur.getNodeById(fact11)
-        #print ('monNode', monNode)
-        r=monEficasConnecteur.suppNode(fact11)
-        r=monEficasConnecteur.suppNode(fact12)
-        r=monEficasConnecteur.suppNode(fact13)
-        print ('________________________________________________')
-        print ('________________________________________________')
-        print ('________________________________________________')
-        print ('________________________________________________')
-        print ('________________________________________________')
-        r=monEficasConnecteur.suppNode(fact14)
-        print (r)
-        #r=monEficasConnecteur.appendChild(monProc2,'Fact1')
-        #r=monEficasConnecteur.appendChild(monProc2,'Fact1')
-        #r=monEficasConnecteur.appendChild(monProc2,'Fact1')
-        #r=monEficasConnecteur.appendChild(monProc2,'Fact2')
-        #r=monEficasConnecteur.appendChild(monProc2,'Fact1')
-        #print (d)
-        #d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
-        #pprint.pprint(d)
-        #r=monEficasConnecteur.appendChild(monProc2,'Fact1')
-        #print (r)
-        #d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
-        #fact12=d['children'][0]['children'][3]['key']
-        #print(d['children'][0]['children'][3]['title'])
-        #r=monEficasConnecteur.appendChild(fact12,'paramInFact1')
-        #fact1=d['children'][0]['children'][2]
-        #print (fact1)
-        #fact11=d['children'][0]['children'][2]['key']
-        #print (fact11)
-        #print ('******************************************************')
-        #r=monEficasConnecteur.suppNode(fact11)
-        #r=monEficasConnecteur.appendChild(fact11,'paramInFact1')
-        #d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
-        #paramInFact12=d['children'][0]['children'][2]['children'][0]['key']
-        #r=monEficasConnecteur.suppNode(paramInFact12)
-        #print (r)
-        (ok,newFile)=monEficasConnecteur.saveFile('/tmp/ajoutFact.comm')
-        exit()
-
-    testChangeValeur=0
-    if testChangeValeur :
-        monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_2Fact.comm')
-        idRacine=monEficasConnecteur.monEditeur.tree.racine.item.idUnique
-        print ('idRacine', idRacine)
-        d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
-        #pprint.pprint(d)
-    
-        monProc=d['children'][0]['key']
-        print ('monProc', monProc)
-        param1=d['children'][0]['children'][0]['key']
-        print ('param1', param1)
-        r=monEficasConnecteur.changeValeur(param1,'65')
-        param12=d['children'][0]['children'][1]['key']
-        print ('param12', param12)
-        r=monEficasConnecteur.changeValeur(param12,'9')
-        r=monEficasConnecteur.appendChild(monProc,'param11')
-        d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
-        param11=d['children'][0]['children'][1]['key']
-        print ('param11', param11)
-        r=monEficasConnecteur.changeValeur(param11,'11') 
-    
-        print ('______________ creation du bloc _____________________')
-        r=monEficasConnecteur.changeValeur(param1,'2')
-        d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
-        #pprint.pprint(d)
-        param1_inBloc=d['children'][0]['children'][3]['key']
-        # on supprime le bloc
-        r=monEficasConnecteur.changeValeur(param1_inBloc,'1')
-        # on le rajoute (pb du bloc dans le bloc) 
-        r=monEficasConnecteur.changeValeur(param1_inBloc,'2')
-        d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
-        param1_inBlocDeBloc=d['children'][0]['children'][4]['key']
-        r=monEficasConnecteur.changeValeur(param1_inBlocDeBloc,'2')
-        print ('______________ creation du bloc _____________________')
-        param2_inBloc=d['children'][0]['children'][6]['key']
-        r=monEficasConnecteur.changeValeur(param1_inBlocDeBloc,'2')
-        (ok,newFile)=monEficasConnecteur.saveFile('/tmp/changeValeur.comm')
-        exit()
-    
-        # creation du bloc
-        #r=monEficasConnecteur.changeValeur(i,'2')
-        #d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
-        #(ok,newFile)=monEficasConnecteur.saveFile('/tmp/ajoutProcEtBloc.comm')
-        #pprint.pprint(d)
-    
-        # suppression du bloc
-        #r=monEficasConnecteur.changeValeur(i,'1')
-        #d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
-        #(ok,newFile)=monEficasConnecteur.saveFile('/tmp/suppressionBloc.comm')
-        #pprint.pprint(d)
-    
-        # ajout du Fact2
-        d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
-        e=d['children'][2]['key']
-        r=monEficasConnecteur.appendChild(e,'Fact2')
-        (ok,newFile)=monEficasConnecteur.saveFile('/tmp/ajoutFact2.comm')
-        d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
-        mf=d['children'][2]['children'][4]['key']
-        print (mf)
-        r=monEficasConnecteur.appendChild(mf,'paramFacultatif')
-        (ok,newFile)=monEficasConnecteur.saveFile('/tmp/ajoutFacultatif.comm')
-        d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
-        mf=d['children'][2]['children'][4]['children'][1]['key']
-        r=monEficasConnecteur.suppNode(mf)
-        print (r)
-        (ok,newFile)=monEficasConnecteur.saveFile('/tmp/ajoutFacultatifEtSuppresse.comm')
-        # essai enlever un mot clef qu on ne peut pas enlever
-        d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
-        mf=d['children'][2]['children'][1]['key']
-        r=monEficasConnecteur.suppNode(mf) 
-        print (r)
-        #(ok,newFile)=monEficasConnecteur.saveFile('/tmp/ajoutPuisSuppresFact2.comm')
-        #d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
-        #pprint.pprint(d)
-    #print ('_________', r)
-    
-    testPropageValide = 0
-    if testPropageValide : 
-        monEficasConnecteur.litFichierComm('propageValide.comm')
-        idRacine=monEficasConnecteur.monEditeur.tree.racine.item.idUnique
-        #r=monEficasConnecteur.appendChild(idRacine,'MonProc',0)
-        #print ('ajout de MonProc en position 0', r)
-        #r=monEficasConnecteur.appendChild(idRacine,'MonProc2','last')
-        r=monEficasConnecteur.appendChild(idRacine,'MonProc','last')
-        d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
-        param1PLast = d['children'][1]['children'][0]['key']
-        r=monEficasConnecteur.changeValeur(param1PLast,'1')
-        (ok,newFile)=monEficasConnecteur.saveFile('/tmp/propageValide.comm')
-        print ('ajout de MonProc2 en postion last', r)
-
-    testUpdateInfo = 0
-    if testUpdateInfo : 
-        print ('________________________ testUpdateInfo ___________________________')
-        monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_2Fact.comm')
-        idRacine=monEficasConnecteur.monEditeur.tree.racine.item.idUnique
-        print ('idRacine', idRacine)
-        d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
-        badMonProc2 = d['children'][0]['children'][0]['key']
-        r=monEficasConnecteur.appendChild(badMonProc2,'Fact1')
-        monProc2 = d['children'][0]['key']
-        #print ('idProc2', monProc2)
-        #print (d)
-        r=monEficasConnecteur.appendChild(monProc2,'Fact1')
-        r=monEficasConnecteur.appendChild(monProc2,'Fact1')
-        r=monEficasConnecteur.appendChild(monProc2,'Fact1')
-        r=monEficasConnecteur.appendChild(monProc2,'Fact1')
-        d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
-        print (['children'][0])
-
-    testAjoutSimpListe=0
-    if testAjoutSimpListe : 
-        monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_2Procs.comm')
-        idRacine=monEficasConnecteur.monEditeur.tree.racine.item.idUnique
-        r=monEficasConnecteur.appendChild(idRacine,'MonProc2','last')
-        d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
-        monProc2=d['children'][2]['key']
-
-    testNommeProc=1
-    if testNommeProc : 
-        monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_2Procs.comm')
-        idRacine=monEficasConnecteur.monEditeur.tree.racine.item.idUnique
-        r=monEficasConnecteur.appendChild(idRacine,'MonOper','last')
-        d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
-        monOper=d['children'][2]['key']
-        bOk, message = monEficasConnecteur.updateSDName(monOper,'toto')
-        print ('in testNommeProc, bOk, message', bOk, message)
-        d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
-        monParam=d['children'][2]['children'][0]['key']
-        r=monEficasConnecteur.changeValeur(monParam,'65')
-        bOk, message = monEficasConnecteur.updateSDName(monOper,'toto')
-        print ('in testNommeProc, bOk, message', bOk, message)
-
-    #print ( '\n Fichier /home/A96028/QT5GitEficasTravail/Web/eficas/WebTest/web_tres_simple_avec_2Procs.comm')
-    #monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_2Procs.comm')
-    #pprint.pprint (monEficasConnecteur.getDicoObjetsCompletsPourTree(monEficasConnecteur.monEditeur.tree.racine))
-
-    #print ( '\n Fichier /home/A96028/QT5GitEficasTravail/Web/eficas/WebTest/web_tres_simple_avec_Bloc.comm')
-    #monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_Bloc.comm')
-    #print (monEficasConnecteur.generDicoPourWeb())
-    #print (monEficasConnecteur.getDicoObjetsPourWeb(monEficasConnecteur.monEditeur.tree.racine))
-    #pprint.pprint (monEficasConnecteur.getDicoObjetsCompletsPourTree(monEficasConnecteur.monEditeur.tree.racine))
-    #print ('\n')
-
-    #print ( '\n Fichier /home/A96028/QT5GitEficasTravail/Web/eficas/WebTest/web_tres_simple_avec_2Fact.comm')
-    #monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_2Fact.comm')
-    #print (monEficasConnecteur.generDicoPourWeb())
-    #monDicoAAfficher = (monEficasConnecteur.getDicoObjetsPourWeb(monEficasConnecteur.monEditeur.tree.racine))
-    #monEficasConnecteur.traiteDico(monDicoAAfficher)
-    #pprint.pprint (monEficasConnecteur.getDicoObjetsCompletsPourTree(monEficasConnecteur.monEditeur.tree.racine))
-
-    #print ('/home/A96028/QT5GitEficasTravail/Web/eficas/WebTest/web_tres_simple_avec_Fact.comm')
-    #monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_Fact.comm')
-    #print (monEficasConnecteur.generDicoPourWeb())
-    #pprint.pprint (monEficasConnecteur.getDicoObjetsCompletsPourTree(monEficasConnecteur.monEditeur.tree.racine))
-    #print ('\n')
-
index 5a3f8eff50033fcbbd3ec1e401c16077bf809c05..d2cb3072cc8a760ab3a071f350720c0dff22b80e 100644 (file)
@@ -15,7 +15,7 @@ endif
 define _SCRIPT_ENV
 cat <<EOF > $1
 $(QTDEF)
-export PYTHONPATH=${PYTHONPATH}:\$${PYTHONPATH}
+export PYTHONPATH=${PYXB_PYTHONPATH}:${PYTHONPATH}:\$${PYTHONPATH}
 export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:\$${LD_LIBRARY_PATH}
 export PATH=${PYXB_ROOT_DIR}/bin:${PATH}:\$${PATH}
 \$$*
@@ -29,7 +29,7 @@ export SCRIPT_ENV = $(call _SCRIPT_ENV,environ.sh)
 define _SCRIPT_EXEC
 cat <<EOF > $1
 $(QTDEF)
-export PYTHONPATH=${PYTHONPATH}
+export PYTHONPATH=${PYXB_PYTHONPATH}:${PYTHONPATH}
 export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
 export PATH=${PYXB_ROOT_DIR}/bin:${PATH}
 \$$*
index 0bca9134e28e9ac1d4f42dac24f77a55d1c1089d..eac3f3d6bc7ae6d11629f7736fe70ef6f446aa00 100644 (file)
@@ -46,7 +46,7 @@ $(foreach exp,  $(subst ",,$(subst =,:=, $(subst $$PATH,$${PATH}, $(subst $$LD_L
 ## " PYXB
 PYXB_ROOT_DIR   ?=${PRODUCTS_DIR}/pyxb/install
 PYXB            ?=${PYXB_ROOT_DIR}/bin/pyxbgen
-PYXB_PYTHONPATH ?=${PYXB_ROOT_DIR}/lib/python3.6/site-packages
+PYXB_PYTHONPATH ?=${PYXB_ROOT_DIR}/lib/python3.9/site-packages
 export PYTHONPATH:=${PYXB_PYTHONPATH}:${PYTHONPATH}
 
 
diff --git a/recommends b/recommends
new file mode 100644 (file)
index 0000000..79c90c5
--- /dev/null
@@ -0,0 +1,18 @@
+click==7.1.2
+Deprecated==1.2.13
+Flask==1.1.4
+Flask-SSE==1.0.0
+Flask-Reuploaded==1.2.0
+itsdangerous==1.1.0
+Jinja2==2.11.3
+MarkupSafe==1.1.1
+PyQt5==5.15.2
+PyQt5-sip==12.8.0
+redis==4.0.2
+setuptools==39.0.1
+six==1.12.0
+Werkzeug==1.0.1
+wrapt==1.12.1
+Pillow==8.4.0
+simplejson==3.17.6
+numpy==1.19.5
diff --git a/venv.cmd b/venv.cmd
new file mode 100644 (file)
index 0000000..9b5f52e
--- /dev/null
+++ b/venv.cmd
@@ -0,0 +1,4 @@
+sudo apt-get install python3-venv
+python3 -m venv MyEnv 
+pip install -r recommends 
+apt-get install redis