Skip to content

Commit 18f6655

Browse files
committed
Server(refactor): Replace deprecation warnings with DeprecatedError
why: Enforce immediate migration from deprecated APIs. what: - kill_server() raises DeprecatedError, use kill() instead - get_by_id() raises DeprecatedError, use sessions.get() instead - where() raises DeprecatedError, use sessions.filter() instead - find_where() raises DeprecatedError, use sessions.get() instead - list_sessions() raises DeprecatedError, use sessions property instead - _sessions, _list_sessions(), _list_windows(), _update_windows(), _list_panes(), _update_panes(), children all raise DeprecatedError
1 parent 6d88354 commit 18f6655

File tree

1 file changed

+48
-66
lines changed

1 file changed

+48
-66
lines changed

src/libtmux/server.py

Lines changed: 48 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import shutil
1414
import subprocess
1515
import typing as t
16-
import warnings
1716

1817
from libtmux import exc, formats
1918
from libtmux._internal.query_list import QueryList
@@ -693,12 +692,11 @@ def kill_server(self) -> None:
693692
Deprecated in favor of :meth:`.kill()`.
694693
695694
"""
696-
warnings.warn(
697-
"Server.kill_server() is deprecated in favor of Server.kill()",
698-
category=DeprecationWarning,
699-
stacklevel=2,
695+
raise exc.DeprecatedError(
696+
deprecated="Server.kill_server()",
697+
replacement="Server.kill()",
698+
version="0.30.0",
700699
)
701-
self.cmd("kill-server")
702700

703701
def _list_panes(self) -> list[PaneDict]:
704702
"""Return list of panes in :py:obj:`dict` form.
@@ -713,12 +711,11 @@ def _list_panes(self) -> list[PaneDict]:
713711
Deprecated in favor of :attr:`.panes`.
714712
715713
"""
716-
warnings.warn(
717-
"Server._list_panes() is deprecated",
718-
category=DeprecationWarning,
719-
stacklevel=2,
714+
raise exc.DeprecatedError(
715+
deprecated="Server._list_panes()",
716+
replacement="Server.panes property",
717+
version="0.16.0",
720718
)
721-
return [p.__dict__ for p in self.panes]
722719

723720
def _update_panes(self) -> Server:
724721
"""Update internal pane data and return ``self`` for chainability.
@@ -731,13 +728,11 @@ def _update_panes(self) -> Server:
731728
-------
732729
:class:`Server`
733730
"""
734-
warnings.warn(
735-
"Server._update_panes() is deprecated",
736-
category=DeprecationWarning,
737-
stacklevel=2,
731+
raise exc.DeprecatedError(
732+
deprecated="Server._update_panes()",
733+
replacement="Server.panes property",
734+
version="0.16.0",
738735
)
739-
self._list_panes()
740-
return self
741736

742737
def get_by_id(self, session_id: str) -> Session | None:
743738
"""Return session by id. Deprecated in favor of :meth:`.sessions.get()`.
@@ -747,12 +742,11 @@ def get_by_id(self, session_id: str) -> Session | None:
747742
Deprecated by :meth:`.sessions.get()`.
748743
749744
"""
750-
warnings.warn(
751-
"Server.get_by_id() is deprecated",
752-
category=DeprecationWarning,
753-
stacklevel=2,
745+
raise exc.DeprecatedError(
746+
deprecated="Server.get_by_id()",
747+
replacement="Server.sessions.get(session_id=..., default=None)",
748+
version="0.16.0",
754749
)
755-
return self.sessions.get(session_id=session_id, default=None)
756750

757751
def where(self, kwargs: dict[str, t.Any]) -> list[Session]:
758752
"""Filter through sessions, return list of :class:`Session`.
@@ -762,15 +756,11 @@ def where(self, kwargs: dict[str, t.Any]) -> list[Session]:
762756
Deprecated by :meth:`.session.filter()`.
763757
764758
"""
765-
warnings.warn(
766-
"Server.find_where() is deprecated",
767-
category=DeprecationWarning,
768-
stacklevel=2,
759+
raise exc.DeprecatedError(
760+
deprecated="Server.where()",
761+
replacement="Server.sessions.filter()",
762+
version="0.16.0",
769763
)
770-
try:
771-
return self.sessions.filter(**kwargs)
772-
except IndexError:
773-
return []
774764

775765
def find_where(self, kwargs: dict[str, t.Any]) -> Session | None:
776766
"""Filter through sessions, return first :class:`Session`.
@@ -780,12 +770,11 @@ def find_where(self, kwargs: dict[str, t.Any]) -> Session | None:
780770
Slated to be removed in favor of :meth:`.sessions.get()`.
781771
782772
"""
783-
warnings.warn(
784-
"Server.find_where() is deprecated",
785-
category=DeprecationWarning,
786-
stacklevel=2,
773+
raise exc.DeprecatedError(
774+
deprecated="Server.find_where()",
775+
replacement="Server.sessions.get(default=None, **kwargs)",
776+
version="0.16.0",
787777
)
788-
return self.sessions.get(default=None, **kwargs)
789778

790779
def _list_windows(self) -> list[WindowDict]:
791780
"""Return list of windows in :py:obj:`dict` form.
@@ -800,12 +789,11 @@ def _list_windows(self) -> list[WindowDict]:
800789
Slated to be removed in favor of :attr:`.windows`.
801790
802791
"""
803-
warnings.warn(
804-
"Server._list_windows() is deprecated",
805-
category=DeprecationWarning,
806-
stacklevel=2,
792+
raise exc.DeprecatedError(
793+
deprecated="Server._list_windows()",
794+
replacement="Server.windows property",
795+
version="0.16.0",
807796
)
808-
return [w.__dict__ for w in self.windows]
809797

810798
def _update_windows(self) -> Server:
811799
"""Update internal window data and return ``self`` for chainability.
@@ -815,13 +803,11 @@ def _update_windows(self) -> Server:
815803
Deprecated in favor of :attr:`.windows` and returning ``self``.
816804
817805
"""
818-
warnings.warn(
819-
"Server._update_windows() is deprecated",
820-
category=DeprecationWarning,
821-
stacklevel=2,
806+
raise exc.DeprecatedError(
807+
deprecated="Server._update_windows()",
808+
replacement="Server.windows property",
809+
version="0.16.0",
822810
)
823-
self._list_windows()
824-
return self
825811

826812
@property
827813
def _sessions(self) -> list[SessionDict]:
@@ -832,12 +818,11 @@ def _sessions(self) -> list[SessionDict]:
832818
Slated to be removed in favor of :attr:`.sessions`.
833819
834820
"""
835-
warnings.warn(
836-
"Server._sessions is deprecated",
837-
category=DeprecationWarning,
838-
stacklevel=2,
821+
raise exc.DeprecatedError(
822+
deprecated="Server._sessions",
823+
replacement="Server.sessions property",
824+
version="0.16.0",
839825
)
840-
return self._list_sessions()
841826

842827
def _list_sessions(self) -> list[SessionDict]:
843828
"""Return list of session object dictionaries.
@@ -846,12 +831,11 @@ def _list_sessions(self) -> list[SessionDict]:
846831
847832
Slated to be removed in favor of :attr:`.sessions`.
848833
"""
849-
warnings.warn(
850-
"Server._list_sessions() is deprecated",
851-
category=DeprecationWarning,
852-
stacklevel=2,
834+
raise exc.DeprecatedError(
835+
deprecated="Server._list_sessions()",
836+
replacement="Server.sessions property",
837+
version="0.16.0",
853838
)
854-
return [s.__dict__ for s in self.sessions]
855839

856840
def list_sessions(self) -> list[Session]:
857841
"""Return list of :class:`Session` from the ``tmux(1)`` session.
@@ -864,12 +848,11 @@ def list_sessions(self) -> list[Session]:
864848
-------
865849
list of :class:`Session`
866850
"""
867-
warnings.warn(
868-
"Server.list_sessions is deprecated",
869-
category=DeprecationWarning,
870-
stacklevel=2,
851+
raise exc.DeprecatedError(
852+
deprecated="Server.list_sessions()",
853+
replacement="Server.sessions property",
854+
version="0.16.0",
871855
)
872-
return self.sessions
873856

874857
@property
875858
def children(self) -> QueryList[Session]:
@@ -880,9 +863,8 @@ def children(self) -> QueryList[Session]:
880863
Slated to be removed in favor of :attr:`.sessions`.
881864
882865
"""
883-
warnings.warn(
884-
"Server.children is deprecated",
885-
category=DeprecationWarning,
886-
stacklevel=2,
866+
raise exc.DeprecatedError(
867+
deprecated="Server.children",
868+
replacement="Server.sessions property",
869+
version="0.16.0",
887870
)
888-
return self.sessions

0 commit comments

Comments
 (0)