payi 0.1.0a91__tar.gz → 0.1.0a93__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.0a93/.release-please-manifest.json +3 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/CHANGELOG.md +22 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/PKG-INFO +1 -1
- {payi-0.1.0a91 → payi-0.1.0a93}/bin/check-release-environment +1 -1
- {payi-0.1.0a91 → payi-0.1.0a93}/pyproject.toml +1 -1
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/_version.py +1 -1
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/lib/VertexInstrumentor.py +1 -2
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/lib/instrument.py +37 -3
- payi-0.1.0a91/.release-please-manifest.json +0 -3
- {payi-0.1.0a91 → payi-0.1.0a93}/.gitignore +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/CONTRIBUTING.md +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/LICENSE +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/README.md +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/SECURITY.md +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/api.md +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/bin/publish-pypi +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/examples/.keep +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/mypy.ini +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/noxfile.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/release-please-config.json +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/requirements-dev.lock +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/requirements.lock +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/__init__.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/_base_client.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/_client.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/_compat.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/_constants.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/_exceptions.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/_files.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/_models.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/_qs.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/_resource.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/_response.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/_streaming.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/_types.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/_utils/__init__.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/_utils/_logs.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/_utils/_proxy.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/_utils/_reflection.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/_utils/_resources_proxy.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/_utils/_streams.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/_utils/_sync.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/_utils/_transform.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/_utils/_typing.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/_utils/_utils.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/lib/.keep +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/lib/AnthropicInstrumentor.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/lib/BedrockInstrumentor.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/lib/GoogleGenAiInstrumentor.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/lib/OpenAIInstrumentor.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/lib/Stopwatch.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/lib/VertexRequest.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/lib/helpers.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/pagination.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/py.typed +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/resources/__init__.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/resources/categories/__init__.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/resources/categories/categories.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/resources/categories/fixed_cost_resources.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/resources/categories/resources.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/resources/experiences/__init__.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/resources/experiences/experiences.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/resources/experiences/properties.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/resources/experiences/types/__init__.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/resources/experiences/types/limit_config.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/resources/experiences/types/types.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/resources/ingest.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/resources/limits/__init__.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/resources/limits/limits.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/resources/limits/tags.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/resources/requests/__init__.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/resources/requests/properties.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/resources/requests/requests.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/resources/requests/result.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/resources/use_cases/__init__.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/resources/use_cases/definitions/__init__.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/resources/use_cases/definitions/definitions.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/resources/use_cases/definitions/kpis.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/resources/use_cases/definitions/limit_config.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/resources/use_cases/definitions/version.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/resources/use_cases/kpis.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/resources/use_cases/properties.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/resources/use_cases/use_cases.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/__init__.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/bulk_ingest_response.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/categories/__init__.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/categories/fixed_cost_resource_create_params.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/categories/resource_create_params.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/categories/resource_list_params.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/category_delete_resource_response.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/category_delete_response.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/category_list_params.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/category_list_resources_params.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/category_resource_response.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/category_response.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/cost_data.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/cost_details.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/default_response.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/experience_instance_response.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/experiences/__init__.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/experiences/experience_type.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/experiences/property_create_params.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/experiences/type_create_params.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/experiences/type_list_params.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/experiences/type_update_params.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/experiences/types/__init__.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/experiences/types/limit_config_create_params.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/ingest_bulk_params.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/ingest_event_param.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/ingest_response.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/ingest_units_params.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/limit_create_params.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/limit_history_response.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/limit_list_params.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/limit_list_response.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/limit_reset_params.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/limit_response.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/limit_update_params.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/limits/__init__.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/limits/limit_tags.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/limits/tag_create_params.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/limits/tag_create_response.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/limits/tag_delete_response.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/limits/tag_list_response.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/limits/tag_remove_params.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/limits/tag_remove_response.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/limits/tag_update_params.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/limits/tag_update_response.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/pay_i_common_models_api_router_header_info_param.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/requests/__init__.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/requests/property_create_params.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/requests/request_result.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/requests_data.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/shared/__init__.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/shared/evaluation_response.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/shared/ingest_units.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/shared/pay_i_common_models_budget_management_cost_details_base.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/shared/pay_i_common_models_budget_management_create_limit_base.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/shared/properties_response.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/shared/xproxy_error.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/shared/xproxy_result.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/shared_params/__init__.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/shared_params/ingest_units.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/shared_params/pay_i_common_models_budget_management_create_limit_base.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/total_cost_data.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/use_case_instance_response.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/use_cases/__init__.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/use_cases/definition_create_params.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/use_cases/definition_list_params.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/use_cases/definition_update_params.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/use_cases/definitions/__init__.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/use_cases/definitions/kpi_create_params.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/use_cases/definitions/kpi_create_response.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/use_cases/definitions/kpi_delete_response.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/use_cases/definitions/kpi_list_params.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/use_cases/definitions/kpi_list_response.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/use_cases/definitions/kpi_retrieve_response.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/use_cases/definitions/kpi_update_params.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/use_cases/definitions/kpi_update_response.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/use_cases/definitions/limit_config_create_params.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/use_cases/kpi_create_params.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/use_cases/kpi_list_params.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/use_cases/kpi_list_response.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/use_cases/kpi_update_params.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/use_cases/property_create_params.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/use_cases/use_case_definition.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/__init__.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/api_resources/__init__.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/api_resources/categories/__init__.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/api_resources/categories/test_fixed_cost_resources.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/api_resources/categories/test_resources.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/api_resources/experiences/__init__.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/api_resources/experiences/test_properties.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/api_resources/experiences/test_types.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/api_resources/experiences/types/__init__.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/api_resources/experiences/types/test_limit_config.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/api_resources/limits/__init__.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/api_resources/limits/test_tags.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/api_resources/requests/__init__.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/api_resources/requests/test_properties.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/api_resources/requests/test_result.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/api_resources/test_categories.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/api_resources/test_experiences.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/api_resources/test_ingest.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/api_resources/test_limits.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/api_resources/test_use_cases.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/api_resources/use_cases/__init__.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/api_resources/use_cases/definitions/__init__.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/api_resources/use_cases/definitions/test_kpis.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/api_resources/use_cases/definitions/test_limit_config.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/api_resources/use_cases/definitions/test_version.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/api_resources/use_cases/test_definitions.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/api_resources/use_cases/test_kpis.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/api_resources/use_cases/test_properties.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/conftest.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/sample_file.txt +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/test_client.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/test_deepcopy.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/test_extract_files.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/test_files.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/test_models.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/test_qs.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/test_required_args.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/test_response.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/test_streaming.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/test_transform.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/test_utils/test_proxy.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/test_utils/test_typing.py +0 -0
- {payi-0.1.0a91 → payi-0.1.0a93}/tests/utils.py +0 -0
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.0-alpha.93 (2025-07-01)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v0.1.0-alpha.92...v0.1.0-alpha.93](https://github.com/Pay-i/pay-i-python/compare/v0.1.0-alpha.92...v0.1.0-alpha.93)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* limit connection error log messages ([#333](https://github.com/Pay-i/pay-i-python/issues/333)) ([f454006](https://github.com/Pay-i/pay-i-python/commit/f454006c80beaf09dfe92eba98e4aaeae0e017fd))
|
|
10
|
+
|
|
11
|
+
## 0.1.0-alpha.92 (2025-06-30)
|
|
12
|
+
|
|
13
|
+
Full Changelog: [v0.1.0-alpha.91...v0.1.0-alpha.92](https://github.com/Pay-i/pay-i-python/compare/v0.1.0-alpha.91...v0.1.0-alpha.92)
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
* **ci:** correct conditional ([b1b1775](https://github.com/Pay-i/pay-i-python/commit/b1b17750b13111f2eb5a7d76fa84134f07575e3b))
|
|
18
|
+
* **ci:** release-doctor — report correct token name ([48fc8a1](https://github.com/Pay-i/pay-i-python/commit/48fc8a1381674b1506518c149c483a518d693ffd))
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Chores
|
|
22
|
+
|
|
23
|
+
* **ci:** only run for pushes and fork pull requests ([ba502ab](https://github.com/Pay-i/pay-i-python/commit/ba502aba39af4a8aca8b64c90b1cb8d323926f93))
|
|
24
|
+
|
|
3
25
|
## 0.1.0-alpha.91 (2025-06-25)
|
|
4
26
|
|
|
5
27
|
Full Changelog: [v0.1.0-alpha.90...v0.1.0-alpha.91](https://github.com/Pay-i/pay-i-python/compare/v0.1.0-alpha.90...v0.1.0-alpha.91)
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
errors=()
|
|
4
4
|
|
|
5
5
|
if [ -z "${PYPI_TOKEN}" ]; then
|
|
6
|
-
errors+=("The
|
|
6
|
+
errors+=("The PYPI_TOKEN secret has not been set. Please set it in either this repository's secrets or your organization secrets.")
|
|
7
7
|
fi
|
|
8
8
|
|
|
9
9
|
lenErrors=${#errors[@]}
|
|
@@ -88,7 +88,6 @@ class _GoogleVertexRequest(_VertexRequest):
|
|
|
88
88
|
)
|
|
89
89
|
self._prompt_character_count = 0
|
|
90
90
|
self._candidates_character_count = 0
|
|
91
|
-
self._model_name: Optional[str] = None
|
|
92
91
|
|
|
93
92
|
@override
|
|
94
93
|
def process_request(self, instance: Any, extra_headers: 'dict[str, str]', args: Sequence[Any], kwargs: Any) -> bool:
|
|
@@ -100,7 +99,7 @@ class _GoogleVertexRequest(_VertexRequest):
|
|
|
100
99
|
if model and isinstance(model, str):
|
|
101
100
|
# Extract the model name after the last slash
|
|
102
101
|
self._model_name = model.split('/')[-1]
|
|
103
|
-
|
|
102
|
+
|
|
104
103
|
if not args:
|
|
105
104
|
return True
|
|
106
105
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import os
|
|
2
2
|
import json
|
|
3
|
+
import time
|
|
3
4
|
import uuid
|
|
4
5
|
import asyncio
|
|
5
6
|
import inspect
|
|
@@ -14,7 +15,7 @@ from dataclasses import dataclass
|
|
|
14
15
|
import nest_asyncio # type: ignore
|
|
15
16
|
from wrapt import ObjectProxy # type: ignore
|
|
16
17
|
|
|
17
|
-
from payi import Payi, AsyncPayi, __version__ as _payi_version
|
|
18
|
+
from payi import Payi, AsyncPayi, APIConnectionError, __version__ as _payi_version
|
|
18
19
|
from payi.types import IngestUnitsParams
|
|
19
20
|
from payi.lib.helpers import PayiHeaderNames
|
|
20
21
|
from payi.types.ingest_response import IngestResponse
|
|
@@ -137,6 +138,7 @@ class PayiInstrumentConfig(TypedDict, total=False):
|
|
|
137
138
|
proxy: bool
|
|
138
139
|
global_instrumentation: bool
|
|
139
140
|
instrument_inline_data: bool
|
|
141
|
+
connection_error_logging_window: int
|
|
140
142
|
limit_ids: Optional["list[str]"]
|
|
141
143
|
use_case_name: Optional[str]
|
|
142
144
|
use_case_id: Optional[str]
|
|
@@ -222,6 +224,12 @@ class _PayiInstrumentor:
|
|
|
222
224
|
self._blocked_limits: set[str] = set()
|
|
223
225
|
self._exceeded_limits: set[str] = set()
|
|
224
226
|
|
|
227
|
+
self._api_connection_error_last_log_time: float = time.time()
|
|
228
|
+
self._api_connection_error_count: int = 0
|
|
229
|
+
self._api_connection_error_window: int = global_config.get("connection_error_logging_window", 60)
|
|
230
|
+
if self._api_connection_error_window < 0:
|
|
231
|
+
raise ValueError("connection_error_logging_window must be a non-negative integer")
|
|
232
|
+
|
|
225
233
|
# default is instrument and ingest metrics
|
|
226
234
|
self._proxy_default: bool = global_config.get("proxy", False)
|
|
227
235
|
|
|
@@ -353,6 +361,9 @@ class _PayiInstrumentor:
|
|
|
353
361
|
# convert the function call builder to a list of function calls
|
|
354
362
|
ingest_units["provider_response_function_calls"] = list(request._function_call_builder.values())
|
|
355
363
|
|
|
364
|
+
if 'resource' not in ingest_units or len(ingest_units['resource']) == 0:
|
|
365
|
+
ingest_units['resource'] = "system.unknown_model" # type: ignore[unreachable]
|
|
366
|
+
|
|
356
367
|
request_json = ingest_units.get('provider_request_json', "")
|
|
357
368
|
if request_json and self._instrument_inline_data is False:
|
|
358
369
|
try:
|
|
@@ -402,6 +413,23 @@ class _PayiInstrumentor:
|
|
|
402
413
|
if removeBlockedId:
|
|
403
414
|
self._blocked_limits.discard(limit_id)
|
|
404
415
|
|
|
416
|
+
def _process_ingest_connection_error(self, e: APIConnectionError, ingest_units: IngestUnitsParams) -> None:
|
|
417
|
+
now = time.time()
|
|
418
|
+
|
|
419
|
+
if (now - self._api_connection_error_last_log_time) > self._api_connection_error_window:
|
|
420
|
+
# If previous window had suppressed errors, log the count
|
|
421
|
+
append = ""
|
|
422
|
+
if self._api_connection_error_count > 0:
|
|
423
|
+
append = f", {self._api_connection_error_count} APIConnectionError exceptions in the last {self._api_connection_error_window} seconds"
|
|
424
|
+
|
|
425
|
+
# Log the current error
|
|
426
|
+
self._logger.error(f"Error Pay-i ingesting: connection exception {e}, request {ingest_units}{append}")
|
|
427
|
+
self._api_connection_error_last_log_time = now
|
|
428
|
+
self._api_connection_error_count = 0
|
|
429
|
+
else:
|
|
430
|
+
# Suppress and count
|
|
431
|
+
self._api_connection_error_count += 1
|
|
432
|
+
|
|
405
433
|
async def _aingest_units(self, request: _ProviderRequest) -> Optional[IngestResponse]:
|
|
406
434
|
ingest_response: Optional[IngestResponse] = None
|
|
407
435
|
ingest_units = request._ingest
|
|
@@ -437,7 +465,10 @@ class _PayiInstrumentor:
|
|
|
437
465
|
|
|
438
466
|
return ingest_response
|
|
439
467
|
except Exception as e:
|
|
440
|
-
|
|
468
|
+
if isinstance(e, APIConnectionError) and self._api_connection_error_window > 0:
|
|
469
|
+
self._process_ingest_connection_error(e, ingest_units)
|
|
470
|
+
else:
|
|
471
|
+
self._logger.error(f"Error Pay-i async ingesting: exception {e}, request {ingest_units}")
|
|
441
472
|
|
|
442
473
|
return None
|
|
443
474
|
|
|
@@ -513,7 +544,10 @@ class _PayiInstrumentor:
|
|
|
513
544
|
self._logger.error("No payi instance to ingest units")
|
|
514
545
|
|
|
515
546
|
except Exception as e:
|
|
516
|
-
|
|
547
|
+
if isinstance(e, APIConnectionError) and self._api_connection_error_window > 0:
|
|
548
|
+
self._process_ingest_connection_error(e, ingest_units)
|
|
549
|
+
else:
|
|
550
|
+
self._logger.error(f"Error Pay-i ingesting: exception {e}, request {ingest_units}")
|
|
517
551
|
|
|
518
552
|
return None
|
|
519
553
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.0a91 → payi-0.1.0a93}/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
|
{payi-0.1.0a91 → payi-0.1.0a93}/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
|
|
File without changes
|
|
File without changes
|
{payi-0.1.0a91 → payi-0.1.0a93}/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
|
{payi-0.1.0a91 → payi-0.1.0a93}/src/payi/types/use_cases/definitions/kpi_retrieve_response.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{payi-0.1.0a91 → payi-0.1.0a93}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.0a91 → payi-0.1.0a93}/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
|