BASE package ( mxDateTime : mxTextTools : mxStack : mxTools : mxProxy : History : Download ) COMMERCIAL package ( mxODBC : History : Buy Licenses : Special Offer : Download ) EXPERIMENTAL package ( mxNumber : mxTidy : mxURL : mxUID : History : Download ) Commercial Support : Home |
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 platforms 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.
The 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
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
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.
On Unix systems supporting the RPM formats the
package can be installed using the standard operating system
tools, e.g.
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
mxDateTime - Generic Date/Time Types
mxTextTools - Fast Text Processing Tools
mxStack - Fast and Memory-Efficient Stack Type
mxTools - Collection of Additional Builtins
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 - Generic Proxy Wrapper Type
mxBeeBase - On-disk B+Tree Based Database Kit
sizeof(long)
which gives you an address range
of around 2GB on 32-bit platforms).
Downloads
Installation
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/local not /usr !
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 2.0) is available online at the distutils
documentation site.
The 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.
theKompany.com has licensed this package
for inclusion in their brand new Qt-based
Python IDE BlackAdder. 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. Click on
the image to the right to go directly to
theKompany.com's secure online shop.
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 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.
Commercial Use:
Support:
Prerequisites:
All Platforms (source distribution):
Windows:
Linux:
Older versions are available as separate downloads
from the old extensions
page.
Notes:
On Unix systems supporting the RPM formats the
package can be installed using the standard operating system
tools, e.g.
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
Starting with mxODBC version 2.0.0, commercial use is no
longer free of charge. In order to fund the continued
development of mxODBC and the other Open Source packages in
the mx Extension Series, I had to put a moderate license fee
on mxODBC -- the previous MySQL-style license model just
didn't work out.
License Offerings
End-User
Licenses for commercial end-users are available as CPU
licenses which allow installing and using mxODBC on
one machine.
Pricing is USD 75.00 for a 1-CPU license, USD 700.00
for the 10-CPU license and USD 6,500.00 for the
100-CPU license. We also offer a site and corporate
licenses; please write to sales@egenix.com
for quotes on these.
Redistribution
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,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 now maintained by my
company eGenix.com Software GmbH, Langenfeld in Germany. To
buy licenses for commercial use, please visit our secure
eGenix.com
Online Shop which is powered by ShareIT.com. Payment
options include credit card, bank/wire transfer, check and
cash billed in either USD (US dollars) or EUR (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 fax
you a signed Proof of Authorization to the fax number
you specified in the ordering process within two weeks. If
you don't specify a fax number, eGenix.com will send you the
Proof of Authorization by email or postal mail, however this
can cause delays of up to 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.
The 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.
On Unix systems supporting the RPM formats the
package can be installed using the standard operating system
tools, e.g.
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
Commercial email support for all mx packages is now
available from my company eGenix.com GmbH, Langenfeld,
Germany.
Due to popular demand, I have setup a per-incident support
service which is based on support tickets. A ticket for USD
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.
eGenix.com mx Extensions - COMMERCIAL Package
Special Offer
mxODBC - Generic ODBC Interface for Python
Downloads
Users in commercial environments may use this package
for an evaluation period of 30 days starting
with the day of initial installation. After this
period, commercial users must either buy licenses from eGenix.com
for continued use or uninstall the package.
Commercial support for this
package as well as all other mx packages is available
from eGenix.com.
The COMMERCIAL package is based on the eGenix.com mx BASE package
which has to be installed prior to installing the
COMMERCIAL add-on package.
mx.ODBC.Windows
subpackage as this it
the only one relevant on Windows.
mx.ODBC.iODBC
(iODBC Driver
Manager maintained by OpenLink) and
mx.ODBC.unixODBC
(unixODBC Driver
Manager). You normally have these installed on
your system if you happen to use an ODBC capable
database on your Linux machine. 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).
Installation
rpm -i
egenix-mx-commercial-xxxx.rpm
will install the
package and rpm -e egenix-mx-commercial-xxxx
deinstall it.
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 2.0) is available online at the distutils
documentation site.
Buying Commercial Use Licenses
eGenix.com mx Extensions - EXPERIMENTAL Package
mxNumber - Extended Numeric Types
mxTidy - Interface to HTML Tidy (HTML/XML cleanup tool)
mxURL - An URL Datatype
mxUID - An UID Datatype
Downloads
Installation
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).
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 2.0) is available online at the distutils
documentation site.
Commercial Support
© 2000-2001, Copyright by eGenix.com Software GmbH,
Langenfeld; All Rights Reserved. mailto: info@egenix.com
Trademarks: "mx Extensions" is a trademark of Marc-Andre
Lemburg and eGenix.com GmbH.