@@ -136,6 +136,9 @@ class WorkspaceBuilder:
136
136
a session inside tmux (when `$TMUX` is in the env variables).
137
137
"""
138
138
139
+ server : t .Optional ["Server" ]
140
+ session : t .Optional ["Session" ]
141
+
139
142
def __init__ (
140
143
self ,
141
144
sconf : t .Dict [str , t .Any ],
@@ -169,21 +172,22 @@ def __init__(
169
172
170
173
if isinstance (server , Server ):
171
174
self .server = server
172
- else :
173
- self .server = None
174
175
175
176
self .sconf = sconf
176
177
177
178
self .plugins = plugins
178
179
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
180
184
exists = self .server .has_session (session_name )
181
185
if not exists :
182
186
return exists
183
187
184
188
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 :
187
191
return False
188
192
return True
189
193
@@ -234,13 +238,19 @@ def build(self, session: t.Optional[Session] = None, append: bool = False) -> No
234
238
session_name = self .sconf ["session_name" ],
235
239
** new_session_kwargs ,
236
240
)
241
+ assert session is not None
237
242
238
243
assert self .sconf ["session_name" ] == session .name
239
244
assert len (self .sconf ["session_name" ]) > 0
240
245
246
+ assert session is not None
247
+ assert session .name is not None
248
+
241
249
self .session : "Session" = session
242
- self .server : "Server" = session .server
243
250
251
+ assert session .server is not None
252
+
253
+ self .server : "Server" = session .server
244
254
self .server .sessions
245
255
assert self .server .has_session (session .name )
246
256
assert session .id
@@ -340,7 +350,7 @@ def iter_create_windows(
340
350
w1 = None
341
351
if is_first_window_pass : # if first window, use window 1
342
352
w1 = session .attached_window
343
- w1 .move_window (99 )
353
+ w1 .move_window ("99" )
344
354
345
355
if "start_directory" in wconf :
346
356
sd = wconf ["start_directory" ]
@@ -427,7 +437,9 @@ def iter_create_panes(
427
437
"""
428
438
assert isinstance (w , Window )
429
439
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 )
431
443
432
444
p = None
433
445
@@ -464,6 +476,8 @@ def get_pane_shell():
464
476
)
465
477
environment = None
466
478
479
+ assert p is not None
480
+
467
481
p = w .split_window (
468
482
attach = True ,
469
483
start_directory = get_pane_start_directory (),
@@ -524,9 +538,11 @@ def config_after_window(self, w: Window, wconf: t.Dict[str, t.Any]) -> None:
524
538
w .set_window_option (key , val )
525
539
526
540
def find_current_attached_session (self ) -> Session :
541
+ assert self .server is not None
542
+
527
543
current_active_pane = get_current_pane (self .server )
528
544
529
- if not current_active_pane :
545
+ if current_active_pane is None :
530
546
raise exc .TmuxpException ("No session active." )
531
547
532
548
return next (
0 commit comments