Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions stdlib/3/ipaddress.pyi
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from typing import (Any, Container, Generic, Iterable, Iterator, Optional,
overload, SupportsInt, Tuple, TypeVar)
overload, SupportsInt, Text, Tuple, TypeVar)

# Undocumented length constants
IPV4LENGTH: int
Expand All @@ -21,11 +21,11 @@ class _IPAddressBase:
def __lt__(self: _T, other: _T) -> bool: ...
def __ne__(self, other: Any) -> bool: ...
@property
def compressed(self) -> str: ...
def compressed(self) -> Text: ...
@property
def exploded(self) -> str: ...
def exploded(self) -> Text: ...
@property
def reverse_pointer(self) -> str: ...
def reverse_pointer(self) -> Text: ...
@property
def version(self) -> int: ...

Expand Down Expand Up @@ -90,11 +90,11 @@ class _BaseNetwork(_IPAddressBase, Container[_A], Iterable[_A], Generic[_A]):
def subnets(self: _T, prefixlen_diff: int = ..., new_prefix: Optional[int] = ...) -> Iterator[_T]: ...
def supernet(self: _T, prefixlen_diff: int = ..., new_prefix: Optional[int] = ...) -> _T: ...
@property
def with_hostmask(self) -> str: ...
def with_hostmask(self) -> Text: ...
@property
def with_netmask(self) -> str: ...
def with_netmask(self) -> Text: ...
@property
def with_prefixlen(self) -> str: ...
def with_prefixlen(self) -> Text: ...
@property
def hostmask(self) -> _A: ...

Expand All @@ -105,11 +105,11 @@ class _BaseInterface(_BaseAddress, Generic[_A, _N]):
@property
def ip(self) -> _A: ...
@property
def with_hostmask(self) -> str: ...
def with_hostmask(self) -> Text: ...
@property
def with_netmask(self) -> str: ...
def with_netmask(self) -> Text: ...
@property
def with_prefixlen(self) -> str: ...
def with_prefixlen(self) -> Text: ...

class IPv4Address(_BaseAddress): ...
class IPv4Network(_BaseNetwork[IPv4Address]): ...
Expand Down
1 change: 1 addition & 0 deletions tests/check_consistent.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
{'stdlib/3.7/dataclasses.pyi', 'third_party/3/dataclasses.pyi'},
{'stdlib/3/pathlib.pyi', 'third_party/2/pathlib2.pyi'},
{'stdlib/3.7/contextvars.pyi', 'third_party/3/contextvars.pyi'},
{'stdlib/3/ipaddress.pyi', 'third_party/2/ipaddress.pyi'},
]

def main():
Expand Down
149 changes: 149 additions & 0 deletions third_party/2/ipaddress.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
from typing import (Any, Container, Generic, Iterable, Iterator, Optional,
Comment thread
jolaf marked this conversation as resolved.
overload, SupportsInt, Text, Tuple, TypeVar)

# Undocumented length constants
IPV4LENGTH: int
IPV6LENGTH: int

_A = TypeVar("_A", IPv4Address, IPv6Address)
_N = TypeVar("_N", IPv4Network, IPv6Network)
_T = TypeVar("_T")

def ip_address(address: object) -> Any: ... # morally Union[IPv4Address, IPv6Address]
def ip_network(address: object, strict: bool = ...) -> Any: ... # morally Union[IPv4Network, IPv6Network]
def ip_interface(address: object) -> Any: ... # morally Union[IPv4Interface, IPv6Interface]

class _IPAddressBase:
def __eq__(self, other: Any) -> bool: ...
def __ge__(self: _T, other: _T) -> bool: ...
def __gt__(self: _T, other: _T) -> bool: ...
def __le__(self: _T, other: _T) -> bool: ...
def __lt__(self: _T, other: _T) -> bool: ...
def __ne__(self, other: Any) -> bool: ...
@property
def compressed(self) -> Text: ...
@property
def exploded(self) -> Text: ...
@property
def reverse_pointer(self) -> Text: ...
@property
def version(self) -> int: ...

class _BaseAddress(_IPAddressBase, SupportsInt):
def __init__(self, address: object) -> None: ...
def __add__(self: _T, other: int) -> _T: ...
def __hash__(self) -> int: ...
def __int__(self) -> int: ...
def __sub__(self: _T, other: int) -> _T: ...
@property
def is_global(self) -> bool: ...
@property
def is_link_local(self) -> bool: ...
@property
def is_loopback(self) -> bool: ...
@property
def is_multicast(self) -> bool: ...
@property
def is_private(self) -> bool: ...
@property
def is_reserved(self) -> bool: ...
@property
def is_unspecified(self) -> bool: ...
@property
def max_prefixlen(self) -> int: ...
@property
def packed(self) -> bytes: ...

class _BaseNetwork(_IPAddressBase, Container[_A], Iterable[_A], Generic[_A]):
network_address: _A
netmask: _A
def __init__(self, address: object, strict: bool = ...) -> None: ...
def __contains__(self, other: Any) -> bool: ...
def __getitem__(self, n: int) -> _A: ...
def __iter__(self) -> Iterator[_A]: ...
def address_exclude(self: _T, other: _T) -> Iterator[_T]: ...
@property
def broadcast_address(self) -> _A: ...
def compare_networks(self: _T, other: _T) -> int: ...
def hosts(self) -> Iterator[_A]: ...
@property
def is_global(self) -> bool: ...
@property
def is_link_local(self) -> bool: ...
@property
def is_loopback(self) -> bool: ...
@property
def is_multicast(self) -> bool: ...
@property
def is_private(self) -> bool: ...
@property
def is_reserved(self) -> bool: ...
@property
def is_unspecified(self) -> bool: ...
@property
def max_prefixlen(self) -> int: ...
@property
def num_addresses(self) -> int: ...
def overlaps(self: _T, other: _T) -> bool: ...
@property
def prefixlen(self) -> int: ...
def subnets(self: _T, prefixlen_diff: int = ..., new_prefix: Optional[int] = ...) -> Iterator[_T]: ...
def supernet(self: _T, prefixlen_diff: int = ..., new_prefix: Optional[int] = ...) -> _T: ...
@property
def with_hostmask(self) -> Text: ...
@property
def with_netmask(self) -> Text: ...
@property
def with_prefixlen(self) -> Text: ...
@property
def hostmask(self) -> _A: ...

class _BaseInterface(_BaseAddress, Generic[_A, _N]):
hostmask: _A
netmask: _A
network: _N
@property
def ip(self) -> _A: ...
@property
def with_hostmask(self) -> Text: ...
@property
def with_netmask(self) -> Text: ...
@property
def with_prefixlen(self) -> Text: ...

class IPv4Address(_BaseAddress): ...
class IPv4Network(_BaseNetwork[IPv4Address]): ...
class IPv4Interface(IPv4Address, _BaseInterface[IPv4Address, IPv4Network]): ...

class IPv6Address(_BaseAddress):
@property
def ipv4_mapped(self) -> Optional[IPv4Address]: ...
@property
def is_site_local(self) -> bool: ...
@property
def sixtofour(self) -> Optional[IPv4Address]: ...
@property
def teredo(self) -> Optional[Tuple[IPv4Address, IPv4Address]]: ...

class IPv6Network(_BaseNetwork[IPv6Address]):
@property
def is_site_local(self) -> bool: ...

class IPv6Interface(IPv6Address, _BaseInterface[IPv6Address, IPv6Network]): ...

def v4_int_to_packed(address: int) -> bytes: ...
def v6_int_to_packed(address: int) -> bytes: ...
@overload
def summarize_address_range(first: IPv4Address, last: IPv4Address) -> Iterator[IPv4Network]: ...
@overload
def summarize_address_range(first: IPv6Address, last: IPv6Address) -> Iterator[IPv6Network]: ...
def collapse_addresses(addresses: Iterable[_N]) -> Iterator[_N]: ...
@overload
def get_mixed_type_key(obj: _A) -> Tuple[int, _A]: ...
@overload
def get_mixed_type_key(obj: IPv4Network) -> Tuple[int, IPv4Address, IPv4Address]: ...
@overload
def get_mixed_type_key(obj: IPv6Network) -> Tuple[int, IPv6Address, IPv6Address]: ...

class AddressValueError(ValueError): ...
class NetmaskValueError(ValueError): ...
Empty file.
22 changes: 22 additions & 0 deletions third_party/2and3/geoip2/database.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
from types import TracebackType
from typing import Optional, Sequence, Text, Type

from maxminddb.reader import Metadata
from geoip2.models import AnonymousIP, ASN, City, ConnectionType, Country, Domain, Enterprise, ISP

_Locales = Optional[Sequence[Text]]

class Reader:
def __init__(self, filename: Text, locales: _Locales = ..., mode: int = ...) -> None: ...
def __enter__(self) -> Reader: ...
def __exit__(self, exc_type: Optional[Type[BaseException]] = ..., exc_val: Optional[BaseException] = ..., exc_tb: Optional[TracebackType] = ...) -> None: ...
def country(self, ip_address: Text) -> Country: ...
def city(self, ip_address: Text) -> City: ...
def anonymous_ip(self, ip_address: Text) -> AnonymousIP: ...
def asn(self, ip_address: Text) -> ASN: ...
def connection_type(self, ip_address: Text) -> ConnectionType: ...
def domain(self, ip_address: Text) -> Domain: ...
def enterprise(self, ip_address: Text) -> Enterprise: ...
def isp(self, ip_address: Text) -> ISP: ...
def metadata(self) -> Metadata: ...
def close(self) -> None: ...
18 changes: 18 additions & 0 deletions third_party/2and3/geoip2/errors.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
from typing import Optional, Text

class GeoIP2Error(RuntimeError): ...

class AddressNotFoundError(GeoIP2Error): ...

class AuthenticationError(GeoIP2Error): ...

class HTTPError(GeoIP2Error):
http_status: Optional[int]
uri: Optional[Text]
def __init__(self, message: Text, http_status: Optional[int] = ..., uri: Optional[Text] = ...) -> None: ...

class InvalidRequestError(GeoIP2Error): ...

class OutOfQueriesError(GeoIP2Error): ...

class PermissionRequiredError(GeoIP2Error): ...
3 changes: 3 additions & 0 deletions third_party/2and3/geoip2/mixins.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
class SimpleEquality:
def __eq__(self, other: object) -> bool: ...
def __ne__(self, other: object) -> bool: ...
65 changes: 65 additions & 0 deletions third_party/2and3/geoip2/models.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
from typing import Any, Mapping, Optional, Sequence, Text

from geoip2 import records

from geoip2.mixins import SimpleEquality

_Locales = Optional[Sequence[Text]]
_RawResponse = Mapping[Text, Mapping[Text, Any]]

class Country(SimpleEquality):
continent: records.Continent
country: records.Country
registered_country: records.Country
represented_country: records.RepresentedCountry
maxmind: records.MaxMind
traits: records.Traits
raw: _RawResponse
def __init__(self, raw_response: _RawResponse, locales: _Locales = ...) -> None: ...

class City(Country):
city: records.City
location: records.Location
postal: records.Postal
subdivisions: records.Subdivisions
def __init__(self, raw_response: _RawResponse, locales: _Locales = ...) -> None: ...

class Insights(City): ...

class Enterprise(City): ...

class SimpleModel(SimpleEquality): ...

class AnonymousIP(SimpleModel):
is_anonymous: bool
is_anonymous_vpn: bool
is_hosting_provider: bool
is_public_proxy: bool
is_tor_exit_node: bool
ip_address: Optional[Text]
raw: _RawResponse
def __init__(self, raw: _RawResponse) -> None: ...

class ASN(SimpleModel):
autonomous_system_number: Optional[int]
autonomous_system_organization: Optional[Text]
ip_address: Optional[Text]
raw: _RawResponse
def __init__(self, raw: _RawResponse) -> None: ...

class ConnectionType(SimpleModel):
connection_type: Optional[Text]
ip_address: Optional[Text]
raw: _RawResponse
def __init__(self, raw: _RawResponse) -> None: ...

class Domain(SimpleModel):
domain: Optional[Text]
ip_address: Optional[Text]
raw: Optional[Text]
def __init__(self, raw: _RawResponse) -> None: ...

class ISP(ASN):
isp: Optional[Text]
organization: Optional[Text]
def __init__(self, raw: _RawResponse) -> None: ...
Loading