Peter Moody <peter <at> 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. _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com