Skip to content

Commit 8e7a631

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 3de7775 commit 8e7a631

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
@@ -694,12 +693,11 @@ def kill_server(self) -> None:
694693
Deprecated in favor of :meth:`.kill()`.
695694
696695
"""
697-
warnings.warn(
698-
"Server.kill_server() is deprecated in favor of Server.kill()",
699-
category=DeprecationWarning,
700-
stacklevel=2,
696+
raise exc.DeprecatedError(
697+
deprecated="Server.kill_server()",
698+
replacement="Server.kill()",
699+
version="0.30.0",
701700
)
702-
self.cmd("kill-server")
703701

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

724721
def _update_panes(self) -> Server:
725722
"""Update internal pane data and return ``self`` for chainability.
@@ -732,13 +729,11 @@ def _update_panes(self) -> Server:
732729
-------
733730
:class:`Server`
734731
"""
735-
warnings.warn(
736-
"Server._update_panes() is deprecated",
737-
category=DeprecationWarning,
738-
stacklevel=2,
732+
raise exc.DeprecatedError(
733+
deprecated="Server._update_panes()",
734+
replacement="Server.panes property",
735+
version="0.16.0",
739736
)
740-
self._list_panes()
741-
return self
742737

743738
def get_by_id(self, session_id: str) -> Session | None:
744739
"""Return session by id. Deprecated in favor of :meth:`.sessions.get()`.
@@ -748,12 +743,11 @@ def get_by_id(self, session_id: str) -> Session | None:
748743
Deprecated by :meth:`.sessions.get()`.
749744
750745
"""
751-
warnings.warn(
752-
"Server.get_by_id() is deprecated",
753-
category=DeprecationWarning,
754-
stacklevel=2,
746+
raise exc.DeprecatedError(
747+
deprecated="Server.get_by_id()",
748+
replacement="Server.sessions.get(session_id=..., default=None)",
749+
version="0.16.0",
755750
)
756-
return self.sessions.get(session_id=session_id, default=None)
757751

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

776766
def find_where(self, kwargs: dict[str, t.Any]) -> Session | None:
777767
"""Filter through sessions, return first :class:`Session`.
@@ -781,12 +771,11 @@ def find_where(self, kwargs: dict[str, t.Any]) -> Session | None:
781771
Slated to be removed in favor of :meth:`.sessions.get()`.
782772
783773
"""
784-
warnings.warn(
785-
"Server.find_where() is deprecated",
786-
category=DeprecationWarning,
787-
stacklevel=2,
774+
raise exc.DeprecatedError(
775+
deprecated="Server.find_where()",
776+
replacement="Server.sessions.get(default=None, **kwargs)",
777+
version="0.16.0",
788778
)
789-
return self.sessions.get(default=None, **kwargs)
790779

791780
def _list_windows(self) -> list[WindowDict]:
792781
"""Return list of windows in :py:obj:`dict` form.
@@ -801,12 +790,11 @@ def _list_windows(self) -> list[WindowDict]:
801790
Slated to be removed in favor of :attr:`.windows`.
802791
803792
"""
804-
warnings.warn(
805-
"Server._list_windows() is deprecated",
806-
category=DeprecationWarning,
807-
stacklevel=2,
793+
raise exc.DeprecatedError(
794+
deprecated="Server._list_windows()",
795+
replacement="Server.windows property",
796+
version="0.16.0",
808797
)
809-
return [w.__dict__ for w in self.windows]
810798

811799
def _update_windows(self) -> Server:
812800
"""Update internal window data and return ``self`` for chainability.
@@ -816,13 +804,11 @@ def _update_windows(self) -> Server:
816804
Deprecated in favor of :attr:`.windows` and returning ``self``.
817805
818806
"""
819-
warnings.warn(
820-
"Server._update_windows() is deprecated",
821-
category=DeprecationWarning,
822-
stacklevel=2,
807+
raise exc.DeprecatedError(
808+
deprecated="Server._update_windows()",
809+
replacement="Server.windows property",
810+
version="0.16.0",
823811
)
824-
self._list_windows()
825-
return self
826812

827813
@property
828814
def _sessions(self) -> list[SessionDict]:
@@ -833,12 +819,11 @@ def _sessions(self) -> list[SessionDict]:
833819
Slated to be removed in favor of :attr:`.sessions`.
834820
835821
"""
836-
warnings.warn(
837-
"Server._sessions is deprecated",
838-
category=DeprecationWarning,
839-
stacklevel=2,
822+
raise exc.DeprecatedError(
823+
deprecated="Server._sessions",
824+
replacement="Server.sessions property",
825+
version="0.16.0",
840826
)
841-
return self._list_sessions()
842827

843828
def _list_sessions(self) -> list[SessionDict]:
844829
"""Return list of session object dictionaries.
@@ -847,12 +832,11 @@ def _list_sessions(self) -> list[SessionDict]:
847832
848833
Slated to be removed in favor of :attr:`.sessions`.
849834
"""
850-
warnings.warn(
851-
"Server._list_sessions() is deprecated",
852-
category=DeprecationWarning,
853-
stacklevel=2,
835+
raise exc.DeprecatedError(
836+
deprecated="Server._list_sessions()",
837+
replacement="Server.sessions property",
838+
version="0.16.0",
854839
)
855-
return [s.__dict__ for s in self.sessions]
856840

857841
def list_sessions(self) -> list[Session]:
858842
"""Return list of :class:`Session` from the ``tmux(1)`` session.
@@ -865,12 +849,11 @@ def list_sessions(self) -> list[Session]:
865849
-------
866850
list of :class:`Session`
867851
"""
868-
warnings.warn(
869-
"Server.list_sessions is deprecated",
870-
category=DeprecationWarning,
871-
stacklevel=2,
852+
raise exc.DeprecatedError(
853+
deprecated="Server.list_sessions()",
854+
replacement="Server.sessions property",
855+
version="0.16.0",
872856
)
873-
return self.sessions
874857

875858
@property
876859
def children(self) -> QueryList[Session]:
@@ -881,9 +864,8 @@ def children(self) -> QueryList[Session]:
881864
Slated to be removed in favor of :attr:`.sessions`.
882865
883866
"""
884-
warnings.warn(
885-
"Server.children is deprecated",
886-
category=DeprecationWarning,
887-
stacklevel=2,
867+
raise exc.DeprecatedError(
868+
deprecated="Server.children",
869+
replacement="Server.sessions property",
870+
version="0.16.0",
888871
)
889-
return self.sessions

0 commit comments

Comments
 (0)