Salome HOME
Modif V6_4_°
[tools/eficas.git] / Noyau / N_types.py
1 #@ MODIF N_types Noyau  DATE 28/06/2011   AUTEUR COURTOIS M.COURTOIS 
2 # -*- coding: iso-8859-1 -*-
3 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4 # ======================================================================
5 # COPYRIGHT (C) 1991 - 2011  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.                                                  
10 #                                                                       
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.                              
15 #                                                                       
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 # ======================================================================
20 # RESPONSABLE COURTOIS M.COURTOIS
21
22 """
23    Ce module contient des fonctions utilitaires pour tester les types
24 """
25
26
27 # use isinstance() instead of type() because objects returned from numpy arrays
28 # inherit from python scalars but are numpy.float64 or numpy.int32...
29 def is_int(obj):
30     return isinstance(obj, int) or type(obj) is long
31
32 def is_float(obj):
33     return isinstance(obj, float)
34
35 def is_complex(obj):
36     return isinstance(obj, complex)
37
38 def is_float_or_int(obj):
39     return is_float(obj) or is_int(obj)
40
41 def is_number(obj):
42     return is_float_or_int(obj) or is_complex(obj)
43
44 def is_str(obj):
45     return type(obj) in (str, unicode)
46
47 def is_list(obj):
48     return type(obj) is list
49
50 def is_tuple(obj):
51     return type(obj) is tuple
52
53 def is_enum(obj):
54     return is_list(obj) or is_tuple(obj)
55
56 def is_assd(obj):
57     from N_ASSD import ASSD
58     return isinstance(obj, ASSD)
59
60
61 def force_list(obj):
62     """Retourne `obj` si c'est une liste ou un tuple,
63     sinon retourne [obj,] (en tant que list).
64     """
65     if not is_enum(obj):
66         obj = [obj,]
67     return list(obj)
68