prelude-python-sdk 0.2.0__tar.gz → 0.3.0__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.
- prelude_python_sdk-0.3.0/.release-please-manifest.json +3 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/CHANGELOG.md +31 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/PKG-INFO +3 -4
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/api.md +19 -2
- prelude_python_sdk-0.3.0/bin/publish-pypi +6 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/pyproject.toml +2 -4
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/requirements-dev.lock +1 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/requirements.lock +1 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/_client.py +9 -1
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/_models.py +6 -3
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/_utils/_transform.py +47 -2
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/_utils/_typing.py +2 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/_version.py +1 -1
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/resources/__init__.py +14 -0
- prelude_python_sdk-0.3.0/src/prelude_python_sdk/resources/lookup.py +199 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/resources/verification.py +20 -2
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/resources/watch.py +157 -80
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/types/__init__.py +6 -2
- prelude_python_sdk-0.3.0/src/prelude_python_sdk/types/lookup_lookup_params.py +17 -0
- prelude_python_sdk-0.3.0/src/prelude_python_sdk/types/lookup_lookup_response.py +116 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/types/verification_create_params.py +15 -4
- prelude_python_sdk-0.3.0/src/prelude_python_sdk/types/watch_predict_params.py +77 -0
- prelude_python_sdk-0.3.0/src/prelude_python_sdk/types/watch_predict_response.py +21 -0
- prelude_python_sdk-0.3.0/src/prelude_python_sdk/types/watch_send_events_params.py +32 -0
- prelude_python_sdk-0.3.0/src/prelude_python_sdk/types/watch_send_events_response.py +18 -0
- prelude_python_sdk-0.3.0/src/prelude_python_sdk/types/watch_send_feedbacks_params.py +86 -0
- prelude_python_sdk-0.3.0/src/prelude_python_sdk/types/watch_send_feedbacks_response.py +18 -0
- prelude_python_sdk-0.3.0/tests/api_resources/test_lookup.py +114 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/tests/api_resources/test_verification.py +4 -2
- prelude_python_sdk-0.3.0/tests/api_resources/test_watch.py +376 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/tests/test_client.py +1 -1
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/tests/test_models.py +32 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/tests/test_transform.py +20 -1
- prelude_python_sdk-0.2.0/.release-please-manifest.json +0 -3
- prelude_python_sdk-0.2.0/bin/publish-pypi +0 -9
- prelude_python_sdk-0.2.0/src/prelude_python_sdk/types/watch_feed_back_params.py +0 -38
- prelude_python_sdk-0.2.0/src/prelude_python_sdk/types/watch_feed_back_response.py +0 -11
- prelude_python_sdk-0.2.0/src/prelude_python_sdk/types/watch_predict_params.py +0 -48
- prelude_python_sdk-0.2.0/src/prelude_python_sdk/types/watch_predict_response.py +0 -29
- prelude_python_sdk-0.2.0/tests/api_resources/test_watch.py +0 -223
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/.gitignore +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/CONTRIBUTING.md +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/LICENSE +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/README.md +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/SECURITY.md +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/bin/check-release-environment +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/examples/.keep +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/mypy.ini +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/noxfile.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/release-please-config.json +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude/lib/.keep +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/__init__.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/_base_client.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/_compat.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/_constants.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/_exceptions.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/_files.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/_qs.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/_resource.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/_response.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/_streaming.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/_types.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/_utils/__init__.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/_utils/_logs.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/_utils/_proxy.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/_utils/_reflection.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/_utils/_streams.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/_utils/_sync.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/_utils/_utils.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/lib/.keep +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/py.typed +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/resources/transactional.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/types/transactional_send_params.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/types/transactional_send_response.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/types/verification_check_params.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/types/verification_check_response.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/types/verification_create_response.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_sdk/lib/.keep +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/tests/__init__.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/tests/api_resources/__init__.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/tests/api_resources/test_transactional.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/tests/conftest.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/tests/sample_file.txt +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/tests/test_deepcopy.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/tests/test_extract_files.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/tests/test_files.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/tests/test_qs.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/tests/test_required_args.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/tests/test_response.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/tests/test_streaming.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/tests/test_utils/test_proxy.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/tests/test_utils/test_typing.py +0 -0
- {prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/tests/utils.py +0 -0
|
@@ -1,5 +1,36 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.3.0 (2025-04-11)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v0.2.0...v0.3.0](https://github.com/prelude-so/python-sdk/compare/v0.2.0...v0.3.0)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* **api:** update via SDK Studio ([e8db40d](https://github.com/prelude-so/python-sdk/commit/e8db40d0c6bb7ed120d01c7a5133e84611fa2dc5))
|
|
10
|
+
* **api:** update via SDK Studio ([2738f74](https://github.com/prelude-so/python-sdk/commit/2738f749089da145689c78aabdedf810d3329826))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* **ci:** ensure pip is always available ([#81](https://github.com/prelude-so/python-sdk/issues/81)) ([3496a08](https://github.com/prelude-so/python-sdk/commit/3496a088c4a51ff9755df7d5537031d2b66224b8))
|
|
16
|
+
* **ci:** remove publishing patch ([#82](https://github.com/prelude-so/python-sdk/issues/82)) ([00fa879](https://github.com/prelude-so/python-sdk/commit/00fa8799dc14bc3d2dae941485f2e3a24bfb2bf3))
|
|
17
|
+
* **perf:** optimize some hot paths ([6203988](https://github.com/prelude-so/python-sdk/commit/6203988ff6273cfe5135ec7d427c620a1094f6a1))
|
|
18
|
+
* **perf:** skip traversing types for NotGiven values ([e5a8fd5](https://github.com/prelude-so/python-sdk/commit/e5a8fd59dd7168e68ff026e9d11d796e3d002241))
|
|
19
|
+
* **types:** handle more discriminated union shapes ([#80](https://github.com/prelude-so/python-sdk/issues/80)) ([716195b](https://github.com/prelude-so/python-sdk/commit/716195b1874b4ec76cd39465810e3500c756eae8))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### Chores
|
|
23
|
+
|
|
24
|
+
* fix typos ([#83](https://github.com/prelude-so/python-sdk/issues/83)) ([ab98ad3](https://github.com/prelude-so/python-sdk/commit/ab98ad32961298cf1a2f47e6b3cc66a9f69cddbc))
|
|
25
|
+
* **internal:** bump rye to 0.44.0 ([#78](https://github.com/prelude-so/python-sdk/issues/78)) ([436ceca](https://github.com/prelude-so/python-sdk/commit/436ceca01c22fd4015010d5bd3852ce319d0ed65))
|
|
26
|
+
* **internal:** codegen related update ([#79](https://github.com/prelude-so/python-sdk/issues/79)) ([e5e9c6d](https://github.com/prelude-so/python-sdk/commit/e5e9c6d643232cad96a285dd7dc662f98684fbdc))
|
|
27
|
+
* **internal:** expand CI branch coverage ([#87](https://github.com/prelude-so/python-sdk/issues/87)) ([3edb1aa](https://github.com/prelude-so/python-sdk/commit/3edb1aab16d2b38705d64969e9ac70fe00951ee6))
|
|
28
|
+
* **internal:** reduce CI branch coverage ([70118ea](https://github.com/prelude-so/python-sdk/commit/70118ea5611c2f4337b21ac7da52a740bc52d7ff))
|
|
29
|
+
* **internal:** remove extra empty newlines ([#76](https://github.com/prelude-so/python-sdk/issues/76)) ([3e52319](https://github.com/prelude-so/python-sdk/commit/3e5231901ad7bcc6e06a4c82aeaa619f759434f7))
|
|
30
|
+
* **internal:** remove trailing character ([#84](https://github.com/prelude-so/python-sdk/issues/84)) ([526b990](https://github.com/prelude-so/python-sdk/commit/526b990f47cf42a44064d85ed2d8f9acbe35a609))
|
|
31
|
+
* **internal:** slight transform perf improvement ([#85](https://github.com/prelude-so/python-sdk/issues/85)) ([b77e93b](https://github.com/prelude-so/python-sdk/commit/b77e93ba797273dd8a145183d9b9c712659163cd))
|
|
32
|
+
* **tests:** improve enum examples ([#86](https://github.com/prelude-so/python-sdk/issues/86)) ([140d696](https://github.com/prelude-so/python-sdk/commit/140d6966a00666b4ade42fef7de7ec701cf697d3))
|
|
33
|
+
|
|
3
34
|
## 0.2.0 (2025-03-11)
|
|
4
35
|
|
|
5
36
|
Full Changelog: [v0.1.0...v0.2.0](https://github.com/prelude-so/python-sdk/compare/v0.1.0...v0.2.0)
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
2
|
Name: prelude-python-sdk
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Summary: The official Python library for the Prelude API
|
|
5
5
|
Project-URL: Homepage, https://github.com/prelude-so/python-sdk
|
|
6
6
|
Project-URL: Repository, https://github.com/prelude-so/python-sdk
|
|
7
7
|
Author-email: Prelude <hello@prelude.so>
|
|
8
|
-
License
|
|
9
|
-
License-File: LICENSE
|
|
8
|
+
License: Apache-2.0
|
|
10
9
|
Classifier: Intended Audience :: Developers
|
|
11
10
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
12
11
|
Classifier: Operating System :: MacOS
|
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
# Lookup
|
|
2
|
+
|
|
3
|
+
Types:
|
|
4
|
+
|
|
5
|
+
```python
|
|
6
|
+
from prelude_python_sdk.types import LookupLookupResponse
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Methods:
|
|
10
|
+
|
|
11
|
+
- <code title="get /v2/lookup/{phone_number}">client.lookup.<a href="./src/prelude_python_sdk/resources/lookup.py">lookup</a>(phone_number, \*\*<a href="src/prelude_python_sdk/types/lookup_lookup_params.py">params</a>) -> <a href="./src/prelude_python_sdk/types/lookup_lookup_response.py">LookupLookupResponse</a></code>
|
|
12
|
+
|
|
1
13
|
# Transactional
|
|
2
14
|
|
|
3
15
|
Types:
|
|
@@ -28,10 +40,15 @@ Methods:
|
|
|
28
40
|
Types:
|
|
29
41
|
|
|
30
42
|
```python
|
|
31
|
-
from prelude_python_sdk.types import
|
|
43
|
+
from prelude_python_sdk.types import (
|
|
44
|
+
WatchPredictResponse,
|
|
45
|
+
WatchSendEventsResponse,
|
|
46
|
+
WatchSendFeedbacksResponse,
|
|
47
|
+
)
|
|
32
48
|
```
|
|
33
49
|
|
|
34
50
|
Methods:
|
|
35
51
|
|
|
36
|
-
- <code title="post /v2/watch/feedback">client.watch.<a href="./src/prelude_python_sdk/resources/watch.py">feed_back</a>(\*\*<a href="src/prelude_python_sdk/types/watch_feed_back_params.py">params</a>) -> <a href="./src/prelude_python_sdk/types/watch_feed_back_response.py">WatchFeedBackResponse</a></code>
|
|
37
52
|
- <code title="post /v2/watch/predict">client.watch.<a href="./src/prelude_python_sdk/resources/watch.py">predict</a>(\*\*<a href="src/prelude_python_sdk/types/watch_predict_params.py">params</a>) -> <a href="./src/prelude_python_sdk/types/watch_predict_response.py">WatchPredictResponse</a></code>
|
|
53
|
+
- <code title="post /v2/watch/event">client.watch.<a href="./src/prelude_python_sdk/resources/watch.py">send_events</a>(\*\*<a href="src/prelude_python_sdk/types/watch_send_events_params.py">params</a>) -> <a href="./src/prelude_python_sdk/types/watch_send_events_response.py">WatchSendEventsResponse</a></code>
|
|
54
|
+
- <code title="post /v2/watch/feedback">client.watch.<a href="./src/prelude_python_sdk/resources/watch.py">send_feedbacks</a>(\*\*<a href="src/prelude_python_sdk/types/watch_send_feedbacks_params.py">params</a>) -> <a href="./src/prelude_python_sdk/types/watch_send_feedbacks_response.py">WatchSendFeedbacksResponse</a></code>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "prelude-python-sdk"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.3.0"
|
|
4
4
|
description = "The official Python library for the Prelude API"
|
|
5
5
|
dynamic = ["readme"]
|
|
6
6
|
license = "Apache-2.0"
|
|
@@ -38,7 +38,6 @@ Homepage = "https://github.com/prelude-so/python-sdk"
|
|
|
38
38
|
Repository = "https://github.com/prelude-so/python-sdk"
|
|
39
39
|
|
|
40
40
|
|
|
41
|
-
|
|
42
41
|
[tool.rye]
|
|
43
42
|
managed = true
|
|
44
43
|
# version pins are in requirements-dev.lock
|
|
@@ -87,7 +86,7 @@ typecheck = { chain = [
|
|
|
87
86
|
"typecheck:mypy" = "mypy ."
|
|
88
87
|
|
|
89
88
|
[build-system]
|
|
90
|
-
requires = ["hatchling", "hatch-fancy-pypi-readme"]
|
|
89
|
+
requires = ["hatchling==1.26.3", "hatch-fancy-pypi-readme"]
|
|
91
90
|
build-backend = "hatchling.build"
|
|
92
91
|
|
|
93
92
|
[tool.hatch.build]
|
|
@@ -152,7 +151,6 @@ reportImplicitOverride = true
|
|
|
152
151
|
reportImportCycles = false
|
|
153
152
|
reportPrivateUsage = false
|
|
154
153
|
|
|
155
|
-
|
|
156
154
|
[tool.ruff]
|
|
157
155
|
line-length = 120
|
|
158
156
|
output-format = "grouped"
|
|
@@ -24,7 +24,7 @@ from ._utils import (
|
|
|
24
24
|
get_async_library,
|
|
25
25
|
)
|
|
26
26
|
from ._version import __version__
|
|
27
|
-
from .resources import watch, verification, transactional
|
|
27
|
+
from .resources import watch, lookup, verification, transactional
|
|
28
28
|
from ._streaming import Stream as Stream, AsyncStream as AsyncStream
|
|
29
29
|
from ._exceptions import PreludeError, APIStatusError
|
|
30
30
|
from ._base_client import (
|
|
@@ -37,6 +37,7 @@ __all__ = ["Timeout", "Transport", "ProxiesTypes", "RequestOptions", "Prelude",
|
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
class Prelude(SyncAPIClient):
|
|
40
|
+
lookup: lookup.LookupResource
|
|
40
41
|
transactional: transactional.TransactionalResource
|
|
41
42
|
verification: verification.VerificationResource
|
|
42
43
|
watch: watch.WatchResource
|
|
@@ -97,6 +98,7 @@ class Prelude(SyncAPIClient):
|
|
|
97
98
|
_strict_response_validation=_strict_response_validation,
|
|
98
99
|
)
|
|
99
100
|
|
|
101
|
+
self.lookup = lookup.LookupResource(self)
|
|
100
102
|
self.transactional = transactional.TransactionalResource(self)
|
|
101
103
|
self.verification = verification.VerificationResource(self)
|
|
102
104
|
self.watch = watch.WatchResource(self)
|
|
@@ -209,6 +211,7 @@ class Prelude(SyncAPIClient):
|
|
|
209
211
|
|
|
210
212
|
|
|
211
213
|
class AsyncPrelude(AsyncAPIClient):
|
|
214
|
+
lookup: lookup.AsyncLookupResource
|
|
212
215
|
transactional: transactional.AsyncTransactionalResource
|
|
213
216
|
verification: verification.AsyncVerificationResource
|
|
214
217
|
watch: watch.AsyncWatchResource
|
|
@@ -269,6 +272,7 @@ class AsyncPrelude(AsyncAPIClient):
|
|
|
269
272
|
_strict_response_validation=_strict_response_validation,
|
|
270
273
|
)
|
|
271
274
|
|
|
275
|
+
self.lookup = lookup.AsyncLookupResource(self)
|
|
272
276
|
self.transactional = transactional.AsyncTransactionalResource(self)
|
|
273
277
|
self.verification = verification.AsyncVerificationResource(self)
|
|
274
278
|
self.watch = watch.AsyncWatchResource(self)
|
|
@@ -382,6 +386,7 @@ class AsyncPrelude(AsyncAPIClient):
|
|
|
382
386
|
|
|
383
387
|
class PreludeWithRawResponse:
|
|
384
388
|
def __init__(self, client: Prelude) -> None:
|
|
389
|
+
self.lookup = lookup.LookupResourceWithRawResponse(client.lookup)
|
|
385
390
|
self.transactional = transactional.TransactionalResourceWithRawResponse(client.transactional)
|
|
386
391
|
self.verification = verification.VerificationResourceWithRawResponse(client.verification)
|
|
387
392
|
self.watch = watch.WatchResourceWithRawResponse(client.watch)
|
|
@@ -389,6 +394,7 @@ class PreludeWithRawResponse:
|
|
|
389
394
|
|
|
390
395
|
class AsyncPreludeWithRawResponse:
|
|
391
396
|
def __init__(self, client: AsyncPrelude) -> None:
|
|
397
|
+
self.lookup = lookup.AsyncLookupResourceWithRawResponse(client.lookup)
|
|
392
398
|
self.transactional = transactional.AsyncTransactionalResourceWithRawResponse(client.transactional)
|
|
393
399
|
self.verification = verification.AsyncVerificationResourceWithRawResponse(client.verification)
|
|
394
400
|
self.watch = watch.AsyncWatchResourceWithRawResponse(client.watch)
|
|
@@ -396,6 +402,7 @@ class AsyncPreludeWithRawResponse:
|
|
|
396
402
|
|
|
397
403
|
class PreludeWithStreamedResponse:
|
|
398
404
|
def __init__(self, client: Prelude) -> None:
|
|
405
|
+
self.lookup = lookup.LookupResourceWithStreamingResponse(client.lookup)
|
|
399
406
|
self.transactional = transactional.TransactionalResourceWithStreamingResponse(client.transactional)
|
|
400
407
|
self.verification = verification.VerificationResourceWithStreamingResponse(client.verification)
|
|
401
408
|
self.watch = watch.WatchResourceWithStreamingResponse(client.watch)
|
|
@@ -403,6 +410,7 @@ class PreludeWithStreamedResponse:
|
|
|
403
410
|
|
|
404
411
|
class AsyncPreludeWithStreamedResponse:
|
|
405
412
|
def __init__(self, client: AsyncPrelude) -> None:
|
|
413
|
+
self.lookup = lookup.AsyncLookupResourceWithStreamingResponse(client.lookup)
|
|
406
414
|
self.transactional = transactional.AsyncTransactionalResourceWithStreamingResponse(client.transactional)
|
|
407
415
|
self.verification = verification.AsyncVerificationResourceWithStreamingResponse(client.verification)
|
|
408
416
|
self.watch = watch.AsyncWatchResourceWithStreamingResponse(client.watch)
|
|
@@ -65,7 +65,7 @@ from ._compat import (
|
|
|
65
65
|
from ._constants import RAW_RESPONSE_HEADER
|
|
66
66
|
|
|
67
67
|
if TYPE_CHECKING:
|
|
68
|
-
from pydantic_core.core_schema import ModelField, LiteralSchema, ModelFieldsSchema
|
|
68
|
+
from pydantic_core.core_schema import ModelField, ModelSchema, LiteralSchema, ModelFieldsSchema
|
|
69
69
|
|
|
70
70
|
__all__ = ["BaseModel", "GenericModel"]
|
|
71
71
|
|
|
@@ -646,15 +646,18 @@ def _build_discriminated_union_meta(*, union: type, meta_annotations: tuple[Any,
|
|
|
646
646
|
|
|
647
647
|
def _extract_field_schema_pv2(model: type[BaseModel], field_name: str) -> ModelField | None:
|
|
648
648
|
schema = model.__pydantic_core_schema__
|
|
649
|
+
if schema["type"] == "definitions":
|
|
650
|
+
schema = schema["schema"]
|
|
651
|
+
|
|
649
652
|
if schema["type"] != "model":
|
|
650
653
|
return None
|
|
651
654
|
|
|
655
|
+
schema = cast("ModelSchema", schema)
|
|
652
656
|
fields_schema = schema["schema"]
|
|
653
657
|
if fields_schema["type"] != "model-fields":
|
|
654
658
|
return None
|
|
655
659
|
|
|
656
660
|
fields_schema = cast("ModelFieldsSchema", fields_schema)
|
|
657
|
-
|
|
658
661
|
field = fields_schema["fields"].get(field_name)
|
|
659
662
|
if not field:
|
|
660
663
|
return None
|
|
@@ -678,7 +681,7 @@ def set_pydantic_config(typ: Any, config: pydantic.ConfigDict) -> None:
|
|
|
678
681
|
setattr(typ, "__pydantic_config__", config) # noqa: B010
|
|
679
682
|
|
|
680
683
|
|
|
681
|
-
# our use of
|
|
684
|
+
# our use of subclassing here causes weirdness for type checkers,
|
|
682
685
|
# so we just pretend that we don't subclass
|
|
683
686
|
if TYPE_CHECKING:
|
|
684
687
|
GenericModel = BaseModel
|
{prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/_utils/_transform.py
RENAMED
|
@@ -5,13 +5,15 @@ import base64
|
|
|
5
5
|
import pathlib
|
|
6
6
|
from typing import Any, Mapping, TypeVar, cast
|
|
7
7
|
from datetime import date, datetime
|
|
8
|
-
from typing_extensions import Literal, get_args, override, get_type_hints
|
|
8
|
+
from typing_extensions import Literal, get_args, override, get_type_hints as _get_type_hints
|
|
9
9
|
|
|
10
10
|
import anyio
|
|
11
11
|
import pydantic
|
|
12
12
|
|
|
13
13
|
from ._utils import (
|
|
14
14
|
is_list,
|
|
15
|
+
is_given,
|
|
16
|
+
lru_cache,
|
|
15
17
|
is_mapping,
|
|
16
18
|
is_iterable,
|
|
17
19
|
)
|
|
@@ -108,6 +110,7 @@ def transform(
|
|
|
108
110
|
return cast(_T, transformed)
|
|
109
111
|
|
|
110
112
|
|
|
113
|
+
@lru_cache(maxsize=8096)
|
|
111
114
|
def _get_annotated_type(type_: type) -> type | None:
|
|
112
115
|
"""If the given type is an `Annotated` type then it is returned, if not `None` is returned.
|
|
113
116
|
|
|
@@ -126,7 +129,7 @@ def _get_annotated_type(type_: type) -> type | None:
|
|
|
126
129
|
def _maybe_transform_key(key: str, type_: type) -> str:
|
|
127
130
|
"""Transform the given `data` based on the annotations provided in `type_`.
|
|
128
131
|
|
|
129
|
-
Note: this function only looks at `Annotated` types that contain `
|
|
132
|
+
Note: this function only looks at `Annotated` types that contain `PropertyInfo` metadata.
|
|
130
133
|
"""
|
|
131
134
|
annotated_type = _get_annotated_type(type_)
|
|
132
135
|
if annotated_type is None:
|
|
@@ -142,6 +145,10 @@ def _maybe_transform_key(key: str, type_: type) -> str:
|
|
|
142
145
|
return key
|
|
143
146
|
|
|
144
147
|
|
|
148
|
+
def _no_transform_needed(annotation: type) -> bool:
|
|
149
|
+
return annotation == float or annotation == int
|
|
150
|
+
|
|
151
|
+
|
|
145
152
|
def _transform_recursive(
|
|
146
153
|
data: object,
|
|
147
154
|
*,
|
|
@@ -184,6 +191,15 @@ def _transform_recursive(
|
|
|
184
191
|
return cast(object, data)
|
|
185
192
|
|
|
186
193
|
inner_type = extract_type_arg(stripped_type, 0)
|
|
194
|
+
if _no_transform_needed(inner_type):
|
|
195
|
+
# for some types there is no need to transform anything, so we can get a small
|
|
196
|
+
# perf boost from skipping that work.
|
|
197
|
+
#
|
|
198
|
+
# but we still need to convert to a list to ensure the data is json-serializable
|
|
199
|
+
if is_list(data):
|
|
200
|
+
return data
|
|
201
|
+
return list(data)
|
|
202
|
+
|
|
187
203
|
return [_transform_recursive(d, annotation=annotation, inner_type=inner_type) for d in data]
|
|
188
204
|
|
|
189
205
|
if is_union_type(stripped_type):
|
|
@@ -245,6 +261,11 @@ def _transform_typeddict(
|
|
|
245
261
|
result: dict[str, object] = {}
|
|
246
262
|
annotations = get_type_hints(expected_type, include_extras=True)
|
|
247
263
|
for key, value in data.items():
|
|
264
|
+
if not is_given(value):
|
|
265
|
+
# we don't need to include `NotGiven` values here as they'll
|
|
266
|
+
# be stripped out before the request is sent anyway
|
|
267
|
+
continue
|
|
268
|
+
|
|
248
269
|
type_ = annotations.get(key)
|
|
249
270
|
if type_ is None:
|
|
250
271
|
# we do not have a type annotation for this field, leave it as is
|
|
@@ -332,6 +353,15 @@ async def _async_transform_recursive(
|
|
|
332
353
|
return cast(object, data)
|
|
333
354
|
|
|
334
355
|
inner_type = extract_type_arg(stripped_type, 0)
|
|
356
|
+
if _no_transform_needed(inner_type):
|
|
357
|
+
# for some types there is no need to transform anything, so we can get a small
|
|
358
|
+
# perf boost from skipping that work.
|
|
359
|
+
#
|
|
360
|
+
# but we still need to convert to a list to ensure the data is json-serializable
|
|
361
|
+
if is_list(data):
|
|
362
|
+
return data
|
|
363
|
+
return list(data)
|
|
364
|
+
|
|
335
365
|
return [await _async_transform_recursive(d, annotation=annotation, inner_type=inner_type) for d in data]
|
|
336
366
|
|
|
337
367
|
if is_union_type(stripped_type):
|
|
@@ -393,6 +423,11 @@ async def _async_transform_typeddict(
|
|
|
393
423
|
result: dict[str, object] = {}
|
|
394
424
|
annotations = get_type_hints(expected_type, include_extras=True)
|
|
395
425
|
for key, value in data.items():
|
|
426
|
+
if not is_given(value):
|
|
427
|
+
# we don't need to include `NotGiven` values here as they'll
|
|
428
|
+
# be stripped out before the request is sent anyway
|
|
429
|
+
continue
|
|
430
|
+
|
|
396
431
|
type_ = annotations.get(key)
|
|
397
432
|
if type_ is None:
|
|
398
433
|
# we do not have a type annotation for this field, leave it as is
|
|
@@ -400,3 +435,13 @@ async def _async_transform_typeddict(
|
|
|
400
435
|
else:
|
|
401
436
|
result[_maybe_transform_key(key, type_)] = await _async_transform_recursive(value, annotation=type_)
|
|
402
437
|
return result
|
|
438
|
+
|
|
439
|
+
|
|
440
|
+
@lru_cache(maxsize=8096)
|
|
441
|
+
def get_type_hints(
|
|
442
|
+
obj: Any,
|
|
443
|
+
globalns: dict[str, Any] | None = None,
|
|
444
|
+
localns: Mapping[str, Any] | None = None,
|
|
445
|
+
include_extras: bool = False,
|
|
446
|
+
) -> dict[str, Any]:
|
|
447
|
+
return _get_type_hints(obj, globalns=globalns, localns=localns, include_extras=include_extras)
|
{prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/_utils/_typing.py
RENAMED
|
@@ -13,6 +13,7 @@ from typing_extensions import (
|
|
|
13
13
|
get_origin,
|
|
14
14
|
)
|
|
15
15
|
|
|
16
|
+
from ._utils import lru_cache
|
|
16
17
|
from .._types import InheritsGeneric
|
|
17
18
|
from .._compat import is_union as _is_union
|
|
18
19
|
|
|
@@ -66,6 +67,7 @@ def is_type_alias_type(tp: Any, /) -> TypeIs[typing_extensions.TypeAliasType]:
|
|
|
66
67
|
|
|
67
68
|
|
|
68
69
|
# Extracts T from Annotated[T, ...] or from Required[Annotated[T, ...]]
|
|
70
|
+
@lru_cache(maxsize=8096)
|
|
69
71
|
def strip_annotated_type(typ: type) -> type:
|
|
70
72
|
if is_required_type(typ) or is_annotated_type(typ):
|
|
71
73
|
return strip_annotated_type(cast(type, get_args(typ)[0]))
|
{prelude_python_sdk-0.2.0 → prelude_python_sdk-0.3.0}/src/prelude_python_sdk/resources/__init__.py
RENAMED
|
@@ -8,6 +8,14 @@ from .watch import (
|
|
|
8
8
|
WatchResourceWithStreamingResponse,
|
|
9
9
|
AsyncWatchResourceWithStreamingResponse,
|
|
10
10
|
)
|
|
11
|
+
from .lookup import (
|
|
12
|
+
LookupResource,
|
|
13
|
+
AsyncLookupResource,
|
|
14
|
+
LookupResourceWithRawResponse,
|
|
15
|
+
AsyncLookupResourceWithRawResponse,
|
|
16
|
+
LookupResourceWithStreamingResponse,
|
|
17
|
+
AsyncLookupResourceWithStreamingResponse,
|
|
18
|
+
)
|
|
11
19
|
from .verification import (
|
|
12
20
|
VerificationResource,
|
|
13
21
|
AsyncVerificationResource,
|
|
@@ -26,6 +34,12 @@ from .transactional import (
|
|
|
26
34
|
)
|
|
27
35
|
|
|
28
36
|
__all__ = [
|
|
37
|
+
"LookupResource",
|
|
38
|
+
"AsyncLookupResource",
|
|
39
|
+
"LookupResourceWithRawResponse",
|
|
40
|
+
"AsyncLookupResourceWithRawResponse",
|
|
41
|
+
"LookupResourceWithStreamingResponse",
|
|
42
|
+
"AsyncLookupResourceWithStreamingResponse",
|
|
29
43
|
"TransactionalResource",
|
|
30
44
|
"AsyncTransactionalResource",
|
|
31
45
|
"TransactionalResourceWithRawResponse",
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import List
|
|
6
|
+
from typing_extensions import Literal
|
|
7
|
+
|
|
8
|
+
import httpx
|
|
9
|
+
|
|
10
|
+
from ..types import lookup_lookup_params
|
|
11
|
+
from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven
|
|
12
|
+
from .._utils import (
|
|
13
|
+
maybe_transform,
|
|
14
|
+
async_maybe_transform,
|
|
15
|
+
)
|
|
16
|
+
from .._compat import cached_property
|
|
17
|
+
from .._resource import SyncAPIResource, AsyncAPIResource
|
|
18
|
+
from .._response import (
|
|
19
|
+
to_raw_response_wrapper,
|
|
20
|
+
to_streamed_response_wrapper,
|
|
21
|
+
async_to_raw_response_wrapper,
|
|
22
|
+
async_to_streamed_response_wrapper,
|
|
23
|
+
)
|
|
24
|
+
from .._base_client import make_request_options
|
|
25
|
+
from ..types.lookup_lookup_response import LookupLookupResponse
|
|
26
|
+
|
|
27
|
+
__all__ = ["LookupResource", "AsyncLookupResource"]
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class LookupResource(SyncAPIResource):
|
|
31
|
+
@cached_property
|
|
32
|
+
def with_raw_response(self) -> LookupResourceWithRawResponse:
|
|
33
|
+
"""
|
|
34
|
+
This property can be used as a prefix for any HTTP method call to return
|
|
35
|
+
the raw response object instead of the parsed content.
|
|
36
|
+
|
|
37
|
+
For more information, see https://www.github.com/prelude-so/python-sdk#accessing-raw-response-data-eg-headers
|
|
38
|
+
"""
|
|
39
|
+
return LookupResourceWithRawResponse(self)
|
|
40
|
+
|
|
41
|
+
@cached_property
|
|
42
|
+
def with_streaming_response(self) -> LookupResourceWithStreamingResponse:
|
|
43
|
+
"""
|
|
44
|
+
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
|
|
45
|
+
|
|
46
|
+
For more information, see https://www.github.com/prelude-so/python-sdk#with_streaming_response
|
|
47
|
+
"""
|
|
48
|
+
return LookupResourceWithStreamingResponse(self)
|
|
49
|
+
|
|
50
|
+
def lookup(
|
|
51
|
+
self,
|
|
52
|
+
phone_number: str,
|
|
53
|
+
*,
|
|
54
|
+
type: List[Literal["cnam"]] | NotGiven = NOT_GIVEN,
|
|
55
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
56
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
57
|
+
extra_headers: Headers | None = None,
|
|
58
|
+
extra_query: Query | None = None,
|
|
59
|
+
extra_body: Body | None = None,
|
|
60
|
+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
61
|
+
) -> LookupLookupResponse:
|
|
62
|
+
"""
|
|
63
|
+
Retrieve detailed information about a phone number including carrier data, line
|
|
64
|
+
type, and portability status.
|
|
65
|
+
|
|
66
|
+
Args:
|
|
67
|
+
phone_number: An E.164 formatted phone number to look up.
|
|
68
|
+
|
|
69
|
+
type:
|
|
70
|
+
Optional features. Possible values are:
|
|
71
|
+
|
|
72
|
+
- `cnam` - Retrieve CNAM (Caller ID Name) along with other information. Contact
|
|
73
|
+
us if you need to use this functionality.
|
|
74
|
+
|
|
75
|
+
extra_headers: Send extra headers
|
|
76
|
+
|
|
77
|
+
extra_query: Add additional query parameters to the request
|
|
78
|
+
|
|
79
|
+
extra_body: Add additional JSON properties to the request
|
|
80
|
+
|
|
81
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
82
|
+
"""
|
|
83
|
+
if not phone_number:
|
|
84
|
+
raise ValueError(f"Expected a non-empty value for `phone_number` but received {phone_number!r}")
|
|
85
|
+
return self._get(
|
|
86
|
+
f"/v2/lookup/{phone_number}",
|
|
87
|
+
options=make_request_options(
|
|
88
|
+
extra_headers=extra_headers,
|
|
89
|
+
extra_query=extra_query,
|
|
90
|
+
extra_body=extra_body,
|
|
91
|
+
timeout=timeout,
|
|
92
|
+
query=maybe_transform({"type": type}, lookup_lookup_params.LookupLookupParams),
|
|
93
|
+
),
|
|
94
|
+
cast_to=LookupLookupResponse,
|
|
95
|
+
)
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
class AsyncLookupResource(AsyncAPIResource):
|
|
99
|
+
@cached_property
|
|
100
|
+
def with_raw_response(self) -> AsyncLookupResourceWithRawResponse:
|
|
101
|
+
"""
|
|
102
|
+
This property can be used as a prefix for any HTTP method call to return
|
|
103
|
+
the raw response object instead of the parsed content.
|
|
104
|
+
|
|
105
|
+
For more information, see https://www.github.com/prelude-so/python-sdk#accessing-raw-response-data-eg-headers
|
|
106
|
+
"""
|
|
107
|
+
return AsyncLookupResourceWithRawResponse(self)
|
|
108
|
+
|
|
109
|
+
@cached_property
|
|
110
|
+
def with_streaming_response(self) -> AsyncLookupResourceWithStreamingResponse:
|
|
111
|
+
"""
|
|
112
|
+
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
|
|
113
|
+
|
|
114
|
+
For more information, see https://www.github.com/prelude-so/python-sdk#with_streaming_response
|
|
115
|
+
"""
|
|
116
|
+
return AsyncLookupResourceWithStreamingResponse(self)
|
|
117
|
+
|
|
118
|
+
async def lookup(
|
|
119
|
+
self,
|
|
120
|
+
phone_number: str,
|
|
121
|
+
*,
|
|
122
|
+
type: List[Literal["cnam"]] | NotGiven = NOT_GIVEN,
|
|
123
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
124
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
125
|
+
extra_headers: Headers | None = None,
|
|
126
|
+
extra_query: Query | None = None,
|
|
127
|
+
extra_body: Body | None = None,
|
|
128
|
+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
129
|
+
) -> LookupLookupResponse:
|
|
130
|
+
"""
|
|
131
|
+
Retrieve detailed information about a phone number including carrier data, line
|
|
132
|
+
type, and portability status.
|
|
133
|
+
|
|
134
|
+
Args:
|
|
135
|
+
phone_number: An E.164 formatted phone number to look up.
|
|
136
|
+
|
|
137
|
+
type:
|
|
138
|
+
Optional features. Possible values are:
|
|
139
|
+
|
|
140
|
+
- `cnam` - Retrieve CNAM (Caller ID Name) along with other information. Contact
|
|
141
|
+
us if you need to use this functionality.
|
|
142
|
+
|
|
143
|
+
extra_headers: Send extra headers
|
|
144
|
+
|
|
145
|
+
extra_query: Add additional query parameters to the request
|
|
146
|
+
|
|
147
|
+
extra_body: Add additional JSON properties to the request
|
|
148
|
+
|
|
149
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
150
|
+
"""
|
|
151
|
+
if not phone_number:
|
|
152
|
+
raise ValueError(f"Expected a non-empty value for `phone_number` but received {phone_number!r}")
|
|
153
|
+
return await self._get(
|
|
154
|
+
f"/v2/lookup/{phone_number}",
|
|
155
|
+
options=make_request_options(
|
|
156
|
+
extra_headers=extra_headers,
|
|
157
|
+
extra_query=extra_query,
|
|
158
|
+
extra_body=extra_body,
|
|
159
|
+
timeout=timeout,
|
|
160
|
+
query=await async_maybe_transform({"type": type}, lookup_lookup_params.LookupLookupParams),
|
|
161
|
+
),
|
|
162
|
+
cast_to=LookupLookupResponse,
|
|
163
|
+
)
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
class LookupResourceWithRawResponse:
|
|
167
|
+
def __init__(self, lookup: LookupResource) -> None:
|
|
168
|
+
self._lookup = lookup
|
|
169
|
+
|
|
170
|
+
self.lookup = to_raw_response_wrapper(
|
|
171
|
+
lookup.lookup,
|
|
172
|
+
)
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
class AsyncLookupResourceWithRawResponse:
|
|
176
|
+
def __init__(self, lookup: AsyncLookupResource) -> None:
|
|
177
|
+
self._lookup = lookup
|
|
178
|
+
|
|
179
|
+
self.lookup = async_to_raw_response_wrapper(
|
|
180
|
+
lookup.lookup,
|
|
181
|
+
)
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
class LookupResourceWithStreamingResponse:
|
|
185
|
+
def __init__(self, lookup: LookupResource) -> None:
|
|
186
|
+
self._lookup = lookup
|
|
187
|
+
|
|
188
|
+
self.lookup = to_streamed_response_wrapper(
|
|
189
|
+
lookup.lookup,
|
|
190
|
+
)
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
class AsyncLookupResourceWithStreamingResponse:
|
|
194
|
+
def __init__(self, lookup: AsyncLookupResource) -> None:
|
|
195
|
+
self._lookup = lookup
|
|
196
|
+
|
|
197
|
+
self.lookup = async_to_streamed_response_wrapper(
|
|
198
|
+
lookup.lookup,
|
|
199
|
+
)
|