eGenix mx Base Distribution 3.2.9 GA

eGenix mx Base Distribution 3.2.9 GA

eGenix is pleased to announce the immediate availability of our open source eGenix mx Base Distribution 3.2.9 for Python 2.4 - 2.7, including such popular packages such as mxDateTime and mxTextTools, as well as many other useful productivity increasing tools.


The mx Base Distribution for Python is a collection of professional quality software tools which enhance Python's usability in many important areas such as fast text searching, date/time processing and high speed data types.

The tools have a proven track record of being portable across many Unix and Windows platforms. You can write applications which use the tools on Windows and then run them on Unix platforms without change due to the consistent platform independent interfaces.

The distributions contains these open-source Python extensions, all grouped under the top-level mx Python package:

The package also includes the mxSetup module, which implements our distutils based package tool chain (including the tooling for our Python web installer technology), as well as a number of helpful smaller modules in the mx.Misc subpackage, such as mx.Misc.ConfigFile for config file parsing or mx.Misc.CommandLine to quickly write command line applications in Python.

All available packages have proven their stability and usefulness in many mission critical applications and various commercial settings all around the world.


The 3.2.9 release of the eGenix mx Base Distribution is the latest release of our open-source Python extensions. It includes these fixes and enhancements:

Fixes for all Python Builds

  • Fixed the DateTime value range to only cover dates which can be represented as broken down values. On 32-bit systems, the valid range now is from -5879608-01-01 to 5879609-12-31, on 64-bit systems from -25252734927766552-01-01 to 25252734927766553-12-31.Should be enough for most needs :-)
  • Fixed the DateTimeDelta value range to only cover deltas which can be represented as broken down values. On 32-bit systems, the valid range now is from -2147483647:00:00:00.00 to 2147483647:00:00:00.00, on 64-bit systems from -104249991374:07:36:32.00 to 104249991374:07:36:32.00.
  • Fixed a segfault on Windows when using .strftime() on a DateTime object with leap seconds. mxDateTime will now raise a ValueError instead, since the Windows C runtime strftime() doesn't handle leap seconds and segfaults.
  • Fixed a segfault on Windows when using .strftime() with an unsupported formatting code (e.g. %f). mxDateTime will now raise a ValueError instead, since the Windows C runtime strftime() doesn't like unsupported formatting codes or lone % at the end of the format string and causes a segfault. Thanks to Barry B for reporting this.

Fixes for Python Debug Builds

  • In this patch level release, we have significantly improved the compatibility of eGenix mx Base with Python debug builds, which we previously did not support. Regular Python builds are usually not affected.
  • Fixed crashes of several mx Base packages when using Python debug builds, which were due to the use of free lists. Free lists are disabled for Python debug builds now.
  • Several mx Base packages crashed during interpreter shutdown when using Python debug builds.
  • mxBeeBase: Fixed a memory allocation error when using Python debug builds.
  • mxDateTime crashed when using Python debug builds due to the use of free lists and a non-standard way of dealing with errors inside object constructors, bypassing the logic used by debug builds to trace object allocation. Thanks to Edson Tadeu M. Manoel for bringing this to our attention.
  • mxTools: Fix a segfault in napply() when using Python debug builds.

Installation Enhancements and Fixes (via included mxSetup)

Most of these enhancements and fixes are part of the Python web installer support we added to mxSetup a while ago. If you want to learn more about this web installer technology, please see this talk on the topic.
  • Fixed traceback when building pure Python packages with mxSetup's bdist_prebuilt.
  • mxSetup's web installer now searches for "purepython" and "anyos" tags as fallback when looking for OS dependent packages. It also adds the "anyos" tag to all pure Python packages.
  • Refactored the web installer in mxSetup into a class for easier customization.
  • Added --unicode-aware parameter support to bdist_egg when used with setuptools.
  • mxSetup now always produces PEP 440 compatible version numbers (using mx_version()).
  • Prebuilt archives created on Linux2 will now load fine on Linux3 machines. Same for FreeBSD and other systems which retain backwards compatibility.
  • Prebuilt archives will now also be usable on compatible platforms, e.g. ones compiled on linux2 with linux3 systems and ones for freebsd8 with freebsd9 or freebsd10.
  • Fixed a bug in mxSetup which caused .pyc/.pyo not to get removed when using 'pip uninstall'.
  • Resolved an intermittent error related to hash seeds which sometimes caused prebuilt archives to not install correctly. Thanks to Albert-Jan Roskam for reporting this.
  • Added Raspberry Pi Ver. 2 support to mxSetup.
  • Added support for bdist_wheels to allow building wheels from source or from prebuilt packages using mxSetup.
  • Removed a spurious AttributeError warning showing up when installing egenix-mx-base prebuilt packages on Windows systems without C compiler.
eGenix mx Base Distribution 3.2.0 was release on 2012-08-28. Please see the announcement for new features in the 3.2 major release compared to earlier releases.

For a complete list of changes, please see eGenix mx Base change log page and the change logs of the included Python packages.


We encourage all users to upgrade to this latest eGenix mx Base Distribution release.

If you are upgrading from eGenix mx Base 3.1.x, please see the eGenix mx Base Distribution 3.2.0 release notes for details on what has changed since the 3.1 major release.


The eGenix mx Base Distribution is distributed under the terms of our Public License 1.1.0 which is an open source license similar to the Python license. You can use the packages in both commercial and
non-commercial settings without fee or charge.

This open source distribution package comes with full source code.


Please visit the eGenix mx Base Distribution product page for downloads, instructions on installation and documentation of the packages.

If you want to try the package, please jump straight to the download instructions or simply run pip install egenix-mx-base.

As always, we are providing prebuilt binaries for all supported platforms: Windows 32/64-bit, Linux 32/64-bit, FreeBSD 32/64-bit, Mac OS X 32/64-bit. Source code archives are available for installation on all other Python platforms, such as Solaris, AIX, HP-UX, etc.

To simplify installation in Zope/Plone and other egg-based systems, we have also precompiled egg distributions for all platforms. These are available on our own PyPI-style index server for easy and automatic download. Please see the download instructions for details.

Whether you are using a prebuilt package or the source distribution, installation is a simple "python install" command in all cases. The only difference is that the prebuilt packages do not require a compiler or the Python development packages to be installed.


Commercial support contracts for this product are available from

Please see the support section of our website for details

More Information

For more information on the eGenix mx Base Distribution, licensing and download instructions, please write to

Enjoy !

Marc-Andre Lemburg,

Published: 2015-08-27