From brunson at brunson.com Fri Dec 3 20:18:05 2004 From: brunson at brunson.com (Eric Brunson) Date: Fri Dec 3 20:08:26 2004 Subject: [DB-SIG] Announcing SnakeSQL In-Reply-To: <41A53C3B.6000009@pythonweb.org> References: <41A53C3B.6000009@pythonweb.org> Message-ID: <41B0BBED.6030405@brunson.com> Pretty cool. It doesn't do joins very well, though, does it? James Gardner wrote: > Hi All, > > Just thought some of you may be interested in this pure Python > database I've written over the last couple of weeks. > > The download URL is http://www.pythonweb.org/projects/snakesql/ > > SnakeSQL is a pure Python SQL database written to remove the > dependence of the Python Web Modules on 3rd party C-based database > drivers but designed to be a useful database in its own right. > > The database supports the simplest possible subset of ANSI SQL 92 > including NULLs (something other pure Python databases such as Gadfly > do not currently support as far as I know). > > The database is fully DB-API 2.0 compliant and is written in layers so > that it could be extended to support different storage mechanisms. > Currently implemented are a fast binary DBM driver (default) and a > slower CSV file driver (handy for viewing table contents when > designing and developing an application or database structure). > > This is an alpha release designed to give interested users the chance > to feedback bug reports or comments. The database appears stable on > Windows XP Python 2.2 and 2.3 and successfully runs the test script > and test SQL in Interactive Prompt mode. It has not been tested more > extensively. If you use the database and it doesn't work, please let > me know. > > Documentation is at http://www.pythonweb.org/projects/snakesql/doc/0.3.4/ > > All the best, > > James From mal at egenix.com Mon Dec 6 19:37:12 2004 From: mal at egenix.com (M.-A. Lemburg) Date: Mon Dec 6 19:39:38 2004 Subject: [DB-SIG] ANN: eGenix mxODBC Python Database Interface Version 2.0.7 Message-ID: <41B4A6D8.8000005@egenix.com> ________________________________________________________________________ ANNOUNCING eGenix.com mxODBC Database Interface Version 2.0.7 Full Source Python extension providing ODBC database connectivity to Python applications on Windows and Unix platforms ________________________________________________________________________ ABOUT The mxODBC Database Interface allows users to easily connect Python applications to just about any database on the market today - on both Windows and Unix platforms in a highly portable and convenient way. This makes mxODBC the ideal basis for writing cross-platform database programs and utilities in Python. mxODBC is included in the eGenix.com mx Commercial Extension Package for Python, the commercial part of the eGenix.com mx Extension Series, 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. The package has proven its stability and usefulness in many mission critical applications and various commercial settings all around the world. * About Python: Python is an object-oriented Open Source programming language which runs on all modern platforms (http://www.python.org/). By integrating ease-of-use, clarity in coding, enterprise application connectivity and rapid application design, Python establishes an ideal programming platform for todays IT challenges. * About eGenix: eGenix is a consulting and software product company focused on providing professional quality services and products to Python users and developers (http://www.egenix.com/). ________________________________________________________________________ NEWS The new version includes patches needed to compile the package for Python 2.4. It now supports all Python versions 1.5.2 - 2.4. As always we are providing pre-compiled versions of the package for Windows and Linux as well as sources which allow you to install the package on all other supported platforms. ________________________________________________________________________ EGENIX MX COMMERCIAL PACKAGE OVERVIEW mxODBC - High-Performance ODBC 3.5 Interface for Python mxODBC is an extension package that provides a Python Database API compliant interface to ODBC capable database drivers and managers. 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). mxODBC allows you to interface to more than one database from one process, making inter-database interfacing very flexible and reliable. The source version includes a variety of pre-configured setups for many commonly used databases such as MySQL, Oracle, Informix, Solid, SAP DB, Sybase ASA and ASE, DBMaker and many more. The pre-compiled versions for Windows and Linux include the interfaces to the standard ODBC manager on these platforms to allow for a more easily configurable setup. More details are available at: http://www.egenix.com/files/python/mxODBC.html ________________________________________________________________________ DOWNLOADS The download archives and instructions for installing the package can be found at: http://www.egenix.com/files/python/eGenix-mx-Extensions.html#Packages IMPORTANT: In order to use the eGenix mx Commercial package you will first need to install the eGenix mx Base package which can be downloaded from the same location. ________________________________________________________________________ LICENSES & COSTS mxODBC is distributed under the terms and conditions of the eGenix.com Commercial License. mxODBC is free for use in non-commercial environments. Commercial users may evaluate the product for 30 days following the initial installation. For continued use, commercial users can purchase installation licenses for mxODBC through our secure online shop. We also provide special licensing setups for commercial product developers that want to integrate mxODBC into their products. For full details, please see http://www.egenix.com/files/python/eGenix-mx-Extensions.html#BuyLicenses or write to sales@egenix.com. The package comes with full source code ________________________________________________________________________ SUPPORT Commercial quality support for these packages is available from eGenix.com. Please see http://www.egenix.com/files/python/eGenix-mx-Extensions.html#Support for details about our support offerings. -- Marc-Andre Lemburg eGenix.com Professional Python Services directly from the Source (#1, Dec 06 2004) >>> Python/Zope Consulting and Support ... http://www.egenix.com/ >>> mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/ >>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/ ________________________________________________________________________ ::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,FreeBSD for free ! :::: From mal at egenix.com Mon Dec 6 19:39:07 2004 From: mal at egenix.com (M.-A. Lemburg) Date: Mon Dec 6 19:39:54 2004 Subject: [DB-SIG] ANN: eGenix mx Base Package 2.0.6 (mxDateTime, mxTextTools, etc.) Message-ID: <41B4A74B.2090405@egenix.com> ________________________________________________________________________ ANNOUNCING eGenix.com mx Base Extension Package Version 2.0.6 Open Source Python extensions providing important and useful services for Python programmers. ________________________________________________________________________ ABOUT The eGenix.com mx Base Extensions for Python are 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 tools have a proven record of being portable across many Unix and Windows platforms. You can write applications which use the tools on Windows and then run them on Unix platforms without change due to the consistent platform independent interfaces. All available packages have proven their stability and usefulness in many mission critical applications and various commercial settings all around the world. * About Python: Python is an object-oriented Open Source programming language which runs on all modern platforms (http://www.python.org/). By integrating ease-of-use, clarity in coding, enterprise application connectivity and rapid application design, Python establishes an ideal programming platform for todays IT challenges. * About eGenix: eGenix is a consulting and software product company focused on providing professional quality services and products to Python users and developers (http://www.egenix.com/). ________________________________________________________________________ NEWS The new version includes patches needed to compile the package for Python 2.4. It now supports all Python versions 1.5.2 - 2.4. As always we are providing pre-compiled versions of the package for Windows and Linux as well as sources which allow you to install the package on all other supported platforms. ________________________________________________________________________ EGENIX MX BASE PACKAGE OVERVIEW 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 very convenient way. 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 description. 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 focuses on obtaining maximum speed at low memory costs. mxTools - Collection of Additional Built-Ins mxTools is an extension package that includes a collection of handy functions and objects giving additional functionality in form of new built-ins to the Python programmer. The package auto-installs the new functions and objects as built-ins upon first import. This means that they become instantly 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. 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. In addition to being able to completely hide objects from the Python run-time, the module also provides a generic implementation of weak reference that works for all Python objects. 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 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 (http://epaperpress.com/). ________________________________________________________________________ DOWNLOADS The download archives and instructions for installing the packages can be found at: http://www.egenix.com/ ________________________________________________________________________ LICENSES & COSTS The eGenix mx Base package is distributed under the eGenix.com Public License which is a Python 2.0 style Open Source license. You can use the package in both commercial and non-commercial settings without fee or charge. The package comes with full source code ________________________________________________________________________ SUPPORT Commercial quality support for these packages is available from eGenix.com Software GmbH. Please see http://www.egenix.com/files/python/eGenix-mx-Extensions.html#Support for details about our support offerings. -- Marc-Andre Lemburg eGenix.com Professional Python Services directly from the Source (#1, Dec 06 2004) >>> Python/Zope Consulting and Support ... http://www.egenix.com/ >>> mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/ >>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/ ________________________________________________________________________ ::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,FreeBSD for free ! :::: From farcepest at gmail.com Fri Dec 31 20:39:20 2004 From: farcepest at gmail.com (Andy Dustman) Date: Fri Dec 31 20:39:23 2004 Subject: [DB-SIG] BLOB data types Message-ID: <9826f3800412311139228ed04c@mail.gmail.com> What's the current view on the best object class to use for Binary/BLOB objects? PEP-249 recommends buffer, but buffer appears deprecated. MySQLdb used to strings, but currently uses array. mxODBC appears to use strings. psycopg appears to use buffer. Take a look at this for additional comments: https://sourceforge.net/tracker/index.php?func=detail&aid=975831&group_id=22307&atid=374932 Anyone got any strong feelings about this? -- Computer interfaces should never be made of meat. Using GMail? Setting Reply-to address to <> disables this annoying feature.