Metadata-Version: 1.2
Name: maxminddb
Version: 1.5.2
Summary: Reader for the MaxMind DB format
Home-page: http://www.maxmind.com/
Author: Gregory Oschwald
Author-email: goschwald@maxmind.com
License: Apache License, Version 2.0
Description: ========================
        MaxMind DB Python Module
        ========================
        
        Description
        -----------
        
        This is a Python module for reading MaxMind DB files. The module includes both
        a pure Python reader and an optional C extension.
        
        MaxMind DB is a binary file format that stores data indexed by IP address
        subnets (IPv4 or IPv6).
        
        Installation
        ------------
        
        If you want to use the C extension, you must first install `libmaxminddb
        <https://github.com/maxmind/libmaxminddb>`_ C library installed before
        installing this extension. If the library is not available, the module will
        fall-back to a pure Python implementation.
        
        To install maxminddb, type:
        
        .. code-block:: bash
        
            $ pip install maxminddb
        
        If you are not able to use pip, you may also use easy_install from the
        source directory:
        
        .. code-block:: bash
        
            $ easy_install .
        
        Usage
        -----
        
        To use this module, you must first download or create a MaxMind DB file. We
        provide `free GeoLite2 databases
        <https://dev.maxmind.com/geoip/geoip2/geolite2>`_. These files must be
        decompressed with ``gunzip``.
        
        After you have obtained a database and imported the module, call
        ``open_database`` with a path, or file descriptor (in the case of MODE_FD),
        to the database as the first argument. Optionally, you may pass a mode as the
        second argument. The modes are exported from ``maxminddb``. Valid modes are:
        
        * MODE_MMAP_EXT - use the C extension with memory map.
        * MODE_MMAP - read from memory map. Pure Python.
        * MODE_FILE - read database as standard file. Pure Python.
        * MODE_MEMORY - load database into memory. Pure Python.
        * MODE_FD - load database into memory from a file descriptor. Pure Python.
        * MODE_AUTO - try MODE_MMAP_EXT, MODE_MMAP, MODE_FILE in that order. Default.
        
        **NOTE**: When using ``MODE_FD``, it is the *caller's* responsibility to be
        sure that the file descriptor gets closed properly. The caller may close the
        file descriptor immediately after the ``Reader`` object is created.
        
        The ``open_database`` function returns a ``Reader`` object. To look up an IP
        address, use the ``get`` method on this object. The method will return the
        corresponding values for the IP address from the database (e.g., a dictionary
        for GeoIP2/GeoLite2 databases). If the database does not contain a record for
        that IP address, the method will return ``None``.
        
        If you wish to also retrieve the prefix length for the record, use the
        ``get_with_prefix_len`` method. This returns a tuple containing the record
        followed by the network prefix length associated with the record.
        
        Example
        -------
        
        .. code-block:: pycon
        
            >>> import maxminddb
            >>>
            >>> reader = maxminddb.open_database('GeoLite2-City.mmdb')
            >>>
            >>> reader.get('1.1.1.1')
            {'country': ... }
            >>>
            >>> reader.get_with_prefix_len('1.1.1.1')
            ({'country': ... }, 24)
            >>>
            >>> reader.close()
        
        Exceptions
        ----------
        
        The module will return an ``InvalidDatabaseError`` if the database is corrupt
        or otherwise invalid. A ``ValueError`` will be thrown if you look up an
        invalid IP address or an IPv6 address in an IPv4 database.
        
        Requirements
        ------------
        
        This code requires Python 2.7+ or 3.5+. Older versions are not supported. The C
        extension requires CPython. The pure Python implementation has been tested with
        PyPy.
        
        On Python 2, the `ipaddress module <https://pypi.python.org/pypi/ipaddress>`_ is
        required.
        
        Versioning
        ----------
        
        The MaxMind DB Python module uses `Semantic Versioning <https://semver.org/>`_.
        
        Support
        -------
        
        Please report all issues with this code using the `GitHub issue tracker
        <https://github.com/maxmind/MaxMind-DB-Reader-python/issues>`_
        
        If you are having an issue with a MaxMind service that is not specific to this
        API, please contact `MaxMind support <https://www.maxmind.com/en/support>`_ for
        assistance.
        
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python
Classifier: Topic :: Internet :: Proxy Servers
Classifier: Topic :: Internet
Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*
