[Python-Dev] PEP 3144 review. (original) (raw)

R. David Murray rdmurray at bitdance.com
Tue Sep 15 20:33:50 CEST 2009


On Tue, 15 Sep 2009 at 14:16, Scott Dial wrote:

In other words, I don't see why obtaining a host address would not retain the hostmask from the network it was obtained from. I am not disagreeing with it being an individual address. I am disagreeing that IPNetwork itself already does represent individual addresses (hence my aliasing it with IPAddressWithNetwork). And wrt, the logical return would be another IPAddressWithNetwork retaining the same mask.

In other other words, maybe we have three data types:

 IPv4Address
 IPv4AddressWithMask
 IPv4Network

Where myAddressWithMask.network would return an IPv4Network object, and an IPv4Network object would always have the zero of the network as its representation:

 x = IPv4AddressWithMask('192.168.1.1/24')
 x.network == IPv4Network('192.168.1.0/24')
 x.network[1] == x

In this scheme, IPv4Network('192.168.1.1/24') would raise a ValueError.

Although you could probably have what I called IPv4AddressWithMask be called IPv4Address, and have what is now IPv4Address just have netmask and network attributes of None.

If this were done, I would expect IPv4Network.network to be either an attribute error or return self.

--David



More information about the Python-Dev mailing list