- Fix to the classifiers in
setup.py. No code changes.
- This module now uses the
ipaddressmodule for Python 2 rather than theipaddrmodule. Users should notice no behavior change beyond the change in dependencies. - Removed
requirements.txtfromMANIFEST.inin order to stop warning during installation. - Added missing test data.
- Previously if
MODE_FILEwas 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.preadwhen available and a lock whenos.preadis not available (e.g., Python 2). If you are usingMODE_FILEon a Python withoutos.pread, it is recommended that you open the database after forking to reduce resource contention. - The
Metadataclass now overloads__repr__to provide a useful representation of the contents when debugging. - An
InvalidDatabaseErrorwill now be thrown if the data type read from the database is invalid. Previously aKeyErrorwas thrown.
- On Python 3 there was a potential issue where
open_databasewithMODE_AUTOwould 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.
- 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
mmapmodule, the file mode will be used by default. - The preferred method for opening a database is now the
open_databasefunction inmaxminddb. This function now takes an optional readmode. - The C extension no longer creates its own
InvalidDatabaseErrorclass and instead uses the one defined inmaxminddb.errors.
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.
- Corrected initialization of objects in C extension and made the objects behave more similarly to their pure Python counterparts.
- Switched to Apache 2.0 license.
- We now open the database file in read-only mode.
- Minor code clean-up.
- Fixed packaging problem that caused
importto fail.
- This release includes a pure Python implementation of the database reader.
If
libmaxminddbis 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.
- Removed -Werror compiler flag as it was causing problems for some OS X users.
- Refactored code and fixed a memory leak when throwing an exception.
- Added MANIFEST.in
- Initial release