Issue #21386: Implement missing IPv4Address.is_global property

It was documented since 07a5610bae9d.

Initial patch by Roger Luethi.
This commit is contained in:
Berker Peksag 2016-06-11 22:11:47 +03:00
parent fa089b9b0b
commit 742192a4fe
3 changed files with 13 additions and 0 deletions

View File

@ -1311,6 +1311,11 @@ class IPv4Address(_BaseV4, _BaseAddress):
"""
return any(self in net for net in self._constants._private_networks)
@property
@functools.lru_cache()
def is_global(self):
return self not in self._constants._public_network and not self.is_private
@property
def is_multicast(self):
"""Test if the address is reserved for multicast use.
@ -1557,6 +1562,8 @@ class _IPv4Constants:
_multicast_network = IPv4Network('224.0.0.0/4')
_public_network = IPv4Network('100.64.0.0/10')
_private_networks = [
IPv4Network('0.0.0.0/8'),
IPv4Network('10.0.0.0/8'),

View File

@ -1626,6 +1626,9 @@ class IpaddrUnitTest(unittest.TestCase):
self.assertEqual(False,
ipaddress.ip_address('169.255.100.200').is_link_local)
self.assertTrue(ipaddress.ip_address('192.0.7.1').is_global)
self.assertFalse(ipaddress.ip_address('203.0.113.1').is_global)
self.assertEqual(True,
ipaddress.ip_address('127.100.200.254').is_loopback)
self.assertEqual(True, ipaddress.ip_address('127.42.0.0').is_loopback)

View File

@ -139,6 +139,9 @@ Core and Builtins
Library
-------
- Issue #21386: Implement missing IPv4Address.is_global property. It was
documented since 07a5610bae9d. Initial patch by Roger Luethi.
- Issue #20900: distutils register command now decodes HTTP responses
correctly. Initial patch by ingrid.