Skip to content

Pydantic2 and MBE procedure#432

Draft
loriab wants to merge 16 commits intoMolSSI:masterfrom
loriab:pydantic2_rb1_mbe
Draft

Pydantic2 and MBE procedure#432
loriab wants to merge 16 commits intoMolSSI:masterfrom
loriab:pydantic2_rb1_mbe

Conversation

@loriab
Copy link
Copy Markdown
Collaborator

@loriab loriab commented Oct 9, 2023

Description

Changelog description

Status

  • Code base linted
  • Ready to go

Copy link
Copy Markdown

@github-advanced-security github-advanced-security bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CodeQL found more than 10 potential problems in the proposed changes. Check the Files changed tab for more details.

@susilehtola
Copy link
Copy Markdown
Collaborator

fwiw this PR still crashes with pydantic v2 due to qcelemental

  File "/usr/lib/rpm/redhat/import_all_modules.py", line 106, in import_modules
    importlib.import_module(module)
    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^
  File "/usr/lib64/python3.14/importlib/__init__.py", line 88, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1398, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1371, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1342, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 938, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 762, in exec_module
  File "<frozen importlib._bootstrap>", line 491, in _call_with_frames_removed
  File "/builddir/build/BUILD/python-qcengine-0.30.0-build/BUILDROOT/usr/lib/python3.14/site-packages/qcengine/__init__.py", line 5, in <module>
    from . import config, exceptions
  File "/builddir/build/BUILD/python-qcengine-0.30.0-build/BUILDROOT/usr/lib/python3.14/site-packages/qcengine/exceptions.py", line 4, in <module>
    from qcelemental.models import AtomicInput
  File "/usr/lib/python3.14/site-packages/qcelemental/__init__.py", line 10, in <module>
    from . import covalent_radii, models, molparse, molutil, periodic_table, physical_constants, util, vanderwaals_radii
  File "/usr/lib/python3.14/site-packages/qcelemental/covalent_radii.py", line 9, in <module>
    from .datum import Datum, print_variables
  File "/usr/lib/python3.14/site-packages/qcelemental/datum.py", line 16, in <module>
    class Datum(BaseModel):
    ...<88 lines>...
                return factor * self.data
  File "/usr/lib/python3.14/site-packages/pydantic/v1/main.py", line 221, in __new__
    inferred = ModelField.infer(
        name=var_name,
    ...<3 lines>...
        config=config,
    )
  File "/usr/lib/python3.14/site-packages/pydantic/v1/fields.py", line 504, in infer
    return cls(
        name=name,
    ...<7 lines>...
        field_info=field_info,
    )
  File "/usr/lib/python3.14/site-packages/pydantic/v1/fields.py", line 434, in __init__
    self.prepare()
    ~~~~~~~~~~~~^^
  File "/usr/lib/python3.14/site-packages/pydantic/v1/fields.py", line 544, in prepare
    self._set_default_and_type()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/lib/python3.14/site-packages/pydantic/v1/fields.py", line 576, in _set_default_and_type
    raise errors_.ConfigError(f'unable to infer type for attribute "{self.name}"')
pydantic.v1.errors.ConfigError: unable to infer type for attribute "doi"
Check import: qcengine.cli
Traceback (most recent call last):
  File "/usr/lib/rpm/redhat/import_all_modules.py", line 106, in import_modules
    importlib.import_module(module)
    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^
  File "/usr/lib64/python3.14/importlib/__init__.py", line 88, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1398, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1371, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1314, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 491, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1398, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1371, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1342, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 938, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 762, in exec_module
  File "<frozen importlib._bootstrap>", line 491, in _call_with_frames_removed
  File "/builddir/build/BUILD/python-qcengine-0.30.0-build/BUILDROOT/usr/lib/python3.14/site-packages/qcengine/__init__.py", line 5, in <module>
    from . import config, exceptions
  File "/builddir/build/BUILD/python-qcengine-0.30.0-build/BUILDROOT/usr/lib/python3.14/site-packages/qcengine/exceptions.py", line 4, in <module>
    from qcelemental.models import AtomicInput
  File "/usr/lib/python3.14/site-packages/qcelemental/__init__.py", line 10, in <module>
    from . import covalent_radii, models, molparse, molutil, periodic_table, physical_constants, util, vanderwaals_radii
  File "/usr/lib/python3.14/site-packages/qcelemental/covalent_radii.py", line 9, in <module>
    from .datum import Datum, print_variables
  File "/usr/lib/python3.14/site-packages/qcelemental/datum.py", line 16, in <module>
    class Datum(BaseModel):
    ...<88 lines>...
                return factor * self.data
  File "/usr/lib/python3.14/site-packages/qcelemental/datum.py", line 62, in Datum
    @validator("data")
     ~~~~~~~~~^^^^^^^^
  File "/usr/lib/python3.14/site-packages/pydantic/v1/class_validators.py", line 93, in dec
    f_cls = _prepare_validator(f, allow_reuse)
  File "/usr/lib/python3.14/site-packages/pydantic/v1/class_validators.py", line 156, in _prepare_validator
    raise ConfigError(f'duplicate validator function "{ref}"; if this is intended, set `allow_reuse=True`')
pydantic.v1.errors.ConfigError: duplicate validator function "qcelemental.datum.Datum.must_be_numerical"; if this is intended, set `allow_reuse=True`

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

Successfully merging this pull request may close these issues.

3 participants