[issue27683] ipaddress subnet slicing iterator malfunction

2018-03-20 Thread Xiang Zhang

Change by Xiang Zhang :


--
resolution:  -> fixed
stage: patch review -> resolved
status: open -> closed
versions: +Python 3.8 -Python 3.5

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27683] ipaddress subnet slicing iterator malfunction

2018-03-20 Thread miss-islington

miss-islington  added the comment:


New changeset ae2feb32e7eff328199ce7d527593b3c2aa1fcab by Miss Islington (bot) 
in branch '3.6':
bpo-27683: Fix a regression for host() of ipaddress network objects (GH-6016)
https://github.com/python/cpython/commit/ae2feb32e7eff328199ce7d527593b3c2aa1fcab


--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27683] ipaddress subnet slicing iterator malfunction

2018-03-20 Thread miss-islington

miss-islington  added the comment:


New changeset 3326c9267f9df15fa77094b8a740be4eaa4b9374 by Miss Islington (bot) 
in branch '3.7':
bpo-27683: Fix a regression for host() of ipaddress network objects (GH-6016)
https://github.com/python/cpython/commit/3326c9267f9df15fa77094b8a740be4eaa4b9374


--
nosy: +miss-islington

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27683] ipaddress subnet slicing iterator malfunction

2018-03-20 Thread miss-islington

Change by miss-islington :


--
pull_requests: +5924

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27683] ipaddress subnet slicing iterator malfunction

2018-03-20 Thread miss-islington

Change by miss-islington :


--
pull_requests: +5923

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27683] ipaddress subnet slicing iterator malfunction

2018-03-20 Thread Xiang Zhang

Xiang Zhang  added the comment:


New changeset 10b134a07c898c2fbc5fd3582503680a54ed80a2 by Xiang Zhang in branch 
'master':
bpo-27683: Fix a regression for host() of ipaddress network objects (GH-6016)
https://github.com/python/cpython/commit/10b134a07c898c2fbc5fd3582503680a54ed80a2


--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27683] ipaddress subnet slicing iterator malfunction

2018-03-07 Thread Xiang Zhang

Change by Xiang Zhang :


--
pull_requests: +5783

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27683] ipaddress subnet slicing iterator malfunction

2016-11-01 Thread era

era added the comment:

#28577 requests a similar special case for /32

--
nosy: +era

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27683] ipaddress subnet slicing iterator malfunction

2016-10-28 Thread Xiang Zhang

Xiang Zhang added the comment:

Ping. ;-)

--
nosy: +pmoody

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27683] ipaddress subnet slicing iterator malfunction

2016-09-27 Thread Serhiy Storchaka

Changes by Serhiy Storchaka :


--
stage: needs patch -> patch review
versions: +Python 3.7

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27683] ipaddress subnet slicing iterator malfunction

2016-09-06 Thread Xiang Zhang

Xiang Zhang added the comment:

ping :)

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27683] ipaddress subnet slicing iterator malfunction

2016-08-23 Thread Xiang Zhang

Xiang Zhang added the comment:

issue27683.patch tries to fix this. It alters the doc and refactors the 
constructor, so there is no difference between different arguments

As for IPv6Network, it has the same problem.

--
nosy: +xiang.zhang
Added file: http://bugs.python.org/file44193/issue27683.patch

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27683] ipaddress subnet slicing iterator malfunction

2016-08-05 Thread Emanuel Barry

Emanuel Barry added the comment:

Ack, special cases! I can look into making a patch, but I'm not really 
acquainted with ipaddress or the relevant protocols, so it might not be 
optimal. I'll give it a shot next week if nobody else does.

--
stage: patch review -> needs patch

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27683] ipaddress subnet slicing iterator malfunction

2016-08-05 Thread Nick Coghlan

Nick Coghlan added the comment:

As Stephen notes, the underlying problem appears to be a behavioural difference 
between two theoretically equivalent ways of defining a network:

>>> list(ipaddress.IPv4Network(('127.0.0.4', 31)).hosts())
[]
>>> list(ipaddress.IPv4Network(('127.0.0.4/31')).hosts())
[IPv4Address('127.0.0.4'), IPv4Address('127.0.0.5')]

Now, the first case is the documented behaviour: hosts() is *supposed to* 
exclude the network and broadcast address, and those are the only addresses in 
a /31.

If you want to iterate over all the *addresses* in a network (including the 
network and broadcast addresses) then you need to iterate over the network 
object directly:

>>> list(ipaddress.IPv4Network(('127.0.0.4', 31)))
[IPv4Address('127.0.0.4'), IPv4Address('127.0.0.5')]
>>> list(ipaddress.IPv4Network(('127.0.0.4/31')))
[IPv4Address('127.0.0.4'), IPv4Address('127.0.0.5')]

However, as Emanuel found when writing his patch, there's currently an 
undocumented special case for /31 networks: the definition of "hosts" is 
*implicitly changed* for such instances to include the nominal network and 
broadcast address (by setting "self.hosts = self.__iter__"), presumably on the 
assumption that such networks represent a point-to-point link between two 
hosts, so the concepts of "network address" and "broadcast address" don't 
really apply.

That special case seems pragmatically useful, so I think the right fix would be 
to:

- document the special case that for /31 networks, hosts() includes the network 
and broadcast addresses (on the assumption the "network" is actually a 
point-to-point link between two hosts)
- refactor IPv4Network.__init__ to first map the supplied input to a 
"candidate_address" and "candidate_netmask" and then use *common* validation 
logic to determine the actual network address and netmask (this will also 
address the "# fixme" comment for the int/bytes case)
- check whether or not IPv6Network is affected by the same behavioural 
discrepancy

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27683] ipaddress subnet slicing iterator malfunction

2016-08-04 Thread Stephen Shirley

Stephen Shirley added the comment:

The bug appears to be in the new form of the constructor. Here's a more minimal 
reproduction:

In python3.5:
>>> list(ipaddress.IPv4Network(("127.0.0.4", 31)).hosts())
[]

In python3.4
>>> list(ipaddress.IPv4Network("127.0.0.4/31").hosts())
[IPv4Address('127.0.0.4'), IPv4Address('127.0.0.5')]

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27683] ipaddress subnet slicing iterator malfunction

2016-08-04 Thread Emanuel Barry

Changes by Emanuel Barry :


--
stage:  -> patch review

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27683] ipaddress subnet slicing iterator malfunction

2016-08-04 Thread Emanuel Barry

Emanuel Barry added the comment:

Here's a patch that fixes this bug, test included. I made this against the 3.5 
branch, but should apply cleanly on default.

--
keywords: +patch
nosy: +ebarry
Added file: http://bugs.python.org/file44008/ipaddress_iter_fix.patch

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27683] ipaddress subnet slicing iterator malfunction

2016-08-04 Thread R. David Murray

R. David Murray added the comment:

Since this is a regression, I'm going to claim this has higher than normal 
priority, for whatever good that will do :)

--
keywords: +3.5regression
priority: normal -> high
versions: +Python 3.6

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27683] ipaddress subnet slicing iterator malfunction

2016-08-04 Thread tklausmann

tklausmann added the comment:

I just bisected it and the specific commit is this one:

https://hg.python.org/cpython/rev/2711677cf874

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27683] ipaddress subnet slicing iterator malfunction

2016-08-04 Thread Serhiy Storchaka

Serhiy Storchaka added the comment:

The change was introduced in issue21487.

--
nosy: +ncoghlan, pitrou, serhiy.storchaka

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27683] ipaddress subnet slicing iterator malfunction

2016-08-04 Thread R. David Murray

R. David Murray added the comment:

If someone wants to bisect to find out which changeset introduced the behavior 
change that would be helpful.

--
nosy: +r.david.murray

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27683] ipaddress subnet slicing iterator malfunction

2016-08-04 Thread tklausmann

Changes by tklausmann :


--
nosy: +kormat

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue27683] ipaddress subnet slicing iterator malfunction

2016-08-04 Thread tklausmann

New submission from tklausmann:

Between Python 3.4 (3.4.5 I've tested with) and Python 3.5 (3.5.2), the 
behavior of ipaddress's subnet() method changed.

This code:

$ cat iat.py
import ipaddress

p = ipaddress.IPv4Network("172.0.0.4/30")
subnets = p.subnets(new_prefix=31)
n = next(subnets)

print(list(n.hosts()))

has two different outcomes on 3.4 vs. 3.5:

$ python3.4 iat.py 
[IPv4Address('172.0.0.4'), IPv4Address('172.0.0.5')]
$ python3.5 iat.py 
[]

AIUI, the 3.4 behavior is the correct one (or the docs need to be fixed).

--
components: Library (Lib)
messages: 271972
nosy: tklausmann
priority: normal
severity: normal
status: open
title: ipaddress subnet slicing iterator malfunction
type: behavior
versions: Python 3.5

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com