2626TMUXP_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+
2942class 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