X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=Noyau%2FN_CONVERT.py;h=dbae63425e824e49f6701514f347b1721e3f4123;hb=2c5a8689b9c6cc46804fd268d416d1de2777059e;hp=9d3443ddc8620ab73191e9092632b5458a1a543b;hpb=69ed0ccae7884aee37bbe54cb1af2983cb51492d;p=tools%2Feficas.git diff --git a/Noyau/N_CONVERT.py b/Noyau/N_CONVERT.py index 9d3443dd..dbae6342 100644 --- a/Noyau/N_CONVERT.py +++ b/Noyau/N_CONVERT.py @@ -1,34 +1,35 @@ -#@ MODIF N_CONVERT Noyau DATE 30/11/2007 AUTEUR COURTOIS M.COURTOIS # -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM 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 -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - +# Copyright (C) 2007-2013 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 +# """ Module de conversion des valeurs saisies par l'utilisateur après vérification. """ -# ----------------------------------------------------------------------------- -def is_int(real): +from N_types import is_int, is_float, is_enum, is_sequence + + +def has_int_value(real): """Est-ce que 'real' a une valeur entière ? """ return abs(int(real) - real) < 1.e-12 -# ----------------------------------------------------------------------------- + class Conversion: """Conversion de type. """ @@ -39,15 +40,15 @@ class Conversion: def convert(self, obj): """Filtre liste """ - in_type = type(obj) - if in_type not in (list, tuple): + in_as_seq = is_sequence(obj) + if not in_as_seq: obj = (obj,) - + result = [] for o in obj: result.append(self.function(o)) - if in_type not in (list, tuple): + if not in_as_seq: return result[0] else: # ne marche pas avec MACR_RECAL qui attend une liste et non un tuple @@ -56,14 +57,14 @@ class Conversion: def function(self, o): raise NotImplementedError, 'cette classe doit être dérivée' -# ----------------------------------------------------------------------------- + class TypeConversion(Conversion): """Conversion de type """ def __init__(self, typ): Conversion.__init__(self, 'type', typ) -# ----------------------------------------------------------------------------- + class IntConversion(TypeConversion): """Conversion en entier """ @@ -71,11 +72,11 @@ class IntConversion(TypeConversion): TypeConversion.__init__(self, 'I') def function(self, o): - if type(o) is float and is_int(o): + if is_float(o) and has_int_value(o): o = int(o) return o -# ----------------------------------------------------------------------------- + class FloatConversion(TypeConversion): """Conversion de type """ @@ -83,11 +84,11 @@ class FloatConversion(TypeConversion): TypeConversion.__init__(self, 'R') def function(self, o): - if type(o) in (int, float, long): + if is_float(o): o = float(o) return o -# ----------------------------------------------------------------------------- + _convertI = IntConversion() _convertR = FloatConversion()