2 from Noyau import N_VALIDATOR
3 from Ihm import I_VALIDATOR
5 class FunctionVal(I_VALIDATOR.FunctionVal,N_VALIDATOR.FunctionVal):pass
6 class OrVal(I_VALIDATOR.OrVal,N_VALIDATOR.OrVal):pass
7 class AndVal(I_VALIDATOR.AndVal,N_VALIDATOR.AndVal):pass
8 class NoRepeat(I_VALIDATOR.NoRepeat,N_VALIDATOR.NoRepeat):pass
9 class LongStr(I_VALIDATOR.LongStr,N_VALIDATOR.LongStr):pass
10 class OrdList(I_VALIDATOR.OrdList,N_VALIDATOR.OrdList):pass
11 class RangeVal(I_VALIDATOR.RangeVal,N_VALIDATOR.RangeVal):pass
12 class EnumVal(I_VALIDATOR.EnumVal,N_VALIDATOR.EnumVal):pass
13 class TypeVal(I_VALIDATOR.TypeVal,N_VALIDATOR.TypeVal):pass
14 class PairVal(I_VALIDATOR.PairVal,N_VALIDATOR.PairVal):pass
15 class CardVal(I_VALIDATOR.CardVal,N_VALIDATOR.CardVal):pass
16 class InstanceVal(I_VALIDATOR.InstanceVal,N_VALIDATOR.InstanceVal):pass
18 def do_liste(validators):
20 Convertit une arborescence de validateurs en OrVal ou AndVal
21 validators est une liste de validateurs ou de listes ou de tuples
24 for validator in validators:
25 if type(validator) == types.FunctionType:
26 valids.append(FunctionVal(validator))
27 elif type(validator) == types.TupleType:
28 valids.append(OrVal(do_liste(validator)))
29 elif type(validator) == types.ListType:
30 valids.append(AndVal(do_liste(validator)))
32 valids.append(validator)
35 def validatorFactory(validator):
36 if type(validator) == types.FunctionType:
37 return FunctionVal(validator)
38 elif type(validator) == types.TupleType:
39 return OrVal(do_liste(validator))
40 elif type(validator) == types.ListType:
41 return AndVal(do_liste(validator))