Skip to content

Circular import when using ovl_tool_cmd #435

@Distantz

Description

@Distantz

Describe the bug
Commit d693829 introduces a regression which causes an error to be thrown while using ovl_tool_cmd.py (only one I have tested) when on a fresh install. This is due to a circular import.

Commit 2c6f29d and earlier does not have this issue.

I can reproduce this bug using ForgeUtils building through both pipeline builds and local builds on the listed commit.

To Reproduce
Steps to reproduce the behavior:

  1. Use ovl_tool_cmd.py on a recent repository commit on or after d693829.
  2. Observe exception.

Expected behavior
No exception.

Screenshots
Image

Version Info:

  • Python Version: 3.11.
  • Blender Version: N/A.
  • Cobra Tools Version: master (on and after d693829).

Log Files:

Exception has occurred: ImportError
cannot import name 'prep_arg' from partially initialized module 'modules.formats.utils' (most likely due to a circular import) (D:\Git\cobra-tools\modules\formats\utils\__init__.py)
  File "D:\Git\cobra-tools\utils\auto_updater.py", line 13, in <module>
    from modules.formats.utils import prep_arg
  File "D:\Git\cobra-tools\gui\__init__.py", line 10, in <module>
    from utils import auto_updater, logs
  File "D:\Git\cobra-tools\modules\formats\utils\__init__.py", line 4, in <module>
    from gui.app_utils import WINDOWS_WINE
  File "D:\Git\cobra-tools\modules\formats\DDS.py", line 17, in <module>
    from modules.formats.utils import dds_conversion, png_splitting
  File "D:\Git\cobra-tools\modules\formats\formats_dict.py", line 18, in __init__
    module = import_module(f"modules.formats.{module_name}")
  File "D:\Git\cobra-tools\generated\formats\ovl\__init__.py", line 540, in __init__
    self.formats_dict = FormatDict()
                        ~~~~~~~~~~^^
  File "D:\Git\cobra-tools\ovl_tool_cmd.py", line 151, in cmd_new
    ovl = OvlFile()
  File "D:\Git\cobra-tools\ovl_tool_cmd.py", line 463, in main
    args.func(args)
    ~~~~~~~~~^^^^^^
  File "D:\Git\cobra-tools\ovl_tool_cmd.py", line 467, in <module>
    main()
    ~~~~^^
ImportError: cannot import name 'prep_arg' from partially initialized module 'modules.formats.utils' (most likely due to a circular import) (D:\Git\cobra-tools\modules\formats\utils\__init__.py)

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