Done: https://bitbucket.org/zzzeek/sqlalchemy/issue/3123/mysql-reflection-on-python-26-causes-error
FYI, for now we're patching sqlalchemy/engine/reflection.py, changing Inspector.reflectable after it gets tbl_opts (line 450 in my code): # reflect table options, like mysql_engine tbl_opts = self.get_table_options(table_name, schema, **table.dialect_kwargs) # Python 2.6 doesn't except using dicts with unicode keys for kwargs, # ie, myFunc(**{u'foo':1}) will raise an error if sys.version_info < (2, 7): for key, val in tbl_opts.items(): if isinstance(key, unicode): del tbl_opts[key] tbl_opts[str(key)] = val There's likely a much better / more elegant way to handle this, but it seems to do the trick for us... Let me know anything's not clear, or you're having troubles replicating, or there's anything else I can do to help! - Paul On Thu, Jul 10, 2014 at 6:06 PM, Mike Bayer <mike...@zzzcomputing.com> wrote: > > On 7/10/14, 3:49 PM, Paul Molodowitch wrote: > > Whoops! Just noticed this was the totally wrong traceback! > > Here's the correct trace: > > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > File "test.py", line 155, in <module> > metadata.reflect(db.engine, only=tables) > File "./sqlalchemy/sql/schema.py", line 3277, in reflect > Table(name, self, **reflect_opts) > File "./sqlalchemy/sql/schema.py", line 352, in __new__ > table._init(name, metadata, *args, **kw) > File "./sqlalchemy/sql/schema.py", line 425, in _init > self._autoload(metadata, autoload_with, include_columns) > File "./sqlalchemy/sql/schema.py", line 437, in _autoload > self, include_columns, exclude_columns > File "./sqlalchemy/engine/base.py", line 1198, in run_callable > return callable_(self, *args, **kwargs) > File "./sqlalchemy/engine/default.py", line 355, in reflecttable > return insp.reflecttable(table, include_columns, exclude_columns) > File "./sqlalchemy/engine/reflection.py", line 463, in reflecttable > for col_d in self.get_columns(table_name, schema, > **table.dialect_kwargs): > TypeError: get_columns() keywords must be strings > > > with metadata.reflect(), OK. Can you please make a very short and > self-contained test case and post a bug report? thanks. > > > -- > You received this message because you are subscribed to a topic in the > Google Groups "sqlalchemy" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/sqlalchemy/E3MhX1m8QqQ/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > sqlalchemy+unsubscr...@googlegroups.com. > To post to this group, send email to sqlalchemy@googlegroups.com. > Visit this group at http://groups.google.com/group/sqlalchemy. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at http://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.