1 # -*- coding: utf-8 -*-
3 from Noyau import N_VALIDATOR
4 from Ihm import I_VALIDATOR
6 class FunctionVal(I_VALIDATOR.FunctionVal,N_VALIDATOR.FunctionVal):pass
7 class OrVal(I_VALIDATOR.OrVal,N_VALIDATOR.OrVal):pass
8 class AndVal(I_VALIDATOR.AndVal,N_VALIDATOR.AndVal):pass
9 class NoRepeat(I_VALIDATOR.NoRepeat,N_VALIDATOR.NoRepeat):pass
10 class LongStr(I_VALIDATOR.LongStr,N_VALIDATOR.LongStr):pass
11 class OrdList(I_VALIDATOR.OrdList,N_VALIDATOR.OrdList):pass
12 class RangeVal(I_VALIDATOR.RangeVal,N_VALIDATOR.RangeVal):pass
13 class EnumVal(I_VALIDATOR.EnumVal,N_VALIDATOR.EnumVal):pass
14 class TypeVal(I_VALIDATOR.TypeVal,N_VALIDATOR.TypeVal):pass
15 class PairVal(I_VALIDATOR.PairVal,N_VALIDATOR.PairVal):pass
16 class CardVal(I_VALIDATOR.CardVal,N_VALIDATOR.CardVal):pass
17 class InstanceVal(I_VALIDATOR.InstanceVal,N_VALIDATOR.InstanceVal):pass
19 def do_liste(validators):
21 Convertit une arborescence de validateurs en OrVal ou AndVal
22 validators est une liste de validateurs ou de listes ou de tuples
25 for validator in validators:
26 if type(validator) == types.FunctionType:
27 valids.append(FunctionVal(validator))
28 elif type(validator) == types.TupleType:
29 valids.append(OrVal(do_liste(validator)))
30 elif type(validator) == types.ListType:
31 valids.append(AndVal(do_liste(validator)))
33 valids.append(validator)
36 def validatorFactory(validator):
37 if type(validator) == types.FunctionType:
38 return FunctionVal(validator)
39 elif type(validator) == types.TupleType:
40 return OrVal(do_liste(validator))
41 elif type(validator) == types.ListType:
42 return AndVal(do_liste(validator))