|
1 | 1 | from typing import Optional, Union |
2 | | -from .base import BaseSubAPI, nil_return, bool_return, opt_str_return, opt_int_return, opt_str_bool_return |
| 2 | + |
| 3 | +from .base import BaseSubAPI |
| 4 | +from ..rproc import boolean, string, nil, option_integer, option_string, fact_option, fact_union |
| 5 | + |
| 6 | + |
| 7 | +option_string_bool = fact_option(fact_union( |
| 8 | + ( |
| 9 | + lambda v: v is True or v is False, |
| 10 | + boolean, |
| 11 | + ), |
| 12 | + pelse=string, |
| 13 | +)) |
3 | 14 |
|
4 | 15 |
|
5 | 16 | class DiskAPI(BaseSubAPI): |
6 | 17 | _API = 'disk' |
7 | 18 |
|
8 | 19 | async def isPresent(self, side: str) -> bool: |
9 | | - return bool_return(await self._send('isPresent', side)) |
| 20 | + return boolean(await self._send('isPresent', side)) |
10 | 21 |
|
11 | 22 | async def hasData(self, side: str) -> bool: |
12 | | - return bool_return(await self._send('hasData', side)) |
| 23 | + return boolean(await self._send('hasData', side)) |
13 | 24 |
|
14 | 25 | async def getMountPath(self, side: str) -> Optional[str]: |
15 | | - return opt_str_return(await self._send('getMountPath', side)) |
| 26 | + return option_string(await self._send('getMountPath', side)) |
16 | 27 |
|
17 | 28 | async def setLabel(self, side: str, label: str): |
18 | | - return nil_return(await self._send('setLabel', side, label)) |
| 29 | + return nil(await self._send('setLabel', side, label)) |
19 | 30 |
|
20 | 31 | async def getLabel(self, side: str) -> Optional[str]: |
21 | | - return opt_str_return(await self._send('getLabel', side)) |
| 32 | + return option_string(await self._send('getLabel', side)) |
22 | 33 |
|
23 | 34 | async def getID(self, side: str) -> Optional[int]: |
24 | | - return opt_int_return(await self._send('getID', side)) |
| 35 | + return option_integer(await self._send('getID', side)) |
25 | 36 |
|
26 | 37 | async def hasAudio(self, side: str) -> bool: |
27 | | - return bool_return(await self._send('hasAudio', side)) |
| 38 | + return boolean(await self._send('hasAudio', side)) |
28 | 39 |
|
29 | 40 | async def getAudioTitle(self, side: str) -> Optional[Union[bool, str]]: |
30 | | - return opt_str_bool_return(await self._send('getAudioTitle', side)) |
| 41 | + return option_string_bool(await self._send('getAudioTitle', side)) |
31 | 42 |
|
32 | 43 | async def playAudio(self, side: str): |
33 | | - return nil_return(await self._send('playAudio', side)) |
| 44 | + return nil(await self._send('playAudio', side)) |
34 | 45 |
|
35 | 46 | async def stopAudio(self, side: str): |
36 | | - return nil_return(await self._send('stopAudio', side)) |
| 47 | + return nil(await self._send('stopAudio', side)) |
37 | 48 |
|
38 | 49 | async def eject(self, side: str): |
39 | | - return nil_return(await self._send('eject', side)) |
| 50 | + return nil(await self._send('eject', side)) |
0 commit comments