Spaces:
Running
Running
import logging | |
from typing import Any, Optional | |
import requests | |
_logger = logging.getLogger(__name__) | |
url_template = 'http://localhost:{}/api/v1/nni{}' | |
timeout = 20 | |
def request(method: str, port: Optional[int], api: str, data: Any = None) -> Any: | |
if port is None: | |
raise RuntimeError('Experiment is not running') | |
url = url_template.format(port, api) | |
if data is None: | |
resp = requests.request(method, url, timeout=timeout) | |
else: | |
resp = requests.request(method, url, json=data, timeout=timeout) | |
if not resp.ok: | |
_logger.error('rest request %s %s failed: %s %s', method.upper(), url, resp.status_code, resp.text) | |
resp.raise_for_status() | |
if method.lower() in ['get', 'post'] and len(resp.content) > 0: | |
return resp.json() | |
def get(port: Optional[int], api: str) -> Any: | |
return request('get', port, api) | |
def post(port: Optional[int], api: str, data: Any) -> Any: | |
return request('post', port, api, data) | |
def put(port: Optional[int], api: str, data: Any) -> None: | |
request('put', port, api, data) | |
def delete(port: Optional[int], api: str) -> None: | |
request('delete', port, api) | |