| 250 | self.process = None |
| 251 | |
| 252 | def make_request( |
| 253 | self, |
| 254 | method: str, |
| 255 | path: str, |
| 256 | data: dict | Any | None = None, |
| 257 | headers: dict | None = None, |
| 258 | timeout: float | None = None, |
| 259 | ) -> ServerResponse: |
| 260 | url = f"http://{self.server_host}:{self.server_port}{path}" |
| 261 | parse_body = False |
| 262 | if method == "GET": |
| 263 | response = requests.get(url, headers=headers, timeout=timeout) |
| 264 | parse_body = True |
| 265 | elif method == "POST": |
| 266 | response = requests.post(url, headers=headers, json=data, timeout=timeout) |
| 267 | parse_body = True |
| 268 | elif method == "OPTIONS": |
| 269 | response = requests.options(url, headers=headers, timeout=timeout) |
| 270 | else: |
| 271 | raise ValueError(f"Unimplemented method: {method}") |
| 272 | result = ServerResponse() |
| 273 | result.headers = dict(response.headers) |
| 274 | result.status_code = response.status_code |
| 275 | result.body = response.json() if parse_body else None |
| 276 | print("Response from server", json.dumps(result.body, indent=2)) |
| 277 | return result |
| 278 | |
| 279 | def make_stream_request( |
| 280 | self, |