payi 0.1.0a49__tar.gz → 0.1.0a51__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.
Potentially problematic release.
This version of payi might be problematic. Click here for more details.
- payi-0.1.0a51/.release-please-manifest.json +3 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/CHANGELOG.md +21 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/PKG-INFO +1 -1
- {payi-0.1.0a49 → payi-0.1.0a51}/pyproject.toml +1 -1
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/_utils/_sync.py +17 -2
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/_version.py +1 -1
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/resources/ingest.py +33 -28
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/ingest_event_param.py +0 -2
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/ingest_units_params.py +2 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/api_resources/test_ingest.py +2 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/test_client.py +6 -4
- payi-0.1.0a49/.release-please-manifest.json +0 -3
- {payi-0.1.0a49 → payi-0.1.0a51}/.gitignore +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/CONTRIBUTING.md +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/LICENSE +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/README.md +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/SECURITY.md +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/api.md +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/bin/check-release-environment +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/bin/publish-pypi +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/examples/.keep +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/mypy.ini +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/noxfile.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/release-please-config.json +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/requirements-dev.lock +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/requirements.lock +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/__init__.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/_base_client.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/_client.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/_compat.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/_constants.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/_exceptions.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/_files.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/_models.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/_qs.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/_resource.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/_response.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/_streaming.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/_types.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/_utils/__init__.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/_utils/_logs.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/_utils/_proxy.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/_utils/_reflection.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/_utils/_streams.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/_utils/_transform.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/_utils/_typing.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/_utils/_utils.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/lib/.keep +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/lib/AnthropicInstrumentor.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/lib/BedrockInstrumentor.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/lib/OpenAIInstrumentor.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/lib/Stopwatch.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/lib/helpers.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/lib/instrument.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/py.typed +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/resources/__init__.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/resources/billing_models.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/resources/categories/__init__.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/resources/categories/categories.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/resources/categories/resources.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/resources/experiences/__init__.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/resources/experiences/experiences.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/resources/experiences/properties.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/resources/experiences/types/__init__.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/resources/experiences/types/limit_config.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/resources/experiences/types/types.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/resources/limits/__init__.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/resources/limits/limits.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/resources/limits/tags.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/resources/price_modifiers.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/resources/requests/__init__.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/resources/requests/properties.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/resources/requests/requests.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/resources/requests/result.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/__init__.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/billing_model.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/billing_model_create_params.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/billing_model_list_response.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/billing_model_update_params.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/bulk_ingest_response.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/categories/__init__.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/categories/resource_create_params.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/categories/resource_list_response.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/category_delete_resource_response.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/category_delete_response.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/category_list_resources_response.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/category_list_response.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/category_resource_response.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/category_response.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/cost_data.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/cost_details.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/default_response.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/experience_instance_response.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/experiences/__init__.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/experiences/experience_type.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/experiences/properties_response.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/experiences/property_create_params.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/experiences/type_create_params.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/experiences/type_list_params.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/experiences/type_list_response.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/experiences/type_update_params.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/experiences/types/__init__.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/experiences/types/limit_config_create_params.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/ingest_bulk_params.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/ingest_response.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/limit_create_params.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/limit_history_response.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/limit_list_params.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/limit_reset_params.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/limit_response.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/limit_update_params.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/limits/__init__.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/limits/limit_tags.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/limits/tag_create_params.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/limits/tag_create_response.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/limits/tag_delete_response.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/limits/tag_list_response.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/limits/tag_remove_params.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/limits/tag_remove_response.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/limits/tag_update_params.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/limits/tag_update_response.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/paged_limit_list.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/pay_i_common_models_api_router_header_info_param.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/price_modifier.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/price_modifier_create_params.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/price_modifier_retrieve_response.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/price_modifier_update_params.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/requests/__init__.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/requests/property_create_params.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/requests/request_result.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/requests_data.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/shared/__init__.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/shared/evaluation_response.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/shared/pay_i_common_models_budget_management_cost_details_base.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/total_cost_data.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/__init__.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/api_resources/__init__.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/api_resources/categories/__init__.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/api_resources/categories/test_resources.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/api_resources/experiences/__init__.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/api_resources/experiences/test_properties.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/api_resources/experiences/test_types.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/api_resources/experiences/types/__init__.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/api_resources/experiences/types/test_limit_config.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/api_resources/limits/__init__.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/api_resources/limits/test_tags.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/api_resources/requests/__init__.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/api_resources/requests/test_properties.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/api_resources/requests/test_result.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/api_resources/test_billing_models.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/api_resources/test_categories.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/api_resources/test_experiences.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/api_resources/test_limits.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/api_resources/test_price_modifiers.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/conftest.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/sample_file.txt +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/test_deepcopy.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/test_extract_files.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/test_files.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/test_models.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/test_qs.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/test_required_args.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/test_response.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/test_streaming.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/test_transform.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/test_utils/test_proxy.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/test_utils/test_typing.py +0 -0
- {payi-0.1.0a49 → payi-0.1.0a51}/tests/utils.py +0 -0
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.0-alpha.51 (2025-02-20)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v0.1.0-alpha.50...v0.1.0-alpha.51](https://github.com/Pay-i/pay-i-python/compare/v0.1.0-alpha.50...v0.1.0-alpha.51)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* **api:** manual updates ([#235](https://github.com/Pay-i/pay-i-python/issues/235)) ([92e6b3c](https://github.com/Pay-i/pay-i-python/commit/92e6b3c9328caae24efbb75214f5f5087bfd57ec))
|
|
10
|
+
|
|
11
|
+
## 0.1.0-alpha.50 (2025-02-14)
|
|
12
|
+
|
|
13
|
+
Full Changelog: [v0.1.0-alpha.49...v0.1.0-alpha.50](https://github.com/Pay-i/pay-i-python/compare/v0.1.0-alpha.49...v0.1.0-alpha.50)
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
* asyncify on non-asyncio runtimes ([#233](https://github.com/Pay-i/pay-i-python/issues/233)) ([fa695e3](https://github.com/Pay-i/pay-i-python/commit/fa695e32df5f90064a16e547ff5e1d2aa7e6655c))
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Chores
|
|
21
|
+
|
|
22
|
+
* **internal:** update client tests ([#231](https://github.com/Pay-i/pay-i-python/issues/231)) ([9ed5673](https://github.com/Pay-i/pay-i-python/commit/9ed567342c9360349be4a7770580929a96b306be))
|
|
23
|
+
|
|
3
24
|
## 0.1.0-alpha.49 (2025-02-10)
|
|
4
25
|
|
|
5
26
|
Full Changelog: [v0.1.0-alpha.48...v0.1.0-alpha.49](https://github.com/Pay-i/pay-i-python/compare/v0.1.0-alpha.48...v0.1.0-alpha.49)
|
|
@@ -7,16 +7,20 @@ import contextvars
|
|
|
7
7
|
from typing import Any, TypeVar, Callable, Awaitable
|
|
8
8
|
from typing_extensions import ParamSpec
|
|
9
9
|
|
|
10
|
+
import anyio
|
|
11
|
+
import sniffio
|
|
12
|
+
import anyio.to_thread
|
|
13
|
+
|
|
10
14
|
T_Retval = TypeVar("T_Retval")
|
|
11
15
|
T_ParamSpec = ParamSpec("T_ParamSpec")
|
|
12
16
|
|
|
13
17
|
|
|
14
18
|
if sys.version_info >= (3, 9):
|
|
15
|
-
|
|
19
|
+
_asyncio_to_thread = asyncio.to_thread
|
|
16
20
|
else:
|
|
17
21
|
# backport of https://docs.python.org/3/library/asyncio-task.html#asyncio.to_thread
|
|
18
22
|
# for Python 3.8 support
|
|
19
|
-
async def
|
|
23
|
+
async def _asyncio_to_thread(
|
|
20
24
|
func: Callable[T_ParamSpec, T_Retval], /, *args: T_ParamSpec.args, **kwargs: T_ParamSpec.kwargs
|
|
21
25
|
) -> Any:
|
|
22
26
|
"""Asynchronously run function *func* in a separate thread.
|
|
@@ -34,6 +38,17 @@ else:
|
|
|
34
38
|
return await loop.run_in_executor(None, func_call)
|
|
35
39
|
|
|
36
40
|
|
|
41
|
+
async def to_thread(
|
|
42
|
+
func: Callable[T_ParamSpec, T_Retval], /, *args: T_ParamSpec.args, **kwargs: T_ParamSpec.kwargs
|
|
43
|
+
) -> T_Retval:
|
|
44
|
+
if sniffio.current_async_library() == "asyncio":
|
|
45
|
+
return await _asyncio_to_thread(func, *args, **kwargs)
|
|
46
|
+
|
|
47
|
+
return await anyio.to_thread.run_sync(
|
|
48
|
+
functools.partial(func, *args, **kwargs),
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
|
|
37
52
|
# inspired by `asyncer`, https://github.com/tiangolo/asyncer
|
|
38
53
|
def asyncify(function: Callable[T_ParamSpec, T_Retval]) -> Callable[T_ParamSpec, Awaitable[T_Retval]]:
|
|
39
54
|
"""
|
|
@@ -101,11 +101,12 @@ class IngestResource(SyncAPIResource):
|
|
|
101
101
|
provider_response_json: Union[str, List[str], None] | NotGiven = NOT_GIVEN,
|
|
102
102
|
provider_uri: Optional[str] | NotGiven = NOT_GIVEN,
|
|
103
103
|
time_to_first_token_ms: Optional[int] | NotGiven = NOT_GIVEN,
|
|
104
|
-
limit_ids:
|
|
105
|
-
request_tags:
|
|
106
|
-
experience_id:
|
|
107
|
-
experience_name:
|
|
108
|
-
user_id:
|
|
104
|
+
limit_ids: Optional[list[str]] | NotGiven = NOT_GIVEN,
|
|
105
|
+
request_tags: Optional[list[str]] | NotGiven = NOT_GIVEN,
|
|
106
|
+
experience_id: Optional[str] | NotGiven = NOT_GIVEN,
|
|
107
|
+
experience_name: Optional[str] | NotGiven = NOT_GIVEN,
|
|
108
|
+
user_id: Optional[str] | NotGiven = NOT_GIVEN,
|
|
109
|
+
resource_scope: Optional[str] | NotGiven = NOT_GIVEN,
|
|
109
110
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
110
111
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
111
112
|
extra_headers: Headers | None = None,
|
|
@@ -136,6 +137,8 @@ class IngestResource(SyncAPIResource):
|
|
|
136
137
|
experience_id (str, optional): The experience instance id
|
|
137
138
|
|
|
138
139
|
user_id (str, optional): The user id
|
|
140
|
+
|
|
141
|
+
resource_scope(str, optional): The scope of the resource
|
|
139
142
|
|
|
140
143
|
extra_headers (Dict[str, str], optional): Additional headers for the request. Defaults to None.
|
|
141
144
|
|
|
@@ -176,17 +179,17 @@ class IngestResource(SyncAPIResource):
|
|
|
176
179
|
user_id = NOT_GIVEN
|
|
177
180
|
|
|
178
181
|
extra_headers = {
|
|
179
|
-
**strip_not_given(
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
),
|
|
182
|
+
**{key: value for key, value in strip_not_given({
|
|
183
|
+
"xProxy-Limit-IDs": valid_ids_str,
|
|
184
|
+
"xProxy-Request-Tags": valid_tags_str,
|
|
185
|
+
"xProxy-Experience-Name": experience_name,
|
|
186
|
+
"xProxy-Experience-Id": experience_id,
|
|
187
|
+
"xProxy-User-ID": user_id,
|
|
188
|
+
"xProxy-Resource-Scope": resource_scope,
|
|
189
|
+
}).items() if value is not None}, # Ensure no 'None' values are included
|
|
188
190
|
**(extra_headers or {}),
|
|
189
191
|
}
|
|
192
|
+
|
|
190
193
|
return self._post(
|
|
191
194
|
"/api/v1/ingest",
|
|
192
195
|
body=maybe_transform(
|
|
@@ -286,11 +289,12 @@ class AsyncIngestResource(AsyncAPIResource):
|
|
|
286
289
|
provider_response_json: Union[str, List[str], None] | NotGiven = NOT_GIVEN,
|
|
287
290
|
provider_uri: Optional[str] | NotGiven = NOT_GIVEN,
|
|
288
291
|
time_to_first_token_ms: Optional[int] | NotGiven = NOT_GIVEN,
|
|
289
|
-
limit_ids:
|
|
290
|
-
request_tags:
|
|
291
|
-
experience_name:
|
|
292
|
-
experience_id:
|
|
293
|
-
user_id:
|
|
292
|
+
limit_ids: Optional[list[str]] | NotGiven = NOT_GIVEN,
|
|
293
|
+
request_tags: Optional[list[str]] | NotGiven = NOT_GIVEN,
|
|
294
|
+
experience_name: Optional[str] | NotGiven = NOT_GIVEN,
|
|
295
|
+
experience_id: Optional[str] | NotGiven = NOT_GIVEN,
|
|
296
|
+
user_id: Optional[str] | NotGiven = NOT_GIVEN,
|
|
297
|
+
resource_scope: Union[str, None] | NotGiven = NOT_GIVEN,
|
|
294
298
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
295
299
|
extra_headers: Headers | None = None,
|
|
296
300
|
extra_query: Query | None = None,
|
|
@@ -320,6 +324,8 @@ class AsyncIngestResource(AsyncAPIResource):
|
|
|
320
324
|
experience_id (str, optional): The experience instance id
|
|
321
325
|
|
|
322
326
|
user_id (str, optional): The user id
|
|
327
|
+
|
|
328
|
+
resource_scope (str, optional): The scope of the resource
|
|
323
329
|
|
|
324
330
|
extra_headers (Dict[str, str], optional): Additional headers for the request. Defaults to None.
|
|
325
331
|
|
|
@@ -360,15 +366,14 @@ class AsyncIngestResource(AsyncAPIResource):
|
|
|
360
366
|
user_id = NOT_GIVEN
|
|
361
367
|
|
|
362
368
|
extra_headers = {
|
|
363
|
-
**strip_not_given(
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
),
|
|
369
|
+
**{key: value for key, value in strip_not_given({
|
|
370
|
+
"xProxy-Limit-IDs": valid_ids_str,
|
|
371
|
+
"xProxy-Request-Tags": valid_tags_str,
|
|
372
|
+
"xProxy-Experience-Name": experience_name,
|
|
373
|
+
"xProxy-Experience-Id": experience_id,
|
|
374
|
+
"xProxy-User-ID": user_id,
|
|
375
|
+
"xProxy-Resource-Scope": resource_scope,
|
|
376
|
+
}).items() if value is not None}, # Ensure no 'None' values are included
|
|
372
377
|
**(extra_headers or {}),
|
|
373
378
|
}
|
|
374
379
|
return await self._post(
|
|
@@ -51,6 +51,8 @@ class IngestUnitsParams(TypedDict, total=False):
|
|
|
51
51
|
|
|
52
52
|
experience_id: Annotated[Union[str, None], PropertyInfo(alias="xProxy-Experience-Id")]
|
|
53
53
|
|
|
54
|
+
resource_scope: Annotated[Union[str, None], PropertyInfo(alias="xProxy-Resource-Scope")]
|
|
55
|
+
|
|
54
56
|
user_id: Annotated[Union[str, None], PropertyInfo(alias="xProxy-User-ID")]
|
|
55
57
|
|
|
56
58
|
|
|
@@ -113,6 +113,7 @@ class TestIngest:
|
|
|
113
113
|
request_tags=["requestTag1", "request_tag_2"],
|
|
114
114
|
experience_name="experience_name",
|
|
115
115
|
experience_id="experience_id",
|
|
116
|
+
resource_scope="datazone",
|
|
116
117
|
user_id="UserName123",
|
|
117
118
|
)
|
|
118
119
|
assert_matches_type(IngestResponse, ingest, path=["response"])
|
|
@@ -244,6 +245,7 @@ class TestAsyncIngest:
|
|
|
244
245
|
request_tags=["requestTag1", "request_tag_2"],
|
|
245
246
|
experience_name="experience_name",
|
|
246
247
|
experience_id="experience_id",
|
|
248
|
+
resource_scope="datazone",
|
|
247
249
|
user_id="UserName123",
|
|
248
250
|
)
|
|
249
251
|
assert_matches_type(IngestResponse, ingest, path=["response"])
|
|
@@ -23,10 +23,12 @@ from pydantic import ValidationError
|
|
|
23
23
|
|
|
24
24
|
from payi import Payi, AsyncPayi, APIResponseValidationError
|
|
25
25
|
from payi._types import Omit
|
|
26
|
+
from payi._utils import maybe_transform
|
|
26
27
|
from payi._models import BaseModel, FinalRequestOptions
|
|
27
28
|
from payi._constants import RAW_RESPONSE_HEADER
|
|
28
29
|
from payi._exceptions import PayiError, APIStatusError, APITimeoutError, APIResponseValidationError
|
|
29
30
|
from payi._base_client import DEFAULT_TIMEOUT, HTTPX_DEFAULT_TIMEOUT, BaseClient, make_request_options
|
|
31
|
+
from payi.types.limit_create_params import LimitCreateParams
|
|
30
32
|
|
|
31
33
|
from .utils import update_env
|
|
32
34
|
|
|
@@ -704,7 +706,7 @@ class TestPayi:
|
|
|
704
706
|
with pytest.raises(APITimeoutError):
|
|
705
707
|
self.client.post(
|
|
706
708
|
"/api/v1/limits",
|
|
707
|
-
body=cast(object, dict(limit_name="x", max=1)),
|
|
709
|
+
body=cast(object, maybe_transform(dict(limit_name="x", max=1), LimitCreateParams)),
|
|
708
710
|
cast_to=httpx.Response,
|
|
709
711
|
options={"headers": {RAW_RESPONSE_HEADER: "stream"}},
|
|
710
712
|
)
|
|
@@ -719,7 +721,7 @@ class TestPayi:
|
|
|
719
721
|
with pytest.raises(APIStatusError):
|
|
720
722
|
self.client.post(
|
|
721
723
|
"/api/v1/limits",
|
|
722
|
-
body=cast(object, dict(limit_name="x", max=1)),
|
|
724
|
+
body=cast(object, maybe_transform(dict(limit_name="x", max=1), LimitCreateParams)),
|
|
723
725
|
cast_to=httpx.Response,
|
|
724
726
|
options={"headers": {RAW_RESPONSE_HEADER: "stream"}},
|
|
725
727
|
)
|
|
@@ -1472,7 +1474,7 @@ class TestAsyncPayi:
|
|
|
1472
1474
|
with pytest.raises(APITimeoutError):
|
|
1473
1475
|
await self.client.post(
|
|
1474
1476
|
"/api/v1/limits",
|
|
1475
|
-
body=cast(object, dict(limit_name="x", max=1)),
|
|
1477
|
+
body=cast(object, maybe_transform(dict(limit_name="x", max=1), LimitCreateParams)),
|
|
1476
1478
|
cast_to=httpx.Response,
|
|
1477
1479
|
options={"headers": {RAW_RESPONSE_HEADER: "stream"}},
|
|
1478
1480
|
)
|
|
@@ -1487,7 +1489,7 @@ class TestAsyncPayi:
|
|
|
1487
1489
|
with pytest.raises(APIStatusError):
|
|
1488
1490
|
await self.client.post(
|
|
1489
1491
|
"/api/v1/limits",
|
|
1490
|
-
body=cast(object, dict(limit_name="x", max=1)),
|
|
1492
|
+
body=cast(object, maybe_transform(dict(limit_name="x", max=1), LimitCreateParams)),
|
|
1491
1493
|
cast_to=httpx.Response,
|
|
1492
1494
|
options={"headers": {RAW_RESPONSE_HEADER: "stream"}},
|
|
1493
1495
|
)
|
|
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
|
|
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
|
{payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/experiences/types/limit_config_create_params.py
RENAMED
|
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
|
{payi-0.1.0a49 → payi-0.1.0a51}/src/payi/types/pay_i_common_models_api_router_header_info_param.py
RENAMED
|
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
|