13
13
import typing as t
14
14
from collections .abc import MutableMapping
15
15
from distutils .version import LooseVersion
16
+ from typing import Any , Dict , List , Optional , Union
16
17
17
18
from . import exc
18
19
from ._compat import console_to_str , str_from_console
19
20
21
+ if t .TYPE_CHECKING :
22
+ from libtmux .pane import Pane
23
+ from libtmux .session import Session
24
+ from libtmux .window import Window
25
+
26
+
20
27
logger = logging .getLogger (__name__ )
21
28
22
29
@@ -40,10 +47,10 @@ class EnvironmentMixin:
40
47
41
48
_add_option = None
42
49
43
- def __init__ (self , add_option = None ):
50
+ def __init__ (self , add_option : Optional [ str ] = None ) -> None :
44
51
self ._add_option = add_option
45
52
46
- def set_environment (self , name , value ) :
53
+ def set_environment (self , name : str , value : str ) -> None :
47
54
"""
48
55
Set environment ``$ tmux set-environment <name> <value>``.
49
56
@@ -67,7 +74,7 @@ def set_environment(self, name, value):
67
74
proc .stderr = proc .stderr [0 ]
68
75
raise ValueError ("tmux set-environment stderr: %s" % proc .stderr )
69
76
70
- def unset_environment (self , name ) :
77
+ def unset_environment (self , name : str ) -> None :
71
78
"""
72
79
Unset environment variable ``$ tmux set-environment -u <name>``.
73
80
@@ -88,7 +95,7 @@ def unset_environment(self, name):
88
95
proc .stderr = proc .stderr [0 ]
89
96
raise ValueError ("tmux set-environment stderr: %s" % proc .stderr )
90
97
91
- def remove_environment (self , name ) :
98
+ def remove_environment (self , name : str ) -> None :
92
99
"""Remove environment variable ``$ tmux set-environment -r <name>``.
93
100
94
101
Parameters
@@ -108,7 +115,7 @@ def remove_environment(self, name):
108
115
proc .stderr = proc .stderr [0 ]
109
116
raise ValueError ("tmux set-environment stderr: %s" % proc .stderr )
110
117
111
- def show_environment (self ):
118
+ def show_environment (self ) -> Optional [ Dict [ str , Union [ bool , str ]]] :
112
119
"""Show environment ``$ tmux show-environment -t [session]``.
113
120
114
121
Return dict of environment variables for the session.
@@ -139,7 +146,7 @@ def show_environment(self):
139
146
140
147
return vars_dict
141
148
142
- def getenv (self , name ) :
149
+ def getenv (self , name : str ) -> Optional [ str ] :
143
150
"""Show environment variable ``$ tmux show-environment -t [session] <name>``.
144
151
145
152
Return the value of a specific variable if the name is specified.
@@ -214,7 +221,7 @@ class tmux_cmd:
214
221
Renamed from ``tmux`` to ``tmux_cmd``.
215
222
"""
216
223
217
- def __init__ (self , * args , ** kwargs ):
224
+ def __init__ (self , * args , ** kwargs ) -> None :
218
225
tmux_bin = which (
219
226
"tmux" ,
220
227
default_paths = kwargs .get (
@@ -279,10 +286,10 @@ class TmuxMappingObject(MutableMapping):
279
286
================ ================================== ==============
280
287
"""
281
288
282
- def __getitem__ (self , key ) :
289
+ def __getitem__ (self , key : str ) -> str :
283
290
return self ._info [key ]
284
291
285
- def __setitem__ (self , key , value ) :
292
+ def __setitem__ (self , key : str , value : str ) -> None :
286
293
self ._info [key ] = value
287
294
self .dirty = True
288
295
@@ -297,10 +304,10 @@ def keys(self):
297
304
def __iter__ (self ):
298
305
return self ._info .__iter__ ()
299
306
300
- def __len__ (self ):
307
+ def __len__ (self ) -> int :
301
308
return len (self ._info .keys ())
302
309
303
- def __getattr__ (self , key ) :
310
+ def __getattr__ (self , key : str ) -> str :
304
311
try :
305
312
return self ._info [self .formatter_prefix + key ]
306
313
except KeyError :
@@ -337,7 +344,9 @@ class TmuxRelationalObject:
337
344
================ ================================== ==============
338
345
"""
339
346
340
- def find_where (self , attrs ):
347
+ def find_where (
348
+ self , attrs : Dict [str , str ]
349
+ ) -> Optional [Union ["Pane" , "Window" , "Session" ]]:
341
350
"""Return object on first match.
342
351
343
352
.. versionchanged:: 0.4
@@ -349,7 +358,9 @@ def find_where(self, attrs):
349
358
except IndexError :
350
359
return None
351
360
352
- def where (self , attrs , first = False ):
361
+ def where (
362
+ self , attrs : Dict [str , str ], first : bool = False
363
+ ) -> List [Union ["Session" , "Pane" , "Window" , t .Any ]]:
353
364
"""
354
365
Return objects matching child objects properties.
355
366
@@ -379,7 +390,7 @@ def by(val) -> bool:
379
390
return target_children [0 ]
380
391
return target_children
381
392
382
- def get_by_id (self , id ) :
393
+ def get_by_id (self , id : str ) -> Optional [ Union [ "Pane" , "Window" , "Session" ]] :
383
394
"""
384
395
Return object based on ``child_id_attribute``.
385
396
@@ -638,7 +649,7 @@ def has_minimum_version(raises: bool = True) -> bool:
638
649
return True
639
650
640
651
641
- def session_check_name (session_name : str ):
652
+ def session_check_name (session_name : str ) -> None :
642
653
"""
643
654
Raises exception session name invalid, modeled after tmux function.
644
655
0 commit comments