Skip to content

Commit c7162d9

Browse files
committed
chore(plugin): Add typings
1 parent 384a5e7 commit c7162d9

File tree

1 file changed

+35
-21
lines changed

1 file changed

+35
-21
lines changed

src/tmuxp/plugin.py

Lines changed: 35 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,19 @@
2626
TMUXP_MAX_VERSION = None
2727

2828

29+
class VersionConstraints(t.TypedDict):
30+
version: t.Union[Version, str]
31+
vmin: str
32+
vmax: t.Optional[str]
33+
incompatible: t.List[t.Union[t.Any, str]]
34+
35+
36+
class TmuxpPluginVersionConstraints(t.TypedDict):
37+
tmux: VersionConstraints
38+
tmuxp: VersionConstraints
39+
libtmux: VersionConstraints
40+
41+
2942
class TmuxpPlugin:
3043
def __init__(
3144
self,
@@ -84,35 +97,35 @@ def __init__(
8497

8598
# Dependency versions
8699
self.tmux_version = get_version()
87-
self.libtmux_version = libtmux.__version__
100+
self.libtmux_version = libtmux.__about__.__version__
88101
self.tmuxp_version = Version(__version__)
89102

90-
self.version_constraints = {
91-
"tmux": {
92-
"version": self.tmux_version,
93-
"vmin": tmux_min_version,
94-
"vmax": tmux_max_version,
95-
"incompatible": tmux_version_incompatible
103+
self.version_constraints = TmuxpPluginVersionConstraints(
104+
tmux=VersionConstraints(
105+
version=self.tmux_version,
106+
vmin=tmux_min_version,
107+
vmax=tmux_max_version,
108+
incompatible=tmux_version_incompatible
96109
if tmux_version_incompatible
97110
else [],
98-
},
99-
"libtmux": {
100-
"version": self.libtmux_version,
101-
"vmin": libtmux_min_version,
102-
"vmax": libtmux_max_version,
103-
"incompatible": libtmux_version_incompatible
111+
),
112+
libtmux=VersionConstraints(
113+
version=self.libtmux_version,
114+
vmin=libtmux_min_version,
115+
vmax=libtmux_max_version,
116+
incompatible=libtmux_version_incompatible
104117
if libtmux_version_incompatible
105118
else [],
106-
},
107-
"tmuxp": {
108-
"version": self.tmuxp_version,
109-
"vmin": tmuxp_min_version,
110-
"vmax": tmuxp_max_version,
111-
"incompatible": tmuxp_version_incompatible
119+
),
120+
tmuxp=VersionConstraints(
121+
version=self.tmuxp_version,
122+
vmin=tmuxp_min_version,
123+
vmax=tmuxp_max_version,
124+
incompatible=tmuxp_version_incompatible
112125
if tmuxp_version_incompatible
113126
else [],
114-
},
115-
}
127+
),
128+
)
116129

117130
self._version_check()
118131

@@ -121,6 +134,7 @@ def _version_check(self) -> None:
121134
Check all dependency versions for compatibility.
122135
"""
123136
for dep, constraints in self.version_constraints.items():
137+
assert isinstance(constraints, dict)
124138
try:
125139
assert self._pass_version_check(**constraints)
126140
except AssertionError:

0 commit comments

Comments
 (0)