I think this is a useful validator, any chance this can end up in web2py? On Friday, August 9, 2013 4:13:30 PM UTC-4, Kyle Flanagan wrote: > > I had to use this today. However, this does not work correctly when the > set is empty. We assume that if the set is empty, whatever variable value > being tested is not in the set. > > Here's an updated __call__ function: > > def __call__(self, value): > value, error = IS_IN_SET.__call__(self, value) > # if IS_IN_SET says value was in the set AND the set isn't empty > # then return an error > if error == None and len(self.theset) > 0: > return (value, self.error_message) > else: > return (value, None) > > > > On Monday, August 23, 2010 9:19:48 AM UTC-5, Vidul Petrov wrote: >> >> Hi all, >> >> I needed IS_NOT_IN_SET validator and added it in my custom >> "validators.py", do you think it is useful? >> >> >> class IS_NOT_IN_SET(IS_IN_SET): >> """ >> example:: >> >> INPUT(_type='text', _name='name', >> requires=IS_NOT_IN_SET(['max', 'john'],zero='')) >> >> the argument of IS_NOT_IN_SET must be a list or set >> >> >>> IS_NOT_IN_SET(['max', 'john'])('max') >> ('max', 'value not allowed') >> >>> IS_NOT_IN_SET(['max', 'john'])('na') >> ('na', None) >> >>> IS_NOT_IN_SET(('id1','id2'), ['first label','second >> label'])('id100') >> ('id100', None) >> >>> IS_NOT_IN_SET(('id1','id2'), ['first label','second >> label'])('id1') >> ('id1', 'value not allowed') >> >>> IS_NOT_IN_SET(('id1','id2'), ['first label','second >> label'])('id2') >> ('id2', 'value not allowed') >> >>> IS_NOT_IN_SET({'id1':'first label', 'id2':'second label'}) >> ('id100') >> ('id100', None) >> >>> IS_NOT_IN_SET({'id1':'first label', 'id2':'second label'}) >> ('id1') >> ('id1', 'value not allowed') >> >>> IS_NOT_IN_SET({'id1':'first label', 'id2':'second label'}) >> ('id2') >> ('id2', 'value not allowed') >> >>> import itertools >> >>> IS_NOT_IN_SET(itertools.chain(['1','3','5'],['2','4','6'])) >> ('100') >> ('100', None) >> >>> IS_NOT_IN_SET(itertools.chain(['1','3','5'],['2','4','6'])) >> ('1') >> ('1', 'value not allowed') >> >>> IS_NOT_IN_SET(itertools.chain(['1','3','5'],['2','4','6'])) >> ('6') >> ('6', 'value not allowed') >> >>> IS_NOT_IN_SET(itertools.chain(['1','3','5'],['2','4','6'])) >> ('7') >> ('7', None) >> """ >> >> def __init__(self, *a, **b): >> IS_IN_SET.__init__(self, *a, **b) >> >> def __call__(self, value): >> value, error = IS_IN_SET.__call__(self, value) >> if error == None: >> return (value, self.error_message) >> else: >> return (value, None) >> >
-- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.