[lc_ldap/*] (more) pylint compliance
This commit is contained in:
parent
db8b27e6a5
commit
a36bafa021
3 changed files with 35 additions and 23 deletions
41
attributs.py
41
attributs.py
|
@ -30,16 +30,25 @@
|
|||
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import re
|
||||
from unicodedata import normalize
|
||||
|
||||
|
||||
def validate_name(value, more_chars=""):
|
||||
"""Valide un nom: ie un unicode qui contient lettres, espaces et
|
||||
apostrophes, et éventuellement des caractères additionnels"""
|
||||
return re.match("[A-Za-z][-' A-Za-z%s]*" % more_chars,
|
||||
normalize('NFKD', decode(a)).encode('ASCII', 'ignore'))
|
||||
normalize('NFKD', value).encode('ASCII', 'ignore'))
|
||||
|
||||
def validate_mac(value):
|
||||
"""Vérifie qu'une adresse mac est valide"""
|
||||
return True
|
||||
|
||||
class Attr:
|
||||
legend = "Human-readable description of attribute"
|
||||
singlevalue = None
|
||||
optional = None
|
||||
|
||||
def validate(self, values, uldif):
|
||||
"validates"
|
||||
self._check_cardinality(values)
|
||||
|
@ -52,19 +61,19 @@ class Attr:
|
|||
"normalizes"
|
||||
return values
|
||||
|
||||
def self._check_cardinality(values):
|
||||
def _check_cardinality(self, values):
|
||||
"""Vérifie qu'il y a un nombre correct de valeur =1, <=1, {0,1},
|
||||
etc..."""
|
||||
if self.singlevalue and len(vals) > 1:
|
||||
raise ValueError(u'%s doit avoir au maximum une valeur (affecte %s)' % self.__class__, values)
|
||||
if not self.optional and len(vals) == 0:
|
||||
raise ValueError('%s doit avoir au moins une valeur' % attr)
|
||||
if self.singlevalue and len(values) > 1:
|
||||
raise ValueError(u'%s doit avoir au maximum une valeur (affecte %s)' % self.__class__, values)
|
||||
if not self.optional and len(values) == 0:
|
||||
raise ValueError('%s doit avoir au moins une valeur' % self.__class__)
|
||||
|
||||
def _check_type(self, values):
|
||||
"""Vérifie que les valeurs ont le bon type (nom est un mot, tel
|
||||
est un nombre, etc...)"""
|
||||
for v in values:
|
||||
assert isunicode(v)
|
||||
assert isinstance(v, unicode)
|
||||
|
||||
def _check_uniqueness(self, values):
|
||||
"""Vérifie l'unicité dans la base de la valeur (mailAlias, chbre,
|
||||
|
@ -89,18 +98,20 @@ class nom(Attr):
|
|||
singlevalue = True
|
||||
optional = False
|
||||
legend = "Nom"
|
||||
def _check_type(self, values): return validate_name()
|
||||
def _check_type(self, values):
|
||||
return [ validate_name(v) for v in values]
|
||||
|
||||
def normalize(self, values):
|
||||
return [ values.strip().capitalize() for v in values ]
|
||||
def normalize(self, values, uldif):
|
||||
return [ v.strip().capitalize() for v in values ]
|
||||
|
||||
class prenom(Attr):
|
||||
singlevalue = True
|
||||
optional = False
|
||||
legend = u"Prénom"
|
||||
def _check_type(self, values): return validate_name()
|
||||
def _check_type(self, values):
|
||||
return [ validate_name(v) for v in values ]
|
||||
|
||||
def normalize(self, values):
|
||||
def normalize(self, values, uldif):
|
||||
return [ values.strip().capitalize() for v in values ]
|
||||
|
||||
class tel(Attr):
|
||||
|
@ -108,7 +119,7 @@ class tel(Attr):
|
|||
optional = False
|
||||
legend = u"Téléphone"
|
||||
|
||||
def normalize(self, value):
|
||||
def normalize(self, value, uldif):
|
||||
return value # XXX - To implement
|
||||
|
||||
class paiement(Attr):
|
||||
|
@ -116,7 +127,7 @@ class paiement(Attr):
|
|||
optional = True
|
||||
legend = u"Paiement"
|
||||
|
||||
def normalize(self, values):
|
||||
def normalize(self, values, uldif):
|
||||
return values # XXX - To implement
|
||||
|
||||
class carteEtudiant(Attr):
|
||||
|
@ -212,7 +223,7 @@ class cid(Attr):
|
|||
|
||||
class responsable(Attr):
|
||||
singlevalue = True
|
||||
optional =True
|
||||
optional = True
|
||||
legend = u"Responsable du club"
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue