payi 0.1.0a116__tar.gz → 0.1.0a118__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.0a118/.release-please-manifest.json +3 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/CHANGELOG.md +16 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/PKG-INFO +1 -1
- {payi-0.1.0a116 → payi-0.1.0a118}/pyproject.toml +1 -2
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/_version.py +1 -1
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/lib/BedrockInstrumentor.py +2 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/lib/instrument.py +16 -7
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/test_client.py +6 -47
- payi-0.1.0a116/.release-please-manifest.json +0 -3
- {payi-0.1.0a116 → payi-0.1.0a118}/.gitignore +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/CONTRIBUTING.md +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/LICENSE +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/README.md +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/SECURITY.md +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/api.md +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/bin/check-release-environment +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/bin/publish-pypi +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/examples/.keep +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/noxfile.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/release-please-config.json +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/requirements-dev.lock +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/requirements.lock +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/__init__.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/_base_client.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/_client.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/_compat.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/_constants.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/_exceptions.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/_files.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/_models.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/_qs.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/_resource.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/_response.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/_streaming.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/_types.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/_utils/__init__.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/_utils/_compat.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/_utils/_datetime_parse.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/_utils/_logs.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/_utils/_proxy.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/_utils/_reflection.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/_utils/_resources_proxy.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/_utils/_streams.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/_utils/_sync.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/_utils/_transform.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/_utils/_typing.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/_utils/_utils.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/lib/.keep +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/lib/AnthropicInstrumentor.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/lib/GoogleGenAiInstrumentor.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/lib/OpenAIInstrumentor.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/lib/Stopwatch.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/lib/VertexInstrumentor.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/lib/VertexRequest.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/lib/data/cohere_embed_english_v3.json +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/lib/helpers.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/lib/version_helper.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/pagination.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/py.typed +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/resources/__init__.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/resources/categories/__init__.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/resources/categories/categories.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/resources/categories/fixed_cost_resources.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/resources/categories/resources.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/resources/ingest.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/resources/limits/__init__.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/resources/limits/limits.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/resources/limits/tags.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/resources/requests/__init__.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/resources/requests/request_id/__init__.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/resources/requests/request_id/properties.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/resources/requests/request_id/request_id.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/resources/requests/request_id/result.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/resources/requests/requests.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/resources/requests/response_id/__init__.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/resources/requests/response_id/properties.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/resources/requests/response_id/response_id.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/resources/requests/response_id/result.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/resources/use_cases/__init__.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/resources/use_cases/definitions/__init__.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/resources/use_cases/definitions/definitions.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/resources/use_cases/definitions/kpis.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/resources/use_cases/definitions/limit_config.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/resources/use_cases/definitions/version.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/resources/use_cases/kpis.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/resources/use_cases/properties.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/resources/use_cases/use_cases.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/__init__.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/bulk_ingest_response.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/categories/__init__.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/categories/fixed_cost_resource_create_params.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/categories/resource_create_params.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/categories/resource_list_params.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/category_delete_resource_response.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/category_delete_response.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/category_list_params.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/category_list_resources_params.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/category_resource_response.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/category_response.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/cost_data.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/cost_details.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/default_response.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/ingest_bulk_params.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/ingest_event_param.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/ingest_response.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/ingest_units_params.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/limit_create_params.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/limit_history_response.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/limit_list_params.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/limit_list_response.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/limit_reset_params.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/limit_response.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/limit_update_params.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/limits/__init__.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/limits/limit_tags.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/limits/tag_create_params.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/limits/tag_create_response.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/limits/tag_delete_response.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/limits/tag_list_response.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/limits/tag_remove_params.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/limits/tag_remove_response.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/limits/tag_update_params.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/limits/tag_update_response.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/pay_i_common_models_api_router_header_info_param.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/request_result.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/requests/__init__.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/requests/request_id/__init__.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/requests/request_id/property_update_params.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/requests/response_id/__init__.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/requests/response_id/property_update_params.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/requests_data.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/shared/__init__.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/shared/evaluation_response.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/shared/ingest_units.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/shared/pay_i_common_models_budget_management_cost_details_base.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/shared/pay_i_common_models_budget_management_create_limit_base.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/shared/properties_response.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/shared/xproxy_error.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/shared/xproxy_result.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/shared_params/__init__.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/shared_params/ingest_units.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/shared_params/pay_i_common_models_budget_management_create_limit_base.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/total_cost_data.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/use_case_instance_response.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/use_cases/__init__.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/use_cases/definition_create_params.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/use_cases/definition_list_params.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/use_cases/definition_update_params.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/use_cases/definitions/__init__.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/use_cases/definitions/kpi_create_params.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/use_cases/definitions/kpi_create_response.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/use_cases/definitions/kpi_delete_response.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/use_cases/definitions/kpi_list_params.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/use_cases/definitions/kpi_list_response.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/use_cases/definitions/kpi_retrieve_response.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/use_cases/definitions/kpi_update_params.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/use_cases/definitions/kpi_update_response.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/use_cases/definitions/limit_config_create_params.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/use_cases/kpi_list_params.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/use_cases/kpi_list_response.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/use_cases/kpi_update_params.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/use_cases/property_update_params.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/use_cases/use_case_definition.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/__init__.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/api_resources/__init__.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/api_resources/categories/__init__.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/api_resources/categories/test_fixed_cost_resources.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/api_resources/categories/test_resources.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/api_resources/limits/__init__.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/api_resources/limits/test_tags.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/api_resources/requests/__init__.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/api_resources/requests/request_id/__init__.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/api_resources/requests/request_id/test_properties.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/api_resources/requests/request_id/test_result.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/api_resources/requests/response_id/__init__.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/api_resources/requests/response_id/test_properties.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/api_resources/requests/response_id/test_result.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/api_resources/test_categories.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/api_resources/test_ingest.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/api_resources/test_limits.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/api_resources/test_use_cases.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/api_resources/use_cases/__init__.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/api_resources/use_cases/definitions/__init__.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/api_resources/use_cases/definitions/test_kpis.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/api_resources/use_cases/definitions/test_limit_config.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/api_resources/use_cases/definitions/test_version.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/api_resources/use_cases/test_definitions.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/api_resources/use_cases/test_kpis.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/api_resources/use_cases/test_properties.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/conftest.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/sample_file.txt +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/test_deepcopy.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/test_extract_files.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/test_files.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/test_models.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/test_qs.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/test_required_args.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/test_response.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/test_streaming.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/test_transform.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/test_utils/test_datetime_parse.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/test_utils/test_proxy.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/test_utils/test_typing.py +0 -0
- {payi-0.1.0a116 → payi-0.1.0a118}/tests/utils.py +0 -0
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.0-alpha.118 (2025-09-16)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v0.1.0-alpha.117...v0.1.0-alpha.118](https://github.com/Pay-i/pay-i-python/compare/v0.1.0-alpha.117...v0.1.0-alpha.118)
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
* bedrock resource, copy extra_headers ([#366](https://github.com/Pay-i/pay-i-python/issues/366)) ([8e0d188](https://github.com/Pay-i/pay-i-python/commit/8e0d1889bd48b398f27c5ea69b3cab5db23e31fa))
|
|
10
|
+
|
|
11
|
+
## 0.1.0-alpha.117 (2025-09-16)
|
|
12
|
+
|
|
13
|
+
Full Changelog: [v0.1.0-alpha.116...v0.1.0-alpha.117](https://github.com/Pay-i/pay-i-python/compare/v0.1.0-alpha.116...v0.1.0-alpha.117)
|
|
14
|
+
|
|
15
|
+
### Chores
|
|
16
|
+
|
|
17
|
+
* **tests:** simplify `get_platform` test ([9aeaba6](https://github.com/Pay-i/pay-i-python/commit/9aeaba6c83b4cdcd6bb348609a9e22ad86b14b7a))
|
|
18
|
+
|
|
3
19
|
## 0.1.0-alpha.116 (2025-09-06)
|
|
4
20
|
|
|
5
21
|
Full Changelog: [v0.1.0-alpha.115...v0.1.0-alpha.116](https://github.com/Pay-i/pay-i-python/compare/v0.1.0-alpha.115...v0.1.0-alpha.116)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "payi"
|
|
3
|
-
version = "0.1.0-alpha.
|
|
3
|
+
version = "0.1.0-alpha.118"
|
|
4
4
|
description = "The official Python library for the payi API"
|
|
5
5
|
dynamic = ["readme"]
|
|
6
6
|
license = "Apache-2.0"
|
|
@@ -60,7 +60,6 @@ dev-dependencies = [
|
|
|
60
60
|
"dirty-equals>=0.6.0",
|
|
61
61
|
"importlib-metadata>=6.7.0",
|
|
62
62
|
"rich>=13.7.1",
|
|
63
|
-
"nest_asyncio==1.6.0",
|
|
64
63
|
"pytest-xdist>=3.6.1",
|
|
65
64
|
"wrapt",
|
|
66
65
|
]
|
|
@@ -513,6 +513,8 @@ class _BedrockInvokeProviderRequest(_BedrockProviderRequest):
|
|
|
513
513
|
class _BedrockConverseProviderRequest(_BedrockProviderRequest):
|
|
514
514
|
@override
|
|
515
515
|
def process_request(self, instance: Any, extra_headers: 'dict[str, str]', args: Sequence[Any], kwargs: Any) -> bool:
|
|
516
|
+
super().process_request(instance, extra_headers, args, kwargs)
|
|
517
|
+
|
|
516
518
|
guardrail_config = kwargs.get("guardrailConfig", {})
|
|
517
519
|
if guardrail_config:
|
|
518
520
|
guardrailIdentifier = guardrail_config.get("guardrailIdentifier", "")
|
|
@@ -989,12 +989,14 @@ class _PayiInstrumentor:
|
|
|
989
989
|
|
|
990
990
|
# after _udpate_headers, all metadata to add to ingest is in extra_headers, keyed by the xproxy-xxx header name
|
|
991
991
|
extra_headers: Optional[dict[str, str]] = kwargs.get("extra_headers")
|
|
992
|
-
|
|
993
|
-
extra_headers = {}
|
|
992
|
+
extra_headers = (extra_headers or {}).copy()
|
|
994
993
|
self._update_extra_headers(context, extra_headers)
|
|
995
994
|
|
|
996
995
|
if context.get("proxy", self._proxy_default):
|
|
997
|
-
if
|
|
996
|
+
if not request.supports_extra_headers:
|
|
997
|
+
kwargs.pop("extra_headers", None)
|
|
998
|
+
elif extra_headers:
|
|
999
|
+
# Pass the copy to the wrapped function. Assumes anthropic and openai clients
|
|
998
1000
|
kwargs["extra_headers"] = extra_headers
|
|
999
1001
|
|
|
1000
1002
|
self._logger.debug(f"async_invoke_wrapper: sending proxy request")
|
|
@@ -1025,6 +1027,10 @@ class _PayiInstrumentor:
|
|
|
1025
1027
|
self._prepare_ingest(request, context, extra_headers, args, kwargs)
|
|
1026
1028
|
self._logger.debug(f"async_invoke_wrapper: calling wrapped instance (stream={stream})")
|
|
1027
1029
|
|
|
1030
|
+
if "extra_headers" in kwargs:
|
|
1031
|
+
# replace the original extra_headers with the updated copy which has all of the Pay-i headers removed
|
|
1032
|
+
kwargs["extra_headers"] = extra_headers
|
|
1033
|
+
|
|
1028
1034
|
sw.start()
|
|
1029
1035
|
response = await wrapped(*args, **kwargs)
|
|
1030
1036
|
|
|
@@ -1109,15 +1115,14 @@ class _PayiInstrumentor:
|
|
|
1109
1115
|
|
|
1110
1116
|
# after _udpate_headers, all metadata to add to ingest is in extra_headers, keyed by the xproxy-xxx header name
|
|
1111
1117
|
extra_headers: Optional[dict[str, str]] = kwargs.get("extra_headers")
|
|
1112
|
-
|
|
1113
|
-
extra_headers = {}
|
|
1118
|
+
extra_headers = (extra_headers or {}).copy()
|
|
1114
1119
|
self._update_extra_headers(context, extra_headers)
|
|
1115
1120
|
|
|
1116
1121
|
if context.get("proxy", self._proxy_default):
|
|
1117
1122
|
if not request.supports_extra_headers:
|
|
1118
1123
|
kwargs.pop("extra_headers", None)
|
|
1119
|
-
elif
|
|
1120
|
-
#
|
|
1124
|
+
elif extra_headers:
|
|
1125
|
+
# Pass the copy to the wrapped function. Assumes anthropic and openai clients
|
|
1121
1126
|
kwargs["extra_headers"] = extra_headers
|
|
1122
1127
|
|
|
1123
1128
|
self._logger.debug(f"invoke_wrapper: sending proxy request")
|
|
@@ -1148,6 +1153,10 @@ class _PayiInstrumentor:
|
|
|
1148
1153
|
self._prepare_ingest(request, context, extra_headers, args, kwargs)
|
|
1149
1154
|
self._logger.debug(f"invoke_wrapper: calling wrapped instance (stream={stream})")
|
|
1150
1155
|
|
|
1156
|
+
if "extra_headers" in kwargs:
|
|
1157
|
+
# replace the original extra_headers with the updated copy which has all of the Pay-i headers removed
|
|
1158
|
+
kwargs["extra_headers"] = extra_headers
|
|
1159
|
+
|
|
1151
1160
|
sw.start()
|
|
1152
1161
|
response = wrapped(*args, **kwargs)
|
|
1153
1162
|
|
|
@@ -6,13 +6,10 @@ import gc
|
|
|
6
6
|
import os
|
|
7
7
|
import sys
|
|
8
8
|
import json
|
|
9
|
-
import time
|
|
10
9
|
import asyncio
|
|
11
10
|
import inspect
|
|
12
|
-
import subprocess
|
|
13
11
|
import tracemalloc
|
|
14
12
|
from typing import Any, Union, cast
|
|
15
|
-
from textwrap import dedent
|
|
16
13
|
from unittest import mock
|
|
17
14
|
from typing_extensions import Literal
|
|
18
15
|
|
|
@@ -23,14 +20,17 @@ from pydantic import ValidationError
|
|
|
23
20
|
|
|
24
21
|
from payi import Payi, AsyncPayi, APIResponseValidationError
|
|
25
22
|
from payi._types import Omit
|
|
23
|
+
from payi._utils import asyncify
|
|
26
24
|
from payi._models import BaseModel, FinalRequestOptions
|
|
27
25
|
from payi._exceptions import PayiError, APIStatusError, APITimeoutError, APIResponseValidationError
|
|
28
26
|
from payi._base_client import (
|
|
29
27
|
DEFAULT_TIMEOUT,
|
|
30
28
|
HTTPX_DEFAULT_TIMEOUT,
|
|
31
29
|
BaseClient,
|
|
30
|
+
OtherPlatform,
|
|
32
31
|
DefaultHttpxClient,
|
|
33
32
|
DefaultAsyncHttpxClient,
|
|
33
|
+
get_platform,
|
|
34
34
|
make_request_options,
|
|
35
35
|
)
|
|
36
36
|
|
|
@@ -1617,50 +1617,9 @@ class TestAsyncPayi:
|
|
|
1617
1617
|
|
|
1618
1618
|
assert response.http_request.headers.get("x-stainless-retry-count") == "42"
|
|
1619
1619
|
|
|
1620
|
-
def test_get_platform(self) -> None:
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
#
|
|
1624
|
-
# Since nest_asyncio.apply() is global and cannot be un-applied, this
|
|
1625
|
-
# test is run in a separate process to avoid affecting other tests.
|
|
1626
|
-
test_code = dedent("""
|
|
1627
|
-
import asyncio
|
|
1628
|
-
import nest_asyncio
|
|
1629
|
-
import threading
|
|
1630
|
-
|
|
1631
|
-
from payi._utils import asyncify
|
|
1632
|
-
from payi._base_client import get_platform
|
|
1633
|
-
|
|
1634
|
-
async def test_main() -> None:
|
|
1635
|
-
result = await asyncify(get_platform)()
|
|
1636
|
-
print(result)
|
|
1637
|
-
for thread in threading.enumerate():
|
|
1638
|
-
print(thread.name)
|
|
1639
|
-
|
|
1640
|
-
nest_asyncio.apply()
|
|
1641
|
-
asyncio.run(test_main())
|
|
1642
|
-
""")
|
|
1643
|
-
with subprocess.Popen(
|
|
1644
|
-
[sys.executable, "-c", test_code],
|
|
1645
|
-
text=True,
|
|
1646
|
-
) as process:
|
|
1647
|
-
timeout = 10 # seconds
|
|
1648
|
-
|
|
1649
|
-
start_time = time.monotonic()
|
|
1650
|
-
while True:
|
|
1651
|
-
return_code = process.poll()
|
|
1652
|
-
if return_code is not None:
|
|
1653
|
-
if return_code != 0:
|
|
1654
|
-
raise AssertionError("calling get_platform using asyncify resulted in a non-zero exit code")
|
|
1655
|
-
|
|
1656
|
-
# success
|
|
1657
|
-
break
|
|
1658
|
-
|
|
1659
|
-
if time.monotonic() - start_time > timeout:
|
|
1660
|
-
process.kill()
|
|
1661
|
-
raise AssertionError("calling get_platform using asyncify resulted in a hung process")
|
|
1662
|
-
|
|
1663
|
-
time.sleep(0.1)
|
|
1620
|
+
async def test_get_platform(self) -> None:
|
|
1621
|
+
platform = await asyncify(get_platform)()
|
|
1622
|
+
assert isinstance(platform, (str, OtherPlatform))
|
|
1664
1623
|
|
|
1665
1624
|
async def test_proxy_environment_variables(self, monkeypatch: pytest.MonkeyPatch) -> None:
|
|
1666
1625
|
# Test that the proxy environment variables are set correctly
|
|
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.0a116 → payi-0.1.0a118}/src/payi/types/categories/fixed_cost_resource_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
|
|
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.0a116 → payi-0.1.0a118}/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
|
{payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/requests/request_id/property_update_params.py
RENAMED
|
File without changes
|
|
File without changes
|
{payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/requests/response_id/property_update_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
|
|
File without changes
|
{payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/use_cases/definitions/kpi_create_response.py
RENAMED
|
File without changes
|
{payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/use_cases/definitions/kpi_delete_response.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/use_cases/definitions/kpi_retrieve_response.py
RENAMED
|
File without changes
|
|
File without changes
|
{payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/use_cases/definitions/kpi_update_response.py
RENAMED
|
File without changes
|
{payi-0.1.0a116 → payi-0.1.0a118}/src/payi/types/use_cases/definitions/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
|
{payi-0.1.0a116 → payi-0.1.0a118}/tests/api_resources/categories/test_fixed_cost_resources.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{payi-0.1.0a116 → payi-0.1.0a118}/tests/api_resources/requests/request_id/test_properties.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{payi-0.1.0a116 → payi-0.1.0a118}/tests/api_resources/requests/response_id/test_properties.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
|
{payi-0.1.0a116 → payi-0.1.0a118}/tests/api_resources/use_cases/definitions/test_limit_config.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
|