@@ -136,6 +136,9 @@ class WorkspaceBuilder:
136136 a session inside tmux (when `$TMUX` is in the env variables).
137137 """
138138
139+ server : t .Optional ["Server" ]
140+ session : t .Optional ["Session" ]
141+
139142 def __init__ (
140143 self ,
141144 sconf : t .Dict [str , t .Any ],
@@ -169,21 +172,22 @@ def __init__(
169172
170173 if isinstance (server , Server ):
171174 self .server = server
172- else :
173- self .server = None
174175
175176 self .sconf = sconf
176177
177178 self .plugins = plugins
178179
179- def session_exists (self , session_name : t .Optional [str ] = None ) -> bool :
180+ def session_exists (self , session_name : str ) -> bool :
181+ assert session_name is not None
182+ assert isinstance (session_name , str )
183+ assert self .server is not None
180184 exists = self .server .has_session (session_name )
181185 if not exists :
182186 return exists
183187
184188 try :
185- self .session = self . server .sessions .filter (session_name = session_name )[ 0 ]
186- except IndexError :
189+ self .server .sessions .get (session_name = session_name )
190+ except ObjectDoesNotExist :
187191 return False
188192 return True
189193
@@ -234,13 +238,19 @@ def build(self, session: t.Optional[Session] = None, append: bool = False) -> No
234238 session_name = self .sconf ["session_name" ],
235239 ** new_session_kwargs ,
236240 )
241+ assert session is not None
237242
238243 assert self .sconf ["session_name" ] == session .name
239244 assert len (self .sconf ["session_name" ]) > 0
240245
246+ assert session is not None
247+ assert session .name is not None
248+
241249 self .session : "Session" = session
242- self .server : "Server" = session .server
243250
251+ assert session .server is not None
252+
253+ self .server : "Server" = session .server
244254 self .server .sessions
245255 assert self .server .has_session (session .name )
246256 assert session .id
@@ -340,7 +350,7 @@ def iter_create_windows(
340350 w1 = None
341351 if is_first_window_pass : # if first window, use window 1
342352 w1 = session .attached_window
343- w1 .move_window (99 )
353+ w1 .move_window ("99" )
344354
345355 if "start_directory" in wconf :
346356 sd = wconf ["start_directory" ]
@@ -427,7 +437,9 @@ def iter_create_panes(
427437 """
428438 assert isinstance (w , Window )
429439
430- pane_base_index = int (w .show_window_option ("pane-base-index" , g = True ))
440+ pane_base_index_str = w .show_window_option ("pane-base-index" , g = True )
441+ assert pane_base_index_str is not None
442+ pane_base_index = int (pane_base_index_str )
431443
432444 p = None
433445
@@ -464,6 +476,8 @@ def get_pane_shell():
464476 )
465477 environment = None
466478
479+ assert p is not None
480+
467481 p = w .split_window (
468482 attach = True ,
469483 start_directory = get_pane_start_directory (),
@@ -524,9 +538,11 @@ def config_after_window(self, w: Window, wconf: t.Dict[str, t.Any]) -> None:
524538 w .set_window_option (key , val )
525539
526540 def find_current_attached_session (self ) -> Session :
541+ assert self .server is not None
542+
527543 current_active_pane = get_current_pane (self .server )
528544
529- if not current_active_pane :
545+ if current_active_pane is None :
530546 raise exc .TmuxpException ("No session active." )
531547
532548 return next (
0 commit comments