Skip to content

Circular import errors #20

Description

@ebarbers

After regenerating the models, circular import errors are raised when importing classes from cold.

For example, when running the CCCV cycling example:

>> python ./examples/scripts/example_cccv_cycling.py

/home/eba/cold/cold/utils
Traceback (most recent call last):
  File "/home/eba/cold/./examples/scripts/example_cccv_cycling.py", line 10, in <module>
    resting = cold.Resting()
              ^^^^^^^^^^^^
  File "/home/eba/cold/cold/models/autogenerated/__init__.py", line 4396, in __getattr__
    module = importlib.import_module(f".{name}Module", package=__name__)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/importlib/__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 995, in exec_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "/home/eba/cold/cold/models/autogenerated/RestingModule.py", line 7, in <module>
    from .OpenCircuitHoldModule import OpenCircuitHold
  File "/home/eba/cold/cold/models/autogenerated/OpenCircuitHoldModule.py", line 7, in <module>
    from .PotentiometryModule import Potentiometry
  File "/home/eba/cold/cold/models/autogenerated/PotentiometryModule.py", line 11, in <module>
    from .ElectrochemicalModule import Electrochemical
  File "/home/eba/cold/cold/models/autogenerated/ElectrochemicalModule.py", line 21, in <module>
    from .ElectrochemicalDeviceModule import ElectrochemicalDevice
  File "/home/eba/cold/cold/models/autogenerated/ElectrochemicalDeviceModule.py", line 7, in <module>
    from .DeviceModule import Device
  File "/home/eba/cold/cold/models/autogenerated/DeviceModule.py", line 7, in <module>
    from .ManufacturedProductModule import ManufacturedProduct
  File "/home/eba/cold/cold/models/autogenerated/ManufacturedProductModule.py", line 17, in <module>
    from .ManufacturingModule import Manufacturing
  File "/home/eba/cold/cold/models/autogenerated/ManufacturingModule.py", line 17, in <module>
    from .WorkPieceModule import WorkPiece
  File "/home/eba/cold/cold/models/autogenerated/WorkPieceModule.py", line 7, in <module>
    from .ManufacturedMaterialModule import ManufacturedMaterial
  File "/home/eba/cold/cold/models/autogenerated/ManufacturedMaterialModule.py", line 7, in <module>
    from .ManufacturedProductModule import ManufacturedProduct
ImportError: cannot import name 'ManufacturedProduct' from partially initialized module 'cold.models.autogenerated.ManufacturedProductModule' (most likely due to a circular import) (/home/eba/cold/cold/models/autogenerated/ManufacturedProductModule.py)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions