Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Runner API compatibility with Python 3.12 #2344

Open
dennismoe opened this issue Mar 12, 2025 · 1 comment
Open

Runner API compatibility with Python 3.12 #2344

dennismoe opened this issue Mar 12, 2025 · 1 comment

Comments

@dennismoe
Copy link

I've found an issue where the Runner API does not seem to be compatible with Python 3.12.


  File "/home/me/Projects/Repos/repo/src/toplvlpkg/api/entrypoints/metaflow_run_flow.py", line 54, in metaflow_run_flow
    with Runner(
         ^^^^^^^
  File "/home/me/Projects/Repos/repo/.venv/lib/python3.12/site-packages/metaflow/runner/metaflow_runner.py", line 357, in run
    command = self.api(**self.top_level_kwargs).run(
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/me/Projects/Repos/repo/.venv/lib/python3.12/site-packages/metaflow/runner/click_api.py", line 612, in _method
    method_params = _method_sanity_check(
                    ^^^^^^^^^^^^^^^^^^^^^
  File "/home/me/Projects/Repos/repo/.venv/lib/python3.12/site-packages/metaflow/runner/click_api.py", line 97, in _method_sanity_check
    check_type(supplied_v, annotations[supplied_k])
  File "/home/me/Projects/Repos/repo/.venv/lib/python3.12/site-packages/metaflow/_vendor/typeguard/_functions.py", line 105, in check_type
    check_type_internal(value, expected_type, memo)
  File "/home/me/Projects/Repos/repo/.venv/lib/python3.12/site-packages/metaflow/_vendor/typeguard/_checkers.py", line 774, in check_type_internal
    checker(value, origin_type, args, memo)
  File "/home/me/Projects/Repos/repo/.venv/lib/python3.12/site-packages/metaflow/_vendor/typeguard/_checkers.py", line 407, in check_union
    check_type_internal(value, type_, memo)
  File "/home/me/Projects/Repos/repo/.venv/lib/python3.12/site-packages/metaflow/_vendor/typeguard/_checkers.py", line 774, in check_type_internal
    checker(value, origin_type, args, memo)
  File "/home/me/Projects/Repos/repo/.venv/lib/python3.12/site-packages/metaflow/_vendor/typeguard/_checkers.py", line 233, in check_mapping
    check_type_internal(v, value_type, memo)
  File "/home/me/Projects/Repos/repo/.venv/lib/python3.12/site-packages/metaflow/_vendor/typeguard/_checkers.py", line 731, in check_type_internal
    annotation = evaluate_forwardref(annotation, memo)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/me/Projects/Repos/repo/.venv/lib/python3.12/site-packages/metaflow/_vendor/typeguard/_utils.py", line 18, in evaluate_forwardref
    return forwardref._evaluate(memo.globals, memo.locals, frozenset())
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: ForwardRef._evaluate() missing 1 required keyword-only argument: 'recursive_guard'

With Python 3.11.11 the same code works fine.

AFAICS, the recursive_guard argument was removed with Python 3.12

Am I missing something?

@savingoyal
Copy link
Collaborator

we have a PR in flight - #2311

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants