Commit d92bf758 authored by Antoine Pitrou's avatar Antoine Pitrou

Merge

parents 8b6e865c cd5eb829
...@@ -390,11 +390,13 @@ so to avoid duplication they are only documented for :class:`IPv4Network`. ...@@ -390,11 +390,13 @@ so to avoid duplication they are only documented for :class:`IPv4Network`.
.. attribute:: network_address .. attribute:: network_address
The broadcast address for the network. The network address for the network. The network address and the
prefix length together uniquely define a network.
.. attribute:: broadcast_address .. attribute:: broadcast_address
The broadcast address for the network. The broadcast address for the network. Packets sent to the broadcast
address should be received by every host on the network.
.. attribute:: host mask .. attribute:: host mask
......
...@@ -413,8 +413,10 @@ class GzipFile(io.BufferedIOBase): ...@@ -413,8 +413,10 @@ class GzipFile(io.BufferedIOBase):
if self.fileobj is None: if self.fileobj is None:
return b'' return b''
try: try:
# 1024 is the same buffering heuristic used in read() # Ensure that we don't return b"" if we haven't reached EOF.
self._read(max(n, 1024)) while self.extrasize == 0:
# 1024 is the same buffering heuristic used in read()
self._read(max(n, 1024))
except EOFError: except EOFError:
pass pass
offset = self.offset - self.extrastart offset = self.offset - self.extrastart
......
...@@ -1330,10 +1330,6 @@ class IPv4Interface(IPv4Address): ...@@ -1330,10 +1330,6 @@ class IPv4Interface(IPv4Address):
def __hash__(self): def __hash__(self):
return self._ip ^ self._prefixlen ^ int(self.network.network_address) return self._ip ^ self._prefixlen ^ int(self.network.network_address)
@property
def prefixlen(self):
return self._prefixlen
@property @property
def ip(self): def ip(self):
return IPv4Address(self._ip) return IPv4Address(self._ip)
...@@ -1708,7 +1704,7 @@ class _BaseV6: ...@@ -1708,7 +1704,7 @@ class _BaseV6:
hex_str = '%032x' % ip_int hex_str = '%032x' % ip_int
parts = [hex_str[x:x+4] for x in range(0, 32, 4)] parts = [hex_str[x:x+4] for x in range(0, 32, 4)]
if isinstance(self, (_BaseNetwork, IPv6Interface)): if isinstance(self, (_BaseNetwork, IPv6Interface)):
return '%s/%d' % (':'.join(parts), self.prefixlen) return '%s/%d' % (':'.join(parts), self._prefixlen)
return ':'.join(parts) return ':'.join(parts)
@property @property
...@@ -1946,10 +1942,6 @@ class IPv6Interface(IPv6Address): ...@@ -1946,10 +1942,6 @@ class IPv6Interface(IPv6Address):
def __hash__(self): def __hash__(self):
return self._ip ^ self._prefixlen ^ int(self.network.network_address) return self._ip ^ self._prefixlen ^ int(self.network.network_address)
@property
def prefixlen(self):
return self._prefixlen
@property @property
def ip(self): def ip(self):
return IPv6Address(self._ip) return IPv6Address(self._ip)
......
...@@ -731,8 +731,8 @@ class IpaddrUnitTest(unittest.TestCase): ...@@ -731,8 +731,8 @@ class IpaddrUnitTest(unittest.TestCase):
'2001:658:22a:cafe:ffff:ffff:ffff:ffff') '2001:658:22a:cafe:ffff:ffff:ffff:ffff')
def testGetPrefixlen(self): def testGetPrefixlen(self):
self.assertEqual(self.ipv4_interface.prefixlen, 24) self.assertEqual(self.ipv4_interface.network.prefixlen, 24)
self.assertEqual(self.ipv6_interface.prefixlen, 64) self.assertEqual(self.ipv6_interface.network.prefixlen, 64)
def testGetSupernet(self): def testGetSupernet(self):
self.assertEqual(self.ipv4_network.supernet().prefixlen, 23) self.assertEqual(self.ipv4_network.supernet().prefixlen, 23)
......
...@@ -81,8 +81,8 @@ Library ...@@ -81,8 +81,8 @@ Library
constructor, objects in the ipaddress module no longer implement __index__ constructor, objects in the ipaddress module no longer implement __index__
(they still implement __int__ as appropriate) (they still implement __int__ as appropriate)
- Issue #15546: Fix handling of pathological input data in the read1() method of - Issue #15546: Fix handling of pathological input data in the peek() and
the BZ2File, GzipFile and LZMAFile classes. read1() methods of the BZ2File, GzipFile and LZMAFile classes.
- Issue #13052: Fix IDLE crashing when replace string in Search/Replace dialog - Issue #13052: Fix IDLE crashing when replace string in Search/Replace dialog
ended with '\'. Patch by Roger Serwy. ended with '\'. Patch by Roger Serwy.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment