Releases: maxmind/MaxMind-DB-Reader-python
Releases · maxmind/MaxMind-DB-Reader-python
1.2.0: MODE_FILE fix when reader is loaded before forking
- 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. InMODE_FILE
, the reader will now useos.pread
when available and a lock whenos.pread
is not available (e.g., Python
2). If you are usingMODE_FILE
on a Python withoutos.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 aKeyError
was thrown.
1.1.1: Python 3 MODE_AUTO fix
- 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
- 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
themmap
module, the file mode will be used by default. - The preferred method for opening a database is now the
open_database
function inmaxminddb
. This function now takes an optional read
mode
. - The C extension no longer creates its own
InvalidDatabaseError
class
and instead uses the one defined inmaxminddb.errors
.
1.0.0
- 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.
- There was a small resource leak that occurred when the system ran out of
0.3.3
0.3.2
0.3.1
0.3.0 Added pure Python implementation
- This release includes a pure Python implementation of the database reader.
Iflibmaxminddb
is not available or there are compilation issues, the
module will fall-back to the pure Python implementation. - Minor changes were made to the exceptions of the C extension make them
consistent with the pure Python implementation.
0.2.1
Cleaned up code
- Refactored code and fixed a memory leak when throwing an exception.