ANN: mx Extensions -- Version 2.0.0 (mxODBC, mxDateTime, ...)

M.-A. Lemburg mal at
Thu Feb 22 23:04:29 CET 2001



      mx Extension Series for Python
                            Version 2.0.0

      Full Source Python extensions providing important and useful
                  services for Python programmers.



The mx Extensions for Python are a collection of
professional quality software tools which enhance Python's usability
in many important areas such as ODBC database connectivity, fast text
processing, date/time processing and web site programming.

Python is an open-oriented Open Source programming language which runs
on all modern platforms. By integrating ease-of-use, clarity in
coding, enterprise application connectivity and rapid application
design, Python establishes an ideal programming platform for todays IT

The tools have a proven record of being portable across many Unix and
Windows platforms, e.g. you can write applications which use an ODBC
database on Windows which then run on Unix platforms without change
due to the consistent platforms independent interfaces.

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

The two most well-known subpackages from the mx Extension
Series are mxDateTime and mxODBC providing date/time services and
professional ODBC database connectivity on practically all supported
Python platforms. These two packages enable database software which is
portable not only across platforms, but also across database backends.



mxODBC, mxDateTime and all other mx packages are now maintained by my
new company Software GmbH, Langenfeld in Germany
( This move will provide a better base for
future development and also assures the availability of commercial
support, which is important for companies building applications based
on the mx Extensions.

The new versions of the mx Extensions use the Python 2.0
distutils packaging technology to simplify installation and use of the
many different subpackages. This is expected to greatly enhance the
installation and usage experience of the software.

In additions to many subpackage enhancements, this new release
repackages all mx Extensions under a new top-level package named
'mx'. This will allow you to use the subpackages side-by-side with
other Python tools using similar names.

The software is now delivered in two download archives: the
mx BASE package which holds all the Open Source tools from the series
and provides the basis for the other add-ons and the mx
COMMERCIAL package which currently only contains the mxODBC package.
The two packages are covered by the Public License and the Commercial License respectively. Details about the licenses
can be found at:

SPECIAL OFFER has licensed the COMMERCIAL package (which includes
mxODBC) for inclusion in their brand new Qt-based Python IDE
BackAdder. It allows developing portable GUI-based database
applications which run on Windows and Linux platforms without any
change to the source code.

BlackAdder includes a 1 CPU license for this package at no extra cost,
so you may want to check out their great new product. See

for details.



mxDateTime - Generic Date/Time Types

     mxDateTime is an extension package that provides three new object
     types, DateTime, DateTimeDelta and RelativeDateTime, which let
     you store and handle date/time values in a much more natural way
     than by using ticks (seconds since 1.1.70 0:00 UTC; the encoding
     used by the time module).

     You can add, subtract and even multiply instances, pickle and
     copy them and convert the results to strings, COM dates, ticks
     and some other more esoteric values. In addition, there are
     several convenient constructors and formatters at hand to greatly
     simplify dealing with dates and times in real-world applications.

     In addition to providing an easy-to-use Python interface the
     package also exports a comfortable C API interface for other
     extensions to build upon. This is especially interesting for
     database applications which often have to deal with date/time
     values (the mxODBC package is one example of an extension using
     this interface).

mxTextTools - Fast Text Processing Tools

     mxTextTools is an extension package for Python that provides
     several useful functions and types that implement
     high-performance text manipulation and searching algorithms in
     addition to a very flexible and extendable state machine, the
     Tagging Engine, that allows scanning and processing text based on
     low-level byte-code "programs" written using Python tuples. It
     gives you access to the speed of C without the need to do any
     compile and link steps every time you change the parsing

     Applications include parsing structured text, finding and
     extracting text (either exact or using translation tables) and
     recombining strings to form new text.

mxStack - Fast and Memory-Efficient Stack Type

     mxStack is an extension package that provides a new object type
     called Stack. It works much like what you would expect from such
     a type, having .push() and .pop() methods and focusses on
     obtaining maximum speed at low memory costs.

mxTools - Collection of Additional Builtins

     mxTools is an extension package that includes a collection of
     handy functions and objects giving additional functionality in
     form of new builtins to the Python programmer.

     The package auto-installs the new functions and objects as
     builtins upon first import. This means that they become
     instantely available to all other modules without any further
     action on your part. Add the line import NewBuiltins to your script and they will be available to all users at your
     site as if they were installed in the Python interpreter itself.

mxProxy - Generic Proxy Wrapper Type

     mxProxy is an extension package that provides a new type that is
     suitable to implement Bastion like features without the need to
     use restricted execution environments.

     The type's main features are secure data encapsulation (the
     hidden objects are not accessible from Python since they are
     stored in internal C structures), customizable attribute lookup
     methods and a cleanup protocol that helps in breaking circular
     references prior to object deletion.

     The latest version adds a very interesting new feature: weak
     references which help you work with circular references in a way
     that doesn't cause memory leakage in a Python system.

mxBeeBase - On-disk B+Tree Based Database Kit

     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 (the
     current size limit is <CODE>sizeof(long)</CODE> which gives you
     an address range of around 2GB on 32-bit platforms).
     The two basic building blocks in mxBeeBase are storage and
     index. Storage is implemented as variable record length data
     storage with integrated data protection features, automatic data
     recovery and locking for multi process access. Indexes use a high
     performance optimized B+Tree implementation built on top of
     Thomas Niemann's Cookbook B+Tree implementation

     Note: mxBeeBase is new in this release and still in beta.



mxODBC - Generic ODBC 2.0 interface

     mxODBC is an extension package that provides a Python Database
     API compliant interface to ODBC 2.0 capable database drivers and

     In addition to the capabilities provided through the standard DB
     API it also gives access to a rich set of catalog methods which
     allow you to scan the database for tables, procedures,
     etc. Furthermore, it uses the mxDateTime package for date/time
     value interfacing eliminating most of the problems these types
     normally introduce (other in/output formats are available too).

     The latest version of the interface allows you to interface to
     more than one database from one process. It includes a varity of
     preconfigured setups for many commonly used databases such as
     MySQL, Oracle, Informix, Solid and many more. A precompiled
     version of the extension for use with the Windows ODBC manager is
     also included.



The download archives and instructions for installing the packages can
be found at:



The BASE packages come with a Python 2.0 style license, which means
that you can use them in both commercial and non-commercial settings
without fee or charge. All packages come with full source code.

mxODBC comes with a new licenses which allows non-commercial use
at no charge, but costs a moderate fee for commercial use. Please see

for details.



Commercial quality support for these packages is available from Software GmbH. Please see 

for details about the eGenix support offerings.



<P><A HREF=""> mx
Extension Series</A> - mx Extension Series with distutils
support and precompiled binaries for Windows and Linux. (22-Feb-2001)


...thanks for reading this far ;-)

In the spirit of Python software announcements, I am leaving off for
the Python Conference in Long Beach, California tomorrow. 

If you have any problems with these packages or the downloads, please
email me at mal at I will read your mail once I get back from
the conference and will do my best make the mx Extensions a
success for you.

See you at the conference,
Marc-Andre Lemburg
Company & Consulting:                 
Python Pages:                 

More information about the Python-list mailing list