X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FdaComposant%2FdaCore%2FPersistence.py;h=06f916dc946b138872ff5888af8e05651b90239a;hb=e0656540c715b3fa57adb5771421935a63e5284b;hp=36d2fc5ddc6f019f2388f499ecd50502f96ebb87;hpb=6e2c9ccd99e9ee7343f49ed56ff599f1415c6302;p=modules%2Fadao.git diff --git a/src/daComposant/daCore/Persistence.py b/src/daComposant/daCore/Persistence.py index 36d2fc5..06f916d 100644 --- a/src/daComposant/daCore/Persistence.py +++ b/src/daComposant/daCore/Persistence.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # -# Copyright (C) 2008-2019 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 @@ -147,6 +147,9 @@ class Persistence(object): "x.__len__() <==> len(x)" return len(self.__values) + def name(self): + return self.__name + def __getitem__(self, index=None ): "x.__getitem__(y) <==> x[y]" return copy.copy(self.__values[index]) @@ -277,7 +280,7 @@ class Persistence(object): élémentaires numpy. """ try: - return [numpy.mean(item, dtype=mfp) for item in self.__values] + return [numpy.mean(item, dtype=mfp).astype('float') for item in self.__values] except: raise TypeError("Base type is incompatible with numpy") @@ -292,9 +295,9 @@ class Persistence(object): """ try: if numpy.version.version >= '1.1.0': - return [numpy.array(item).std(ddof=ddof) for item in self.__values] + return [numpy.array(item).std(ddof=ddof, dtype=mfp).astype('float') for item in self.__values] else: - return [numpy.array(item).std() for item in self.__values] + return [numpy.array(item).std(dtype=mfp).astype('float') for item in self.__values] except: raise TypeError("Base type is incompatible with numpy") @@ -469,10 +472,7 @@ class Persistence(object): les types élémentaires numpy. """ try: - if self.__basetype in [int, float]: - return float( numpy.mean(self.__values, dtype=mfp) ) - else: - return numpy.mean(self.__values, axis=0, dtype=mfp) + return numpy.mean(self.__values, axis=0, dtype=mfp).astype('float') except: raise TypeError("Base type is incompatible with numpy") @@ -487,9 +487,9 @@ class Persistence(object): """ try: if numpy.version.version >= '1.1.0': - return numpy.array(self.__values).std(ddof=ddof,axis=0) + return numpy.array(self.__values).std(ddof=ddof,axis=0).astype('float') else: - return numpy.array(self.__values).std(axis=0) + return numpy.array(self.__values).std(axis=0).astype('float') except: raise TypeError("Base type is incompatible with numpy") @@ -711,15 +711,15 @@ class OneVector(Persistence): class OneMatrix(Persistence): """ - Classe de stockage d'une matrice de valeurs (numpy.matrix) par pas. + Classe de stockage d'une matrice de valeurs homogènes par pas. """ def __init__(self, name="", unit="", basetype = numpy.matrix): Persistence.__init__(self, name, unit, basetype) class OneList(Persistence): """ - Classe de stockage d'une liste de valeurs hétérogènes (list) par pas. Ne pas - utiliser cette classe pour des données numériques homogènes, mais + Classe de stockage d'une liste de valeurs hétérogènes (list) par pas. Ne + pas utiliser cette classe pour des données numériques homogènes, mais "OneVector". """ def __init__(self, name="", unit="", basetype = list): @@ -733,8 +733,8 @@ class OneNoType(Persistence): """ Classe de stockage d'un objet sans modification (cast) de type. Attention, selon le véritable type de l'objet stocké à chaque pas, les opérations - arithmétiques à base de numpy peuvent être invalides ou donner des résultats - inattendus. Cette classe n'est donc à utiliser qu'à bon escient + arithmétiques à base de numpy peuvent être invalides ou donner des + résultats inattendus. Cette classe n'est donc à utiliser qu'à bon escient volontairement, et pas du tout par défaut. """ def __init__(self, name="", unit="", basetype = NoType): @@ -753,9 +753,9 @@ class CompositePersistence(object): """ name : nom courant - La gestion interne des données est exclusivement basée sur les variables - initialisées ici (qui ne sont pas accessibles depuis l'extérieur des - objets comme des attributs) : + La gestion interne des données est exclusivement basée sur les + variables initialisées ici (qui ne sont pas accessibles depuis + l'extérieur des objets comme des attributs) : __StoredObjects : objets de type persistence collectés dans cet objet """ self.__name = str(name) @@ -791,8 +791,8 @@ class CompositePersistence(object): def add_object(self, name=None, persistenceType=Persistence, basetype=None ): """ - Ajoute dans les objets stockables un nouvel objet défini par son nom, son - type de Persistence et son type de base à chaque pas. + Ajoute dans les objets stockables un nouvel objet défini par son nom, + son type de Persistence et son type de base à chaque pas. """ if name is None: raise ValueError("Object name is required for adding an object.") if name in self.__StoredObjects.keys():