@@ -135,7 +135,8 @@ class WorkspaceBuilder:
135
135
"""
136
136
137
137
server : "Server"
138
- session : t .Optional ["Session" ]
138
+ _session : t .Optional ["Session" ]
139
+ session_name : str
139
140
140
141
def __init__ (
141
142
self ,
@@ -171,9 +172,31 @@ def __init__(
171
172
self .server = server
172
173
173
174
self .sconf = sconf
174
-
175
175
self .plugins = plugins
176
176
177
+ if self .server is not None and self .session_exists (
178
+ session_name = self .sconf ["session_name" ]
179
+ ):
180
+ try :
181
+ # todo libtmux: Add overload for .get() to always be non-null unless
182
+ # default added.
183
+ session = self .server .sessions .get (
184
+ session_name = self .sconf ["session_name" ]
185
+ )
186
+ assert session is not None
187
+ self ._session = session
188
+ except ObjectDoesNotExist :
189
+ pass
190
+
191
+ @property
192
+ def session (self ):
193
+ if self ._session is None :
194
+ raise ObjectDoesNotExist (
195
+ "No session object exists for WorkspaceBuilder. "
196
+ "Tip: Add session_name in constructor or run WorkspaceBuilder.build()"
197
+ )
198
+ return self ._session
199
+
177
200
def session_exists (self , session_name : str ) -> bool :
178
201
assert session_name is not None
179
202
assert isinstance (session_name , str )
@@ -213,9 +236,12 @@ def build(self, session: t.Optional[Session] = None, append: bool = False) -> No
213
236
214
237
if self .server .has_session (self .sconf ["session_name" ]):
215
238
try :
216
- self . session = self .server .sessions .get (
239
+ session = self .server .sessions .get (
217
240
session_name = self .sconf ["session_name" ]
218
241
)
242
+ assert session is not None
243
+ assert isinstance (session , Session )
244
+ self ._session = session
219
245
220
246
raise TmuxSessionExists (
221
247
"Session name %s is already running."
@@ -241,7 +267,7 @@ def build(self, session: t.Optional[Session] = None, append: bool = False) -> No
241
267
assert session is not None
242
268
assert session .name is not None
243
269
244
- self .session : "Session" = session
270
+ self ._session = session
245
271
246
272
assert session .server is not None
247
273
0 commit comments