I just like to err on the safe side. I did not notice the recommendation 
from the Python documentation. I changed as you suggested. :-)


On Friday, 11 October 2013 21:37:47 UTC-5, Stefan Pochmann wrote:
>
> I see you used unnecessary backslashes again in [\+\-], is that some 
> web2py convention or so? It's equivalent to just [+-] and [-+] because 
> inside character classes, "+" is not a metacharacter and "-" acts as 
> regular character when placed right after "[" or right before "]". You can 
> even find [-+] explicitly recommended in Python's documentation: 
> http://docs.python.org/2/library/re.html?highlight=re#simulating-scanf
>
> On Saturday, October 12, 2013 3:43:54 AM UTC+2, Massimo Di Pierro wrote:
>>
>> I am adding the +- but we cannot use int because int("3.14") would round.
>>
>> Anyway, I agree this can be rewritten better. Feel free to post your 
>> patch on google code or as a github pull request. Thanks.
>>
>> Massimo
>>
>> On Friday, 11 October 2013 20:05:29 UTC-5, Stefan Pochmann wrote:
>>>
>>> It's better, but...
>>>
>>> Outside character classes, the "-" is not a metacharacter and thus 
>>> doesn't need a backslash. So it could/should be:
>>> re.compile('^-?\d+$')
>>>
>>> You might want to accept a plus sign like in "+43" (Python's int(...) 
>>> does accept it), so:
>>> re.compile('^[-+]?\d+$')
>>>
>>> Or don't reinvent Python's existint int(...) with an ugly regex way but 
>>> use Python's common "Easier to ask for forgiveness than permission" style, 
>>> maybe like this:
>>>
>>>     def __call__(self, value):
>>>         try:
>>>             v = int(value)
>>>             if ((self.minimum is None or v >= self.minimum) and
>>>                 (self.maximum is None or v < self.maximum)):
>>>                 return (v, None)
>>>         except:
>>>             pass
>>>         return (value, self.error_message)
>>>
>>> You also changed the default to IS_INT_IN_RANGE(-2**31, 2**31-1), but I 
>>> think it shouldn't have that "-1" because "The range is interpreted in the 
>>> Pythonic way, so the test is: min <= value < max".
>>>
>>> I also find __init__ quite complicated and have a rewrite suggestion. 
>>> Should I post it here or try a pull request or...?
>>>
>>

-- 
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