ANN: mx Extension Series for Python 2.0
Wed, 01 Nov 2000 15:43:51 +0100
mx Extension Series for Python 2.0
Full Source Python extensions providing important and useful
services for Python programmers.
WHAT IS IT ?:
The mx Extension Series is a collection of Python software packages
which aims at providing professional quality add-ons for the Open
Source Language Python (see http://www.python.org).
All of the available packages are proven in every day use and fullfil
mission critical jobs in various commercial settings all around the
The two most well-known packages 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.
WHAT'S NEW ?
The new download archives now all include binaries for Windows
platforms which were compiled against Python 2.0. This means that
installing the extensions on Windows boils down to unzipping the
archives into C:\Python20\Lib. Versions for Python 1.5.2 are still
More packages and updated versions of the existing packages will be
published in the first quarter 2001. All mx Extension Series packages
will then move under a new top-level package named "mx".
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
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
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
site.py script and they will be available to all users at your
site as if they were installed in the Python interpreter itself.
mxCrypto - Interface to Eric Young's SSLeay/OpenSSL
mxCrypto is an extension package that provides OO-style access to
the cipher algorithms and hash functions included in SSLeay, a
very nifty cryptographic lib written by Eric Young now maintained
by the OpenSSL team.
Apart from being usable stand-alone, it provides hooks that make
it work as high quality fill-in for the missing parts in Andrew
Kuchling's pycrypt export package. Due to the ITAR export
restrictions on cryptographic software Andrew's implementations
are not legally downloadable from outside the US. SSLeay/OpenSSL
is available world-wide.
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.
WHERE CAN I GET IT ?
The download archives, full documentation and instructions for
installing the packages can be found at:
WHAT DOES IT COST ?
Most packages come with a Python-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 license comparable to the old MySQL license: it is
only free for in-house use. If you use it in consulting work or
otherwise redistribute it in a commercial setting, you will have to
get a commercial license. More information about mxODBC licensing is
The next version of mxODBC will be made available as shareware in
order to support further development of the software (including full
Unicode support, support for ODBC 3.5 data types and special hooks for
vendor specific ODBC extensions such as binding to files).
WHERE CAN I GET SUPPORT ?
Commercial support for these packages will be available from
eGenix.com Software starting in January 2001. If you'd like more
information about this service, contact the eGenix.com helpdesk at
<P><A HREF="http://starship.python.net/~lemburg/mxExtensions.html> mx
Extension Series for Python 2.0</A> - mx Extension Series for Python
Python Pages: http://www.lemburg.com/python/