[Sqlalchemy-tickets] [sqlalchemy] #2917: sqlalchemy.dialects.mysql.base.ENUM is not adaptable to s
Brought to you by:
zzzeek
|
From: sqlalchemy <mi...@zz...> - 2014-01-22 17:53:59
|
#2917: sqlalchemy.dialects.mysql.base.ENUM is not adaptable to
sqlalchemy.sql.sqltypes.Enum
-------------------------+-----------------------------------------
Reporter: jpcalderone | Owner:
Type: defect | Status: new
Priority: medium | Milestone:
Component: mysql | Severity: no triage selected yet
Keywords: | Progress State: awaiting triage
-------------------------+-----------------------------------------
Given a MySQL table like:
{{{
#!sql
CREATE TABLE foo ( bar enum('false','true') );
}}}
the reflected `foo.bar` column has a type of
`sqlalchemy.dialects.mysql.base.ENUM`. Attempting to use the `adapt`
method results in a `TypeError` due to bad arguments being passed to
`SchemaType.__init__`:
{{{
>>> meta.tables['foo'].columns['bar'].type.adapt(Enum)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "SQLAlchemy-0.9.2dev-py2.7-linux-
x86_64.egg/sqlalchemy/dialects/mysql/base.py", line 1194, in adapt
return sqltypes.Enum.adapt(self, impltype, **kw)
File "SQLAlchemy-0.9.2dev-py2.7-linux-
x86_64.egg/sqlalchemy/sql/sqltypes.py", line 1145, in adapt
**kw
File "SQLAlchemy-0.9.2dev-py2.7-linux-
x86_64.egg/sqlalchemy/sql/sqltypes.py", line 1110, in __init__
SchemaType.__init__(self, **kw)
TypeError: __init__() got an unexpected keyword argument 'strict'
>>>
}}}
It looks like git rev 2692238f may have introduced this by changing the
signature of `SchemaType.__init__` from `**kw` to something a little more
restricted.
Consider `strict` was ignored even before 2692238f I wonder if
`sqlalchemy.dialects.mysql.base.ENUM.adapt` should just be deleted to let
the inherited implementation be used instead.
Encountered while trying the sqlacodegen project. Bug first reported
against that project:
https://bitbucket.org/agronholm/sqlacodegen/issue/9/get-typeerror-
__init__-got-an-unexpected
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2917>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|