Salome HOME
Modifications liees a MT
[tools/eficas.git] / Noyau / N__F.py
index 87fa725bce661807226f1e3c7203d222865d8f09..95527da71db7f2b1a10e1eab5c0f8d65e63f82cb 100644 (file)
@@ -1,56 +1,65 @@
-#@ MODIF N__F Noyau  DATE 07/09/2009   AUTEUR COURTOIS M.COURTOIS 
-# -*- coding: iso-8859-1 -*-
-# RESPONSABLE COURTOIS M.COURTOIS
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2002  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.                                 
+# coding=utf-8
+# Copyright (C) 2007-2017   EDF R&D
 #
-# 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.                            
+# 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.
 #
-# 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.      
-#                                                                       
-#                                                                       
-# ======================================================================
-
-
-import UserDict
-
-class _F(UserDict.UserDict):
-   """
-       Cette classe a un comportement semblable à un 
-       dictionnaire Python et permet de donner
-       la valeur d'un mot-clé facteur avec pour les sous 
-       mots-clés la syntaxe motcle=valeur
-   """
-
-   def __init__(self,**args):
-      self.data=args
-
-   def supprime(self):
-      self.data={}
-
-   def __cmp__(self, dict):
-      if type(dict) == type(self.data):
-        return cmp(self.data, dict)
-      elif hasattr(dict,"data"):
-        return cmp(self.data, dict.data)
-      else:
-        return cmp(self.data, dict)
-
-   def copy(self):
-      import copy
-      c= copy.copy(self)
-      c.data=self.data.copy()
-      return c
-
-
-   
+# 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
+
+
+from __future__ import absolute_import
+try :
+   from past.builtins import cmp
+except :
+   pass
+try:
+   from UserDict import UserDict
+except ImportError:
+   from collections import UserDict
+
+
+class _F(UserDict):
+
+    """
+        Cette classe a un comportement semblable à un
+        dictionnaire Python et permet de donner
+        la valeur d'un mot-clé facteur avec pour les sous
+        mots-clés la syntaxe motcle=valeur
+    """
+
+    def __init__(self, *pos, **args):
+        if len(pos) != 0:
+            raise SyntaxError("Valeur invalide pour '_F('. "
+                              "On attend cette syntaxe : _F(MOTCLE=valeur, ...)")
+        self.data = args
+
+    def supprime(self):
+        self.data = {}
+
+    def __cmp__(self, dict):
+        if type(dict) == type(self.data):
+            return cmp(self.data, dict)
+        elif hasattr(dict, "data"):
+            return cmp(self.data, dict.data)
+        else:
+            return cmp(self.data, dict)
+
+    def __iter__(self):
+        return iter(self.data)
+
+    def copy(self):
+        import copy
+        c = copy.copy(self)
+        c.data = self.data.copy()
+        return c