New submission from James Wilcox <wilcox...@gmail.com>:
This program behaves differently when run under the profiler (either profile or cProfile) versus when run normally. ``` from __future__ import annotations # *** import dataclasses @dataclasses.dataclass class C: x: dataclasses.InitVar[int] def __post_init__(self, x): print(f'hello {x}') C(0) ``` Save this as foo.py. Then python foo.py prints hello 0 but python -m profile foo.py results in the traceback ``` Traceback (most recent call last): File "/Users/jrw12/.pyenv/versions/3.9.5/lib/python3.9/runpy.py", line 197, in _run_module_as_main return _run_code(code, main_globals, None, File "/Users/jrw12/.pyenv/versions/3.9.5/lib/python3.9/runpy.py", line 87, in _run_code exec(code, run_globals) File "/Users/jrw12/.pyenv/versions/3.9.5/lib/python3.9/profile.py", line 610, in <module> main() File "/Users/jrw12/.pyenv/versions/3.9.5/lib/python3.9/profile.py", line 599, in main runctx(code, globs, None, options.outfile, options.sort) File "/Users/jrw12/.pyenv/versions/3.9.5/lib/python3.9/profile.py", line 99, in runctx return _Utils(Profile).runctx(statement, globals, locals, filename, sort) File "/Users/jrw12/.pyenv/versions/3.9.5/lib/python3.9/profile.py", line 62, in runctx prof.runctx(statement, globals, locals) File "/Users/jrw12/.pyenv/versions/3.9.5/lib/python3.9/profile.py", line 422, in runctx exec(cmd, globals, locals) File "foo.py", line 11, in <module> C(0) File "<string>", line 4, in __init__ TypeError: __post_init__() missing 1 required positional argument: 'x' ``` A similar traceback occurs if using `-m cProfile` instead of `-m profile`. No such traceback occurs if the `from future import __annotations__` is removed from the file. Possibly related to #39442. ---------- components: Library (Lib) messages: 395762 nosy: wilcoxjay priority: normal severity: normal status: open title: from __future__ import annotations breaks profiler's handling of dataclasses type: behavior versions: Python 3.9 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue44414> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com