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.

Reply via email to