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 [email protected].
For more options, visit https://groups.google.com/groups/opt_out.