Skip to content

Python 3.14 failure #375

Description

@awvwgk

Describe the bug
Noticed this when migrating dftd4 to Python 3.14 on cf

= ERRORS =
_ ERROR collecting test_qcschema.py _
$PREFIX/lib/python3.14/site-packages/dftd4/test_qcschema.py:21: in <module>
    import qcelemental as qcel
$PREFIX/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
$PREFIX/lib/python3.14/site-packages/qcelemental/covalent_radii.py:9: in <module>
    from .datum import Datum, print_variables
$PREFIX/lib/python3.14/site-packages/qcelemental/datum.py:16: in <module>
    class Datum(BaseModel):
$PREFIX/lib/python3.14/site-packages/pydantic/main.py:221: in __new__
    inferred = ModelField.infer(
$PREFIX/lib/python3.14/site-packages/pydantic/fields.py:504: in infer
    return cls(
$PREFIX/lib/python3.14/site-packages/pydantic/fields.py:434: in __init__
    self.prepare()
$PREFIX/lib/python3.14/site-packages/pydantic/fields.py:544: in prepare
    self._set_default_and_type()
$PREFIX/lib/python3.14/site-packages/pydantic/fields.py:576: in _set_default_and_type
    raise errors_.ConfigError(f'unable to infer type for attribute "{self.name}"')
E   pydantic.errors.ConfigError: unable to infer type for attribute "doi"

To Reproduce

    _libgcc_mutex:      0.1-conda_forge              conda-forge                
    _openmp_mutex:      4.5-2_gnu                    conda-forge                
    _python_rc:         1-ha5edcf3_0                 conda-forge/label/python_rc
    ase:                3.26.0-pyhd8ed1ab_0          conda-forge                
    blinker:            1.9.0-pyhff2d567_0           conda-forge                
    brotli:             1.1.0-hb03c661_4             conda-forge                
    brotli-bin:         1.1.0-hb03c661_4             conda-forge                
    bzip2:              1.0.8-h4bc722e_7             conda-forge                
    ca-certificates:    2025.8.3-hbd8a1cb_0          conda-forge                
    cffi:               1.17.1-py314ha6a4811_1       conda-forge                
    click:              8.2.1-pyh707e725_0           conda-forge                
    colorama:           0.4.6-pyhd8ed1ab_1           conda-forge                
    contourpy:          1.3.3-py314h9891dd4_2        conda-forge                
    cycler:             0.12.1-pyhd8ed1ab_1          conda-forge                
    exceptiongroup:     1.3.0-pyhd8ed1ab_0           conda-forge                
    flask:              3.1.2-pyhd8ed1ab_0           conda-forge                
    flexcache:          0.3-pyhd8ed1ab_1             conda-forge                
    flexparser:         0.4-pyhd8ed1ab_1             conda-forge                
    fonttools:          4.59.2-pyh7db6752_0          conda-forge                
    freetype:           2.13.3-ha770c72_1            conda-forge                
    importlib-metadata: 8.7.0-pyhe01879c_1           conda-forge                
    iniconfig:          2.0.0-pyhd8ed1ab_1           conda-forge                
    itsdangerous:       2.2.0-pyhd8ed1ab_1           conda-forge                
    jinja2:             3.1.6-pyhd8ed1ab_0           conda-forge                
    kiwisolver:         1.4.9-py314hc43b2c7_1        conda-forge                
    lcms2:              2.17-h717163a_0              conda-forge                
    ld_impl_linux-64:   2.44-h1423503_1              conda-forge                
    lerc:               4.0.0-h0aef613_1             conda-forge                
    libblas:            3.9.0-34_h59b9bed_openblas   conda-forge                
    libbrotlicommon:    1.1.0-hb03c661_4             conda-forge                
    libbrotlidec:       1.1.0-hb03c661_4             conda-forge                
    libbrotlienc:       1.1.0-hb03c661_4             conda-forge
    libcblas:           3.9.0-34_he106b2a_openblas   conda-forge                
    libdeflate:         1.24-h86f0d12_0              conda-forge                
    libexpat:           2.7.1-hecca717_0             conda-forge                
    libffi:             3.4.6-h2dba641_1             conda-forge                
    libfreetype:        2.13.3-ha770c72_1            conda-forge                
    libfreetype6:       2.13.3-h48d6fc4_1            conda-forge                
    libgcc:             15.1.0-h767d61c_4            conda-forge                
    libgcc-ng:          15.1.0-h69a702a_4            conda-forge                
    libgfortran:        15.1.0-h69a702a_4            conda-forge                
    libgfortran5:       15.1.0-hcea5267_4            conda-forge                
    libgomp:            15.1.0-h767d61c_4            conda-forge                
    libjpeg-turbo:      3.1.0-hb9d3cd8_0             conda-forge                
    liblapack:          3.9.0-34_h7ac8fdf_openblas   conda-forge                
    liblzma:            5.8.1-hb9d3cd8_2             conda-forge                
    libmpdec:           4.0.0-hb9d3cd8_0             conda-forge                
    libopenblas:        0.3.30-pthreads_h94d23a6_2   conda-forge                
    libpng:             1.6.50-h421ea60_1            conda-forge                
    libsqlite:          3.50.4-h0c1763c_0            conda-forge                
    libstdcxx:          15.1.0-h8f9b012_4            conda-forge                
    libstdcxx-ng:       15.1.0-h4852527_4            conda-forge                
    libtiff:            4.7.0-h8261f1e_6             conda-forge                
    libuuid:            2.38.1-h0b41bf4_0            conda-forge                
    libwebp-base:       1.6.0-hd42ef1d_0             conda-forge                
    libxcb:             1.17.0-h8a09558_0            conda-forge                
    libzlib:            1.3.1-hb9d3cd8_2             conda-forge                
    markupsafe:         3.0.2-pyhe1237c8_1           conda-forge                
    matplotlib-base:    3.10.6-py314h1194b4b_1       conda-forge                
    munkres:            1.1.4-pyhd8ed1ab_1           conda-forge                
    ncurses:            6.5-h2d0b736_3               conda-forge                
    numpy:              2.3.2-py314h5d5eb18_2        conda-forge                
    openjpeg:           2.5.3-h55fea9a_1             conda-forge                
    openssl:            3.5.2-h26f9b46_0             conda-forge                
    packaging:          25.0-pyh29332c3_1            conda-forge                
    pillow:             11.3.0-py314hcbdf0ca_1       conda-forge                
    pint:               0.25-pyhe01879c_0            conda-forge                
    platformdirs:       4.4.0-pyhcf101f3_0           conda-forge                
    pluggy:             1.6.0-pyhd8ed1ab_0           conda-forge                
    pthread-stubs:      0.4-hb9d3cd8_1002            conda-forge                
    pycparser:          2.22-pyh29332c3_1            conda-forge                
    pydantic:           1.10.22-pyh3cfb1c2_0         conda-forge                
    pygments:           2.19.2-pyhd8ed1ab_0          conda-forge                
    pyparsing:          3.2.3-pyhe01879c_2           conda-forge                
    pytest:             8.4.1-pyhd8ed1ab_0           conda-forge                
    python:             3.14.0rc2-h5989046_100_cp314 conda-forge                
    python-dateutil:    2.9.0.post0-pyhe01879c_2     conda-forge                
    python_abi:         3.14-8_cp314                 conda-forge                
    qcelemental:        0.29.0-pyhd8ed1ab_1          conda-forge                
    qhull:              2020.2-h434a139_5            conda-forge                
    readline:           8.2-h8c095d6_2               conda-forge                
    scipy:              1.16.1-py314he7377e1_1       conda-forge                
    setuptools:         80.9.0-pyhff2d567_0          conda-forge                
    six:                1.17.0-pyhe01879c_1          conda-forge                
    tk:                 8.6.13-noxft_hd72426e_102    conda-forge                
    tomli:              2.2.1-pyhe01879c_2           conda-forge                
    typing-extensions:  4.15.0-h396c80c_0            conda-forge                
    typing_extensions:  4.15.0-pyhcf101f3_0          conda-forge                
    tzdata:             2025b-h78e105d_0             conda-forge                
    unicodedata2:       16.0.0-py314h5bd0f2a_1       conda-forge                
    werkzeug:           3.1.3-pyhd8ed1ab_1           conda-forge                
    xorg-libxau:        1.0.12-hb9d3cd8_0            conda-forge                
    xorg-libxdmcp:      1.1.5-hb9d3cd8_0             conda-forge                
    zipp:               3.23.0-pyhd8ed1ab_0          conda-forge                
    zstd:               1.5.7-hb8e6e7a_2             conda-forge   
python -c "import qcelemental"

Expected behavior
qcel Datum model works with pydantic in Python 3.14

Additional context

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