1
1
import sys
2
2
from _typeshed import Self
3
3
from typing import Any , Container , Generic , Iterable , Iterator , SupportsInt , TypeVar , overload
4
+ from typing_extensions import Literal
4
5
5
6
# Undocumented length constants
6
- IPV4LENGTH : int
7
- IPV6LENGTH : int
7
+ IPV4LENGTH : Literal [ 32 ]
8
+ IPV6LENGTH : Literal [ 128 ]
8
9
9
10
_A = TypeVar ("_A" , IPv4Address , IPv6Address )
10
11
_N = TypeVar ("_N" , IPv4Network , IPv6Network )
11
12
12
- def ip_address (address : object ) -> IPv4Address | IPv6Address : ...
13
- def ip_network (address : object , strict : bool = ...) -> IPv4Network | IPv6Network : ...
14
- def ip_interface (address : object ) -> IPv4Interface | IPv6Interface : ...
13
+ _RawIPAddress = int | str | bytes | IPv4Address | IPv6Address
14
+ _RawNetworkPart = IPv4Network | IPv6Network | IPv4Interface | IPv6Interface
15
+
16
+ def ip_address (address : _RawIPAddress ) -> IPv4Address | IPv6Address : ...
17
+ def ip_network (address : _RawIPAddress | _RawNetworkPart , strict : bool = ...) -> IPv4Network | IPv6Network : ...
18
+ def ip_interface (address : _RawIPAddress | _RawNetworkPart ) -> IPv4Interface | IPv6Interface : ...
15
19
16
20
class _IPAddressBase :
17
21
def __eq__ (self , other : object ) -> bool : ...
@@ -115,11 +119,23 @@ class _BaseInterface(_BaseAddress, Generic[_A, _N]):
115
119
@property
116
120
def with_prefixlen (self ) -> str : ...
117
121
118
- class IPv4Address (_BaseAddress ): ...
119
- class IPv4Network (_BaseNetwork [IPv4Address ]): ...
122
+ class _BaseV4 :
123
+ @property
124
+ def version (self ) -> Literal [4 ]: ...
125
+ @property
126
+ def max_prefixlen (self ) -> Literal [32 ]: ...
127
+
128
+ class IPv4Address (_BaseV4 , _BaseAddress ): ...
129
+ class IPv4Network (_BaseV4 , _BaseNetwork [IPv4Address ]): ...
120
130
class IPv4Interface (IPv4Address , _BaseInterface [IPv4Address , IPv4Network ]): ...
121
131
122
- class IPv6Address (_BaseAddress ):
132
+ class _BaseV6 :
133
+ @property
134
+ def version (self ) -> Literal [6 ]: ...
135
+ @property
136
+ def max_prefixlen (self ) -> Literal [128 ]: ...
137
+
138
+ class IPv6Address (_BaseV6 , _BaseAddress ):
123
139
@property
124
140
def ipv4_mapped (self ) -> IPv4Address | None : ...
125
141
@property
@@ -132,7 +148,7 @@ class IPv6Address(_BaseAddress):
132
148
@property
133
149
def scope_id (self ) -> str | None : ...
134
150
135
- class IPv6Network (_BaseNetwork [IPv6Address ]):
151
+ class IPv6Network (_BaseV6 , _BaseNetwork [IPv6Address ]):
136
152
@property
137
153
def is_site_local (self ) -> bool : ...
138
154
0 commit comments