X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=Noyau%2FN_MCSIMP.py;h=438b8ee08c744c93df6e9b894b88432fb83f5692;hb=2c5a8689b9c6cc46804fd268d416d1de2777059e;hp=2ff4d1f9116532214b79c81de21f7e4102cd3b23;hpb=cdd358f4041f957701ac10d86766a85baaef4f78;p=tools%2Feficas.git diff --git a/Noyau/N_MCSIMP.py b/Noyau/N_MCSIMP.py index 2ff4d1f9..438b8ee0 100644 --- a/Noyau/N_MCSIMP.py +++ b/Noyau/N_MCSIMP.py @@ -1,30 +1,27 @@ -#@ MODIF N_MCSIMP Noyau DATE 30/08/2011 AUTEUR COURTOIS M.COURTOIS # -*- coding: iso-8859-1 -*- -# RESPONSABLE COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2011 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. +# Copyright (C) 2007-2013 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. +# 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 # -# ====================================================================== """ - Ce module contient la classe MCSIMP qui sert a controler la valeur - d'un mot-cle simple par rapport a sa definition portee par un objet + Ce module contient la classe MCSIMP qui sert à controler la valeur + d'un mot-clé simple par rapport à sa définition portée par un objet de type ENTITE """ @@ -34,6 +31,7 @@ from Noyau.N_ASSD import ASSD from Noyau.N_CO import CO import N_OBJECT from N_CONVERT import ConversionFactory +from N_types import force_list, is_sequence class MCSIMP(N_OBJECT.OBJECT): """ @@ -42,13 +40,18 @@ class MCSIMP(N_OBJECT.OBJECT): def __init__(self,val,definition,nom,parent): """ Attributs : - - val : valeur du mot cle simple + + - val : valeur du mot clé simple + - definition + - nom + - parent + Autres attributs : - - valeur : valeur du mot-cle simple en tenant compte de la valeur par defaut + - valeur : valeur du mot-clé simple en tenant compte de la valeur par défaut """ self.definition=definition @@ -62,15 +65,15 @@ class MCSIMP(N_OBJECT.OBJECT): self.niveau = self.parent.niveau self.etape = self.parent.etape else: - # Le mot cle simple a ete cree sans parent + # Le mot cle simple a été créé sans parent self.jdc = None self.niveau = None self.etape = None def GETVAL(self,val): """ - Retourne la valeur effective du mot-cle en fonction - de la valeur donnee. Defaut si val == None + Retourne la valeur effective du mot-clé en fonction + de la valeur donnée. Defaut si val == None """ if (val is None and hasattr(self.definition,'defaut')) : val = self.definition.defaut @@ -80,21 +83,21 @@ class MCSIMP(N_OBJECT.OBJECT): def get_valeur(self): """ - Retourne la "valeur" d'un mot-cle simple. - Cette valeur est utilisee lors de la creation d'un contexte - d'evaluation d'expressions a l'aide d'un interpreteur Python + Retourne la "valeur" d'un mot-clé simple. + Cette valeur est utilisée lors de la création d'un contexte + d'évaluation d'expressions à l'aide d'un interpréteur Python """ v = self.valeur # Si singleton et max=1, on retourne la valeur. # Si une valeur simple et max='**', on retourne un singleton. - # (si liste de longueur > 1 et max=1, on sera arrete plus tard) + # (si liste de longueur > 1 et max=1, on sera arrêté plus tard) # Pour accepter les numpy.array, on remplace : "type(v) not in (list, tuple)" # par "not has_attr(v, '__iter__')". if v is None: pass - elif type(v) in (list, tuple) and len(v) == 1 and self.definition.max == 1: + elif is_sequence(v) and len(v) == 1 and self.definition.max == 1: v = v[0] - elif not hasattr(v, '__iter__') and self.definition.max != 1: + elif not is_sequence(v) and self.definition.max != 1: v = (v, ) # traitement particulier pour les complexes ('RI', r, i) if 'C' in self.definition.type and self.definition.max != 1 \ @@ -104,8 +107,8 @@ class MCSIMP(N_OBJECT.OBJECT): def get_val(self): """ - Une autre methode qui retourne une "autre" valeur du mot cle simple. - Elle est utilisee par la methode get_mocle + Une autre méthode qui retourne une "autre" valeur du mot clé simple. + Elle est utilisée par la méthode get_mocle """ return self.valeur @@ -120,7 +123,7 @@ class MCSIMP(N_OBJECT.OBJECT): """ Retourne une copie de self """ objet = self.makeobjet() # il faut copier les listes et les tuples mais pas les autres valeurs - # possibles (reel,SD,...) + # possibles (réel,SD,...) if type(self.valeur) in (list, tuple): objet.valeur = copy(self.valeur) else: @@ -141,7 +144,7 @@ class MCSIMP(N_OBJECT.OBJECT): def get_sd_utilisees(self): """ - Retourne une liste qui contient la ou les SD utilisee par self si c'est le cas + Retourne une liste qui contient la ou les SD utilisée par self si c'est le cas ou alors une liste vide """ l=[] @@ -155,14 +158,14 @@ class MCSIMP(N_OBJECT.OBJECT): def get_sd_mcs_utilisees(self): """ - Retourne la ou les SD utilisee par self sous forme d'un dictionnaire : - - Si aucune sd n'est utilisee, le dictionnaire est vide. - - Sinon, la cle du dictionnaire est le mot-cle simple ; la valeur est + Retourne la ou les SD utilisée par self sous forme d'un dictionnaire : + - Si aucune sd n'est utilisée, le dictionnaire est vide. + - Sinon, la clé du dictionnaire est le mot-clé simple ; la valeur est la liste des sd attenante. Exemple :: - { 'VALE_F': [ , - ] } + { 'VALE_F': [ , + ] } """ l=self.get_sd_utilisees() dico = {} @@ -175,21 +178,14 @@ class MCSIMP(N_OBJECT.OBJECT): Cette methode retourne l'objet MCSIMP self s'il a le concept co comme valeur. """ - lval=self.valeur - if type(self.valeur) not in (list, tuple): - lval=(self.valeur,) - if co in lval:return [self,] + if co in force_list(self.valeur): + return [self,] return [] def get_all_co(self): """ Cette methode retourne la liste de tous les concepts co - associes au mot cle simple + associés au mot cle simple """ - lval=self.valeur - if type(self.valeur) not in (list, tuple): - lval=(self.valeur,) - l=[] - for c in lval: - if isinstance(c,CO) or hasattr(c,"_etape"):l.append(c) - return l + return [co for co in force_list(self.valeur) \ + if isinstance(co, CO) and co.is_typco()]