runloop-api-client 0.1.0a3__tar.gz → 0.1.0a4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {runloop_api_client-0.1.0a3 → runloop_api_client-0.1.0a4}/PKG-INFO +20 -20
- {runloop_api_client-0.1.0a3 → runloop_api_client-0.1.0a4}/pyproject.toml +5 -5
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/__init__.py +2 -2
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/_base_client.py +1 -1
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/_response.py +4 -4
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/_types.py +1 -1
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/_utils/_logs.py +2 -2
- runloop_api_client-0.1.0a4/src/runloop_api_client/_version.py +4 -0
- runloop_api_client-0.1.0a4/src/runloop_minus_api_minus_client/lib/.keep +4 -0
- runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client/_version.py +0 -4
- {runloop_api_client-0.1.0a3 → runloop_api_client-0.1.0a4}/.gitignore +0 -0
- {runloop_api_client-0.1.0a3 → runloop_api_client-0.1.0a4}/LICENSE +0 -0
- {runloop_api_client-0.1.0a3 → runloop_api_client-0.1.0a4}/src/runloop/lib/.keep +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/_client.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/_compat.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/_constants.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/_exceptions.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/_files.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/_models.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/_qs.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/_resource.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/_streaming.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/_utils/__init__.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/_utils/_proxy.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/_utils/_reflection.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/_utils/_streams.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/_utils/_sync.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/_utils/_transform.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/_utils/_typing.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/_utils/_utils.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/lib/.keep +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/py.typed +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/resources/__init__.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/resources/devboxes/__init__.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/resources/devboxes/devboxes.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/resources/devboxes/logs.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/resources/functions/__init__.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/resources/functions/functions.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/resources/functions/invocations/__init__.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/resources/functions/invocations/invocations.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/resources/functions/invocations/spans.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/resources/projects/__init__.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/resources/projects/logs.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/resources/projects/projects.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/types/__init__.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/types/devbox_create_params.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/types/devbox_execution_detail_view.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/types/devbox_list_params.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/types/devbox_list_view.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/types/devbox_view.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/types/devboxes/__init__.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/types/devboxes/devbox_logs_list_view.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/types/function_invoke_async_params.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/types/function_invoke_sync_params.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/types/function_list_view.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/types/functions/__init__.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/types/functions/function_invocation_list_view.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/types/functions/invocations/__init__.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/types/functions/invocations/invocation_span_list_view.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/types/project_list_view.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/types/projects/__init__.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/types/shared/__init__.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/types/shared/function_invocation_detail_view.py +0 -0
- {runloop_api_client-0.1.0a3/src/runloop_minus_api_minus_client → runloop_api_client-0.1.0a4/src/runloop_api_client}/types/shared/project_logs_view.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
|
-
Name:
|
|
3
|
-
Version: 0.1.
|
|
2
|
+
Name: runloop_api_client
|
|
3
|
+
Version: 0.1.0a4
|
|
4
4
|
Summary: The official Python library for the runloop API
|
|
5
5
|
Project-URL: Homepage, https://github.com/runloopai/api-client-python
|
|
6
6
|
Project-URL: Repository, https://github.com/runloopai/api-client-python
|
|
@@ -34,7 +34,7 @@ Description-Content-Type: text/markdown
|
|
|
34
34
|
|
|
35
35
|
# Runloop Python API library
|
|
36
36
|
|
|
37
|
-
[](https://pypi.org/project/runloop_api_client/)
|
|
38
38
|
|
|
39
39
|
The Runloop Python library provides convenient access to the Runloop REST API from any Python 3.7+
|
|
40
40
|
application. The library includes type definitions for all request params and response fields,
|
|
@@ -50,7 +50,7 @@ The REST API documentation can be found [on runloop.ai](https://runloop.ai). The
|
|
|
50
50
|
|
|
51
51
|
```sh
|
|
52
52
|
# install from PyPI
|
|
53
|
-
pip install --pre
|
|
53
|
+
pip install --pre runloop_api_client
|
|
54
54
|
```
|
|
55
55
|
|
|
56
56
|
## Usage
|
|
@@ -59,7 +59,7 @@ The full API of this library can be found in [api.md](https://github.com/runloop
|
|
|
59
59
|
|
|
60
60
|
```python
|
|
61
61
|
import os
|
|
62
|
-
from
|
|
62
|
+
from runloop_api_client import Runloop
|
|
63
63
|
|
|
64
64
|
client = Runloop(
|
|
65
65
|
# This is the default and can be omitted
|
|
@@ -82,7 +82,7 @@ Simply import `AsyncRunloop` instead of `Runloop` and use `await` with each API
|
|
|
82
82
|
```python
|
|
83
83
|
import os
|
|
84
84
|
import asyncio
|
|
85
|
-
from
|
|
85
|
+
from runloop_api_client import AsyncRunloop
|
|
86
86
|
|
|
87
87
|
client = AsyncRunloop(
|
|
88
88
|
# This is the default and can be omitted
|
|
@@ -111,27 +111,27 @@ Typed requests and responses provide autocomplete and documentation within your
|
|
|
111
111
|
|
|
112
112
|
## Handling errors
|
|
113
113
|
|
|
114
|
-
When the library is unable to connect to the API (for example, due to network connection problems or a timeout), a subclass of `
|
|
114
|
+
When the library is unable to connect to the API (for example, due to network connection problems or a timeout), a subclass of `runloop_api_client.APIConnectionError` is raised.
|
|
115
115
|
|
|
116
116
|
When the API returns a non-success status code (that is, 4xx or 5xx
|
|
117
|
-
response), a subclass of `
|
|
117
|
+
response), a subclass of `runloop_api_client.APIStatusError` is raised, containing `status_code` and `response` properties.
|
|
118
118
|
|
|
119
|
-
All errors inherit from `
|
|
119
|
+
All errors inherit from `runloop_api_client.APIError`.
|
|
120
120
|
|
|
121
121
|
```python
|
|
122
|
-
import
|
|
123
|
-
from
|
|
122
|
+
import runloop_api_client
|
|
123
|
+
from runloop_api_client import Runloop
|
|
124
124
|
|
|
125
125
|
client = Runloop()
|
|
126
126
|
|
|
127
127
|
try:
|
|
128
128
|
client.devboxes.create()
|
|
129
|
-
except
|
|
129
|
+
except runloop_api_client.APIConnectionError as e:
|
|
130
130
|
print("The server could not be reached")
|
|
131
131
|
print(e.__cause__) # an underlying Exception, likely raised within httpx.
|
|
132
|
-
except
|
|
132
|
+
except runloop_api_client.RateLimitError as e:
|
|
133
133
|
print("A 429 status code was received; we should back off a bit.")
|
|
134
|
-
except
|
|
134
|
+
except runloop_api_client.APIStatusError as e:
|
|
135
135
|
print("Another non-200-range status code was received")
|
|
136
136
|
print(e.status_code)
|
|
137
137
|
print(e.response)
|
|
@@ -159,7 +159,7 @@ Connection errors (for example, due to a network connectivity problem), 408 Requ
|
|
|
159
159
|
You can use the `max_retries` option to configure or disable retry settings:
|
|
160
160
|
|
|
161
161
|
```python
|
|
162
|
-
from
|
|
162
|
+
from runloop_api_client import Runloop
|
|
163
163
|
|
|
164
164
|
# Configure the default for all requests:
|
|
165
165
|
client = Runloop(
|
|
@@ -177,7 +177,7 @@ By default requests time out after 1 minute. You can configure this with a `time
|
|
|
177
177
|
which accepts a float or an [`httpx.Timeout`](https://www.python-httpx.org/advanced/#fine-tuning-the-configuration) object:
|
|
178
178
|
|
|
179
179
|
```python
|
|
180
|
-
from
|
|
180
|
+
from runloop_api_client import Runloop
|
|
181
181
|
|
|
182
182
|
# Configure the default for all requests:
|
|
183
183
|
client = Runloop(
|
|
@@ -227,7 +227,7 @@ if response.my_field is None:
|
|
|
227
227
|
The "raw" Response object can be accessed by prefixing `.with_raw_response.` to any HTTP method call, e.g.,
|
|
228
228
|
|
|
229
229
|
```py
|
|
230
|
-
from
|
|
230
|
+
from runloop_api_client import Runloop
|
|
231
231
|
|
|
232
232
|
client = Runloop()
|
|
233
233
|
response = client.devboxes.with_raw_response.create()
|
|
@@ -237,9 +237,9 @@ devbox = response.parse() # get the object that `devboxes.create()` would have
|
|
|
237
237
|
print(devbox.id)
|
|
238
238
|
```
|
|
239
239
|
|
|
240
|
-
These methods return an [`APIResponse`](https://github.com/runloopai/api-client-python/tree/main/src/
|
|
240
|
+
These methods return an [`APIResponse`](https://github.com/runloopai/api-client-python/tree/main/src/runloop_api_client/_response.py) object.
|
|
241
241
|
|
|
242
|
-
The async client returns an [`AsyncAPIResponse`](https://github.com/runloopai/api-client-python/tree/main/src/
|
|
242
|
+
The async client returns an [`AsyncAPIResponse`](https://github.com/runloopai/api-client-python/tree/main/src/runloop_api_client/_response.py) with the same structure, the only difference being `await`able methods for reading the response content.
|
|
243
243
|
|
|
244
244
|
#### `.with_streaming_response`
|
|
245
245
|
|
|
@@ -301,7 +301,7 @@ You can directly override the [httpx client](https://www.python-httpx.org/api/#c
|
|
|
301
301
|
- Additional [advanced](https://www.python-httpx.org/advanced/clients/) functionality
|
|
302
302
|
|
|
303
303
|
```python
|
|
304
|
-
from
|
|
304
|
+
from runloop_api_client import Runloop, DefaultHttpxClient
|
|
305
305
|
|
|
306
306
|
client = Runloop(
|
|
307
307
|
# Or use the `RUNLOOP_BASE_URL` env var
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
|
-
name = "
|
|
3
|
-
version = "0.1.0-alpha.
|
|
2
|
+
name = "runloop_api_client"
|
|
3
|
+
version = "0.1.0-alpha.4"
|
|
4
4
|
description = "The official Python library for the runloop API"
|
|
5
5
|
dynamic = ["readme"]
|
|
6
6
|
license = "MIT"
|
|
@@ -84,7 +84,7 @@ typecheck = { chain = [
|
|
|
84
84
|
"typecheck:mypy"
|
|
85
85
|
]}
|
|
86
86
|
"typecheck:pyright" = "pyright"
|
|
87
|
-
"typecheck:verify-types" = "pyright --verifytypes
|
|
87
|
+
"typecheck:verify-types" = "pyright --verifytypes runloop_api_client --ignoreexternal"
|
|
88
88
|
"typecheck:mypy" = "mypy ."
|
|
89
89
|
|
|
90
90
|
[build-system]
|
|
@@ -97,7 +97,7 @@ include = [
|
|
|
97
97
|
]
|
|
98
98
|
|
|
99
99
|
[tool.hatch.build.targets.wheel]
|
|
100
|
-
packages = ["src/
|
|
100
|
+
packages = ["src/runloop_api_client"]
|
|
101
101
|
|
|
102
102
|
[tool.hatch.metadata.hooks.fancy-pypi-readme]
|
|
103
103
|
content-type = "text/markdown"
|
|
@@ -187,7 +187,7 @@ length-sort = true
|
|
|
187
187
|
length-sort-straight = true
|
|
188
188
|
combine-as-imports = true
|
|
189
189
|
extra-standard-library = ["typing_extensions"]
|
|
190
|
-
known-first-party = ["
|
|
190
|
+
known-first-party = ["runloop_api_client", "tests"]
|
|
191
191
|
|
|
192
192
|
[tool.ruff.per-file-ignores]
|
|
193
193
|
"bin/**.py" = ["T201", "T203"]
|
|
@@ -72,12 +72,12 @@ _setup_logging()
|
|
|
72
72
|
# Update the __module__ attribute for exported symbols so that
|
|
73
73
|
# error messages point to this module instead of the module
|
|
74
74
|
# it was originally defined in, e.g.
|
|
75
|
-
#
|
|
75
|
+
# runloop_api_client._exceptions.NotFoundError -> runloop_api_client.NotFoundError
|
|
76
76
|
__locals = locals()
|
|
77
77
|
for __name in __all__:
|
|
78
78
|
if not __name.startswith("__"):
|
|
79
79
|
try:
|
|
80
|
-
__locals[__name].__module__ = "
|
|
80
|
+
__locals[__name].__module__ = "runloop_api_client"
|
|
81
81
|
except (TypeError, AttributeError):
|
|
82
82
|
# Some of our exported symbols are builtins which we can't set attributes for.
|
|
83
83
|
pass
|
|
@@ -362,7 +362,7 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
|
|
|
362
362
|
|
|
363
363
|
if max_retries is None: # pyright: ignore[reportUnnecessaryComparison]
|
|
364
364
|
raise TypeError(
|
|
365
|
-
"max_retries cannot be None. If you want to disable retries, pass `0`; if you want unlimited retries, pass `math.inf` or a very high number; if you want the default behavior, pass `
|
|
365
|
+
"max_retries cannot be None. If you want to disable retries, pass `0`; if you want unlimited retries, pass `math.inf` or a very high number; if you want the default behavior, pass `runloop_api_client.DEFAULT_MAX_RETRIES`"
|
|
366
366
|
)
|
|
367
367
|
|
|
368
368
|
def _enforce_trailing_slash(self, url: URL) -> URL:
|
|
@@ -204,7 +204,7 @@ class BaseAPIResponse(Generic[R]):
|
|
|
204
204
|
|
|
205
205
|
if inspect.isclass(origin) and not issubclass(origin, BaseModel) and issubclass(origin, pydantic.BaseModel):
|
|
206
206
|
raise TypeError(
|
|
207
|
-
"Pydantic models must subclass our base model type, e.g. `from
|
|
207
|
+
"Pydantic models must subclass our base model type, e.g. `from runloop_api_client import BaseModel`"
|
|
208
208
|
)
|
|
209
209
|
|
|
210
210
|
if (
|
|
@@ -273,7 +273,7 @@ class APIResponse(BaseAPIResponse[R]):
|
|
|
273
273
|
the `to` argument, e.g.
|
|
274
274
|
|
|
275
275
|
```py
|
|
276
|
-
from
|
|
276
|
+
from runloop_api_client import BaseModel
|
|
277
277
|
|
|
278
278
|
|
|
279
279
|
class MyModel(BaseModel):
|
|
@@ -377,7 +377,7 @@ class AsyncAPIResponse(BaseAPIResponse[R]):
|
|
|
377
377
|
the `to` argument, e.g.
|
|
378
378
|
|
|
379
379
|
```py
|
|
380
|
-
from
|
|
380
|
+
from runloop_api_client import BaseModel
|
|
381
381
|
|
|
382
382
|
|
|
383
383
|
class MyModel(BaseModel):
|
|
@@ -548,7 +548,7 @@ class AsyncStreamedBinaryAPIResponse(AsyncAPIResponse[bytes]):
|
|
|
548
548
|
class MissingStreamClassError(TypeError):
|
|
549
549
|
def __init__(self) -> None:
|
|
550
550
|
super().__init__(
|
|
551
|
-
"The `stream` argument was set to `True` but the `stream_cls` argument was not given. See `
|
|
551
|
+
"The `stream` argument was set to `True` but the `stream_cls` argument was not given. See `runloop_api_client._streaming` for reference",
|
|
552
552
|
)
|
|
553
553
|
|
|
554
554
|
|
|
@@ -81,7 +81,7 @@ HttpxRequestFiles = Union[Mapping[str, HttpxFileTypes], Sequence[Tuple[str, Http
|
|
|
81
81
|
# This unfortunately means that you will either have
|
|
82
82
|
# to import this type and pass it explicitly:
|
|
83
83
|
#
|
|
84
|
-
# from
|
|
84
|
+
# from runloop_api_client import NoneType
|
|
85
85
|
# client.get('/foo', cast_to=NoneType)
|
|
86
86
|
#
|
|
87
87
|
# or build it yourself:
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import os
|
|
2
2
|
import logging
|
|
3
3
|
|
|
4
|
-
logger: logging.Logger = logging.getLogger("
|
|
4
|
+
logger: logging.Logger = logging.getLogger("runloop_api_client")
|
|
5
5
|
httpx_logger: logging.Logger = logging.getLogger("httpx")
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
def _basic_config() -> None:
|
|
9
|
-
# e.g. [2023-10-05 14:12:26 -
|
|
9
|
+
# e.g. [2023-10-05 14:12:26 - runloop_api_client._base_client:818 - DEBUG] HTTP Request: POST http://127.0.0.1:4010/foo/bar "200 OK"
|
|
10
10
|
logging.basicConfig(
|
|
11
11
|
format="[%(asctime)s - %(name)s:%(lineno)d - %(levelname)s] %(message)s",
|
|
12
12
|
datefmt="%Y-%m-%d %H:%M:%S",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|