X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FdaComposant%2FdaCore%2FPersistence.py;h=e77dd456bbef2894c2787db2c082eb4857ca4ef4;hb=0dcf34aa02ea5c2319204fbca51f6bc860406fde;hp=612963ba7d44f0776b5a539e2c2a8069b3c90581;hpb=594d352d9eb06a60f938a1a6cc12e91a44eebbec;p=modules%2Fadao.git diff --git a/src/daComposant/daCore/Persistence.py b/src/daComposant/daCore/Persistence.py index 612963b..e77dd45 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-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 @@ -280,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") @@ -295,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") @@ -472,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") @@ -490,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") @@ -714,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): @@ -736,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): @@ -756,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) @@ -794,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():