I got this error after updating sqlalchemy today:

File "/Users/dmiller/Code/PyOE/src/orderentry/model.py", line 394, in ? assign_mapper(Value, value, properties=dict(alias=sa.relation (Alias))) File "/Users/dmiller/Code/SQLAlchemy/lib/sqlalchemy/mapping/ __init__.py", line 114, in assign_mapper
    m = mapper(class_, *args, **params)
File "/Users/dmiller/Code/SQLAlchemy/lib/sqlalchemy/mapping/ __init__.py", line 49, in mapper
    return Mapper(class_, table, *args, **params)
File "/Users/dmiller/Code/SQLAlchemy/lib/sqlalchemy/mapping/ mapper.py", line 175, in __init__
    prop.init(key, self)
File "/Users/dmiller/Code/SQLAlchemy/lib/sqlalchemy/mapping/ mapper.py", line 770, in init
    self.do_init(key, parent)
File "/Users/dmiller/Code/SQLAlchemy/lib/sqlalchemy/mapping/ properties.py", line 175, in do_init
    self.primaryjoin = sql.join(parent.table, self.target).onclause
File "/Users/dmiller/Code/SQLAlchemy/lib/sqlalchemy/sql.py", line 41, in join
    return Join(left, right, onclause, **kwargs)
File "/Users/dmiller/Code/SQLAlchemy/lib/sqlalchemy/sql.py", line 834, in __init__
    self.onclause = self._match_primaries(left, right)
File "/Users/dmiller/Code/SQLAlchemy/lib/sqlalchemy/sql.py", line 851, in _match_primaries
    if fk.references(primary):
File "/Users/dmiller/Code/SQLAlchemy/lib/sqlalchemy/schema.py", line 369, in references
    return table._get_col_by_original(self.column) is not None
File "/Users/dmiller/Code/SQLAlchemy/lib/sqlalchemy/sql.py", line 570, in _get_col_by_original
    return self.original_columns.get(column.original, None)
File "/Users/dmiller/Code/SQLAlchemy/lib/sqlalchemy/sql.py", line 1070, in _orig_columns
    return self._orig_cols
File "/Users/dmiller/Code/SQLAlchemy/lib/sqlalchemy/ext/proxy.py", line 122, in __getattr__
    return getattr(self._get_impl(), key)
File "/Users/dmiller/Code/SQLAlchemy/lib/sqlalchemy/ext/proxy.py", line 114, in _get_impl
    e = self.engine
File "/Users/dmiller/Code/SQLAlchemy/lib/sqlalchemy/ext/proxy.py", line 122, in __getattr__
    return getattr(self._get_impl(), key)
File "/Users/dmiller/Code/SQLAlchemy/lib/sqlalchemy/ext/proxy.py", line 114, in _get_impl
    e = self.engine

  ... many more recursions ...

File "/Users/dmiller/Code/SQLAlchemy/lib/sqlalchemy/ext/proxy.py", line 122, in __getattr__
    return getattr(self._get_impl(), key)
File "/Users/dmiller/Code/SQLAlchemy/lib/sqlalchemy/ext/proxy.py", line 114, in _get_impl
    e = self.engine
File "/Users/dmiller/Code/SQLAlchemy/lib/sqlalchemy/ext/proxy.py", line 124, in <lambda>
    engine = property(lambda self: self._engine.engine)
File "/Users/dmiller/Code/SQLAlchemy/lib/sqlalchemy/ext/proxy.py", line 82, in __getattr__
    if self.get_engine() is not None:
File "/Users/dmiller/Code/SQLAlchemy/lib/sqlalchemy/ext/proxy.py", line 43, in get_engine
    if self.storage.engine is None:
RuntimeError: maximum recursion depth exceeded


This fixed it, although not elegantly (too many lookups going on, which is expensive in Python):

class ProxyTableImpl(sql.TableImpl):

    ... other methods omitted ...

    def __getattr__(self, key):
        d = object.getattr(self, "__dict__")
        if key in d:
            return d[key]
        return getattr(self._get_impl(), key)


~ Daniel



-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
Sqlalchemy-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users

Reply via email to