[Python-Dev] PEP 3144 review. (original) (raw)
Antoine Pitrou solipsis at pitrou.net
Wed Sep 16 02:20:41 CEST 2009
- Previous message: [Python-Dev] PEP 3144 review.
- Next message: [Python-Dev] PEP 3144 review.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Peter Moody <peter hda3.com> writes:
>>>> However, I do not think >>>> that the proposed API should accept, eg, IPv4Network('192.168.1.1/24') >>>> as valid. That's just too confusing and error prone. >>> >>> Indeed, it should throw some kind of ValueError instead. >> >> Peter, what do you think? I disagree. It seems overly pedantic to throw a valueerror on this. IPy does (used to do?) this and it's one of the primary reasons I wrote ipaddr.
Python is not PHP and does not try to be overly "smart" or tolerant when faced with bizarrely-formatted input.
I don't see any valid reason for entering a network as "192.168.1.1/24" rather than the canonical "192.168.1.0/24". The former might indicate a typing error or a mental slip, so let's be helpful and signal it to the user.
for addr in ipaddr.IPv4Network('1.1.1.0/24').iterwithnetmask(): # 1.1.1.0/24, 1.1.1.1/24, 1.1.1.2/24...
I don't have any strong feelings about it, although I don't really think it is needed, and a plethoric API is not a good thing (neither clarity-wise nor maintenance-wise).
this can be done much more cleanly/easily than adding two new (redundant in my eyes) classes and much less pedantically than raising exceptions w/ IPv?Network() constructor received something other than base network address.
I don't think anybody suggested adding two classes. As for the "pedantry" of thoroughly validating inputs, see above.
Regards
Antoine.
- Previous message: [Python-Dev] PEP 3144 review.
- Next message: [Python-Dev] PEP 3144 review.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]