Skip to content

Releases: maxmind/MaxMind-DB-Reader-python

1.4.0

25 May 20:02
Compare
Choose a tag to compare
  • IMPORTANT: Previously, the pure Python reader would allow
    ipaddress.IPv4Address and ipaddress.IPv6Address objects when calling
    .get(). This would fail with the C extension. The fact that these objects
    worked at all was an implementation detail and has varied with different
    releases. This release makes the pure Python implementation consistent
    with the extension. A TypeError will now be thrown if you attempt to
    use these types with either the pure Python implementation or the
    extension. The IP address passed to .get() should be a string type.
  • Fix issue where incorrect size was used when unpacking some types with the
    pure Python reader. Reported by Lee Symes. GitHub #30.
  • You may now pass in the database via a file descriptor rather than a file
    name when creating a new maxminddb.Reader object using MODE_FD.
    This will read the database from the file descriptor into memory. Pull
    request by nkinkade. GitHub #33.

1.3.0

13 Mar 15:58
Compare
Choose a tag to compare
  • maxminddb.Reader and the C extension now support being used in a context
    manager. Pull request by Joakim Uddholm. GitHub #21 & #28.
  • Provide a more useful error message when MODE_MMAP_EXT is requested but
    the C extension is not available.

1.2.3

11 Jan 17:29
Compare
Choose a tag to compare
  • Improve compatibility with other Python 2 ipaddress backports. Although
    ipaddress is highly recommended, py2-ipaddress and
    backport_ipaddress should now work. Incompatibility reported by
    John Zadroga on geoip2 GitHub issue #41.

1.2.2

21 Nov 22:31
Compare
Choose a tag to compare
  • Fix to the classifiers in setup.py. No code changes.

1.2.1: Use ipaddress instead of ipaddr on Python 2. Packaging fixes.

10 Jun 16:14
Compare
Choose a tag to compare
  • This module now uses the ipaddress module for Python 2 rather than the
    ipaddr module. Users should notice no behavior change beyond the change
    in dependencies.
  • Removed requirements.txt from MANIFEST.in in order to stop warning
    during installation.
  • Added missing test data.

1.2.0: MODE_FILE fix when reader is loaded before forking

07 Apr 22:20
Compare
Choose a tag to compare
  • Previously if MODE_FILE was used and the database was loaded before
    forking, the parent and children would use the same file table entry without
    locking causing errors reading the database due to the offset being changed
    by other processes. In MODE_FILE, the reader will now use os.pread
    when available and a lock when os.pread is not available (e.g., Python
    2). If you are using MODE_FILE on a Python without os.pread, it is
    recommended that you open the database after forking to reduce resource
    contention.
  • The Metadata class now overloads __repr__ to provide a useful
    representation of the contents when debugging.
  • An InvalidDatabaseError will now be thrown if the data type read from
    the database is invalid. Previously a KeyError was thrown.

1.1.1: Python 3 MODE_AUTO fix

10 Dec 15:47
Compare
Choose a tag to compare
  • On Python 3 there was a potential issue where open_database with
    MODE_AUTO would try to use the C extension when it was not available.
    This could cause the function to fail rather than falling back to a pure
    Python mode.

1.1.0: Memory and file more for Python reader

09 Dec 18:58
Compare
Choose a tag to compare
  • The pure Python reader now supports an optional file and memory mode in
    addition to the existing memory-map mode. If your Python does not provide
    the mmap module, the file mode will be used by default.
  • The preferred method for opening a database is now the open_database
    function in maxminddb. This function now takes an optional read
    mode.
  • The C extension no longer creates its own InvalidDatabaseError class
    and instead uses the one defined in maxminddb.errors.

1.0.0

22 Sep 16:12
Compare
Choose a tag to compare
  • First production release.
  • Two potential C extension issues discovered by Coverity were fixed:
    • There was a small resource leak that occurred when the system ran out of
      memory.
    • There was a theoretical null pointer issue that would occur only if
      libmaxminddb returned invalid data.

0.3.3

09 Apr 20:43
Compare
Choose a tag to compare
0.3.3 Pre-release
Pre-release
  • Corrected initialization of objects in C extension and made the objects
    behave more similarly to their pure Python counterparts.