From e3ded955f3b145e38be47be61c53ba1ff130f47b Mon Sep 17 00:00:00 2001 From: Nick Coghlan Date: Sun, 5 Aug 2012 22:45:22 +1000 Subject: Issue #14814: Remove redundant property from interface objects - prefixlen can be accessed via the associated network object --- Lib/ipaddress.py | 10 +--------- Lib/test/test_ipaddress.py | 4 ++-- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/Lib/ipaddress.py b/Lib/ipaddress.py index dfb5944..c9338c5 100644 --- a/Lib/ipaddress.py +++ b/Lib/ipaddress.py @@ -1331,10 +1331,6 @@ class IPv4Interface(IPv4Address): return self._ip ^ self._prefixlen ^ int(self.network.network_address) @property - def prefixlen(self): - return self._prefixlen - - @property def ip(self): return IPv4Address(self._ip) @@ -1708,7 +1704,7 @@ class _BaseV6: hex_str = '%032x' % ip_int parts = [hex_str[x:x+4] for x in range(0, 32, 4)] if isinstance(self, (_BaseNetwork, IPv6Interface)): - return '%s/%d' % (':'.join(parts), self.prefixlen) + return '%s/%d' % (':'.join(parts), self._prefixlen) return ':'.join(parts) @property @@ -1947,10 +1943,6 @@ class IPv6Interface(IPv6Address): return self._ip ^ self._prefixlen ^ int(self.network.network_address) @property - def prefixlen(self): - return self._prefixlen - - @property def ip(self): return IPv6Address(self._ip) diff --git a/Lib/test/test_ipaddress.py b/Lib/test/test_ipaddress.py index 061c866..09b4a5e 100644 --- a/Lib/test/test_ipaddress.py +++ b/Lib/test/test_ipaddress.py @@ -731,8 +731,8 @@ class IpaddrUnitTest(unittest.TestCase): '2001:658:22a:cafe:ffff:ffff:ffff:ffff') def testGetPrefixlen(self): - self.assertEqual(self.ipv4_interface.prefixlen, 24) - self.assertEqual(self.ipv6_interface.prefixlen, 64) + self.assertEqual(self.ipv4_interface.network.prefixlen, 24) + self.assertEqual(self.ipv6_interface.network.prefixlen, 64) def testGetSupernet(self): self.assertEqual(self.ipv4_network.supernet().prefixlen, 23) -- cgit v0.12 From 043540088ae75f79179de2fe4ec147674bcc2a5f Mon Sep 17 00:00:00 2001 From: Nadeem Vawda Date: Sun, 5 Aug 2012 14:45:41 +0200 Subject: #15546: Also fix GzipFile.peek(). --- Lib/gzip.py | 6 ++++-- Misc/NEWS | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Lib/gzip.py b/Lib/gzip.py index 5bcfe61..b6656a9 100644 --- a/Lib/gzip.py +++ b/Lib/gzip.py @@ -413,8 +413,10 @@ class GzipFile(io.BufferedIOBase): if self.fileobj is None: return b'' try: - # 1024 is the same buffering heuristic used in read() - self._read(max(n, 1024)) + # Ensure that we don't return b"" if we haven't reached EOF. + while self.extrasize == 0: + # 1024 is the same buffering heuristic used in read() + self._read(max(n, 1024)) except EOFError: pass offset = self.offset - self.extrastart diff --git a/Misc/NEWS b/Misc/NEWS index 92a4d79..53f62a0 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -81,8 +81,8 @@ Library constructor, objects in the ipaddress module no longer implement __index__ (they still implement __int__ as appropriate) -- Issue #15546: Fix handling of pathological input data in the read1() method of - the BZ2File, GzipFile and LZMAFile classes. +- Issue #15546: Fix handling of pathological input data in the peek() and + read1() methods of the BZ2File, GzipFile and LZMAFile classes. - Issue #13052: Fix IDLE crashing when replace string in Search/Replace dialog ended with '\'. Patch by Roger Serwy. -- cgit v0.12 From 31096a94e71779af9c768ac714aaef8c4db53e10 Mon Sep 17 00:00:00 2001 From: Nick Coghlan Date: Sun, 5 Aug 2012 22:52:38 +1000 Subject: Issue #14814: Attempt to clarify network address and broadcast address for less experienced users --- Doc/library/ipaddress.rst | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Doc/library/ipaddress.rst b/Doc/library/ipaddress.rst index d555116..fea1724 100644 --- a/Doc/library/ipaddress.rst +++ b/Doc/library/ipaddress.rst @@ -390,11 +390,13 @@ so to avoid duplication they are only documented for :class:`IPv4Network`. .. 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 - 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 -- cgit v0.12