Favicon

ANN: eGenix mx Base Distribution 3.2.3 (mxDateTime, mxTextTools, etc.)

________________________________________________________________________

ANNOUNCING

                   eGenix.com mx Base Distribution

                  Version 3.2.3 for Python 2.4 - 2.7

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

This announcement is also available on our web-site for online reading:
http://www.egenix.com/company/news/eGenix-mx-Base-Distribution-3.2.3-GA.html

________________________________________________________________________

ABOUT

The eGenix.com mx Base Distribution for Python is 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.

Contents of the distribution:
(Continue reading)

Favicon

ANN: eGenix mxODBC Zope Database Adapter 2.0.2

________________________________________________________________________
ANNOUNCEMENT

                     mxODBC Zope Database Adapter

                            Version 2.0.2

                     for Zope and the Plone CMS

                Available for Zope 2.10 and later on
        Windows, Linux, Mac OS X, FreeBSD and other platforms

This announcement is also available on our web-site for online reading:
http://www.egenix.com/company/news/eGenix-mxODBC-Zope-DA-2.0.2-GA.html

________________________________________________________________________
INTRODUCTION

The eGenix mxODBC Zope Database Adapter allows you to easily connect
your Zope or Plone installation to just about any database backend on
the market today, giving you the reliability of the commercially
supported eGenix product mxODBC and the flexibility of the ODBC
standard as middle-tier architecture.

The mxODBC Zope Database Adapter is highly portable, just like Zope
itself and provides a high performance interface to all your ODBC data
sources, using a single well-supported interface on Windows, Linux,
Mac OS X, FreeBSD and other platforms.

This makes it ideal for deployment in ZEO Clusters and Zope hosting
(Continue reading)

M.-A. Lemburg | 9 Feb 17:05
Favicon

Using mxODBC with unixODBC 2.3.1

Dear Users,

the unixODBC maintainers have decided to change the library version of
their libodbc.so shared library from 1 to 2.

This change should have been done with the release of unixODBC 2.3.0,
since that changed the unixODBC application interface by switching
from 32-bit to 64-bit length information in the APIs, but late is
better then never :-)

If you are using mxODBC with unixODBC 2.3.1, please read on...

As mentioned on the http://www.unixodbc.org/ users running into problems
with the linker should create a symlink from libodbc.so.2 to libodbc.so.1
in order to work around the problem:

cd /usr/lib
ln -sf libodbc.so.2 libodbc.so.1

Since mxODBC 3.1 is linked against unixODBC 2.3.0, it uses the previous
name libodbc.so.1, so you will have to add the mentioned symlink to
have mxODBC find the unixODBC library in case you intend to use
unixODBC on Unix platforms.

The next release of mxODBC will be linked against unixODBC 2.3.1
(or later) and will start looking for libodbc.so.2 per default.

Thanks,
--

-- 
Marc-Andre Lemburg
(Continue reading)

Suha Onay | 11 Feb 10:42
Picon

Python2.7 Version of PyOpenSSL

Hi,


I want to build my workspace without compiling from source.
I am using 64 bit Python 2.7. I can not find 64 bit installer of Python 2.6 for Win7 64 bit.
I also installed Qt, PyQt, Psycopg 64 bit versions.
The only missing 64 bit installer for Python 2.7 is PyOpenSSL.

I can not find it antwhere. The version of egenix is 2.6.
Where can i find the 2.7 64 bit compiled version of pyopenssl?

Thanks all for your help.

---
Suha


_______________________________________________________________________
eGenix.com User Mailing List                     http://www.egenix.com/
https://www.egenix.com/mailman/listinfo/egenix-users
M.-A. Lemburg | 11 Feb 13:12
Favicon

Re: Python2.7 Version of PyOpenSSL

Suha Onay wrote:
> Hi,
> 
> I want to build my workspace without compiling from source.
> I am using 64 bit Python 2.7. I can not find 64 bit installer of Python 2.6
> for Win7 64 bit.
> I also installed Qt, PyQt, Psycopg 64 bit versions.
> The only missing 64 bit installer for Python 2.7 is PyOpenSSL.
> 
> I can not find it antwhere. The version of egenix is 2.6.
> Where can i find the 2.7 64 bit compiled version of pyopenssl?

We currently don't have a build for Python 2.7 and creating one
for the old 0.10.0 version doesn't really make a lot of sense.

It will be available once release a new version of egenix-pyopenssl,
but I cannot give you a release date for it.

-- 
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Source  (#1, Feb 11 2012)
>>> 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 our new mxODBC.Connect Python Database Interface for free ! ::::

   eGenix.com Software, Skills and Services GmbH  Pastor-Loeh-Str.48
    D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
           Registered at Amtsgericht Duesseldorf: HRB 46611
               http://www.egenix.com/company/contact/

_______________________________________________________________________
eGenix.com User Mailing List                     http://www.egenix.com/
https://www.egenix.com/mailman/listinfo/egenix-users

Favicon

ANN: eGenix pyOpenSSL Distribution 0.13.0-1.0.0g

________________________________________________________________________
ANNOUNCING

                   eGenix.com pyOpenSSL Distribution

                         Version 0.13.0-1.0.0g

             An easy-to-install and easy-to-use distribution
             of the pyOpenSSL Python interface for OpenSSL -
            available for Windows, Mac OS X and Unix platforms

This announcement is also available on our web-site for online reading:
http://www.egenix.com/company/news/eGenix-pyOpenSSL-Distribution-0.13.0-1.0.0g-1.html

________________________________________________________________________
INTRODUCTION

The eGenix.com pyOpenSSL Distribution includes everything you need to
get started with SSL in Python.

It comes with an easy-to-use installer that includes the most recent
OpenSSL library versions in pre-compiled form, making your application
independent of OS provided OpenSSL libraries:

    http://www.egenix.com/products/python/pyOpenSSL/

pyOpenSSL is an open-source Python add-on that allows writing SSL/TLS-
aware network applications as well as certificate management tools:

    https://launchpad.net/pyopenssl/

OpenSSL is an open-source implementation of the SSL/TLS protocol:

    http://www.openssl.org/

________________________________________________________________________
NEWS

This new release of the eGenix.com pyOpenSSL Distribution updates the
included pyOpenSSL version to 0.13.0 and the included OpenSSL version
to 1.0.0g.

Main new features in pyOpenSSL sine 0.10.0
------------------------------------------

 * pyOpenSSL 0.11 fixes a few bugs related to error processing;
   see https://launchpad.net/pyopenssl/+announcement/7128

 * pyOpenSSL 0.12 fixes interaction with memoryviews, adds TLS
   callbacks and x509 extension introspection;
   see https://launchpad.net/pyopenssl/+announcement/8151

 * pyOpenSSL 0.13 adds OpenSSL 1.0 support (which eGenix
   contributed) and a few new APIs;
   see https://lists.launchpad.net/pyopenssl-users/msg00008.html

Please see Jean-Paul Calderone's above announcements for more details.

New features in OpenSSL 1.0.0g since 1.0.0a
-------------------------------------------

OpenSSL 1.0.0g fixes several vulnerabilities relative to 1.0.0a:

    http://openssl.org/news/vulnerabilities.html

and includes a number of stability enhancements as well as extra
protection against attacks:

    http://openssl.org/news/changelog.html

New features in the eGenix pyOpenSSL Distribution
-------------------------------------------------

 * Updated the pyOpenSSL license information from LGPL to
   Apache License 2.0.

 * Added support for Python 2.7 on all platforms.

 * Added documentation for automatic download of egg distributions
   using compatible tools such as easy_install and zc.buildout.

As always, we provide binaries that include both pyOpenSSL and the
necessary OpenSSL libraries for all supported platforms:
Windows x86 and x64, Linux x86 and x64, Mac OS X PPC, x86 and x64.

We've also added egg-file distribution versions of our eGenix.com
pyOpenSSL Distribution for Windows, Linux and Mac OS X to the
available download options. These make setups using e.g. zc.buildout
and other egg-file based installers a lot easier.

________________________________________________________________________
DOWNLOADS

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

    http://www.egenix.com/products/python/pyOpenSSL/

________________________________________________________________________
UPGRADING

Before installing this version of pyOpenSSL, please make sure that
you uninstall any previously installed pyOpenSSL version. Otherwise,
you could end up not using the included OpenSSL libs.

_______________________________________________________________________
SUPPORT

Commercial support for these packages is available from eGenix.com.
Please see

    http://www.egenix.com/services/support/

for details about our support offerings.

________________________________________________________________________
MORE INFORMATION

For more information about the eGenix pyOpenSSL Distributon, licensing
and download instructions, please visit our web-site or write to
sales@...

Enjoy,

-- 
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Source  (#1, Feb 13 2012)
>>> 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 our new mxODBC.Connect Python Database Interface for free ! ::::

   eGenix.com Software, Skills and Services GmbH  Pastor-Loeh-Str.48
    D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
           Registered at Amtsgericht Duesseldorf: HRB 46611
               http://www.egenix.com/company/contact/

_______________________________________________________________________
eGenix.com User Mailing List                     http://www.egenix.com/
https://www.egenix.com/mailman/listinfo/egenix-users

Andrew Altepeter | 1 Mar 20:24

egenix zopeda 2.0.2 and execute parameters

Greetings,


I recently upgraded to egenix mxodbc zopeda 2.0.2.  Our zope environment is zope 2.12.20 and python 2.6.7, 32-bit RHEL 5 (or opensuse 12.1), unixodbc 2.2.12 and oracle instantclient 10.2.0.5 (installed via rpm)

We have some python code which gets an 'eGenix mxODBC Database Connection' (the zope object), then gets a connection object via get_connection().

With the connection object, we can call the 'execute' method, and pass in parameters, e.g. to select rows in table `table` where `column` matches 'A':

conn = db.get_connection()
conn.execute('select * from table where column=?', ('A',))

In zopeda 2.2, this always returns an empty rowset.

If I rewrite the query to be:
conn.execute("select * from table where column='A' ")
Then it works.

Another query, like:
conn.execute('insert into table (W,X,Y,Z) values(?,?,?,?)', ('A','B','C','D'))
raises the following error:
2012-02-28 16:02:36,198 INFO [root] eGenix mxODBC Zope DA: <Products.mxODBCZopeDA.ZopeDA.DatabaseConnection "DSN=PROD8" thread -1258087568/-1258087568 at 0xc3d83cc> received an OperationalError ('HY000', 12899, '[unixODBC][Oracle][ODBC][Ora]ORA-12899: value too large for column "schema"."table"."X" (actual: 4, maximum: 1)\n', 8396); trying to reconnect and replay transaction

If I revert back to zopeda 2.0.1 the first query, using a params list, works (and of course the second query works too).

It seems like zopeda2.0.2 isn't passing the parameters down to the odbc level correctly.  The error above seems to indicate that the full params list is being passed to the first '?' param. 

Thanks,
Andy

_______________________________________________________________________
eGenix.com User Mailing List                     http://www.egenix.com/
https://www.egenix.com/mailman/listinfo/egenix-users
M.-A. Lemburg | 2 Mar 16:05
Favicon

Re: egenix zopeda 2.0.2 and execute parameters

Andrew Altepeter wrote:
> Greetings,
> 
> I recently upgraded to egenix mxodbc zopeda 2.0.2.  Our zope environment is
> zope 2.12.20 and python 2.6.7, 32-bit RHEL 5 (or opensuse 12.1), unixodbc
> 2.2.12 and oracle instantclient 10.2.0.5 (installed via rpm)
> 
> We have some python code which gets an 'eGenix mxODBC Database Connection'
> (the zope object), then gets a connection object via get_connection().
> 
> With the connection object, we can call the 'execute' method, and pass in
> parameters, e.g. to select rows in table `table` where `column` matches 'A':
> 
> conn = db.get_connection()
> conn.execute('select * from table where column=?', ('A',))
> 
> In zopeda 2.2, this always returns an empty rowset.
> 
> If I rewrite the query to be:
> conn.execute("select * from table where column='A' ")
> Then it works.
> 
> Another query, like:
> conn.execute('insert into table (W,X,Y,Z) values(?,?,?,?)',
> ('A','B','C','D'))
> raises the following error:
> 2012-02-28 16:02:36,198 INFO [root] eGenix mxODBC Zope DA:
> <Products.mxODBCZopeDA.ZopeDA.DatabaseConnection "DSN=PROD8" thread
> -1258087568/-1258087568 at 0xc3d83cc> received an OperationalError
> ('HY000', 12899, '[unixODBC][Oracle][ODBC][Ora]ORA-12899: value too large
> for column "schema"."table"."X" (actual: 4, maximum: 1)\n', 8396); trying
> to reconnect and replay transaction
> 
> If I revert back to zopeda 2.0.1 the first query, using a params list,
> works (and of course the second query works too).
> 
> It seems like zopeda2.0.2 isn't passing the parameters down to the odbc
> level correctly.  The error above seems to indicate that the full params
> list is being passed to the first '?' param.

We checked this using the following external method, but
cannot reproduce the problem:

test_execute.py:
----------------
#
# External Method Module test_execute
#
def test(self, request=None, form=None):

    """ Test conn.execute() with parameters.

        Uses the Zope object "oracle" (an eGenix mxODBC Zope DA Connection
        object) which must be accessible in the current context.

    """
    conn = self.oracle.get_connection()
    try:
        conn.execute('drop table test_zopeda')
    except conn.DatabasePackage.ProgrammingError:
        pass
    conn.execute('create table test_zopeda '
                 '(id int, col1 varchar(10), col2 varchar(10))')
    conn.execute('insert into test_zopeda values (?,?,?)',
                 (1, 'a', 'd'))
    conn.execute('insert into test_zopeda values (?,?,?)',
                 (2, 'abc', 'def'))
    rs = conn.execute('select * from test_zopeda where col1=?', ('abc',))
    conn.execute('drop table test_zopeda')
    print 'Results:', rs
    return 'Works. See log for results.'

This gives:

Results: ([{'width': 38, 'null': 1, 'type': 'i', 'name': 'ID'}, {'width': 10, 'null': 1, 'type':
's', 'name': 'COL1'}, {'width': 10, 'null': 1, 'type': 's', 'name': 'COL2'}], [(2, 'abc', 'def')])

in the log.

Note that mxODBC Zope DA was compiled against unixODBC 2.3.0.
Version 2.2.12 is not supported anymore, since it uses a
different SQLLEN parameter type in its APIs.

Could you recheck with unixODBC 2.3.0 ?

Thanks,
-- 
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Source  (#1, Mar 02 2012)
>>> Python/Zope Consulting and Support ...        http://www.egenix.com/
>>> mxODBC.Zope.Database.Adapter ...             http://zope.egenix.com/
>>> mxODBC, mxDateTime, mxTextTools ...        http://python.egenix.com/
________________________________________________________________________
2012-02-13: Released eGenix pyOpenSSL 0.13        http://egenix.com/go26
2012-02-09: Released mxODBC.Zope.DA 2.0.2         http://egenix.com/go25
2012-02-06: Released eGenix mx Base 3.2.3         http://egenix.com/go24

::: Try our new mxODBC.Connect Python Database Interface for free ! ::::

   eGenix.com Software, Skills and Services GmbH  Pastor-Loeh-Str.48
    D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
           Registered at Amtsgericht Duesseldorf: HRB 46611
               http://www.egenix.com/company/contact/

_______________________________________________________________________
eGenix.com User Mailing List                     http://www.egenix.com/
https://www.egenix.com/mailman/listinfo/egenix-users

Andrew Altepeter | 2 Mar 17:28

Re: egenix zopeda 2.0.2 and execute parameters

Hello,


Thank you for your quick response.  I forgot that 2.0.2 was compiled against unixodbc 2.3.0.  That's the problem.

Thanks,
Andy

On Fri, Mar 2, 2012 at 9:05 AM, M.-A. Lemburg <mal-SVD0I98eSHvQT0dZR+AlfA@public.gmane.org> wrote:
Andrew Altepeter wrote:
> Greetings,
>
> I recently upgraded to egenix mxodbc zopeda 2.0.2.  Our zope environment is
> zope 2.12.20 and python 2.6.7, 32-bit RHEL 5 (or opensuse 12.1), unixodbc
> 2.2.12 and oracle instantclient 10.2.0.5 (installed via rpm)
>
> We have some python code which gets an 'eGenix mxODBC Database Connection'
> (the zope object), then gets a connection object via get_connection().
>
> With the connection object, we can call the 'execute' method, and pass in
> parameters, e.g. to select rows in table `table` where `column` matches 'A':
>
> conn = db.get_connection()
> conn.execute('select * from table where column=?', ('A',))
>
> In zopeda 2.2, this always returns an empty rowset.
>
> If I rewrite the query to be:
> conn.execute("select * from table where column='A' ")
> Then it works.
>
> Another query, like:
> conn.execute('insert into table (W,X,Y,Z) values(?,?,?,?)',
> ('A','B','C','D'))
> raises the following error:
> 2012-02-28 16:02:36,198 INFO [root] eGenix mxODBC Zope DA:
> <Products.mxODBCZopeDA.ZopeDA.DatabaseConnection "DSN=PROD8" thread
> -1258087568/-1258087568 at 0xc3d83cc> received an OperationalError
> ('HY000', 12899, '[unixODBC][Oracle][ODBC][Ora]ORA-12899: value too large
> for column "schema"."table"."X" (actual: 4, maximum: 1)\n', 8396); trying
> to reconnect and replay transaction
>
> If I revert back to zopeda 2.0.1 the first query, using a params list,
> works (and of course the second query works too).
>
> It seems like zopeda2.0.2 isn't passing the parameters down to the odbc
> level correctly.  The error above seems to indicate that the full params
> list is being passed to the first '?' param.

We checked this using the following external method, but
cannot reproduce the problem:

test_execute.py:
----------------
#
# External Method Module test_execute
#
def test(self, request=None, form=None):

   """ Test conn.execute() with parameters.

       Uses the Zope object "oracle" (an eGenix mxODBC Zope DA Connection
       object) which must be accessible in the current context.

   """
   conn = self.oracle.get_connection()
   try:
       conn.execute('drop table test_zopeda')
   except conn.DatabasePackage.ProgrammingError:
       pass
   conn.execute('create table test_zopeda '
                '(id int, col1 varchar(10), col2 varchar(10))')
   conn.execute('insert into test_zopeda values (?,?,?)',
                (1, 'a', 'd'))
   conn.execute('insert into test_zopeda values (?,?,?)',
                (2, 'abc', 'def'))
   rs = conn.execute('select * from test_zopeda where col1=?', ('abc',))
   conn.execute('drop table test_zopeda')
   print 'Results:', rs
   return 'Works. See log for results.'

This gives:

Results: ([{'width': 38, 'null': 1, 'type': 'i', 'name': 'ID'}, {'width': 10, 'null': 1, 'type':
's', 'name': 'COL1'}, {'width': 10, 'null': 1, 'type': 's', 'name': 'COL2'}], [(2, 'abc', 'def')])

in the log.

Note that mxODBC Zope DA was compiled against unixODBC 2.3.0.
Version 2.2.12 is not supported anymore, since it uses a
different SQLLEN parameter type in its APIs.

Could you recheck with unixODBC 2.3.0 ?

Thanks,
--
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Source  (#1, Mar 02 2012)
>>> Python/Zope Consulting and Support ...        http://www.egenix.com/
>>> mxODBC.Zope.Database.Adapter ...             http://zope.egenix.com/
>>> mxODBC, mxDateTime, mxTextTools ...        http://python.egenix.com/
________________________________________________________________________
2012-02-13: Released eGenix pyOpenSSL 0.13        http://egenix.com/go26
2012-02-09
: Released mxODBC.Zope.DA 2.0.2         http://egenix.com/go25
2012-02-06
: Released eGenix mx Base 3.2.3         http://egenix.com/go24

::: Try our new mxODBC.Connect Python Database Interface for free ! ::::


  eGenix.com Software, Skills and Services GmbH  Pastor-Loeh-Str.48
   D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
          Registered at Amtsgericht Duesseldorf: HRB 46611
              http://www.egenix.com/company/contact/


_______________________________________________________________________
eGenix.com User Mailing List                     http://www.egenix.com/
https://www.egenix.com/mailman/listinfo/egenix-users

Gmane