Skip to content

Commit 3cb2462

Browse files
committed
Make initialising DWA easier
1 parent 8b0fb67 commit 3cb2462

1 file changed

Lines changed: 12 additions & 9 deletions

File tree

DuetWebAPI/DuetWebAPI.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,21 +21,24 @@
2121

2222

2323
class DuetWebAPIFactory:
24-
def __init__(self):
24+
def __init__(self) -> None:
2525
self._creators = {}
26+
27+
def __call__(self, base_url: str) -> DuetAPI:
28+
self.get_api(base_url)
2629

27-
def register_api(self, name: str, creator: object, url_suffix: str):
30+
def register_api(self, name: str, creator: object, url_suffix: str) -> None:
2831
self._creators[name] = {'creator': creator, 'url_suffix': url_suffix}
2932

30-
def get_api(self, base_url):
33+
def get_api(self, base_url) -> DuetAPI:
3134
for api in self._creators.values():
3235
url = base_url + api['url_suffix']
3336
r = requests.get(url, timeout=(2, 60))
3437
if r.ok:
3538
creator = api['creator']
3639
return creator(base_url)
3740

38-
self.logging.error(f'Can not get API for {self.base_url}')
41+
self.logging.error(f'Can not get API for {base_url}')
3942
raise ValueError
4043

4144

@@ -217,13 +220,13 @@ def put_directory(self, directory):
217220
return r.text
218221

219222

220-
factory = DuetWebAPIFactory()
221-
factory.register_api('DWC', DWCAPI, '/rr_model')
222-
factory.register_api('DSF', DSFAPI, '/machine/status')
223+
DuetWebAPI = DuetWebAPIFactory()
224+
DuetWebAPI.register_api('DWC', DWCAPI, '/rr_model')
225+
DuetWebAPI.register_api('DSF', DSFAPI, '/machine/status')
223226

224227

225-
riley = factory.get_api('http://riley')
226-
force_rig = factory.get_api('http://forcerig')
228+
riley = DuetWebAPI('http://riley')
229+
force_rig = DuetWebAPI('http://forcerig')
227230
force_rig.put_file('test.gcode', 'test.gcode')
228231
riley.put_file('test.gcode', 'test.gcode')
229232
pass

0 commit comments

Comments
 (0)