4
4
from typing import List , Dict , Generator , Tuple , Any , Set
5
5
import importlib
6
6
7
- from nixops .storage import storage_backends
8
- from nixops .locks import lock_drivers
7
+ from nixops .storage import StorageBackend
8
+ from nixops .locks import LockDriver
9
9
from . import get_plugins , MachineHooks , DeploymentHooks
10
10
import nixops .ansi
11
11
import nixops
12
+ from typing import Type
12
13
import sys
13
14
14
15
@@ -83,7 +84,9 @@ def docs() -> Generator[Tuple[str, str], None, None]:
83
84
yield from plugin .docs ()
84
85
85
86
@staticmethod
86
- def storage_backends ():
87
+ def storage_backends () -> Dict [str , Type [StorageBackend ]]:
88
+ storage_backends : Dict [str , Type [StorageBackend ]] = {}
89
+
87
90
for plugin in get_plugins ():
88
91
for name , backend in plugin .storage_backends ().items ():
89
92
if name not in storage_backends :
@@ -95,8 +98,12 @@ def storage_backends():
95
98
)
96
99
)
97
100
101
+ return storage_backends
102
+
98
103
@staticmethod
99
- def lock_drivers ():
104
+ def lock_drivers () -> Dict [str , Type [LockDriver ]]:
105
+ lock_drivers : Dict [str , Type [LockDriver ]] = {}
106
+
100
107
for plugin in get_plugins ():
101
108
for name , driver in plugin .lock_drivers ().items ():
102
109
if name not in lock_drivers :
@@ -107,3 +114,5 @@ def lock_drivers():
107
114
f"Two plugins tried to provide the '{ name } ' lock driver."
108
115
)
109
116
)
117
+
118
+ return lock_drivers
0 commit comments