[Python-Dev] PEP 3144 review. (original) (raw)
Peter Moody peter at hda3.com
Tue Sep 15 08:02:26 CEST 2009
- Previous message: [Python-Dev] PEP 3144 review.
- Next message: [Python-Dev] PEP 3144 review.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Mon, Sep 14, 2009 at 7:11 PM, Andrew McNamara <andrewm at object-craft.com.au> wrote:
I believe PEP 3144 is ready for your review. When you get a chance, can you take a look/make a pronouncement? In my experience it is common to leave out the masked octets when referring to an IPv4 network (the octets are assumed to be zero), so I don't agree with this behaviour from the reference implementation:
huh, this appears to be a bug. filing an issue and I'll have this fixed before anything is submitted (http://code.google.com/p/ipaddr-py/issues/detail?id=35)
>>> ipaddr.IPv4Network('10/8') IPv4Network('0.0.0.10/8') >>> ipaddr.IPv4Network('192.168/16') Traceback (most recent call last): File "", line 1, in File "/usr/src/py/ipaddr/ipaddr.py", line 1246, in init raise IPv4IpValidationError(addr[0]) ipaddr.IPv4IpValidationError: '192.168' is not a valid IPv4 address
I also couldn't see an easy way to get from a network address to the containing network. For example: >>> ipaddr.IPv4Network('192.168.1.1/16') IPv4Network('192.168.1.1/16') This is close: >>> ipaddr.IPv4Network('192.168.1.1/16').network IPv4Address('192.168.0.0') What I want is a method that returns: IPv4Network('192.168.0.0/16')
I can see about adding this. you can currently do:
a = ipaddr.IPv4Network('192.168.1.1/16') '%s/%s' % (a.network, a.prefixlen) 192.168.0.0/16
(I do something very similar to this in address_exclude)
I appreciate these requests are somewhat contradictory (one calls for masked octets to be insignificant, the other calls for them to be significant), but they are both valid use cases in my experience.
Apologies if these have already been covered in prior discussion - I've tried to keep up, but I haven't been able to give it the attention it deserves.
no need to apologize, all comments welcome.
I also note that many methods in the reference implementation are not discussed in the PEP. While I don't consider this a problem for the PEP, anyone reviewing the module for inclusion in the standard lib needs to consider them.
yeah, I didn't exactly want the PEP to be the pydoc of ipaddr, but I did want to explain the features and show how I thought they were important to whatever might be accepted by python. I can certainly go into much more detail in the PEP if that's deemed important.
Cheers, /peter
-- Andrew McNamara, Senior Developer, Object Craft http://www.object-craft.com.au/
- Previous message: [Python-Dev] PEP 3144 review.
- Next message: [Python-Dev] PEP 3144 review.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]