prelude-python-sdk 0.9.0__tar.gz → 0.10.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.10.0/.release-please-manifest.json +3 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/CHANGELOG.md +21 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/PKG-INFO +4 -2
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/README.md +2 -1
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/api.md +26 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/pyproject.toml +11 -8
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/requirements-dev.lock +62 -50
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/requirements.lock +20 -19
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/_client.py +9 -1
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/_streaming.py +12 -10
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/_version.py +1 -1
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/resources/__init__.py +14 -0
- prelude_python_sdk-0.10.0/src/prelude_python_sdk/resources/notify.py +975 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/types/__init__.py +28 -0
- prelude_python_sdk-0.10.0/src/prelude_python_sdk/types/notify_get_subscription_config_response.py +53 -0
- prelude_python_sdk-0.10.0/src/prelude_python_sdk/types/notify_get_subscription_phone_number_response.py +39 -0
- prelude_python_sdk-0.10.0/src/prelude_python_sdk/types/notify_list_subscription_configs_params.py +15 -0
- prelude_python_sdk-0.10.0/src/prelude_python_sdk/types/notify_list_subscription_configs_response.py +64 -0
- prelude_python_sdk-0.10.0/src/prelude_python_sdk/types/notify_list_subscription_phone_number_events_params.py +17 -0
- prelude_python_sdk-0.10.0/src/prelude_python_sdk/types/notify_list_subscription_phone_number_events_response.py +50 -0
- prelude_python_sdk-0.10.0/src/prelude_python_sdk/types/notify_list_subscription_phone_numbers_params.py +18 -0
- prelude_python_sdk-0.10.0/src/prelude_python_sdk/types/notify_list_subscription_phone_numbers_response.py +50 -0
- prelude_python_sdk-0.10.0/src/prelude_python_sdk/types/notify_send_batch_params.py +50 -0
- prelude_python_sdk-0.10.0/src/prelude_python_sdk/types/notify_send_batch_response.py +84 -0
- prelude_python_sdk-0.10.0/src/prelude_python_sdk/types/notify_send_params.py +63 -0
- prelude_python_sdk-0.10.0/src/prelude_python_sdk/types/notify_send_response.py +46 -0
- prelude_python_sdk-0.10.0/tests/api_resources/test_notify.py +705 -0
- prelude_python_sdk-0.9.0/.release-please-manifest.json +0 -3
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/.gitignore +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/CONTRIBUTING.md +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/LICENSE +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/SECURITY.md +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/bin/check-release-environment +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/bin/publish-pypi +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/examples/.keep +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/noxfile.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/release-please-config.json +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude/lib/.keep +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/__init__.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/_base_client.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/_compat.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/_constants.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/_exceptions.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/_files.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/_models.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/_qs.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/_resource.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/_response.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/_types.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/_utils/__init__.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/_utils/_compat.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/_utils/_datetime_parse.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/_utils/_logs.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/_utils/_proxy.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/_utils/_reflection.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/_utils/_resources_proxy.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/_utils/_streams.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/_utils/_sync.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/_utils/_transform.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/_utils/_typing.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/_utils/_utils.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/lib/.keep +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/py.typed +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/resources/lookup.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/resources/transactional.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/resources/verification.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/resources/verification_management.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/resources/watch.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/types/lookup_lookup_params.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/types/lookup_lookup_response.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/types/transactional_send_params.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/types/transactional_send_response.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/types/verification_check_params.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/types/verification_check_response.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/types/verification_create_params.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/types/verification_create_response.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/types/verification_management_delete_phone_number_params.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/types/verification_management_delete_phone_number_response.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/types/verification_management_list_phone_numbers_response.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/types/verification_management_list_sender_ids_response.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/types/verification_management_set_phone_number_params.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/types/verification_management_set_phone_number_response.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/types/verification_management_submit_sender_id_params.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/types/verification_management_submit_sender_id_response.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/types/watch_predict_params.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/types/watch_predict_response.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/types/watch_send_events_params.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/types/watch_send_events_response.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/types/watch_send_feedbacks_params.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/types/watch_send_feedbacks_response.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_sdk/lib/.keep +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/tests/__init__.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/tests/api_resources/__init__.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/tests/api_resources/test_lookup.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/tests/api_resources/test_transactional.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/tests/api_resources/test_verification.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/tests/api_resources/test_verification_management.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/tests/api_resources/test_watch.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/tests/conftest.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/tests/sample_file.txt +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/tests/test_client.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/tests/test_deepcopy.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/tests/test_extract_files.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/tests/test_files.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/tests/test_models.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/tests/test_qs.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/tests/test_required_args.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/tests/test_response.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/tests/test_streaming.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/tests/test_transform.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/tests/test_utils/test_datetime_parse.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/tests/test_utils/test_proxy.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/tests/test_utils/test_typing.py +0 -0
- {prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/tests/utils.py +0 -0
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.10.0 (2025-12-05)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v0.9.0...v0.10.0](https://github.com/prelude-so/python-sdk/compare/v0.9.0...v0.10.0)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* **api:** add Notify API methods ([c7a7b20](https://github.com/prelude-so/python-sdk/commit/c7a7b20977b74d76362e4aad805be06b7618f652))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
* ensure streams are always closed ([b16816e](https://github.com/prelude-so/python-sdk/commit/b16816e137cdbe2814625782094d929f0c98705c))
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Chores
|
|
18
|
+
|
|
19
|
+
* **deps:** mypy 1.18.1 has a regression, pin to 1.17 ([e2e5272](https://github.com/prelude-so/python-sdk/commit/e2e5272322db24cc9faa0b7176cefcc81e3daf48))
|
|
20
|
+
* **docs:** use environment variables for authentication in code snippets ([1d08cda](https://github.com/prelude-so/python-sdk/commit/1d08cda0dfca3a9e0adb3f548f6a4275bfc44efa))
|
|
21
|
+
* **internal:** codegen related update ([469e780](https://github.com/prelude-so/python-sdk/commit/469e7805bc68624a0768e1403c1fc637b256a698))
|
|
22
|
+
* update lockfile ([2ff2aee](https://github.com/prelude-so/python-sdk/commit/2ff2aee46c7b89093cdcd43dd293e9dc6f101ada))
|
|
23
|
+
|
|
3
24
|
## 0.9.0 (2025-11-17)
|
|
4
25
|
|
|
5
26
|
Full Changelog: [v0.8.0...v0.9.0](https://github.com/prelude-so/python-sdk/compare/v0.8.0...v0.9.0)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: prelude-python-sdk
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.10.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
|
|
@@ -18,6 +18,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.11
|
|
19
19
|
Classifier: Programming Language :: Python :: 3.12
|
|
20
20
|
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
21
22
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
22
23
|
Classifier: Typing :: Typed
|
|
23
24
|
Requires-Python: >=3.9
|
|
@@ -123,6 +124,7 @@ pip install prelude-python-sdk[aiohttp]
|
|
|
123
124
|
Then you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:
|
|
124
125
|
|
|
125
126
|
```python
|
|
127
|
+
import os
|
|
126
128
|
import asyncio
|
|
127
129
|
from prelude_python_sdk import DefaultAioHttpClient
|
|
128
130
|
from prelude_python_sdk import AsyncPrelude
|
|
@@ -130,7 +132,7 @@ from prelude_python_sdk import AsyncPrelude
|
|
|
130
132
|
|
|
131
133
|
async def main() -> None:
|
|
132
134
|
async with AsyncPrelude(
|
|
133
|
-
api_token="
|
|
135
|
+
api_token=os.environ.get("API_TOKEN"), # This is the default and can be omitted
|
|
134
136
|
http_client=DefaultAioHttpClient(),
|
|
135
137
|
) as client:
|
|
136
138
|
verification = await client.verification.create(
|
|
@@ -89,6 +89,7 @@ pip install prelude-python-sdk[aiohttp]
|
|
|
89
89
|
Then you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:
|
|
90
90
|
|
|
91
91
|
```python
|
|
92
|
+
import os
|
|
92
93
|
import asyncio
|
|
93
94
|
from prelude_python_sdk import DefaultAioHttpClient
|
|
94
95
|
from prelude_python_sdk import AsyncPrelude
|
|
@@ -96,7 +97,7 @@ from prelude_python_sdk import AsyncPrelude
|
|
|
96
97
|
|
|
97
98
|
async def main() -> None:
|
|
98
99
|
async with AsyncPrelude(
|
|
99
|
-
api_token="
|
|
100
|
+
api_token=os.environ.get("API_TOKEN"), # This is the default and can be omitted
|
|
100
101
|
http_client=DefaultAioHttpClient(),
|
|
101
102
|
) as client:
|
|
102
103
|
verification = await client.verification.create(
|
|
@@ -10,6 +10,32 @@ Methods:
|
|
|
10
10
|
|
|
11
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
12
|
|
|
13
|
+
# Notify
|
|
14
|
+
|
|
15
|
+
Types:
|
|
16
|
+
|
|
17
|
+
```python
|
|
18
|
+
from prelude_python_sdk.types import (
|
|
19
|
+
NotifyGetSubscriptionConfigResponse,
|
|
20
|
+
NotifyGetSubscriptionPhoneNumberResponse,
|
|
21
|
+
NotifyListSubscriptionConfigsResponse,
|
|
22
|
+
NotifyListSubscriptionPhoneNumberEventsResponse,
|
|
23
|
+
NotifyListSubscriptionPhoneNumbersResponse,
|
|
24
|
+
NotifySendResponse,
|
|
25
|
+
NotifySendBatchResponse,
|
|
26
|
+
)
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Methods:
|
|
30
|
+
|
|
31
|
+
- <code title="get /v2/notify/management/subscriptions/{config_id}">client.notify.<a href="./src/prelude_python_sdk/resources/notify.py">get_subscription_config</a>(config_id) -> <a href="./src/prelude_python_sdk/types/notify_get_subscription_config_response.py">NotifyGetSubscriptionConfigResponse</a></code>
|
|
32
|
+
- <code title="get /v2/notify/management/subscriptions/{config_id}/phone_numbers/{phone_number}">client.notify.<a href="./src/prelude_python_sdk/resources/notify.py">get_subscription_phone_number</a>(phone_number, \*, config_id) -> <a href="./src/prelude_python_sdk/types/notify_get_subscription_phone_number_response.py">NotifyGetSubscriptionPhoneNumberResponse</a></code>
|
|
33
|
+
- <code title="get /v2/notify/management/subscriptions">client.notify.<a href="./src/prelude_python_sdk/resources/notify.py">list_subscription_configs</a>(\*\*<a href="src/prelude_python_sdk/types/notify_list_subscription_configs_params.py">params</a>) -> <a href="./src/prelude_python_sdk/types/notify_list_subscription_configs_response.py">NotifyListSubscriptionConfigsResponse</a></code>
|
|
34
|
+
- <code title="get /v2/notify/management/subscriptions/{config_id}/phone_numbers/{phone_number}/events">client.notify.<a href="./src/prelude_python_sdk/resources/notify.py">list_subscription_phone_number_events</a>(phone_number, \*, config_id, \*\*<a href="src/prelude_python_sdk/types/notify_list_subscription_phone_number_events_params.py">params</a>) -> <a href="./src/prelude_python_sdk/types/notify_list_subscription_phone_number_events_response.py">NotifyListSubscriptionPhoneNumberEventsResponse</a></code>
|
|
35
|
+
- <code title="get /v2/notify/management/subscriptions/{config_id}/phone_numbers">client.notify.<a href="./src/prelude_python_sdk/resources/notify.py">list_subscription_phone_numbers</a>(config_id, \*\*<a href="src/prelude_python_sdk/types/notify_list_subscription_phone_numbers_params.py">params</a>) -> <a href="./src/prelude_python_sdk/types/notify_list_subscription_phone_numbers_response.py">NotifyListSubscriptionPhoneNumbersResponse</a></code>
|
|
36
|
+
- <code title="post /v2/notify">client.notify.<a href="./src/prelude_python_sdk/resources/notify.py">send</a>(\*\*<a href="src/prelude_python_sdk/types/notify_send_params.py">params</a>) -> <a href="./src/prelude_python_sdk/types/notify_send_response.py">NotifySendResponse</a></code>
|
|
37
|
+
- <code title="post /v2/notify/batch">client.notify.<a href="./src/prelude_python_sdk/resources/notify.py">send_batch</a>(\*\*<a href="src/prelude_python_sdk/types/notify_send_batch_params.py">params</a>) -> <a href="./src/prelude_python_sdk/types/notify_send_batch_response.py">NotifySendBatchResponse</a></code>
|
|
38
|
+
|
|
13
39
|
# Transactional
|
|
14
40
|
|
|
15
41
|
Types:
|
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "prelude-python-sdk"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.10.0"
|
|
4
4
|
description = "The official Python library for the Prelude API"
|
|
5
5
|
dynamic = ["readme"]
|
|
6
6
|
license = "Apache-2.0"
|
|
7
7
|
authors = [
|
|
8
8
|
{ name = "Prelude", email = "hello@prelude.so" },
|
|
9
9
|
]
|
|
10
|
+
|
|
10
11
|
dependencies = [
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
"httpx>=0.23.0, <1",
|
|
13
|
+
"pydantic>=1.9.0, <3",
|
|
14
|
+
"typing-extensions>=4.10, <5",
|
|
15
|
+
"anyio>=3.5.0, <5",
|
|
16
|
+
"distro>=1.7.0, <2",
|
|
17
|
+
"sniffio",
|
|
17
18
|
]
|
|
19
|
+
|
|
18
20
|
requires-python = ">= 3.9"
|
|
19
21
|
classifiers = [
|
|
20
22
|
"Typing :: Typed",
|
|
@@ -24,6 +26,7 @@ classifiers = [
|
|
|
24
26
|
"Programming Language :: Python :: 3.11",
|
|
25
27
|
"Programming Language :: Python :: 3.12",
|
|
26
28
|
"Programming Language :: Python :: 3.13",
|
|
29
|
+
"Programming Language :: Python :: 3.14",
|
|
27
30
|
"Operating System :: OS Independent",
|
|
28
31
|
"Operating System :: POSIX",
|
|
29
32
|
"Operating System :: MacOS",
|
|
@@ -45,7 +48,7 @@ managed = true
|
|
|
45
48
|
# version pins are in requirements-dev.lock
|
|
46
49
|
dev-dependencies = [
|
|
47
50
|
"pyright==1.1.399",
|
|
48
|
-
"mypy",
|
|
51
|
+
"mypy==1.17",
|
|
49
52
|
"respx",
|
|
50
53
|
"pytest",
|
|
51
54
|
"pytest-asyncio",
|
|
@@ -12,40 +12,45 @@
|
|
|
12
12
|
-e file:.
|
|
13
13
|
aiohappyeyeballs==2.6.1
|
|
14
14
|
# via aiohttp
|
|
15
|
-
aiohttp==3.
|
|
15
|
+
aiohttp==3.13.2
|
|
16
16
|
# via httpx-aiohttp
|
|
17
17
|
# via prelude-python-sdk
|
|
18
|
-
aiosignal==1.
|
|
18
|
+
aiosignal==1.4.0
|
|
19
19
|
# via aiohttp
|
|
20
|
-
annotated-types==0.
|
|
20
|
+
annotated-types==0.7.0
|
|
21
21
|
# via pydantic
|
|
22
|
-
anyio==4.
|
|
22
|
+
anyio==4.12.0
|
|
23
23
|
# via httpx
|
|
24
24
|
# via prelude-python-sdk
|
|
25
|
-
argcomplete==3.
|
|
25
|
+
argcomplete==3.6.3
|
|
26
26
|
# via nox
|
|
27
27
|
async-timeout==5.0.1
|
|
28
28
|
# via aiohttp
|
|
29
|
-
attrs==25.
|
|
29
|
+
attrs==25.4.0
|
|
30
30
|
# via aiohttp
|
|
31
|
-
|
|
31
|
+
# via nox
|
|
32
|
+
backports-asyncio-runner==1.2.0
|
|
33
|
+
# via pytest-asyncio
|
|
34
|
+
certifi==2025.11.12
|
|
32
35
|
# via httpcore
|
|
33
36
|
# via httpx
|
|
34
|
-
colorlog==6.
|
|
37
|
+
colorlog==6.10.1
|
|
38
|
+
# via nox
|
|
39
|
+
dependency-groups==1.3.1
|
|
35
40
|
# via nox
|
|
36
|
-
dirty-equals==0.
|
|
37
|
-
distlib==0.
|
|
41
|
+
dirty-equals==0.11
|
|
42
|
+
distlib==0.4.0
|
|
38
43
|
# via virtualenv
|
|
39
|
-
distro==1.
|
|
44
|
+
distro==1.9.0
|
|
40
45
|
# via prelude-python-sdk
|
|
41
|
-
exceptiongroup==1.
|
|
46
|
+
exceptiongroup==1.3.1
|
|
42
47
|
# via anyio
|
|
43
48
|
# via pytest
|
|
44
|
-
execnet==2.1.
|
|
49
|
+
execnet==2.1.2
|
|
45
50
|
# via pytest-xdist
|
|
46
|
-
filelock==3.
|
|
51
|
+
filelock==3.19.1
|
|
47
52
|
# via virtualenv
|
|
48
|
-
frozenlist==1.
|
|
53
|
+
frozenlist==1.8.0
|
|
49
54
|
# via aiohttp
|
|
50
55
|
# via aiosignal
|
|
51
56
|
h11==0.16.0
|
|
@@ -58,80 +63,87 @@ httpx==0.28.1
|
|
|
58
63
|
# via respx
|
|
59
64
|
httpx-aiohttp==0.1.9
|
|
60
65
|
# via prelude-python-sdk
|
|
61
|
-
|
|
66
|
+
humanize==4.13.0
|
|
67
|
+
# via nox
|
|
68
|
+
idna==3.11
|
|
62
69
|
# via anyio
|
|
63
70
|
# via httpx
|
|
64
71
|
# via yarl
|
|
65
|
-
importlib-metadata==7.0
|
|
66
|
-
iniconfig==2.
|
|
72
|
+
importlib-metadata==8.7.0
|
|
73
|
+
iniconfig==2.1.0
|
|
67
74
|
# via pytest
|
|
68
75
|
markdown-it-py==3.0.0
|
|
69
76
|
# via rich
|
|
70
77
|
mdurl==0.1.2
|
|
71
78
|
# via markdown-it-py
|
|
72
|
-
multidict==6.
|
|
79
|
+
multidict==6.7.0
|
|
73
80
|
# via aiohttp
|
|
74
81
|
# via yarl
|
|
75
|
-
mypy==1.
|
|
76
|
-
mypy-extensions==1.
|
|
82
|
+
mypy==1.17.0
|
|
83
|
+
mypy-extensions==1.1.0
|
|
77
84
|
# via mypy
|
|
78
|
-
nodeenv==1.
|
|
85
|
+
nodeenv==1.9.1
|
|
79
86
|
# via pyright
|
|
80
|
-
nox==
|
|
81
|
-
packaging==
|
|
87
|
+
nox==2025.11.12
|
|
88
|
+
packaging==25.0
|
|
89
|
+
# via dependency-groups
|
|
82
90
|
# via nox
|
|
83
91
|
# via pytest
|
|
84
|
-
|
|
92
|
+
pathspec==0.12.1
|
|
93
|
+
# via mypy
|
|
94
|
+
platformdirs==4.4.0
|
|
85
95
|
# via virtualenv
|
|
86
|
-
pluggy==1.
|
|
96
|
+
pluggy==1.6.0
|
|
87
97
|
# via pytest
|
|
88
|
-
propcache==0.
|
|
98
|
+
propcache==0.4.1
|
|
89
99
|
# via aiohttp
|
|
90
100
|
# via yarl
|
|
91
|
-
pydantic==2.
|
|
101
|
+
pydantic==2.12.5
|
|
92
102
|
# via prelude-python-sdk
|
|
93
|
-
pydantic-core==2.
|
|
103
|
+
pydantic-core==2.41.5
|
|
94
104
|
# via pydantic
|
|
95
|
-
pygments==2.
|
|
105
|
+
pygments==2.19.2
|
|
106
|
+
# via pytest
|
|
96
107
|
# via rich
|
|
97
108
|
pyright==1.1.399
|
|
98
|
-
pytest==8.
|
|
109
|
+
pytest==8.4.2
|
|
99
110
|
# via pytest-asyncio
|
|
100
111
|
# via pytest-xdist
|
|
101
|
-
pytest-asyncio==
|
|
102
|
-
pytest-xdist==3.
|
|
103
|
-
python-dateutil==2.
|
|
112
|
+
pytest-asyncio==1.2.0
|
|
113
|
+
pytest-xdist==3.8.0
|
|
114
|
+
python-dateutil==2.9.0.post0
|
|
104
115
|
# via time-machine
|
|
105
|
-
pytz==2023.3.post1
|
|
106
|
-
# via dirty-equals
|
|
107
116
|
respx==0.22.0
|
|
108
|
-
rich==
|
|
109
|
-
ruff==0.
|
|
110
|
-
|
|
111
|
-
# via nodeenv
|
|
112
|
-
six==1.16.0
|
|
117
|
+
rich==14.2.0
|
|
118
|
+
ruff==0.14.7
|
|
119
|
+
six==1.17.0
|
|
113
120
|
# via python-dateutil
|
|
114
|
-
sniffio==1.3.
|
|
115
|
-
# via anyio
|
|
121
|
+
sniffio==1.3.1
|
|
116
122
|
# via prelude-python-sdk
|
|
117
|
-
time-machine==2.
|
|
118
|
-
tomli==2.0
|
|
123
|
+
time-machine==2.19.0
|
|
124
|
+
tomli==2.3.0
|
|
125
|
+
# via dependency-groups
|
|
119
126
|
# via mypy
|
|
127
|
+
# via nox
|
|
120
128
|
# via pytest
|
|
121
|
-
typing-extensions==4.
|
|
129
|
+
typing-extensions==4.15.0
|
|
130
|
+
# via aiosignal
|
|
122
131
|
# via anyio
|
|
132
|
+
# via exceptiongroup
|
|
123
133
|
# via multidict
|
|
124
134
|
# via mypy
|
|
125
135
|
# via prelude-python-sdk
|
|
126
136
|
# via pydantic
|
|
127
137
|
# via pydantic-core
|
|
128
138
|
# via pyright
|
|
139
|
+
# via pytest-asyncio
|
|
129
140
|
# via typing-inspection
|
|
130
|
-
|
|
141
|
+
# via virtualenv
|
|
142
|
+
typing-inspection==0.4.2
|
|
131
143
|
# via pydantic
|
|
132
|
-
virtualenv==20.
|
|
144
|
+
virtualenv==20.35.4
|
|
133
145
|
# via nox
|
|
134
|
-
yarl==1.
|
|
146
|
+
yarl==1.22.0
|
|
135
147
|
# via aiohttp
|
|
136
|
-
zipp==3.
|
|
148
|
+
zipp==3.23.0
|
|
137
149
|
# via importlib-metadata
|
|
@@ -12,28 +12,28 @@
|
|
|
12
12
|
-e file:.
|
|
13
13
|
aiohappyeyeballs==2.6.1
|
|
14
14
|
# via aiohttp
|
|
15
|
-
aiohttp==3.
|
|
15
|
+
aiohttp==3.13.2
|
|
16
16
|
# via httpx-aiohttp
|
|
17
17
|
# via prelude-python-sdk
|
|
18
|
-
aiosignal==1.
|
|
18
|
+
aiosignal==1.4.0
|
|
19
19
|
# via aiohttp
|
|
20
|
-
annotated-types==0.
|
|
20
|
+
annotated-types==0.7.0
|
|
21
21
|
# via pydantic
|
|
22
|
-
anyio==4.
|
|
22
|
+
anyio==4.12.0
|
|
23
23
|
# via httpx
|
|
24
24
|
# via prelude-python-sdk
|
|
25
25
|
async-timeout==5.0.1
|
|
26
26
|
# via aiohttp
|
|
27
|
-
attrs==25.
|
|
27
|
+
attrs==25.4.0
|
|
28
28
|
# via aiohttp
|
|
29
|
-
certifi==
|
|
29
|
+
certifi==2025.11.12
|
|
30
30
|
# via httpcore
|
|
31
31
|
# via httpx
|
|
32
|
-
distro==1.
|
|
32
|
+
distro==1.9.0
|
|
33
33
|
# via prelude-python-sdk
|
|
34
|
-
exceptiongroup==1.
|
|
34
|
+
exceptiongroup==1.3.1
|
|
35
35
|
# via anyio
|
|
36
|
-
frozenlist==1.
|
|
36
|
+
frozenlist==1.8.0
|
|
37
37
|
# via aiohttp
|
|
38
38
|
# via aiosignal
|
|
39
39
|
h11==0.16.0
|
|
@@ -45,31 +45,32 @@ httpx==0.28.1
|
|
|
45
45
|
# via prelude-python-sdk
|
|
46
46
|
httpx-aiohttp==0.1.9
|
|
47
47
|
# via prelude-python-sdk
|
|
48
|
-
idna==3.
|
|
48
|
+
idna==3.11
|
|
49
49
|
# via anyio
|
|
50
50
|
# via httpx
|
|
51
51
|
# via yarl
|
|
52
|
-
multidict==6.
|
|
52
|
+
multidict==6.7.0
|
|
53
53
|
# via aiohttp
|
|
54
54
|
# via yarl
|
|
55
|
-
propcache==0.
|
|
55
|
+
propcache==0.4.1
|
|
56
56
|
# via aiohttp
|
|
57
57
|
# via yarl
|
|
58
|
-
pydantic==2.
|
|
58
|
+
pydantic==2.12.5
|
|
59
59
|
# via prelude-python-sdk
|
|
60
|
-
pydantic-core==2.
|
|
60
|
+
pydantic-core==2.41.5
|
|
61
61
|
# via pydantic
|
|
62
|
-
sniffio==1.3.
|
|
63
|
-
# via anyio
|
|
62
|
+
sniffio==1.3.1
|
|
64
63
|
# via prelude-python-sdk
|
|
65
|
-
typing-extensions==4.
|
|
64
|
+
typing-extensions==4.15.0
|
|
65
|
+
# via aiosignal
|
|
66
66
|
# via anyio
|
|
67
|
+
# via exceptiongroup
|
|
67
68
|
# via multidict
|
|
68
69
|
# via prelude-python-sdk
|
|
69
70
|
# via pydantic
|
|
70
71
|
# via pydantic-core
|
|
71
72
|
# via typing-inspection
|
|
72
|
-
typing-inspection==0.4.
|
|
73
|
+
typing-inspection==0.4.2
|
|
73
74
|
# via pydantic
|
|
74
|
-
yarl==1.
|
|
75
|
+
yarl==1.22.0
|
|
75
76
|
# via aiohttp
|
|
@@ -21,7 +21,7 @@ from ._types import (
|
|
|
21
21
|
)
|
|
22
22
|
from ._utils import is_given, get_async_library
|
|
23
23
|
from ._version import __version__
|
|
24
|
-
from .resources import watch, lookup, verification, transactional, verification_management
|
|
24
|
+
from .resources import watch, lookup, notify, verification, transactional, verification_management
|
|
25
25
|
from ._streaming import Stream as Stream, AsyncStream as AsyncStream
|
|
26
26
|
from ._exceptions import PreludeError, APIStatusError
|
|
27
27
|
from ._base_client import (
|
|
@@ -35,6 +35,7 @@ __all__ = ["Timeout", "Transport", "ProxiesTypes", "RequestOptions", "Prelude",
|
|
|
35
35
|
|
|
36
36
|
class Prelude(SyncAPIClient):
|
|
37
37
|
lookup: lookup.LookupResource
|
|
38
|
+
notify: notify.NotifyResource
|
|
38
39
|
transactional: transactional.TransactionalResource
|
|
39
40
|
verification: verification.VerificationResource
|
|
40
41
|
verification_management: verification_management.VerificationManagementResource
|
|
@@ -97,6 +98,7 @@ class Prelude(SyncAPIClient):
|
|
|
97
98
|
)
|
|
98
99
|
|
|
99
100
|
self.lookup = lookup.LookupResource(self)
|
|
101
|
+
self.notify = notify.NotifyResource(self)
|
|
100
102
|
self.transactional = transactional.TransactionalResource(self)
|
|
101
103
|
self.verification = verification.VerificationResource(self)
|
|
102
104
|
self.verification_management = verification_management.VerificationManagementResource(self)
|
|
@@ -211,6 +213,7 @@ class Prelude(SyncAPIClient):
|
|
|
211
213
|
|
|
212
214
|
class AsyncPrelude(AsyncAPIClient):
|
|
213
215
|
lookup: lookup.AsyncLookupResource
|
|
216
|
+
notify: notify.AsyncNotifyResource
|
|
214
217
|
transactional: transactional.AsyncTransactionalResource
|
|
215
218
|
verification: verification.AsyncVerificationResource
|
|
216
219
|
verification_management: verification_management.AsyncVerificationManagementResource
|
|
@@ -273,6 +276,7 @@ class AsyncPrelude(AsyncAPIClient):
|
|
|
273
276
|
)
|
|
274
277
|
|
|
275
278
|
self.lookup = lookup.AsyncLookupResource(self)
|
|
279
|
+
self.notify = notify.AsyncNotifyResource(self)
|
|
276
280
|
self.transactional = transactional.AsyncTransactionalResource(self)
|
|
277
281
|
self.verification = verification.AsyncVerificationResource(self)
|
|
278
282
|
self.verification_management = verification_management.AsyncVerificationManagementResource(self)
|
|
@@ -388,6 +392,7 @@ class AsyncPrelude(AsyncAPIClient):
|
|
|
388
392
|
class PreludeWithRawResponse:
|
|
389
393
|
def __init__(self, client: Prelude) -> None:
|
|
390
394
|
self.lookup = lookup.LookupResourceWithRawResponse(client.lookup)
|
|
395
|
+
self.notify = notify.NotifyResourceWithRawResponse(client.notify)
|
|
391
396
|
self.transactional = transactional.TransactionalResourceWithRawResponse(client.transactional)
|
|
392
397
|
self.verification = verification.VerificationResourceWithRawResponse(client.verification)
|
|
393
398
|
self.verification_management = verification_management.VerificationManagementResourceWithRawResponse(
|
|
@@ -399,6 +404,7 @@ class PreludeWithRawResponse:
|
|
|
399
404
|
class AsyncPreludeWithRawResponse:
|
|
400
405
|
def __init__(self, client: AsyncPrelude) -> None:
|
|
401
406
|
self.lookup = lookup.AsyncLookupResourceWithRawResponse(client.lookup)
|
|
407
|
+
self.notify = notify.AsyncNotifyResourceWithRawResponse(client.notify)
|
|
402
408
|
self.transactional = transactional.AsyncTransactionalResourceWithRawResponse(client.transactional)
|
|
403
409
|
self.verification = verification.AsyncVerificationResourceWithRawResponse(client.verification)
|
|
404
410
|
self.verification_management = verification_management.AsyncVerificationManagementResourceWithRawResponse(
|
|
@@ -410,6 +416,7 @@ class AsyncPreludeWithRawResponse:
|
|
|
410
416
|
class PreludeWithStreamedResponse:
|
|
411
417
|
def __init__(self, client: Prelude) -> None:
|
|
412
418
|
self.lookup = lookup.LookupResourceWithStreamingResponse(client.lookup)
|
|
419
|
+
self.notify = notify.NotifyResourceWithStreamingResponse(client.notify)
|
|
413
420
|
self.transactional = transactional.TransactionalResourceWithStreamingResponse(client.transactional)
|
|
414
421
|
self.verification = verification.VerificationResourceWithStreamingResponse(client.verification)
|
|
415
422
|
self.verification_management = verification_management.VerificationManagementResourceWithStreamingResponse(
|
|
@@ -421,6 +428,7 @@ class PreludeWithStreamedResponse:
|
|
|
421
428
|
class AsyncPreludeWithStreamedResponse:
|
|
422
429
|
def __init__(self, client: AsyncPrelude) -> None:
|
|
423
430
|
self.lookup = lookup.AsyncLookupResourceWithStreamingResponse(client.lookup)
|
|
431
|
+
self.notify = notify.AsyncNotifyResourceWithStreamingResponse(client.notify)
|
|
424
432
|
self.transactional = transactional.AsyncTransactionalResourceWithStreamingResponse(client.transactional)
|
|
425
433
|
self.verification = verification.AsyncVerificationResourceWithStreamingResponse(client.verification)
|
|
426
434
|
self.verification_management = verification_management.AsyncVerificationManagementResourceWithStreamingResponse(
|
|
@@ -54,11 +54,12 @@ class Stream(Generic[_T]):
|
|
|
54
54
|
process_data = self._client._process_response_data
|
|
55
55
|
iterator = self._iter_events()
|
|
56
56
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
57
|
+
try:
|
|
58
|
+
for sse in iterator:
|
|
59
|
+
yield process_data(data=sse.json(), cast_to=cast_to, response=response)
|
|
60
|
+
finally:
|
|
61
|
+
# Ensure the response is closed even if the consumer doesn't read all data
|
|
62
|
+
response.close()
|
|
62
63
|
|
|
63
64
|
def __enter__(self) -> Self:
|
|
64
65
|
return self
|
|
@@ -117,11 +118,12 @@ class AsyncStream(Generic[_T]):
|
|
|
117
118
|
process_data = self._client._process_response_data
|
|
118
119
|
iterator = self._iter_events()
|
|
119
120
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
121
|
+
try:
|
|
122
|
+
async for sse in iterator:
|
|
123
|
+
yield process_data(data=sse.json(), cast_to=cast_to, response=response)
|
|
124
|
+
finally:
|
|
125
|
+
# Ensure the response is closed even if the consumer doesn't read all data
|
|
126
|
+
await response.aclose()
|
|
125
127
|
|
|
126
128
|
async def __aenter__(self) -> Self:
|
|
127
129
|
return self
|
{prelude_python_sdk-0.9.0 → prelude_python_sdk-0.10.0}/src/prelude_python_sdk/resources/__init__.py
RENAMED
|
@@ -16,6 +16,14 @@ from .lookup import (
|
|
|
16
16
|
LookupResourceWithStreamingResponse,
|
|
17
17
|
AsyncLookupResourceWithStreamingResponse,
|
|
18
18
|
)
|
|
19
|
+
from .notify import (
|
|
20
|
+
NotifyResource,
|
|
21
|
+
AsyncNotifyResource,
|
|
22
|
+
NotifyResourceWithRawResponse,
|
|
23
|
+
AsyncNotifyResourceWithRawResponse,
|
|
24
|
+
NotifyResourceWithStreamingResponse,
|
|
25
|
+
AsyncNotifyResourceWithStreamingResponse,
|
|
26
|
+
)
|
|
19
27
|
from .verification import (
|
|
20
28
|
VerificationResource,
|
|
21
29
|
AsyncVerificationResource,
|
|
@@ -48,6 +56,12 @@ __all__ = [
|
|
|
48
56
|
"AsyncLookupResourceWithRawResponse",
|
|
49
57
|
"LookupResourceWithStreamingResponse",
|
|
50
58
|
"AsyncLookupResourceWithStreamingResponse",
|
|
59
|
+
"NotifyResource",
|
|
60
|
+
"AsyncNotifyResource",
|
|
61
|
+
"NotifyResourceWithRawResponse",
|
|
62
|
+
"AsyncNotifyResourceWithRawResponse",
|
|
63
|
+
"NotifyResourceWithStreamingResponse",
|
|
64
|
+
"AsyncNotifyResourceWithStreamingResponse",
|
|
51
65
|
"TransactionalResource",
|
|
52
66
|
"AsyncTransactionalResource",
|
|
53
67
|
"TransactionalResourceWithRawResponse",
|