diff --git a/CHANGES.txt b/CHANGES.txt index fd800ca290..497361adfe 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -14,6 +14,8 @@ https://mhammond.github.io/pywin32_installers.html. Coming in build 308, as yet unreleased -------------------------------------- +* Fixed a circular import between `win32comext.axscript.client.framework` and `win32comext.axscript.client.error` (#2381, @Avasam) + Build 307, released 2024-10-04 ------------------------------ ### Release process changes diff --git a/com/win32comext/axscript/client/error.py b/com/win32comext/axscript/client/error.py index 27d007ed46..2be175e890 100644 --- a/com/win32comext/axscript/client/error.py +++ b/com/win32comext/axscript/client/error.py @@ -10,15 +10,19 @@ import traceback import warnings from types import TracebackType +from typing import TYPE_CHECKING import pythoncom import win32com.server.util import winerror from win32com.axscript import axscript from win32com.server.exception import COMException -from win32comext.axscript.client.debug import DebugManager -from win32comext.axscript.client.framework import AXScriptCodeBlock, COMScript -from win32comext.axscript.server.axsite import AXSite + +if TYPE_CHECKING: + # Prevent circular imports + from win32comext.axscript.client.debug import DebugManager + from win32comext.axscript.client.framework import AXScriptCodeBlock, COMScript + from win32comext.axscript.server.axsite import AXSite debugging = 0 diff --git a/com/win32comext/axscript/client/framework.py b/com/win32comext/axscript/client/framework.py index e4c69f7ba8..eada9097c7 100644 --- a/com/win32comext/axscript/client/framework.py +++ b/com/win32comext/axscript/client/framework.py @@ -19,6 +19,9 @@ import win32com.server.util import winerror from win32com.axscript import axscript +from win32com.server.exception import COMException, IsCOMServerException + +from . import error # axscript.client.error def RemoveCR(text): @@ -32,9 +35,6 @@ def RemoveCR(text): SCRIPTTEXT_ISEXPRESSION = 0x00000020 SCRIPTTEXT_ISPERSISTENT = 0x00000040 -from win32com.server.exception import COMException, IsCOMServerException - -from . import error # ax.client.error state_map = { axscript.SCRIPTSTATE_UNINITIALIZED: "SCRIPTSTATE_UNINITIALIZED",