X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=Noyau%2FN_CONVERT.py;h=d4fc92acbaa511602d3398a7820ef80500ebf098;hb=9f4ff7ed9afd87c96e11d61e442e39e5511f60d1;hp=dbae63425e824e49f6701514f347b1721e3f4123;hpb=16d5922e798b1254eb558678612711d72ed38b32;p=tools%2Feficas.git diff --git a/Noyau/N_CONVERT.py b/Noyau/N_CONVERT.py index dbae6342..d4fc92ac 100644 --- a/Noyau/N_CONVERT.py +++ b/Noyau/N_CONVERT.py @@ -1,4 +1,4 @@ -# -*- coding: iso-8859-1 -*- +# coding=utf-8 # Copyright (C) 2007-2013 EDF R&D # # This library is free software; you can redistribute it and/or @@ -16,88 +16,101 @@ # 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. + Module de conversion des valeurs saisies par l'utilisateur après vérification. """ -from N_types import is_int, is_float, is_enum, is_sequence +from __future__ import absolute_import +try: + from builtins import object +except : pass + +from .N_types import is_int, is_float, 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. - """ - def __init__(self, name, typ): - self.name = name - self.typ = typ - - def convert(self, obj): - """Filtre liste - """ - in_as_seq = is_sequence(obj) - if not in_as_seq: - obj = (obj,) - - result = [] - for o in obj: - result.append(self.function(o)) - - if not in_as_seq: - return result[0] - else: - # ne marche pas avec MACR_RECAL qui attend une liste et non un tuple - return tuple(result) - - def function(self, o): - raise NotImplementedError, 'cette classe doit être dérivée' + """Est-ce que 'real' a une valeur entière ? + """ + return abs(int(real) - real) < 1.e-12 + + +class Conversion(object): + + """Conversion de type. + """ + + def __init__(self, name, typ): + self.name = name + self.typ = typ + + def convert(self, obj): + """Filtre liste + """ + in_as_seq = is_sequence(obj) + if not in_as_seq: + obj = (obj,) + + result = [] + for o in obj: + result.append(self.function(o)) + + if not in_as_seq: + return result[0] + else: + # ne marche pas avec MACR_RECAL qui attend une liste et non un + # tuple + return tuple(result) + + 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) + + """Conversion de type + """ + + def __init__(self, typ): + Conversion.__init__(self, 'type', typ) class IntConversion(TypeConversion): - """Conversion en entier - """ - def __init__(self): - TypeConversion.__init__(self, 'I') - def function(self, o): - if is_float(o) and has_int_value(o): - o = int(o) - return o + """Conversion en entier + """ + + def __init__(self): + TypeConversion.__init__(self, 'I') + + def function(self, o): + if is_float(o) and has_int_value(o): + o = int(o) + return o class FloatConversion(TypeConversion): - """Conversion de type - """ - def __init__(self): - TypeConversion.__init__(self, 'R') - def function(self, o): - if is_float(o): - o = float(o) - return o + """Conversion de type + """ + + def __init__(self): + TypeConversion.__init__(self, 'R') + + def function(self, o): + if is_float(o): + o = float(o) + return o _convertI = IntConversion() _convertR = FloatConversion() -def ConversionFactory(name, typ): - if name == 'type': - if 'I' in typ: - return _convertI - elif 'R' in typ: - return _convertR - return None - +def ConversionFactory(name, typ): + if name == 'type': + if 'I' in typ: + return _convertI + elif 'R' in typ: + return _convertR + return None