This is an easy add for 0.6.6 so I've added ticket #1991.   If the module is 
truly a drop-in replacement, you could also have users send pymysql in as the 
"module" argument to create_engine().  


On Dec 2, 2010, at 9:26 AM, Evax Software wrote:

> Hi,
> 
> Although not part of the PyMySQL team, we're interested in getting
> PyMySQL support in SQLAlchemy.
> 
> We already published a package for this:
> http://pypi.python.org/pypi/pymysql_sa/1.0
> 
> As PyMySQL's goal is to be a drop-in replacement for MySQLdb, it would
> be nice to eventually get it to comply with the whole SQLAlchemy test
> suite.
> 
> Here's a small patch adding the PyMySQL dialect directly to
> SQLAlchemy:
> 
> diff -r b29164cca942 lib/sqlalchemy/dialects/mysql/__init__.py
> --- a/lib/sqlalchemy/dialects/mysql/__init__.py       Tue Nov 30 13:55:17
> 2010 -0500
> +++ b/lib/sqlalchemy/dialects/mysql/__init__.py       Thu Dec 02 15:06:43
> 2010 +0100
> @@ -1,5 +1,5 @@
> from sqlalchemy.dialects.mysql import base, mysqldb, oursql, \
> -                                pyodbc, zxjdbc, mysqlconnector
> +                                pyodbc, zxjdbc, mysqlconnector,
> pymysql
> 
> # default dialect
> base.dialect = mysqldb.dialect
> diff -r b29164cca942 lib/sqlalchemy/dialects/mysql/mysqldb.py
> --- a/lib/sqlalchemy/dialects/mysql/mysqldb.py        Tue Nov 30 13:55:17
> 2010 -0500
> +++ b/lib/sqlalchemy/dialects/mysql/mysqldb.py        Thu Dec 02 15:06:43
> 2010 +0100
> @@ -137,7 +137,9 @@
>         client_flag = opts.get('client_flag', 0)
>         if self.dbapi is not None:
>             try:
> -                from MySQLdb.constants import CLIENT as CLIENT_FLAGS
> +                CLIENT_FLAGS = __import__(self.dbapi.__package__
> +'.constants',
> +                                          globals(), locals(),
> +                                          ['CLIENT']).CLIENT
>                 client_flag |= CLIENT_FLAGS.FOUND_ROWS
>             except:
>                 pass
> diff -r b29164cca942 lib/sqlalchemy/dialects/mysql/pymysql.py
> --- /dev/null Thu Jan 01 00:00:00 1970 +0000
> +++ b/lib/sqlalchemy/dialects/mysql/pymysql.py        Thu Dec 02 15:06:43
> 2010 +0100
> @@ -0,0 +1,10 @@
> +from sqlalchemy.dialects.mysql.mysqldb import MySQLDialect_mysqldb
> +
> +class MySQLDialect_pymysql(MySQLDialect_mysqldb):
> +    driver = 'pymysql'
> +
> +    @classmethod
> +    def dbapi(cls):
> +        return __import__('pymysql')
> +
> +dialect = MySQLDialect_pymysql
> 
> --
> Evax Software
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "sqlalchemy" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/sqlalchemy?hl=en.
> 

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to