eGenix.com mx Base Distribution

eGenix.com mx Base Distribution

The eGenix.com mx Base Distribution contains the open source parts of the eGenix.com mx Extension series, with such popular packages such as mxDateTime and mxTextTools, as well as many other useful productivity increasing tools.
Version: 3.2.9

Introduction

The eGenix.com 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 packages in the distribution have a proven track record of being portable across many Unix and Windows platforms. You can write applications which use the packages on Windows and then run them on Unix platforms without change due to the consistent platform independent interfaces.

We are using the included packages on a daily basis in custom projects, on our own servers and for client installations. Many large corporations are building their Python applications on parts of the eGenix.com mx Base Distribution. It is also included in popular Linux distributions, such as RedHat, OpenSUSE, Debian, Ubuntu, etc.

Distribution Contents

The eGenix.com mx Base Distribution contains these open-source Python extensions, all grouped under the top-level mx Python package:

mxDateTime - Date/Time Library for Python

mxDateTime implements three new object types, DateTime, DateTimeDelta and RelativeDateTime and many tools based on these for doing easy conversion between and parsing of various date/time formats.

The main focus is on performance, usability and making sure that date/time values roundtrip safely. The types are also fully interoperable with Python's datetime module and often provide a much more intuitive approach to date/time calculations.

mxTextTools - Fast Text Parsing and Processing Tools for Python

mxTextTools provides several useful functions and types that implement high-performance text parsing, processing and search algorithms.

It includes a Python-programmable very fast state machine, the Tagging Ending, specifically designed for pattern matching and written in highly optimized C for both Unicode and char/byte strings.

mxProxy - Object Access Control for Python

mxProxy implements a new proxy type to provide low-level object access control, weak referencing and a cleanup protocol.

It's ideal for use in restricted execution environments.

mxBeeBase - On-disk B+Tree Based Database Kit for Python

mxBeeBase is a high performance construction kit for disk based indexed databases. It offers components which you can plug together to easily build your own custom mid-sized databases and comes with ready to use on-disk dictionary implementations.

mxURL - Flexible URL Data-Type for Python

mxURL provides a new datatype for storing and manipulating URL values as well as helpers related to URL building, encoding and decoding.

mxUID - Fast Universal Identifiers for Python

mxUID implements a fast mechanism for generating universal identification strings (UIDs).

mxStack - Fast and Memory-Efficient Stack Type for Python

mxStack implements a fast and memory efficient stack object type.

mxQueue - Fast and Memory-Efficient Queue Type for Python

mxQueue implements a fast and memory efficient queue object type.

mxTools - Fast Everyday Helpers for Python

mxTools provides a collection of handy functions and objects for every day Python programming. It includes many functions that you've often missed in Python.

More Content

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.

Please refer to the source code of these modules for documentation.

Documentation

Documentation for the packages included in the eGenix mx Base Distribution is provided in form of PDF files. These get installed as part of the installation process and reside in the mx/pkgname/Doc/ folders of the respective packages.

You can also download the package documentation or view the files online from their respective product pages.

License

The eGenix mx Base Distribution is covered by the eGenix.com Public License Agreement 1.1.0 which is an Open Source license based on the CNRI Python license.

In simple words, you are free to use the software without paying fees or royalties as long as you give proper attribution and keep the license document together with the software. Please see the license document for details and consult a lawyer if you have legal questions.

Download

We provide downloads for the following platforms.

Please make sure you download the right distribution archive for your Python installation.

IMPORTANT:
By downloading, installing or using the eGenix mx Base Distribution, you agree to the terms and conditions set forth in the eGenix.com Public License Agreement 1.1.0 which is an Open Source license based on the CNRI Python license.

Windows (x86 - 32-bit):

>>> URL MD5 SHA1 GPG

Please always download the correct installer for your Python version, otherwise you won't be able to install the packages.

For instructions on how to install the prebuilt distributions, please see the installation section below.

Windows (x64 - 64-bit):

>>> URL MD5 SHA1 GPG

Please always download the correct installer for your Python version, otherwise you won't be able to install the packages. If you are using a 32-bit Python version on a Windows 64-bit OS, please download the above 32-bit version instead.

For instructions on how to install the prebuilt distributions, please see the installation section below.

Linux (i686 - 32-bit):

>>> URL MD5 SHA1 GPG

For instructions on how to install these prebuilt distributions, please see the installation section below.

Linux (x86_64 - 64-bit):

>>> URL MD5 SHA1 GPG

For instructions on how to install these prebuilt distributions, please see the installation section below.

Mac OS X (Universal Binaries - 32-bit PPC+Intel):

>>> URL MD5 SHA1 GPG

You will need the UCS2 version of the distribution if you plan to use it with the Python version shipped with Mac OS X.

Note: Even though the files for Python 2.4 are named "...ppc...", they still contain universal binaries. The name is due to a bug in distutils for Python 2.4.

For instructions on how to install these prebuilt distributions, please see the installation section below.

Mac OS X (64-bit Intel):

>>> URL MD5 SHA1 GPG

You will need the UCS2 version of the distribution if you plan to use it with the Python version shipped with Mac OS X.

For instructions on how to install these prebuilt distributions, please see the installation section below.

FreeBSD (i386 - 32-bit):

>>> URL MD5 SHA1 GPG

For instructions on how to install these prebuilt distributions, please see the installation section below.

FreeBSD (amd64 - 64-bit):

>>> URL MD5 SHA1 GPG

For instructions on how to install these prebuilt distributions, please see the installation section below.

Source Code (for all other platforms):

>>> URL MD5 SHA1 GPG

For instructions on how to install from source code, please see the installation section below.

Easy Install / Setuptools / pip / zc.buildout:

If you want to use easy_install / setuptools / pip for installation, you can use these commands:

easy_install egenix-mx-base or  pip install egenix-mx-base

Please note that you will need a C compiler for this type of installation to work, in case our new web installer cannot find a suitable prebuilt binary.

eGenix.com PyPI-style Indexes

If you don't have a C compiler available, you can also use our egg builds of the packages. Simply point easy_install to our egg indexes for UCS2 builds or UCS4 builds:

easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base
for UCS2 builds of Python (this includes all Windows and Mac OS X builds), or
easy_install -i https://downloads.egenix.com/python/index/ucs4/ egenix-mx-base
for UCS4 builds of Python (most Linux and FreeBSD distributions).

If you are using zc.buildout, you only have to register the above PyPI-style index URLs with buildout in the buildout.cfg file and then reference the package by name in the eggs properties.

Other Platforms:

If you need distribution archives for platforms not mentioned here, please contact support@egenix.com for details. It is very likely that we can find a way to help you.

Python Unicode Version (UCS2 vs. UCS4)

On Unix it is important to know whether you need to download a distribution for a narrow Unicode build of Python (UCS2) or a wide version (UCS4).On Windows, Python is always shipped as UCS2 build.

Most Unixes ship with wide Python builds these days (including RedHat and SuSE). In order to make sure, please run the following command which will tell you what kind of Python installation you have:

python -c "import sys;print(sys.maxunicode<66000)and'UCS2'or'UCS4'"

If you get errors such as "unresolved symbol PyUnicodeUCS2_AsEncodedString" when trying to load an extension from the distribution, you have likely installed an archive for a wrong Unicode version.

Installation

Installation of eGenix mx Base is straight forward, since no additional configuration or dependencies have to be taken into account.

We offer several different methods for your convenience:

Web Installer

The web installer is available for download on the product's Python Package Index (PyPI) page. Installation tools will automatically pick up this installer when used without any extra options or URLs.

The web installer will then determine the installation platform, select the right binary download package and install the corresponding prebuilt archive for you. If the web installer fails to find a suitable binary, please try one of the other methods explained below and report the problem to our support team.

Examples:

setuptools' easy_install:

easy_install egenix-mx-base

pip installer:

pip install egenix-mx-base

zc.buildout configuration manager:

builout.cfg:
eggs += egenix-mx-base

Download and unzip the installer from PyPI and run:

cd egenix-mx-base-3.2.9
python setup.py install

Windows Installer

Installation using the Windows installers is straight forward: just double-click on the installer EXE or MSI file and follow the instructions.

Both installers register the distribution with the Windows software registry, so you can easily uninstall the distribution should you require to do so.

With the new MSI installer you also have the option to run the installer without the GUI or to integrate it into an automatic installation process. Please see the MSI installer documentation on the Python web-site for details.

To uninstall the distribution, please use the standard Windows software registry.

Prebuilt Distribution Installation

To reduce the number of binaries that we have to create for each release, we have adapted a new generic distribution format that works on all Python platforms: the Prebuilt Distribution Format.

Technically, this format is a standard Python distutils distribution, but with only the build/ directory and without the source tree.

System-wide Installation

In order to install such a distribution, please follow these instructions:

  1. Download and unzip the archive into a temporary directory
  2. Change into the distribution directory
  3. Run the following command using the Python interpreter with which you intend to work (this could be the default one, or an application specific one depending on your needs):
    sudo python setup.py install
    On Windows and some other platforms that don't have sudo, please run the above without sudo as administrator or root.

The distribution will then be installed into the standard directory for Python extensions of your Python installation (usually the site-packages/ subdirectory of the Python standard library directory).

To uninstall, follow the same steps as above, but use the command uninstall instead:

sudo python setup.py uninstall

User Installation

You will need to be able to sudo on the target machine or know the root password for the above to work. If you don't have permission to install packages as root, you can still install the distribution into a local directory, e.g. ~/lib/python by using the following installation command:

python setup.py install --home=/home/user/

This will install the distribution into the directory /home/user/lib/python/. In order to have Python see this directory and make it useable for import, you have to adjust the PYTHONPATH environment variable to include this directory, e.g.

export PYTHONPATH=/home/user/lib/python 

To see all the possible installation options, run the install script using the help options:

python setup.py install --help

To uninstall, follow the same steps as above, but use the command uninstall instead:

sudo python setup.py uninstall --home=/home/user/

Source Code Installation

To install from source, please unzip the source archive and then run the following command in the distribution directory:

sudo python setup.py install

Please make sure that you are using the Python binary for which you want to install the distribution. The installer will then automatically choose the correct path for the installation.

If you don't have root permissions on the target machine, you can use the same approach as for the prebuilt distribution outlined above for a user installation in the /home/user/lib/python directory:

python setup.py install --home=/home/user/

Please remember to setup the PYTHONPATH to include the /home/user/lib/python directory:

export PYTHONPATH=/home/user/lib/python 

Otherwise, Python won't see the new installation and thus won't be able to import it.

To uninstall, follow the same steps as above, but use the command uninstall instead of install.

Support

eGenix offers these support options:

Commercial Support

Professional level support for this product as well as all other eGenix products and Python itself is available directly from the developers at eGenix.com.

Consulting

eGenix.com offers professional consulting services for all questions and tasks around this product, including customized modifications, help with integration and on-site problem solving. Please contact sales@egenix.com for details.

Free User Support

In order for our users to keep in touch and be able to help themselves, we have created the egenix-users user mailing list.

History & Changes

Please see the change log for details regarding changes to the distribution between releases.

The following older releases are still available for download, together with the corresponding documentation: