]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-39481: PEP 585 for ipaddress.py (GH-19418)
authorBatuhan Taşkaya <batuhanosmantaskaya@gmail.com>
Fri, 10 Apr 2020 04:04:54 +0000 (07:04 +0300)
committerGitHub <noreply@github.com>
Fri, 10 Apr 2020 04:04:54 +0000 (21:04 -0700)
Lib/ipaddress.py
Lib/test/test_genericalias.py

index ac1143acba426b94de66d5b354914c52ffc38a5c..439f2418174686e51aedf78b38f7c0c46b3546ff 100644 (file)
@@ -12,6 +12,7 @@ __version__ = '1.0'
 
 
 import functools
+import types
 
 IPV4LENGTH = 32
 IPV6LENGTH = 128
@@ -1124,6 +1125,7 @@ class _BaseNetwork(_IPAddressBase):
         return (self.network_address.is_loopback and
                 self.broadcast_address.is_loopback)
 
+    __class_getitem__ = classmethod(types.GenericAlias)
 
 class _BaseV4:
 
@@ -1444,6 +1446,8 @@ class IPv4Interface(IPv4Address):
         return '%s/%s' % (self._string_from_ip_int(self._ip),
                           self.hostmask)
 
+    __class_getitem__ = classmethod(types.GenericAlias)
+
 
 class IPv4Network(_BaseV4, _BaseNetwork):
 
@@ -2152,6 +2156,8 @@ class IPv6Interface(IPv6Address):
     def is_loopback(self):
         return self._ip == 1 and self.network.is_loopback
 
+    __class_getitem__ = classmethod(types.GenericAlias)
+
 
 class IPv6Network(_BaseV6, _BaseNetwork):
 
index d8acdee2da3e26497a58d1121de30d94160fab15..535c2492574b3ca0a3eb89fe762b2e87e09939d3 100644 (file)
@@ -7,6 +7,7 @@ from collections import (
 )
 from collections.abc import *
 from contextlib import AbstractContextManager, AbstractAsyncContextManager
+from ipaddress import IPv4Network, IPv4Interface, IPv6Network, IPv6Interface
 from itertools import chain
 from os import DirEntry
 from re import Pattern, Match
@@ -36,6 +37,9 @@ class BaseTest(unittest.TestCase):
                   Mapping, MutableMapping, MappingView,
                   KeysView, ItemsView, ValuesView,
                   Sequence, MutableSequence,
+                  MappingProxyType,
+                  DirEntry,
+                  IPv4Network, IPv4Interface, IPv6Network, IPv6Interface,
                   MappingProxyType, DirEntry,
                   chain,
                   ):