On Sat, Sep 26, 2009 at 10:38 PM, Nick Coghlan <ncogh...@gmail.com> wrote: > Peter Moody wrote: >> I again invite interested parties to continue this discussion on >> ipaddr-py-...@googlegroups.com. we're pushing 250 messages on PEP >> 3144 at this point; well beyond what most folks would call a "long >> open-ended discussion". >> >> anyway: >> >>> The current behaviour is confusing to me. For example: >>> >>>>>> netw1 = ipaddr.IPv4Network('192.168.1.1/24') >>>>>> netw2 = ipaddr.IPv4Network('192.168.1.0/24') >>>>>> netw1 == netw2 >>> False >>>>>> list(netw1) == list(netw2) >>> True >> >> I think you're intentionally confusing yourself here. 192.168.1.1 >> clearly doesn't equal 192.168.1.0, so I don't know why you'd expect >> 192.168.1.1/24 to equal 192.168.1.0/24. > > No, this is exactly the "dual purpose" nature of IPNetwork that people > have been complaining about: 192.168.1.1 & 255.255.255.0 == 192.168.1.0 > & 255.255.255.0, so the two objects describe the exact same network, but > the network objects don't currently respect their own netmask, instead > remembering which particular host happened to be used to derive the > network ID. > > "Arbitrary network host with associated netmask" and "IP Network" are > different concepts, but the library currently uses a single class > interface (IPNetwork) for both of them. > > What we're asking for is for the "ip" attribute to be removed from IP > Network, with the constructor either forgetting the host IP that was > used to derive the network address, or else only accepting the correct > network address in the constructor and providing a separate helper > function or class method to create an IPNetwork object from an arbitrary > hostname.
what you want is strict=True, just checked in. I've been meaning to send an update to the PEP explaining why this choice was made. I'm hoping this will ameliorate your confusion. Cheers, /peter > Cheers, > Nick. > > -- > Nick Coghlan | ncogh...@gmail.com | Brisbane, Australia > --------------------------------------------------------------- > _______________________________________________ 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