From c10bcd591a945000094e42503aad76327022adfe Mon Sep 17 00:00:00 2001 From: Eric Fayolle Date: Wed, 27 Mar 2024 16:55:04 +0100 Subject: [PATCH] Modification des GNUmakefile pyxb --- Codes/ReacteurNumerique/GNUmakefile | 154 ++++++++++ Codes/ReacteurNumerique/a.txt | 1 - Web/accasConnecteur.py | 434 ---------------------------- config/GNUmakefile.env | 4 +- config/GNUmakefile.mdm | 2 +- recommends | 18 ++ venv.cmd | 4 + 7 files changed, 179 insertions(+), 438 deletions(-) create mode 100644 Codes/ReacteurNumerique/GNUmakefile delete mode 100644 Codes/ReacteurNumerique/a.txt delete mode 100644 Web/accasConnecteur.py create mode 100644 recommends create mode 100644 venv.cmd diff --git a/Codes/ReacteurNumerique/GNUmakefile b/Codes/ReacteurNumerique/GNUmakefile new file mode 100644 index 00000000..878090cb --- /dev/null +++ b/Codes/ReacteurNumerique/GNUmakefile @@ -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 index ad61359d..00000000 --- a/Codes/ReacteurNumerique/a.txt +++ /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 index a7328151..00000000 --- a/Web/accasConnecteur.py +++ /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') - diff --git a/config/GNUmakefile.env b/config/GNUmakefile.env index 5a3f8eff..d2cb3072 100644 --- a/config/GNUmakefile.env +++ b/config/GNUmakefile.env @@ -15,7 +15,7 @@ endif define _SCRIPT_ENV cat < $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 < $1 $(QTDEF) -export PYTHONPATH=${PYTHONPATH} +export PYTHONPATH=${PYXB_PYTHONPATH}:${PYTHONPATH} export LD_LIBRARY_PATH=${LD_LIBRARY_PATH} export PATH=${PYXB_ROOT_DIR}/bin:${PATH} \$$* diff --git a/config/GNUmakefile.mdm b/config/GNUmakefile.mdm index 0bca9134..eac3f3d6 100644 --- a/config/GNUmakefile.mdm +++ b/config/GNUmakefile.mdm @@ -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 index 00000000..79c90c5a --- /dev/null +++ b/recommends @@ -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 index 00000000..9b5f52e0 --- /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 -- 2.39.2