From cc4e888a8e6240615fc2cfc15c0ae953946464ba Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Mon, 17 Feb 2025 10:29:47 -0600 Subject: [PATCH 1/2] fix(typings) Move typing-extensions into `TypeGuard` Missed this in #564. --- src/libtmux/pane.py | 7 +++++-- src/libtmux/server.py | 6 ++---- src/libtmux/session.py | 8 ++++++-- src/libtmux/window.py | 9 +++++++-- 4 files changed, 20 insertions(+), 10 deletions(-) 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__) From 024259a7c44e3fcb1c4ee9d83366ce758425345e Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Mon, 17 Feb 2025 10:31:31 -0600 Subject: [PATCH 2/2] docs(CHANGES) Note `typing_extensions` fix --- CHANGES | 4 ++++ 1 file changed, 4 insertions(+) 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):