From ada872b6f01913d492c8691c1b8fec208c08571e Mon Sep 17 00:00:00 2001 From: "pascale.noyret" Date: Wed, 18 Nov 2020 14:33:09 +0100 Subject: [PATCH] Poc Suite --- InterfaceQT4/eficas_go.py | 34 +++++++++++----------------------- Noyau/N_CONVERT.py | 17 +++++++++++++---- Noyau/N_ENTITE.py | 4 ++-- Noyau/N_FACT.py | 6 ++++-- 4 files changed, 30 insertions(+), 31 deletions(-) diff --git a/InterfaceQT4/eficas_go.py b/InterfaceQT4/eficas_go.py index afc82e80..ded9b52f 100755 --- a/InterfaceQT4/eficas_go.py +++ b/InterfaceQT4/eficas_go.py @@ -139,12 +139,12 @@ def validateDataSet(code=None): else : print ('Jdc is valid') return monEditeur.jdc.isValid() -def validateFonction(laFonction, debug=True): +def validateFonction(laFonction, debug=False): #------------------------------- # ici un singleton pour avoir l editor, le catalogue et... monEficasSsIhm = getEficasSsIhm(code='Essai') monEditor=monEficasSsIhm.getEditor() - print ('_______ validateFonction', laFonction, laFonction.__name__) + #print ('_______ validateFonction', laFonction, laFonction.__name__) from functools import wraps from collections import OrderedDict from inspect import getargspec @@ -152,27 +152,15 @@ def validateFonction(laFonction, debug=True): def fonctionValidee(*args, **kwargs): laFonctionName = laFonction.__name__ if debug : print('Appel {} avec args={} et kwargs={}'.format( laFonction.__name__, args, kwargs)) - listArgsNames = list(OrderedDict.fromkeys(getargspec(laFonction)[0])) - listKwargsNames = list(kwargs.keys()) - if debug : print (listArgsNames) - if debug : print (listKwargsNames) - #listTousNames = listArgsNames+listKwargsNames - #if debug : print (listTousNames) - #args_dict = OrderedDict(list(zip(args_name, args)) + list(kwargs.iteritems())) - #print (args_dict) - - #laDefDeLaFonctionDansAccas = getattr(monEditor.readercata.cata,laFonctionName) - #print (laDefDeLaFonctionDansAccas) - #print (laDefDeLaFonctionDansAccas.entites) - #print (dir(laDefDeLaFonctionDansAccas)) - #print (args) - #dict1={'monArgument1' : 'a', 'monArgument2' : 'uuu'} - - #objConstruit = laDefDeLaFonctionDansAccas.makeObjetPourVerifSignature(**dict1) - #print (objConstruit) - #print (objConstruit.isValid()) - ret = laFonction(*args, **kwargs) - return ret + laDefDeLaFonctionDansAccas = getattr(monEditor.readercata.cata,laFonctionName) + objConstruit = laDefDeLaFonctionDansAccas.makeObjetPourVerifSignature(*args,**kwargs) + if (objConstruit.isValid(cr='oui')) : + ret = laFonction(*args, **kwargs) + return ret + else : + print ('mauvais arguments') + print (objConstruit.CR()) + return None return fonctionValidee #maClasseAccas=getattr(self.cata,objEtape.monNomClasseAccas) diff --git a/Noyau/N_CONVERT.py b/Noyau/N_CONVERT.py index b900ade1..683b25dd 100644 --- a/Noyau/N_CONVERT.py +++ b/Noyau/N_CONVERT.py @@ -108,10 +108,18 @@ class UserASSDConversion(TypeConversion): TypeConversion.__init__(self, classUser) def function(self, o): - #print ('je convertis : ', o, 'en ', self.typeACreer ) - #import traceback - #traceback.print_stack() if o == None : return None + print ('je cree UserASSDConversion', o, ' ', self.typeACreer) + nouvelObj=self.typeACreer(o) + return nouvelObj + +class UserASSDMultipleConversion(TypeConversion): + def __init__(self, classUser): + TypeConversion.__init__(self, classUser) + + def function(self, o): + if o == None : return None + print ('je cree dans UserASSDMultipleConversion', o, ' ', self.typeACreer) nouvelObj=self.typeACreer(o) return nouvelObj @@ -124,6 +132,7 @@ def ConversionFactory(name, typ): if 'I' in typ : return _convertI elif 'R' in typ : return _convertR if name == 'UserASSD': - #print(typ) return (UserASSDConversion(typ)) + if name == 'UserASSDMultiple': + return (UserASSDMultipleConversion(typ)) return None diff --git a/Noyau/N_ENTITE.py b/Noyau/N_ENTITE.py index f33ff613..fc15bd7d 100644 --- a/Noyau/N_ENTITE.py +++ b/Noyau/N_ENTITE.py @@ -322,8 +322,8 @@ class ENTITE(object): - def makeObjetPourVerifSignature(self,**args): - etape = self.class_instance(oper=self, args=args) + def makeObjetPourVerifSignature(self,*args,**kwargs): + etape = self.class_instance(oper=self, args=kwargs) etape.MCBuild() return etape diff --git a/Noyau/N_FACT.py b/Noyau/N_FACT.py index 90753390..c18bb08b 100644 --- a/Noyau/N_FACT.py +++ b/Noyau/N_FACT.py @@ -160,8 +160,10 @@ class FACT(N_ENTITE.ENTITE): l.append(val) else: l.append(N_OBJECT.ErrorObj(self, val, parent, nom)) - l.cata=l.jdc.cata - l.buildObjPyxb(l) + # pour tenir compte du validateFonction + if l.jdc : + l.cata=l.jdc.cata + l.buildObjPyxb(l) return l def verifCata(self): -- 2.39.2