diff --git a/CHANGES b/CHANGES index fecc9a6c2..2813d4e02 100644 --- a/CHANGES +++ b/CHANGES @@ -15,6 +15,10 @@ $ pip install --user --upgrade --pre libtmux - _Future release notes will be placed here_ +### Bug fix + +- Fix `typing_extensions` issue by wrapping it in `TYPE_CHECKING`, continuation of #564, via #572. + ### Development - Improved test organization and coverage in `test_common.py` (#570): diff --git a/src/libtmux/pane.py b/src/libtmux/pane.py index 895d83f89..a60bb36f6 100644 --- a/src/libtmux/pane.py +++ b/src/libtmux/pane.py @@ -13,8 +13,6 @@ import typing as t import warnings -from typing_extensions import Self - from libtmux.common import has_gte_version, has_lt_version, tmux_cmd from libtmux.constants import ( PANE_DIRECTION_FLAG_MAP, @@ -28,12 +26,17 @@ from . import exc if t.TYPE_CHECKING: + import sys import types from .server import Server from .session import Session from .window import Window + if sys.version_info >= (3, 11): + from typing import Self + else: + from typing_extensions import Self logger = logging.getLogger(__name__) diff --git a/src/libtmux/server.py b/src/libtmux/server.py index e022965ab..1eaf82f66 100644 --- a/src/libtmux/server.py +++ b/src/libtmux/server.py @@ -15,8 +15,6 @@ import typing as t import warnings -from typing_extensions import Self - from libtmux._internal.query_list import QueryList from libtmux.common import tmux_cmd from libtmux.neo import fetch_objs @@ -39,9 +37,9 @@ import types if sys.version_info >= (3, 10): - from typing import TypeAlias + from typing import Self, TypeAlias else: - from typing_extensions import TypeAlias + from typing_extensions import Self, TypeAlias DashLiteral: TypeAlias = t.Literal["-"] diff --git a/src/libtmux/session.py b/src/libtmux/session.py index fd5bb36da..d1433e014 100644 --- a/src/libtmux/session.py +++ b/src/libtmux/session.py @@ -13,8 +13,6 @@ import typing as t import warnings -from typing_extensions import Self - from libtmux._internal.query_list import QueryList from libtmux.constants import WINDOW_DIRECTION_FLAG_MAP, WindowDirection from libtmux.formats import FORMAT_SEPARATOR @@ -33,10 +31,16 @@ ) if t.TYPE_CHECKING: + import sys import types from libtmux.common import tmux_cmd + if sys.version_info >= (3, 11): + from typing import Self + else: + from typing_extensions import Self + from .server import Server diff --git a/src/libtmux/window.py b/src/libtmux/window.py index bf7495650..121c7ea03 100644 --- a/src/libtmux/window.py +++ b/src/libtmux/window.py @@ -13,8 +13,6 @@ import typing as t import warnings -from typing_extensions import Self - from libtmux._internal.query_list import QueryList from libtmux.common import has_gte_version, tmux_cmd from libtmux.constants import ( @@ -30,11 +28,18 @@ from .common import PaneDict, WindowOptionDict, handle_option_error if t.TYPE_CHECKING: + import sys import types from .server import Server from .session import Session + if sys.version_info >= (3, 11): + from typing import Self + else: + from typing_extensions import Self + + logger = logging.getLogger(__name__)