[Sqlalchemy-tickets] Issue #3823: Column default raises AttributeError when it takes a callable wit
Brought to you by:
zzzeek
From: Hong M. <iss...@bi...> - 2016-10-14 03:45:18
|
New issue 3823: Column default raises AttributeError when it takes a callable without __module__ attribute https://bitbucket.org/zzzeek/sqlalchemy/issues/3823/column-default-raises-attributeerror-when Hong Minhee: Since SQLAlchemy 1.1, `Column` raises `AttributeError` when its `default` option takes a callable having no `__module__` attribute. The following example code had worked until SQLAlchemy 1.1: ```python created_at = Column( DateTime(timezone=True), default=functools.partial(datetime.datetime.now, datetime.timezone.utc) ) ``` The following traceback is from SQLAlchemy 1.1.0 (and I checked the same error on 1.1.1 as well): ```pytb Traceback (most recent call last): File "/.../ads/ad.py", line 112, in <module> class AdRevision(Base): File "/.../ads/ad.py", line 120, in AdRevision default=functools.partial(datetime.datetime.now, datetime.timezone.utc) File "/.../.env/lib/python3.5/site-packages/sqlalchemy/sql/schema.py", line 1210, in __init__ args.append(ColumnDefault(self.default)) File "/.../.env/lib/python3.5/site-packages/sqlalchemy/sql/schema.py", line 2016, in __init__ arg = self._maybe_wrap_callable(arg) File "/.../.env/lib/python3.5/site-packages/sqlalchemy/sql/schema.py", line 2043, in _maybe_wrap_callable return util.wrap_callable(lambda ctx: fn(), fn) File "/.../.env/lib/python3.5/site-packages/sqlalchemy/util/langhelpers.py", line 1401, in wrap_callable _f.__module__ = fn.__module__ AttributeError: 'functools.partial' object has no attribute '__module__' ``` |