frappe/env/lib/python3.12/site-packages/maxminddb/extension.pyi

115 lines
3 KiB
Python

"""C extension database reader and related classes."""
# pylint: disable=E0601,E0602
from ipaddress import IPv4Address, IPv6Address
from os import PathLike
from typing import IO, Any, AnyStr, Optional, Union
from maxminddb.const import MODE_AUTO
from maxminddb.types import Record
class Reader:
"""A C extension implementation of a reader for the MaxMind DB format. IP
addresses can be looked up using the ``get`` method.
"""
closed: bool = ...
def __init__(
self,
database: Union[AnyStr, int, PathLike, IO],
mode: int = MODE_AUTO,
) -> None:
"""Reader for the MaxMind DB file format
Arguments:
database -- A path to a valid MaxMind DB file such as a GeoIP2 database
file, or a file descriptor in the case of MODE_FD.
mode -- mode to open the database with. The only supported modes are
MODE_AUTO and MODE_MMAP_EXT.
"""
def close(self) -> None:
"""Closes the MaxMind DB file and returns the resources to the system"""
def get(self, ip_address: Union[str, IPv6Address, IPv4Address]) -> Optional[Record]:
"""Return the record for the ip_address in the MaxMind DB
Arguments:
ip_address -- an IP address in the standard string notation
"""
def get_with_prefix_len(
self,
ip_address: Union[str, IPv6Address, IPv4Address],
) -> tuple[Optional[Record], int]:
"""Return a tuple with the record and the associated prefix length
Arguments:
ip_address -- an IP address in the standard string notation
"""
def metadata(self) -> Metadata:
"""Return the metadata associated with the MaxMind DB file"""
def __enter__(self) -> Reader: ...
def __exit__(self, *args) -> None: ...
# pylint: disable=too-few-public-methods
class Metadata:
"""Metadata for the MaxMind DB reader"""
binary_format_major_version: int
"""
The major version number of the binary format used when creating the
database.
"""
binary_format_minor_version: int
"""
The minor version number of the binary format used when creating the
database.
"""
build_epoch: int
"""
The Unix epoch for the build time of the database.
"""
database_type: str
"""
A string identifying the database type, e.g., "GeoIP2-City".
"""
description: dict[str, str]
"""
A map from locales to text descriptions of the database.
"""
ip_version: int
"""
The IP version of the data in a database. A value of "4" means the
database only supports IPv4. A database with a value of "6" may support
both IPv4 and IPv6 lookups.
"""
languages: list[str]
"""
A list of locale codes supported by the databse.
"""
node_count: int
"""
The number of nodes in the database.
"""
record_size: int
"""
The bit size of a record in the search tree.
"""
def __init__(self, **kwargs: Any) -> None:
"""Creates new Metadata object. kwargs are key/value pairs from spec"""