> The fundamental divide here is between two behaviors.
> 
> ipaddr:
> 
>     >>> x = IPv4Network('192.168.1.1/24')
>     >>> y = IPv4Network('192.168.1.0/24')
>     >>> x == y
>     False
>     >>> x.ip
>     IPv4Address('192.168.1.1')
> 
> desired:
> 
>     >>> x = IPv4Network('192.168.1.1/24')
>     >>> y = IPv4Network('192.168.1.0/24')
>     >>> x == y
>     True
>     >>> x.ip
>     Traceback (most recent call last):
>       File "<stdin>", line 1, in <module>
>     AttributeError: 'IPv4Network' object has no attribute 'ip'

I can understand the debate around the comparison.

I cannot understand the complaint that networks where the base
address is not null-terminated should be banned, or useless
(which was the original concern that I responded to).

> Everything else is pretty much bikeshedding and can be dealt with.  This
> is fundamental and Peter has indicated he will not change it.

I can see why either behavior is desirable (i.e. comparison should
either use the specified address, or the network address); following
the Python Zen, we should refuse the temptation to guess.

Unfortunately, that would mean that we should provide two comparison
operations, and have neither available as == (unless one is more clearly
right than the other, which I'm skeptical about).

Regards,
Martin
_______________________________________________
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

Reply via email to