Skip to content

Commit aab30b5

Browse files
committed
refactor(WorkspaceBuilder): Refactor .session
1 parent b7fe6b6 commit aab30b5

File tree

1 file changed

+28
-4
lines changed

1 file changed

+28
-4
lines changed

src/tmuxp/workspace/builder.py

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,8 @@ class WorkspaceBuilder:
135135
"""
136136

137137
server: "Server"
138-
session: t.Optional["Session"]
138+
_session: t.Optional["Session"]
139+
session_name: str
139140

140141
def __init__(
141142
self,
@@ -171,9 +172,29 @@ def __init__(
171172
self.server = server
172173

173174
self.sconf = sconf
174-
175175
self.plugins = plugins
176176

177+
if self.server is not None and self.session_exists(
178+
session_name=self.sconf["session_name"]
179+
):
180+
try:
181+
session = self.server.sessions.get(
182+
session_name=self.sconf["session_name"]
183+
)
184+
assert session is not None
185+
self._session = session
186+
except ObjectDoesNotExist:
187+
pass
188+
189+
@property
190+
def session(self):
191+
if self._session is None:
192+
raise ObjectDoesNotExist(
193+
"No session object exists for WorkspaceBuilder. "
194+
"Tip: Add session_name in constructor or run WorkspaceBuilder.build()"
195+
)
196+
return self._session
197+
177198
def session_exists(self, session_name: str) -> bool:
178199
assert session_name is not None
179200
assert isinstance(session_name, str)
@@ -213,9 +234,12 @@ def build(self, session: t.Optional[Session] = None, append: bool = False) -> No
213234

214235
if self.server.has_session(self.sconf["session_name"]):
215236
try:
216-
self.session = self.server.sessions.get(
237+
session = self.server.sessions.get(
217238
session_name=self.sconf["session_name"]
218239
)
240+
assert session is not None
241+
assert isinstance(session, Session)
242+
self._session = session
219243

220244
raise TmuxSessionExists(
221245
"Session name %s is already running."
@@ -241,7 +265,7 @@ def build(self, session: t.Optional[Session] = None, append: bool = False) -> No
241265
assert session is not None
242266
assert session.name is not None
243267

244-
self.session: "Session" = session
268+
self._session = session
245269

246270
assert session.server is not None
247271

0 commit comments

Comments
 (0)