Skip to content

Commit abb341a

Browse files
committed
update APIs
1 parent fe31fac commit abb341a

8 files changed

Lines changed: 53 additions & 18 deletions

File tree

demo/app_common/api/api_common_sys_info.py

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,28 @@
1+
from datetime import datetime
2+
13
from aloha.service.api.v0 import APIHandler
24
from aloha.util import (sys_info, sys_gpu, sys_cuda)
35

46

7+
def echo(*args, **kwargs):
8+
return {
9+
'sys_time': datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f'),
10+
**kwargs
11+
}
12+
13+
514
class SysStatusInfo(APIHandler):
615
@staticmethod
716
def get_sys_info(kind: str = None, **kwargs) -> dict:
8-
kinds = ['sys', 'gpu', 'cuda']
9-
if kind is None:
17+
kinds = ['echo']
18+
if kind is None or len(kind) == 0:
1019
pass
1120
else:
1221
kinds = [kind]
1322

1423
dict_func = {
24+
"echo": echo,
25+
1526
"sys": sys_info.get_sys_info,
1627
"os": sys_info.get_os_info,
1728
"cpu": sys_info.get_cpu_info,
@@ -26,8 +37,10 @@ def get_sys_info(kind: str = None, **kwargs) -> dict:
2637
"cuda-paddle": sys_cuda.get_gpu_status_for_paddle,
2738
}
2839
ret = {}
29-
for k in kinds:
30-
ret.update({k: dict_func.get(k, sys_info.get_sys_info)()})
40+
for k in sorted(set(kinds)):
41+
if k not in dict_func:
42+
k = 'echo'
43+
ret.update({k: dict_func.get(k)()})
3144

3245
return ret
3346

demo/app_common/debug.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,27 @@
11
def main():
2+
from aloha.service import DefaultHandler404
23
from aloha.service.app import Application
34
from aloha.settings import SETTINGS
5+
46
modules_to_load = [
57
'app_common.api.api_common_sys_info'
68
]
79

810
if 'service' not in SETTINGS.config:
911
SETTINGS.config['service'] = {}
1012

13+
# load the service modules from SETTINGS.config['service']['modules']
1114
SETTINGS.config['service'].update({
1215
'modules': modules_to_load,
1316
'debug': True,
1417
})
1518

16-
# load the service modules from SETTINGS.config['service']['modules']
19+
# Use self defined 404 handler
20+
SETTINGS.config['default_handler_class'] = DefaultHandler404
21+
1722
app = Application()
23+
24+
# The event loop starts after start.
1825
app.start()
1926

2027

src/aloha/service/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import sys
22

33
from .api import v0, v1, v2
4+
from .http import DefaultHandler404
45

56
for module in (v0, v1, v2):
67
full_name = '{}.{}'.format(__package__, module.__name__.rsplit('.')[-1])

src/aloha/service/http/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
from .base_api_client import AbstractApiClient
2-
from .base_api_handler import AbstractApiHandler
2+
from .base_api_handler import AbstractApiHandler, DefaultHandler404
33
from .plain_http_handler import PlainHttpHandler

src/aloha/service/http/base_api_client.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,4 @@ def call(self, api_url: str, data: dict = None, timeout=5, **kwargs):
6161
LOG.error(str(e))
6262
raise RuntimeError(resp.text)
6363

64-
try:
65-
return ret['data']
66-
except KeyError:
67-
raise RuntimeError(resp.text)
64+
return ret

src/aloha/service/http/base_api_handler.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,20 @@ def request_body(self) -> dict:
6464
def request_param(self) -> dict:
6565
url_arguments: dict = {k: v[0].decode('utf-8') for k, v in self.request.arguments.items()}
6666
return url_arguments
67+
68+
69+
class DefaultHandler404(AbstractApiHandler):
70+
def response(self, *args, **kwargs) -> Optional[dict]:
71+
return self.prepare()
72+
73+
def prepare(self): # for all methods
74+
msg = {
75+
"code": 404,
76+
"status": "error",
77+
"message": [
78+
'Requested URL cannot be found: %s' % self.request.uri
79+
]
80+
}
81+
msg = json.dumps(msg, ensure_ascii=False, default=str, separators=(',', ':'))
82+
self.set_status(404, reason='Not Found')
83+
self.finish(msg)

src/aloha/util/sys_cuda.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
Status = namedtuple('Status', 'version,gpu_availability')
88

99

10-
def get_gpu_status_for_tf() -> dict:
10+
def get_gpu_status_for_tf(*args, **kwargs) -> dict:
1111
status = Status(version=None, gpu_availability=False)
1212
try:
1313
import tensorflow as tf
@@ -22,7 +22,7 @@ def get_gpu_status_for_tf() -> dict:
2222
return status._asdict()
2323

2424

25-
def get_gpu_status_for_torch() -> dict:
25+
def get_gpu_status_for_torch(*args, **kwargs) -> dict:
2626
status = Status(version=None, gpu_availability=False)
2727
try:
2828
import torch
@@ -37,7 +37,7 @@ def get_gpu_status_for_torch() -> dict:
3737
return status._asdict()
3838

3939

40-
def get_gpu_status_for_paddle() -> dict:
40+
def get_gpu_status_for_paddle(*args, **kwargs) -> dict:
4141
status = Status(version=None, gpu_availability=False)
4242
try:
4343
import paddle

src/aloha/util/sys_info.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ def get_size(bytes, suffix="B"):
2323
bytes /= factor
2424

2525

26-
def get_os_info() -> dict:
26+
def get_os_info(*args, **kwargs) -> dict:
2727
ret = {}
2828

2929
boot_time = datetime.fromtimestamp(psutil.boot_time())
@@ -34,7 +34,7 @@ def get_os_info() -> dict:
3434
return ret
3535

3636

37-
def get_cpu_info() -> dict:
37+
def get_cpu_info(*args, **kwargs) -> dict:
3838
cpu_freq = psutil.cpu_freq() # CPU frequencies
3939
ret = {
4040
"num_cores_physical": psutil.cpu_count(logical=False),
@@ -50,7 +50,7 @@ def get_cpu_info() -> dict:
5050
return ret
5151

5252

53-
def get_mem_info() -> dict:
53+
def get_mem_info(*args, **kwargs) -> dict:
5454
svmem = psutil.virtual_memory()
5555
swap = psutil.swap_memory()
5656

@@ -67,7 +67,7 @@ def get_mem_info() -> dict:
6767
}
6868

6969

70-
def get_disk_info() -> dict:
70+
def get_disk_info(*args, **kwargs) -> dict:
7171
# get IO statistics since boot
7272
disk_io = psutil.disk_io_counters()
7373
partitions = psutil.disk_partitions()
@@ -101,7 +101,7 @@ def get_disk_info() -> dict:
101101
return ret
102102

103103

104-
def get_net_info() -> dict:
104+
def get_net_info(*args, **kwargs) -> dict:
105105
# get IO statistics since boot
106106
net_io = psutil.net_io_counters()
107107

0 commit comments

Comments
 (0)