13fec4a21c
`function` fields are fully copied via `copy.copy()`. `copy.copy()` *do not* call `__init__` after object creation; then restore the state via `__setstate__()` or by updating `__dict__` or via `setattr()` when the object uses `__slots__`. As `__init__` is not called, the newly created object does not have any `_args` attribute. This lead to a recursive call of `__getattr__ when `copy.copy` check the existance of `__setstate__` attribute. When break this loop by forbidding explicitly by checking the attribute name accessed (We cannot check the presence of `_args` in `__dict__` because we uses `__slots__`). See http://bugs.python.org/issue5370 Fixes #6037 opw:633109 |
||
---|---|---|
.. | ||
__init__.py | ||
expression.py | ||
fields.py | ||
orm.py | ||
osv.py | ||
query.py |