1 #@ MODIF N_CONVERT Noyau DATE 30/11/2007 AUTEUR COURTOIS M.COURTOIS
2 # -*- coding: iso-8859-1 -*-
3 # CONFIGURATION MANAGEMENT OF EDF VERSION
4 # ======================================================================
5 # COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
6 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
9 # (AT YOUR OPTION) ANY LATER VERSION.
11 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
12 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
13 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
14 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
16 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
17 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
18 # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
19 # ======================================================================
22 Module de conversion des valeurs saisies par l'utilisateur après vérification.
25 # -----------------------------------------------------------------------------
27 """Est-ce que 'real' a une valeur entière ?
29 return abs(int(real) - real) < 1.e-12
31 # -----------------------------------------------------------------------------
33 """Conversion de type.
35 def __init__(self, name, typ):
39 def convert(self, obj):
43 if in_type not in (list, tuple):
48 result.append(self.function(o))
50 if in_type not in (list, tuple):
53 # ne marche pas avec MACR_RECAL qui attend une liste et non un tuple
56 def function(self, o):
57 raise NotImplementedError, 'cette classe doit être dérivée'
59 # -----------------------------------------------------------------------------
60 class TypeConversion(Conversion):
63 def __init__(self, typ):
64 Conversion.__init__(self, 'type', typ)
66 # -----------------------------------------------------------------------------
67 class IntConversion(TypeConversion):
68 """Conversion en entier
71 TypeConversion.__init__(self, 'I')
73 def function(self, o):
74 if type(o) is float and is_int(o):
78 # -----------------------------------------------------------------------------
79 class FloatConversion(TypeConversion):
83 TypeConversion.__init__(self, 'R')
85 def function(self, o):
86 if type(o) in (int, float, long):
90 # -----------------------------------------------------------------------------
91 _convertI = IntConversion()
92 _convertR = FloatConversion()
94 def ConversionFactory(name, typ):