# -*- coding: utf-8 -*-
#
-# Copyright (C) 2008-2021 EDF R&D
+# Copyright (C) 2008-2022 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
self._content = __content
self._object = __object
self._missing = """raise ValueError("This case requires beforehand to import or define the variable named <%s>. When corrected, remove this command, correct and uncomment the following one.")\n# """
+ #------------------------
def _append(self, *args):
"Transformation d'une commande individuelle en un enregistrement"
raise NotImplementedError()
def _extract(self, *args):
"Transformation d'enregistrement(s) en commande(s) individuelle(s)"
raise NotImplementedError()
+ #------------------------------
+ def _initialize(self, __multilines):
+ "Permet des pré-conversions automatiques simples de commandes ou clés"
+ __translation = {
+ "Study_name" :"StudyName",
+ "Study_repertory" :"StudyRepertory",
+ "MaximumNumberOfSteps":"MaximumNumberOfIterations",
+ "FunctionDict" :"ScriptWithSwitch",
+ "FUNCTIONDICT_FILE" :"SCRIPTWITHSWITCH_FILE",
+ }
+ for k,v in __translation.items():
+ __multilines = __multilines.replace(k,v)
+ return __multilines
def _finalize(self, __upa=None):
"Enregistrement du final"
__hasNotExecute = True
if __hasNotExecute:
self._lineSerie.append("%s.execute()"%(self._objname,))
if __upa is not None and len(__upa)>0:
- __upa = __upa.replace("ADD.",str(self._objname)+".")
+ __upa = __upa.replace("ADD",str(self._objname))
self._lineSerie.append(__upa)
def _addLine(self, line=""):
"Ajoute un enregistrement individuel"
"Chargement normalisé des commandes"
if __filename is not None and os.path.exists(__filename):
self._content = open(__filename, 'r').read()
+ self._content = self._initialize(self._content)
elif __content is not None and type(__content) is str:
- self._content = __content
+ self._content = self._initialize(__content)
elif __object is not None and type(__object) is dict:
self._object = copy.deepcopy(__object)
else:
if k == "ColMajor" and not __v: continue
if k == "InputFunctionAsMulti" and not __v: continue
if k == "nextStep" and not __v: continue
- if k == "AvoidRC" and __v: continue
+ if k == "PerformanceProfile" and __v: continue
if k == "noDetails": continue
if isinstance(__v,Persistence.Persistence): __v = __v.values()
if callable(__v): __text = self._missing%__v.__name__+__text
"Transformation d'enregistrement(s) en commande(s) individuelle(s)"
__suppparameters = {}
if __multilines is not None:
+ if 'adaoBuilder' in __multilines:
+ raise ValueError("Impossible to load given content as an ADAO COMM one (Hint: it's perhaps not a COMM input, but a TUI one).")
if "ASSIMILATION_STUDY" in __multilines:
__suppparameters.update({'StudyType':"ASSIMILATION_STUDY"})
__multilines = __multilines.replace("ASSIMILATION_STUDY","dict")
#
elif __command == "UserPostAnalysis" and type(r) is dict:
if 'STRING' in r:
- __UserPostAnalysis = r['STRING'].replace("ADD.",str(self._objname)+".")
+ __UserPostAnalysis = r['STRING'].replace("ADD",str(self._objname))
__commands.append( "set( Concept='UserPostAnalysis', String=\"\"\"%s\"\"\" )"%(__UserPostAnalysis,) )
elif 'SCRIPT_FILE' in r and os.path.exists(r['SCRIPT_FILE']):
__UserPostAnalysis = open(r['SCRIPT_FILE'],'r').read()
elif __k in ('Stored', 'Checked', 'ColMajor', 'InputFunctionAsMulti', 'nextStep'):
if bool(__v):
__text += "%s_config['%s'] = '%s'\n"%(__command,__k,int(bool(__v)))
- elif __k in ('AvoidRC', 'noDetails'):
+ elif __k in ('PerformanceProfile', 'noDetails'):
if not bool(__v):
__text += "%s_config['%s'] = '%s'\n"%(__command,__k,int(bool(__v)))
else:
self._addLine("Analysis_config = {}")
self._addLine("Analysis_config['From'] = 'String'")
self._addLine("Analysis_config['Data'] = \"\"\"import numpy")
- self._addLine("xa=numpy.ravel(ADD.get('Analysis')[-1])")
+ self._addLine("xa=ADD.get('Analysis')[-1]")
self._addLine("print('Analysis:',xa)\"\"\"")
self._addLine("study_config['UserPostAnalysis'] = Analysis_config")
def __loadVariablesByScript(self):
if k == "ColMajor" and not __v: continue
if k == "InputFunctionAsMulti" and not __v: continue
if k == "nextStep" and not __v: continue
- if k == "AvoidRC" and __v: continue
+ if k == "PerformanceProfile" and __v: continue
if k == "noDetails": continue
if k == "Concept": continue
if k == "self": continue
if isinstance(__v,Persistence.Persistence): __v = __v.values()
numpy.set_printoptions(precision=15,threshold=1000000,linewidth=1000*15)
- __ktext += "\n %s = %s, "%(k,repr(__v))
+ __ktext += "\n %s = %s,"%(k,repr(__v))
numpy.set_printoptions(precision=8,threshold=1000,linewidth=75)
if len(__ktext) > 0:
__text += " with values:" + __ktext
else:
return False
def is_not_local_file(self):
- if not os.path.isfile(os.path.realpath(self.__url)):
- return True
- else:
- return False
+ return not self.is_local_file()
def raise_error_if_not_local_file(self):
- if not os.path.isfile(os.path.realpath(self.__url)):
+ if self.is_not_local_file():
raise ValueError("The name or the url of the file object doesn't seem to exist. The given name is:\n \"%s\""%str(self.__url))
else:
return False
else:
return False
def is_not_local_dir(self):
- if not os.path.isdir(self.__url):
- return True
- else:
- return False
+ return not self.is_local_dir()
def raise_error_if_not_local_dir(self):
- if not os.path.isdir(self.__url):
+ if self.is_not_local_dir():
raise ValueError("The name or the url of the directory object doesn't seem to exist. The given name is:\n \"%s\""%str(self.__url))
else:
return False
__header.append(__line)
__skiprows += 1
__line = fid.readline().strip()
- __varsline = __line
+ __varsline = __line # Ligne de labels par convention
for i in range(max(0,__nblines)):
__header.append(fid.readline())
return (__header, __varsline, __skiprows)
return self.__supportedformats
def getvalue(self, ColNames=None, ColIndex=None ):
- "Renvoie la ou les variables demandees par la liste de leurs noms"
+ "Renvoie la ou les variables demandées par la liste de leurs noms"
# Uniquement si mise à jour
if ColNames is not None: self._colnames = tuple(ColNames)
if ColIndex is not None: self._colindex = str(ColIndex)
raise ValueError("Unkown file format \"%s\""%self._format)
#
def getvalue(self, VarNames = None, HeaderNames=()):
- "Renvoie la ou les variables demandees par la liste de leurs noms"
+ "Renvoie la ou les variables demandées par la liste de leurs noms"
if VarNames is not None: __varnames = tuple(VarNames)
else: __varnames = None
#
for i in range(1,len(HeaderNames)):
__converters[i] = __replaceNone
else:
- raise ValueError("Can not find names of columns for initial values. Wrong first line is:\n \"%s\""%__firstline)
+ raise ValueError("Can not find names of columns for initial values. Wrong first line is:\n \"%s\""%self._varsline)
#
if self._format == "text/plain":
__content = numpy.loadtxt(self._filename, dtype = __dtypes, usecols = __usecols, skiprows = self._skiprows, converters = __converters)
if "EFICAS_ROOT" in os.environ:
__EFICAS_ROOT = os.environ["EFICAS_ROOT"]
__path_ok = True
+ elif "EFICAS_NOUVEAU_ROOT" in os.environ:
+ __EFICAS_ROOT = os.environ["EFICAS_NOUVEAU_ROOT"]
+ __path_ok = True
else:
self.__msg += "\nKeyError:\n"+\
" the required environment variable EFICAS_ROOT is unknown.\n"+\