BASE package ( mxDateTime : mxTextTools : mxStack : mxTools : mxProxy : History : Download ) COMMERCIAL package ( mxODBC : History : Buy Licenses : Download ) EXPERIMENTAL package ( mxNumber : mxTidy : mxURL : mxUID : History : Download ) Commercial Support : Home |
Please note: We've announced version 3.0 of the eGenix.com mx Extension Series on 2007-05-10. For more information, please go to the new home page for the extensions or select the relevant package from the above menu (under "Products"). You can find the announcements for these new versions in our news section. Thank you.
The eGenix.com mx Extensions for Python are a collection of professional quality Python 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.
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 platform independent interfaces.
All of the available packages have shown their stability and usefulness in many mission critical applications and various commercial settings all around the world.
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.
mxODBC, mxDateTime and all other mx packages are maintained by eGenix.com Software GmbH, Langenfeld in Germany. This assures the availability of commercial support, which is important for companies building applications based on the eGenix.com mx Extensions.
All new versions of the eGenix.com mx Extensions use the Python 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.
The software is delivered in three download archives:
The packages are covered by the eGenix.com Public License and/or the eGenix.com Commercial License. Details about the licenses can be found on the eGenix.com License Page.
The following subpackages are included in the eGenix.com mx Extension series, each providing fast and efficient implementations for various application domains. All subpackages live in the mx top-level Python package to avoid naming collisions with other Python software.
mxTextTools - Fast Text Processing Tools mxStack - Fast and Memory-Efficient Stack Datatype mxTools - Collection of Additional Builtins mxProxy - Generic Object Proxy & Weak Reference Datatype mxBeeBase - On-disk B+Tree Database Construction Kit >>> Download |
supports Python 1.5.2 and Unicode for Python 2.0 and later >>> Download and Buy Licenses |
The eGenix.com mx BASE package contains the Open Source parts of the eGenix.com mx Extension series. They are shipped under the new eGenix.com Public License Agreement Version 1.0.0. This license is an enhanced version of the Python 2.0 license and allows you to use and redistribute the eGenix.com mx BASE package in commercial and non-commercial applications without having to pay a fee or royalties.
The following subpackages are included in the BASE package:
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 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 description.
Applications include parsing structured text, finding and extracting text (either exact or using translation tables) and recombining strings to form new text.
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 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
mx.Tools.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.
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 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
sizeof(long)
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.
IMPORTANT: By downloading, installing or using the egenix-mx-base package, you agree to the terms and conditions set forth in the eGenix.com Public License Agreement Version 1.0.0 which is an Open Source license comparable to the Python license.
Commercial Support:
Consulting:
Free User Support: Windows:
Linux:
All Platforms (source distribution):
Notes:
|
On Unix systems supporting the RPM formats the
package can be installed using the standard operating system
tools, e.g. rpm -i egenix-mx-base-xxxx.rpm
will
install the package and rpm -e
egenix-mx-base-xxxx
deinstall it. When installing
packages for multiple Python versions, be sure to first
install the RPM for the oldest Python version and then
proceed with the more recent ones (or use the
--force
option to install them in any order).
Note that the above RPMs install the extensions into
/usr/ not /usr/local/ !
On Windows platforms the preferred method for installation is using the the Windows installer, since this doesn't require a C compiler to be installed on the system. Thanks to Thomas Heller the installer also support uninstall using the standard Windows uninstall procedure.
All other platforms can use the distutils
based installation which allows building and installing the
package using the installed Python interpreter and the
standard system C compiler. On such a system, unzip the
package archive to a temporary directory and then run
python setup.py install
to install the package
and python setup.py uninstall
to uninstall it
again. Documentation about the usage of distutils (which is
part of Python since version 2.0) is available online at the
distutils
documentation site.
Note that this change log only lists changes to the package in general, not all the changes to the included subpackages. Please refer to the subpackage documentation for more detailed information.
Changes from 2.0.5 to 2.0.6:
Changes from 2.0.4 to 2.0.5:
Changes from 2.0.3 to 2.0.4:
Changes from 2.0.2 to 2.0.3:
Changes from 2.0.1 to 2.0.2:
Changes from 2.0.0 to 2.0.1:
The eGenix.com mx COMMERCIAL package contains the commercial parts of the eGenix.com mx Extension series. They are shipped under the new eGenix.com Commercial License Agreement Version 1.0.0. This license allows use of the software in non-commercial environment without fee or royalty, but requires buying licenses for commercial use or redistribution. Please contact licenses@egenix.com for details about redistribution terms.
Note that evaluation of the eGenix.com mx COMMERCIAL package in commercial environments is possible during the first 30 days after initial installation, so that you can test the software thoroughly before making the decision to buy the license or to stop using the software.
The package comes with full source code, providing you with the benefit of being able to dive into the details of the implementation or to extend/adapt the functionality to your needs.
The following subpackage is included in the COMMERCIAL package:
mxODBC is an extension package that provides a Python Database API compliant interface to ODBC capable database drivers and managers (supported ODBC versions are 2.0 - 3.5).
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 new version does not only allow you to interface to more than one database from one process, it also comes with support for Unicode (which was added to Python in version 2.0).
The source package includes a varity of preconfigured setups for many commonly used databases such as MySQL, Oracle, Informix, Solid and many more. Precompiled versions of the extension for use with the Windows ODBC manager and the Unix iODBC manager are also available.
IMPORTANT: By downloading, installing or using egenix-mx-commercial package, you agree to the terms and conditions set forth in the eGenix.com Commercial License Agreement Version 1.0.0.
Prerequisites:
Commercial Support:
Consulting:
Free User Support:
|
On Unix systems supporting the RPM formats the
package can be installed using the standard operating system
tools, e.g. rpm -i
egenix-mx-commercial-xxxx.rpm
will install the
package and rpm -e egenix-mx-commercial-xxxx
deinstall it. If you don't have both iODBC and unixODBC
installed on your system, you should try to run rpm -i
--nodeps egenix-mx-commercial-xxxx.rpm
. This will
skip the dependency checks and forces an install even though
RPM cannot find all required libs.
On Windows platforms the preferred method for installation is using the the Windows installer, since this doesn't require a C compiler to be installed on the system. Thanks to Thomas Heller the installer also support uninstall using the standard Windows uninstall procedure.
All other platforms can use the distutils
based installation which allows building and installing the
package using the installed Python interpreter and the
standard system C compiler. On such a system, unzip the
package archive to a temporary directory and then run
python setup.py install
to install the package
and python setup.py uninstall
to uninstall it
again. Documentation about the usage of distutils (which is
part of Python since version 2.0) is available online at the distutils
documentation site.
Note: Using mxODBC in commercial environment is not free of charge. If you intend to use mxODBC in your company, you will have to get a proper license from eGenix.com after the initial 30-day evaluation period (which starts at the time of download).
License Offerings |
End-User Licenses for commercial end-users are available as CPU licenses which allow installing and using mxODBC on one machine. Prices start at USD 95.00 / EUR 75.00 for a 1-CPU license, for volume discounts, please see the eGenix.com Online Shop. We also offer site and corporate licenses; please write to sales@egenix.com for quotes on these. |
Developers For developers we have added a Developer CPU license which allows redistribution of mxODBC as part of products built using the developer license. The Developer CPU license costs USD 1,650.00 / EUR 1,250.00 per developer CPU. If you want to redistribute mxODBC as part of a product on a per-CPU basis (rather than on a per-developer basis), we have a special license agreement for this as well. Please send your request to licenses@egenix.com. |
Ordering
mxODBC and all other mx packages are maintained by eGenix.com Software GmbH, Langenfeld in Germany. To buy licenses, please visit our secure eGenix.com Online Shop which is powered by our partner ShareIT.com (a service of the Element 5 AG, Cologne, Germany). Payment options include credit card, bank/wire transfer, check and cash, billed in many different currencies including US dollars and Euro.
When ordering a license, you will receive a license key by email which identifies your license and works as temporary Proof of Authorization for the version you ordered as mentioned in the eGenix.com Commercial License. After having received the order, eGenix.com will then send you a signed Proof of Authorization within four weeks.
For more details on payment options and licensed usage, please check the eGenix.com Online Shop and the eGenix.com Licenses.
Support
Support for the Python mx Extensions is available as well. See the Support Section of this page for details.
Please send support questions regarding the new licenses to licenses@egenix.com.
If you want to know more about the provided services, please contact the eGenix.com Information Desk.
Note that this change log only lists changes to the package in general, not all the changes to the included subpackages. Please refer to the subpackage documentation for more detailed information.
Changes from 2.0.6 to 2.0.7:
Changes from 2.0.5 to 2.0.6:
Changes from 2.0.4 to 2.0.5:
Changes from 2.0.3 to 2.0.4:
Changes from 2.0.2 to 2.0.3:
Changes from 2.0.1 to 2.0.2:
Changes from 2.0.0 to 2.0.1:
The eGenix.com mx EXPERIMENTAL package contains experimental software which will eventually be integrated into one of the standard eGenix.com mx Extension series packages.
The package may contain subpackages which are shipped under the eGenix.com Public License Agreement Version 1.0.0, the eGenix.com Commercial License Agreement Version 1.0.0 and other licenses such as the Library GNU Public License (LGPL) or MIT licenses.
Please note that the software in these packages is still in alpha or beta state and does not meet the quality standards of production quality software.
The following subpackages are included in the EXPERIMENTAL package:
mxNumber is an extension package which provides access to a new set of basic numeric types.
The package uses the GNU Multi-Precision Library (GMP) as basis for providing this functionality at high performance on a wide range of platforms including all Unix and Windows platforms. This library is licensed under the Library GNU Public License (LGPL) which means that it does not have the viral character as the standard GPL does. It usable with software which is not GPL-compatible, such as closed-source commercial software.
This mxNumber package is licensed under the eGenix.com Public License Agreement Version 1.0.0; the Windows package also includes a pre-compiled version of the GNU Multi-Precision Library (GMP) which eGenix.com ported to Windows. The patches needed for porting GMP to Windows are also included in the source package.
Note: mxNumber relies on the new coercions features in Python 2.1. Older Python versions are not supported and mxNumber won't run with these versions.
mxTidy provides a Python interface to a thread-safe, library version of the HTML Tidy. command line tool.
HTML Tidy helps you to cleanup coding errors in HTML and XML files and produce well-formed HTML, XHTML or XML as output. This allows you to preprocess web-page for inclusion in XML repositories, prepare broken XML files for validation and also makes it possible to write converters from well-known word processing applications such as MS Word to other structured data representations by using XML as intermediate format.
mxURL provides a new datatype for storing and manipulating URL values as well as a few helpers related to URL building, encoding and decoding.
The main intention of the package is to provide an easy to use, fast and lightwheight datatype for Universal Resource Locators (note the W3C now calls these URIs).
mxUID provides a fast mechanism for generating universal identification strings (UIDs). The intent is to make these UIDs unique with high probability in order to serve as object or data set identifiers.
A typical use lies in generating session IDs. Other areas where unique IDs play an important role are RPC-implementations, ORBs, etc.
IMPORTANT: By downloading, installing or using the egenix-mx-experimental package, you agree to the terms and conditions set forth by the licenses of the included subpackages (see previous section for details).
Prerequisites:
Commercial Support:
Consulting:
Free User Support: Windows:
Linux:
All Platforms (source distribution): |
On Unix systems supporting the RPM formats the
package can be installed using the standard operating system
tools, e.g. rpm -i
egenix-mx-experimental-xxxx.rpm
will install the
package and rpm -e egenix-mx-experimental-xxxx
deinstall it. When installing packages for multiple Python
versions, be sure to first install the RPM for the oldest
Python version and then proceed with the more recent ones
(or use the --force
option to install them in
any order).
The UCS2 Unicode builds of the RPMs are needed for older SuSE and RedHat systems. More recent Linux distributions have switched to UCS4 Unicode for their Python distribution. You cannot mix UCS2 and UCS4 builds of Python and binary extensions. If you get unresolved symbols when loading binary extensions that mention UCS2 or UCS4, it is likely that you installed the wrong version of the RPM for your system.
On Windows platforms the preferred method for installation is using the the Windows installer, since this doesn't require a C compiler to be installed on the system. Thanks to Thomas Heller the installer also support uninstall using the standard Windows uninstall procedure.
All other platforms can use the distutils
based installation which allows building and installing the
package using the installed Python interpreter and the
standard system C compiler. On such a system, unzip the
package archive to a temporary directory and then run
python setup.py install
to install the package
and python setup.py uninstall
to uninstall it
again. Documentation about the usage of distutils (which is
part of Python since version 2.0) is available online at the
distutils
documentation site.
Note that this change log only lists changes to the package in general, not all the changes to the included subpackages. Please refer to the subpackage documentation for more detailed information.
Changes from 0.8.0 to 0.9.0:
Changes from 0.7.0 to 0.8.0:
Changes from 0.6.0 to 0.7.0:
Changes from 0.5.0 to 0.6.0:
Changes from 0.4.0 to 0.5.0:
Changes from 0.3.0 to 0.4.0:
Changes from 0.2.0 to 0.3.0:
Commercial email support for all mx packages is available from eGenix.com GmbH, Langenfeld, Germany.
Due to popular demand, we have setup a per-incident support service which is based on support tickets. A ticket for USD 185.00 / EUR 150.00 is valid for one support incident and includes up to one hour of consulting work. Tickets can be bought online from the secure eGenix.com Online Shop which is powered by ShareIT.com.
Support for the Python mx Extensions is available as email support only. Support languages are English or German.
Please send support questions to support@egenix.com together with the order reference ID (the ticket ID) you receive by email when buying tickets in the subject line, e.g. "mxODBC and Sybase (Ref# 667514)".
If you want to know more about the provided services, please contact the eGenix.com Information Desk.