Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit aececa0

Browse filesBrowse files
committed
!squash more server
1 parent ea8fc51 commit aececa0
Copy full SHA for aececa0

File tree

Expand file treeCollapse file tree

1 file changed

+92
-23
lines changed
Filter options
Expand file treeCollapse file tree

1 file changed

+92
-23
lines changed

‎src/libtmux/server.py

Copy file name to clipboardExpand all lines: src/libtmux/server.py
+92-23Lines changed: 92 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@
1010
1111
Examples
1212
--------
13-
>>> from libtmux import Server
14-
>>> server = Server() # Create a new server instance
1513
>>> server.is_alive() # Check if tmux server is running
1614
True
1715
>>> # Clean up any existing test session first
@@ -23,7 +21,7 @@
2321
>>> server.has_session("test_session")
2422
True
2523
>>> server.kill_session("test_session") # Clean up
26-
Server(socket_path=/tmp/tmux-.../default)
24+
Server(socket_name=libtmux_test...)
2725
"""
2826

2927
from __future__ import annotations
@@ -387,7 +385,6 @@ def has_session(self, target_session: str, exact: bool = True) -> bool:
387385
388386
Examples
389387
--------
390-
>>> server = Server()
391388
>>> # Clean up any existing test session
392389
>>> if server.has_session("test_session"):
393390
... server.kill_session("test_session")
@@ -399,10 +396,11 @@ def has_session(self, target_session: str, exact: bool = True) -> bool:
399396
False
400397
>>> server.has_session("test_session", exact=True) # Exact match
401398
True
402-
>>> server.has_session("test*", exact=False) # Pattern match
399+
>>> # Pattern matching (using tmux's pattern matching)
400+
>>> server.has_session("test_sess*", exact=False) # Pattern match
403401
True
404402
>>> server.kill_session("test_session") # Clean up
405-
Server(socket_path=/tmp/tmux-.../default)
403+
Server(socket_name=libtmux_test...)
406404
"""
407405
session_check_name(target_session)
408406

@@ -419,16 +417,14 @@ def kill(self) -> None:
419417
420418
Examples
421419
--------
422-
>>> svr = Server(socket_name="testing")
423-
>>> svr.new_session()
420+
>>> # Create a new server for testing kill()
421+
>>> test_server = Server(socket_name="testing")
422+
>>> test_server.new_session()
424423
Session(...)
425-
426-
>>> svr.is_alive()
424+
>>> test_server.is_alive()
427425
True
428-
429-
>>> svr.kill()
430-
431-
>>> svr.is_alive()
426+
>>> test_server.kill()
427+
>>> test_server.is_alive()
432428
False
433429
"""
434430
self.cmd("kill-server")
@@ -443,15 +439,14 @@ def kill_session(self, target_session: str | int) -> Server:
443439
444440
Examples
445441
--------
446-
>>> server = Server()
447442
>>> # Clean up any existing session first
448443
>>> if server.has_session("temp"):
449444
... server.kill_session("temp")
450445
>>> session = server.new_session(session_name="temp")
451446
>>> server.has_session("temp")
452447
True
453448
>>> server.kill_session("temp")
454-
Server(socket_path=/tmp/tmux-.../default)
449+
Server(socket_name=libtmux_test...)
455450
>>> server.has_session("temp")
456451
False
457452
"""
@@ -468,6 +463,22 @@ def switch_client(self, target_session: str) -> None:
468463
target_session
469464
The name or pattern of the target session.
470465
466+
Examples
467+
--------
468+
>>> # Create two test sessions
469+
>>> for name in ["session1", "session2"]:
470+
... if server.has_session(name):
471+
... server.kill_session(name)
472+
>>> session1 = server.new_session(session_name="session1")
473+
>>> session2 = server.new_session(session_name="session2")
474+
>>> # Note: switch_client() requires an interactive terminal
475+
>>> # so we can't demonstrate it in doctests
476+
>>> # Clean up
477+
>>> server.kill_session("session1")
478+
Server(socket_name=libtmux_test...)
479+
>>> server.kill_session("session2")
480+
Server(socket_name=libtmux_test...)
481+
471482
Raises
472483
------
473484
exc.BadSessionName
@@ -489,6 +500,18 @@ def attach_session(self, target_session: str | None = None) -> None:
489500
The name or pattern of the target session. If None, attaches to
490501
the most recently used session.
491502
503+
Examples
504+
--------
505+
>>> # Create a test session
506+
>>> if server.has_session("test_attach"):
507+
... server.kill_session("test_attach")
508+
>>> session = server.new_session(session_name="test_attach")
509+
>>> # Note: attach_session() requires an interactive terminal
510+
>>> # so we can't demonstrate it in doctests
511+
>>> # Clean up
512+
>>> server.kill_session("test_attach")
513+
Server(socket_name=libtmux_test...)
514+
492515
Raises
493516
------
494517
exc.BadSessionName
@@ -540,7 +563,6 @@ def new_session(
540563
541564
Examples
542565
--------
543-
>>> server = Server()
544566
>>> # Clean up any existing sessions first
545567
>>> for name in ["basic", "custom", "env_test"]:
546568
... if server.has_session(name):
@@ -569,9 +591,9 @@ def new_session(
569591
>>> # Clean up
570592
>>> for name in ["basic", "custom", "env_test"]:
571593
... server.kill_session(name)
572-
Server(socket_path=/tmp/tmux-.../default)
573-
Server(socket_path=/tmp/tmux-.../default)
574-
Server(socket_path=/tmp/tmux-.../default)
594+
Server(socket_name=libtmux_test...)
595+
Server(socket_name=libtmux_test...)
596+
Server(socket_name=libtmux_test...)
575597
"""
576598
if session_name is not None:
577599
session_check_name(session_name)
@@ -635,7 +657,6 @@ def sessions(self) -> QueryList[Session]:
635657
636658
Examples
637659
--------
638-
>>> server = Server()
639660
>>> # Clean up any existing test sessions first
640661
>>> for name in ["test1", "test2"]:
641662
... if server.has_session(name):
@@ -649,9 +670,9 @@ def sessions(self) -> QueryList[Session]:
649670
['test1', 'test2']
650671
>>> # Clean up
651672
>>> server.kill_session("test1")
652-
Server(socket_path=/tmp/tmux-.../default)
673+
Server(socket_name=libtmux_test...)
653674
>>> server.kill_session("test2")
654-
Server(socket_path=/tmp/tmux-.../default)
675+
Server(socket_name=libtmux_test...)
655676
"""
656677
sessions: list[Session] = []
657678
with contextlib.suppress(Exception):
@@ -670,6 +691,36 @@ def windows(self) -> QueryList[Window]:
670691
671692
This includes windows in all sessions.
672693
694+
Examples
695+
--------
696+
>>> # Clean up any existing test sessions
697+
>>> for name in ["test_windows1", "test_windows2"]:
698+
... if server.has_session(name):
699+
... server.kill_session(name)
700+
>>> # Create sessions with windows
701+
>>> session1 = server.new_session(session_name="test_windows1")
702+
>>> session2 = server.new_session(session_name="test_windows2")
703+
>>> # Create additional windows
704+
>>> _ = session1.new_window(window_name="win1") # Create window
705+
>>> _ = session2.new_window(window_name="win2") # Create window
706+
>>> # Each session should have 2 windows (default + new)
707+
>>> len([w for w in server.windows if w.session.name == "test_windows1"])
708+
2
709+
>>> len([w for w in server.windows if w.session.name == "test_windows2"])
710+
2
711+
>>> # Verify window names
712+
>>> wins1 = [w for w in server.windows if w.session.name == "test_windows1"]
713+
>>> wins2 = [w for w in server.windows if w.session.name == "test_windows2"]
714+
>>> sorted(w.name for w in wins1)
715+
['win1', ...]
716+
>>> sorted(w.name for w in wins2)
717+
['win2', ...]
718+
>>> # Clean up
719+
>>> server.kill_session("test_windows1")
720+
Server(socket_name=libtmux_test...)
721+
>>> server.kill_session("test_windows2")
722+
Server(socket_name=libtmux_test...)
723+
673724
Access advanced filtering and retrieval with:
674725
:meth:`.windows.get() <libtmux._internal.query_list.QueryList.get()>` and
675726
:meth:`.windows.filter() <libtmux._internal.query_list.QueryList.filter()>`
@@ -690,6 +741,24 @@ def panes(self) -> QueryList[Pane]:
690741
691742
This includes panes from all windows in all sessions.
692743
744+
Examples
745+
--------
746+
>>> # Clean up any existing test session
747+
>>> if server.has_session("test_panes"):
748+
... server.kill_session("test_panes")
749+
>>> # Create a session and split some panes
750+
>>> session = server.new_session(session_name="test_panes")
751+
>>> window = session.attached_window
752+
>>> # Split into two panes
753+
>>> window.split_window()
754+
Pane(%... Window(@... 1:..., Session($... test_panes)))
755+
>>> # Each window starts with 1 pane, split creates another
756+
>>> len([p for p in server.panes if p.window.session.name == "test_panes"])
757+
2
758+
>>> # Clean up
759+
>>> server.kill_session("test_panes")
760+
Server(socket_name=libtmux_test...)
761+
693762
Access advanced filtering and retrieval with:
694763
:meth:`.panes.get() <libtmux._internal.query_list.QueryList.get()>` and
695764
:meth:`.panes.filter() <libtmux._internal.query_list.QueryList.filter()>`

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.