Skip to content

QCElemental 0.50.2 v2 API can't be imported in Python 3.14 #407

Description

@awvwgk

Describe the bug

/opt/hostedtoolcache/Python/3.14.6/x64/lib/python3.14/site-packages/dftd4/test_qcschema.py:28: in <module>
    from dftd4.qcschema import run_qcschema, qcel_v1, qcel_v2
/opt/hostedtoolcache/Python/3.14.6/x64/lib/python3.14/site-packages/dftd4/qcschema.py:109: in <module>
    import qcelemental.models.v2 as qcel_v2
/opt/hostedtoolcache/Python/3.14.6/x64/lib/python3.14/site-packages/qcelemental/__init__.py:10: in <module>
    from . import covalent_radii, models, molparse, molutil, periodic_table, physical_constants, util, vanderwaals_radii
/opt/hostedtoolcache/Python/3.14.6/x64/lib/python3.14/site-packages/qcelemental/models/__init__.py:13: in <module>
    from . import v1, v2
/opt/hostedtoolcache/Python/3.14.6/x64/lib/python3.14/site-packages/qcelemental/models/v2/__init__.py:2: in <module>
    from .align import AlignmentMill
/opt/hostedtoolcache/Python/3.14.6/x64/lib/python3.14/site-packages/qcelemental/models/v2/align.py:13: in <module>
    class AlignmentMill(ProtoModel):
/opt/hostedtoolcache/Python/3.14.6/x64/lib/python3.14/site-packages/pydantic/_internal/_model_construction.py:256: in __new__
    complete_model_class(
/opt/hostedtoolcache/Python/3.14.6/x64/lib/python3.14/site-packages/pydantic/_internal/_model_construction.py:667: in complete_model_class
    schema = gen_schema.generate_schema(cls)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/opt/hostedtoolcache/Python/3.14.6/x64/lib/python3.14/site-packages/pydantic/_internal/_generate_schema.py:744: in generate_schema
    schema = self._generate_schema_inner(obj)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/opt/hostedtoolcache/Python/3.14.6/x64/lib/python3.14/site-packages/pydantic/_internal/_generate_schema.py:1038: in _generate_schema_inner
    return self._model_schema(obj)
           ^^^^^^^^^^^^^^^^^^^^^^^
/opt/hostedtoolcache/Python/3.14.6/x64/lib/python3.14/site-packages/pydantic/_internal/_generate_schema.py:868: in _model_schema
    {k: self._generate_md_field_schema(k, v, decorators) for k, v in fields.items()},
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/opt/hostedtoolcache/Python/3.14.6/x64/lib/python3.14/site-packages/pydantic/_internal/_generate_schema.py:1245: in _generate_md_field_schema
    schema, metadata = self._common_field_schema(name, field_info, decorators)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/opt/hostedtoolcache/Python/3.14.6/x64/lib/python3.14/site-packages/pydantic/_internal/_generate_schema.py:1299: in _common_field_schema
    schema = self._apply_annotations(
/opt/hostedtoolcache/Python/3.14.6/x64/lib/python3.14/site-packages/pydantic/_internal/_generate_schema.py:2252: in _apply_annotations
    schema = get_inner_schema(source_type)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/opt/hostedtoolcache/Python/3.14.6/x64/lib/python3.14/site-packages/pydantic/_internal/_schema_generation_shared.py:83: in __call__
    schema = self._handler(source_type)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
/opt/hostedtoolcache/Python/3.14.6/x64/lib/python3.14/site-packages/pydantic/_internal/_generate_schema.py:2423: in new_handler
    schema = annotation_get_schema(source, get_inner_schema)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/opt/hostedtoolcache/Python/3.14.6/x64/lib/python3.14/site-packages/pydantic/functional_validators.py:75: in __get_pydantic_core_schema__
    schema = handler(source_type)
             ^^^^^^^^^^^^^^^^^^^^
/opt/hostedtoolcache/Python/3.14.6/x64/lib/python3.14/site-packages/pydantic/_internal/_schema_generation_shared.py:83: in __call__
    schema = self._handler(source_type)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
/opt/hostedtoolcache/Python/3.14.6/x64/lib/python3.14/site-packages/pydantic/_internal/_generate_schema.py:2231: in inner_handler
    schema = self._generate_schema_inner(obj)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/opt/hostedtoolcache/Python/3.14.6/x64/lib/python3.14/site-packages/pydantic/_internal/_generate_schema.py:1043: in _generate_schema_inner
    return self.match_type(obj)
           ^^^^^^^^^^^^^^^^^^^^
/opt/hostedtoolcache/Python/3.14.6/x64/lib/python3.14/site-packages/pydantic/_internal/_generate_schema.py:1161: in match_type
    return self._match_generic_type(obj, origin)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/opt/hostedtoolcache/Python/3.14.6/x64/lib/python3.14/site-packages/pydantic/_internal/_generate_schema.py:1184: in _match_generic_type
    return self._union_schema(obj)
           ^^^^^^^^^^^^^^^^^^^^^^^
/opt/hostedtoolcache/Python/3.14.6/x64/lib/python3.14/site-packages/pydantic/_internal/_generate_schema.py:1344: in _union_schema
    choices.append(self.generate_schema(arg))
                   ^^^^^^^^^^^^^^^^^^^^^^^^^
/opt/hostedtoolcache/Python/3.14.6/x64/lib/python3.14/site-packages/pydantic/_internal/_generate_schema.py:744: in generate_schema
    schema = self._generate_schema_inner(obj)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/opt/hostedtoolcache/Python/3.14.6/x64/lib/python3.14/site-packages/pydantic/_internal/_generate_schema.py:1022: in _generate_schema_inner
    return self._annotated_schema(obj)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
/opt/hostedtoolcache/Python/3.14.6/x64/lib/python3.14/site-packages/pydantic/_internal/_generate_schema.py:2202: in _annotated_schema
    schema = self._apply_annotations(source_type, annotations)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/opt/hostedtoolcache/Python/3.14.6/x64/lib/python3.14/site-packages/pydantic/_internal/_generate_schema.py:2252: in _apply_annotations
    schema = get_inner_schema(source_type)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/opt/hostedtoolcache/Python/3.14.6/x64/lib/python3.14/site-packages/pydantic/_internal/_schema_generation_shared.py:83: in __call__
    schema = self._handler(source_type)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
/opt/hostedtoolcache/Python/3.14.6/x64/lib/python3.14/site-packages/pydantic/_internal/_generate_schema.py:2423: in new_handler
    schema = annotation_get_schema(source, get_inner_schema)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/opt/hostedtoolcache/Python/3.14.6/x64/lib/python3.14/site-packages/qcelemental/models/v2/types.py:37: in __get_pydantic_core_schema__
    shape, dtype_alias = get_args(source)
    ^^^^^^^^^^^^^^^^^^
E   ValueError: not enough values to unpack (expected 2, got 1)

To Reproduce

numpy-2.5.0
pint-0.25.3
pydantic-2.13.4
pydantic-core-2.46.4
qcelemental-0.50.2
scipy-1.18.0

Expected behavior

Import of QCElemental should not fail

Additional context

GHA run: https://github.com/dftd4/dftd4/actions/runs/27953122474/job/82716004618?pr=378

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