@@ -58,6 +58,8 @@ class EnvironmentMixin:
5858
5959 _add_option = None
6060
61+ cmd : t .Callable [[t .Any , t .Any ], "tmux_cmd" ]
62+
6163 def __init__ (self , add_option : Optional [str ] = None ) -> None :
6264 self ._add_option = add_option
6365
@@ -174,12 +176,15 @@ def getenv(self, name: str) -> Optional[str]:
174176 str
175177 Value of environment variable
176178 """
177- tmux_args = ["show-environment" ]
179+ tmux_args : t .Tuple [t .Union [str , int ], ...] = tuple ()
180+
181+ tmux_args += ("show-environment" ,)
178182 if self ._add_option :
179- tmux_args += [self ._add_option ]
180- tmux_args += [name ]
181- vars = self .cmd (* tmux_args ).stdout
182- vars = [tuple (item .split ("=" , 1 )) for item in vars ]
183+ tmux_args += (self ._add_option ,)
184+ tmux_args += (name ,)
185+ cmd = self .cmd (* tmux_args )
186+ output = cmd .stdout
187+ vars = [tuple (item .split ("=" , 1 )) for item in output ]
183188 vars_dict = {}
184189 for t in vars :
185190 if len (t ) == 2 :
@@ -262,17 +267,18 @@ def __init__(self, *args: t.Any, **kwargs: t.Any) -> None:
262267
263268 self .returncode = returncode
264269
265- self . stdout = console_to_str (stdout )
266- self . stdout = self . stdout .split ("\n " )
267- self . stdout = list (filter (None , self . stdout )) # filter empty values
270+ stdout_str = console_to_str (stdout )
271+ stdout_split = stdout_str .split ("\n " )
272+ stdout_filtered = list (filter (None , stdout_split )) # filter empty values
268273
269- self . stderr = console_to_str (stderr )
270- self . stderr = self . stderr .split ("\n " )
271- self .stderr = list (filter (None , self . stderr )) # filter empty values
274+ stderr_str = console_to_str (stderr )
275+ stderr_split = stderr_str .split ("\n " )
276+ self .stderr = list (filter (None , stderr_split )) # filter empty values
272277
273- if "has-session" in cmd and len (self .stderr ):
274- if not self .stdout :
275- self .stdout = self .stderr [0 ]
278+ if "has-session" in cmd and len (self .stderr ) and not stdout_filtered :
279+ self .stdout = [self .stderr [0 ]]
280+ else :
281+ self .stdout = stdout_filtered
276282
277283 logger .debug ("self.stdout for {}: \n {}" .format (" " .join (cmd ), self .stdout ))
278284
0 commit comments