Skip to content

Commit 75eed3a

Browse files
committed
chore(builder): Add strict typings
1 parent 7e26b0b commit 75eed3a

File tree

1 file changed

+25
-9
lines changed

1 file changed

+25
-9
lines changed

src/tmuxp/workspace/builder.py

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)