Skip to content

import tinker fails on python 3.14 #6

@vors

Description

@vors

Hello!

When trying to use tinker on python 3.14 on macos I'm getting this error

vors@mac: ~/src/tinker-test uv run python -c 'import tinker'
/Users/vors/src/tinker-test/.venv/lib/python3.14/site-packages/tinker/_compat.py:48: UserWarning: Core Pydantic V1 functionality isn't compatible with Python 3.14 or greater.
  from pydantic.v1.typing import (
Traceback (most recent call last):
  File "<string>", line 1, in <module>
    import tinker
  File "/Users/vors/src/tinker-test/.venv/lib/python3.14/site-packages/tinker/__init__.py", line 3, in <module>
    from . import types
  File "/Users/vors/src/tinker-test/.venv/lib/python3.14/site-packages/tinker/types/__init__.py", line 3, in <module>
    from .checkpoint import (
        Checkpoint as Checkpoint,
    )
  File "/Users/vors/src/tinker-test/.venv/lib/python3.14/site-packages/tinker/types/checkpoint.py", line 4, in <module>
    from .._models import BaseModel
  File "/Users/vors/src/tinker-test/.venv/lib/python3.14/site-packages/tinker/_models.py", line 499, in <module>
    class FinalRequestOptions(pydantic.BaseModel):
    ...<60 lines>...
            model_construct = construct
  File "/Users/vors/src/tinker-test/.venv/lib/python3.14/site-packages/pydantic/_internal/_model_construction.py", line 242, in __new__
    set_model_fields(cls, config_wrapper=config_wrapper, ns_resolver=ns_resolver)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/vors/src/tinker-test/.venv/lib/python3.14/site-packages/pydantic/_internal/_model_construction.py", line 566, in set_model_fields
    fields, class_vars = collect_model_fields(cls, config_wrapper, ns_resolver, typevars_map=typevars_map)
                         ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/vors/src/tinker-test/.venv/lib/python3.14/site-packages/pydantic/_internal/_fields.py", line 256, in collect_model_fields
    type_hints = _typing_extra.get_model_type_hints(cls, ns_resolver=ns_resolver)
  File "/Users/vors/src/tinker-test/.venv/lib/python3.14/site-packages/pydantic/_internal/_typing_extra.py", line 350, in get_model_type_hints
    hints[name] = try_eval_type(value, globalns, localns)
                  ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/vors/src/tinker-test/.venv/lib/python3.14/site-packages/pydantic/_internal/_typing_extra.py", line 404, in try_eval_type
    return eval_type_backport(value, globalns, localns), True
           ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/vors/src/tinker-test/.venv/lib/python3.14/site-packages/pydantic/_internal/_typing_extra.py", line 455, in eval_type_backport
    return _eval_type_backport(value, globalns, localns, type_params)
  File "/Users/vors/src/tinker-test/.venv/lib/python3.14/site-packages/pydantic/_internal/_typing_extra.py", line 492, in _eval_type_backport
    return _eval_type(value, globalns, localns, type_params)
  File "/Users/vors/src/tinker-test/.venv/lib/python3.14/site-packages/pydantic/_internal/_typing_extra.py", line 524, in _eval_type
    evaluated = typing._eval_type(  # type: ignore
        value,
    ...<9 lines>...
        prefer_fwd_module=True,
    )
TypeError: _eval_type() got an unexpected keyword argument 'prefer_fwd_module'
Unable to evaluate type annotation 'str'.

Full repro with more info and uv lockfile https://github.com/vors/tinker-test

It looks like a bug in pydantic though, but reporting here since it affects tinker.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions