@@ -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