[Sqlalchemy-tickets] Issue #3439: MutableDict not working under pypy2.6 (zzzeek/sqlalchemy)
Brought to you by:
zzzeek
|
From: Pablo M. <iss...@bi...> - 2015-06-02 06:31:13
|
New issue 3439: MutableDict not working under pypy2.6 https://bitbucket.org/zzzeek/sqlalchemy/issue/3439/mutabledict-not-working-under-pypy26 Pablo Marti: Hi there, I have a User model class with a profile attribute marked as mutable ``` #!python class User(db.Model): ... profile = db.Column(MutableDict.as_mutable(JSONB())) ``` This works perfectly under python2.7, but now when I issue a query using pypy 2.6 I get this: ``` Traceback (most recent call last): File "/Users/pablo/.virtualenvs/drop/src/flask/flask/app.py", line 1537, in full_dispatch_request rv = self.dispatch_request() File "/Users/pablo/.virtualenvs/drop/src/flask/flask/app.py", line 1523, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) File "/Users/pablo/Development/drop-server/drop/api/decorators.py", line 73, in decorated_function .get(user_id) File "/Users/pablo/.virtualenvs/drop/site-packages/sqlalchemy/orm/query.py", line 818, in get return self._get_impl(ident, loading.load_on_ident) File "/Users/pablo/.virtualenvs/drop/site-packages/sqlalchemy/orm/query.py", line 851, in _get_impl return fallback_fn(self, key) File "/Users/pablo/.virtualenvs/drop/site-packages/sqlalchemy/orm/loading.py", line 217, in load_on_ident return q.one() File "/Users/pablo/.virtualenvs/drop/site-packages/sqlalchemy/orm/query.py", line 2472, in one ret = list(self) File "/Users/pablo/.virtualenvs/drop/site-packages/sqlalchemy/orm/loading.py", line 84, in instances util.raise_from_cause(err) File "/Users/pablo/.virtualenvs/drop/site-packages/sqlalchemy/util/compat.py", line 199, in raise_from_cause reraise(type(exception), exception, tb=exc_tb) File "/Users/pablo/.virtualenvs/drop/site-packages/sqlalchemy/orm/loading.py", line 69, in instances rows = [proc(row) for row in fetch] File "/Users/pablo/.virtualenvs/drop/site-packages/sqlalchemy/orm/loading.py", line 430, in _instance state.manager.dispatch.load(state, context) File "/Users/pablo/.virtualenvs/drop/site-packages/sqlalchemy/event/attr.py", line 258, in __call__ fn(*args, **kw) File "/Users/pablo/.virtualenvs/drop/site-packages/sqlalchemy/ext/mutable.py", line 428, in load val = cls.coerce(key, val) File "/Users/pablo/.virtualenvs/drop/site-packages/sqlalchemy/ext/mutable.py", line 638, in coerce return Mutable.coerce(key, value) File "/Users/pablo/.virtualenvs/drop/site-packages/sqlalchemy/ext/mutable.py", line 403, in coerce raise ValueError(msg % (key, type(value))) ValueError: Attribute 'profile' does not accept objects of type <type 'list'> ``` Dependencies: SQLAlchemy==1.0.4 psycopg2cffi==2.7.0 Responsible: zzzeek |