payi 0.1.0a92__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.

Files changed (209) hide show
  1. payi-0.1.0a93/.release-please-manifest.json +3 -0
  2. {payi-0.1.0a92 → payi-0.1.0a93}/CHANGELOG.md +8 -0
  3. {payi-0.1.0a92 → payi-0.1.0a93}/PKG-INFO +1 -1
  4. {payi-0.1.0a92 → payi-0.1.0a93}/pyproject.toml +1 -1
  5. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/_version.py +1 -1
  6. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/lib/VertexInstrumentor.py +1 -2
  7. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/lib/instrument.py +37 -3
  8. payi-0.1.0a92/.release-please-manifest.json +0 -3
  9. {payi-0.1.0a92 → payi-0.1.0a93}/.gitignore +0 -0
  10. {payi-0.1.0a92 → payi-0.1.0a93}/CONTRIBUTING.md +0 -0
  11. {payi-0.1.0a92 → payi-0.1.0a93}/LICENSE +0 -0
  12. {payi-0.1.0a92 → payi-0.1.0a93}/README.md +0 -0
  13. {payi-0.1.0a92 → payi-0.1.0a93}/SECURITY.md +0 -0
  14. {payi-0.1.0a92 → payi-0.1.0a93}/api.md +0 -0
  15. {payi-0.1.0a92 → payi-0.1.0a93}/bin/check-release-environment +0 -0
  16. {payi-0.1.0a92 → payi-0.1.0a93}/bin/publish-pypi +0 -0
  17. {payi-0.1.0a92 → payi-0.1.0a93}/examples/.keep +0 -0
  18. {payi-0.1.0a92 → payi-0.1.0a93}/mypy.ini +0 -0
  19. {payi-0.1.0a92 → payi-0.1.0a93}/noxfile.py +0 -0
  20. {payi-0.1.0a92 → payi-0.1.0a93}/release-please-config.json +0 -0
  21. {payi-0.1.0a92 → payi-0.1.0a93}/requirements-dev.lock +0 -0
  22. {payi-0.1.0a92 → payi-0.1.0a93}/requirements.lock +0 -0
  23. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/__init__.py +0 -0
  24. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/_base_client.py +0 -0
  25. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/_client.py +0 -0
  26. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/_compat.py +0 -0
  27. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/_constants.py +0 -0
  28. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/_exceptions.py +0 -0
  29. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/_files.py +0 -0
  30. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/_models.py +0 -0
  31. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/_qs.py +0 -0
  32. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/_resource.py +0 -0
  33. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/_response.py +0 -0
  34. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/_streaming.py +0 -0
  35. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/_types.py +0 -0
  36. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/_utils/__init__.py +0 -0
  37. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/_utils/_logs.py +0 -0
  38. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/_utils/_proxy.py +0 -0
  39. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/_utils/_reflection.py +0 -0
  40. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/_utils/_resources_proxy.py +0 -0
  41. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/_utils/_streams.py +0 -0
  42. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/_utils/_sync.py +0 -0
  43. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/_utils/_transform.py +0 -0
  44. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/_utils/_typing.py +0 -0
  45. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/_utils/_utils.py +0 -0
  46. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/lib/.keep +0 -0
  47. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/lib/AnthropicInstrumentor.py +0 -0
  48. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/lib/BedrockInstrumentor.py +0 -0
  49. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/lib/GoogleGenAiInstrumentor.py +0 -0
  50. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/lib/OpenAIInstrumentor.py +0 -0
  51. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/lib/Stopwatch.py +0 -0
  52. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/lib/VertexRequest.py +0 -0
  53. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/lib/helpers.py +0 -0
  54. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/pagination.py +0 -0
  55. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/py.typed +0 -0
  56. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/resources/__init__.py +0 -0
  57. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/resources/categories/__init__.py +0 -0
  58. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/resources/categories/categories.py +0 -0
  59. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/resources/categories/fixed_cost_resources.py +0 -0
  60. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/resources/categories/resources.py +0 -0
  61. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/resources/experiences/__init__.py +0 -0
  62. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/resources/experiences/experiences.py +0 -0
  63. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/resources/experiences/properties.py +0 -0
  64. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/resources/experiences/types/__init__.py +0 -0
  65. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/resources/experiences/types/limit_config.py +0 -0
  66. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/resources/experiences/types/types.py +0 -0
  67. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/resources/ingest.py +0 -0
  68. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/resources/limits/__init__.py +0 -0
  69. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/resources/limits/limits.py +0 -0
  70. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/resources/limits/tags.py +0 -0
  71. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/resources/requests/__init__.py +0 -0
  72. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/resources/requests/properties.py +0 -0
  73. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/resources/requests/requests.py +0 -0
  74. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/resources/requests/result.py +0 -0
  75. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/resources/use_cases/__init__.py +0 -0
  76. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/resources/use_cases/definitions/__init__.py +0 -0
  77. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/resources/use_cases/definitions/definitions.py +0 -0
  78. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/resources/use_cases/definitions/kpis.py +0 -0
  79. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/resources/use_cases/definitions/limit_config.py +0 -0
  80. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/resources/use_cases/definitions/version.py +0 -0
  81. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/resources/use_cases/kpis.py +0 -0
  82. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/resources/use_cases/properties.py +0 -0
  83. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/resources/use_cases/use_cases.py +0 -0
  84. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/__init__.py +0 -0
  85. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/bulk_ingest_response.py +0 -0
  86. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/categories/__init__.py +0 -0
  87. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/categories/fixed_cost_resource_create_params.py +0 -0
  88. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/categories/resource_create_params.py +0 -0
  89. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/categories/resource_list_params.py +0 -0
  90. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/category_delete_resource_response.py +0 -0
  91. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/category_delete_response.py +0 -0
  92. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/category_list_params.py +0 -0
  93. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/category_list_resources_params.py +0 -0
  94. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/category_resource_response.py +0 -0
  95. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/category_response.py +0 -0
  96. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/cost_data.py +0 -0
  97. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/cost_details.py +0 -0
  98. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/default_response.py +0 -0
  99. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/experience_instance_response.py +0 -0
  100. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/experiences/__init__.py +0 -0
  101. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/experiences/experience_type.py +0 -0
  102. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/experiences/property_create_params.py +0 -0
  103. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/experiences/type_create_params.py +0 -0
  104. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/experiences/type_list_params.py +0 -0
  105. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/experiences/type_update_params.py +0 -0
  106. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/experiences/types/__init__.py +0 -0
  107. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/experiences/types/limit_config_create_params.py +0 -0
  108. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/ingest_bulk_params.py +0 -0
  109. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/ingest_event_param.py +0 -0
  110. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/ingest_response.py +0 -0
  111. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/ingest_units_params.py +0 -0
  112. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/limit_create_params.py +0 -0
  113. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/limit_history_response.py +0 -0
  114. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/limit_list_params.py +0 -0
  115. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/limit_list_response.py +0 -0
  116. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/limit_reset_params.py +0 -0
  117. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/limit_response.py +0 -0
  118. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/limit_update_params.py +0 -0
  119. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/limits/__init__.py +0 -0
  120. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/limits/limit_tags.py +0 -0
  121. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/limits/tag_create_params.py +0 -0
  122. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/limits/tag_create_response.py +0 -0
  123. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/limits/tag_delete_response.py +0 -0
  124. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/limits/tag_list_response.py +0 -0
  125. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/limits/tag_remove_params.py +0 -0
  126. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/limits/tag_remove_response.py +0 -0
  127. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/limits/tag_update_params.py +0 -0
  128. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/limits/tag_update_response.py +0 -0
  129. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/pay_i_common_models_api_router_header_info_param.py +0 -0
  130. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/requests/__init__.py +0 -0
  131. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/requests/property_create_params.py +0 -0
  132. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/requests/request_result.py +0 -0
  133. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/requests_data.py +0 -0
  134. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/shared/__init__.py +0 -0
  135. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/shared/evaluation_response.py +0 -0
  136. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/shared/ingest_units.py +0 -0
  137. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/shared/pay_i_common_models_budget_management_cost_details_base.py +0 -0
  138. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/shared/pay_i_common_models_budget_management_create_limit_base.py +0 -0
  139. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/shared/properties_response.py +0 -0
  140. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/shared/xproxy_error.py +0 -0
  141. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/shared/xproxy_result.py +0 -0
  142. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/shared_params/__init__.py +0 -0
  143. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/shared_params/ingest_units.py +0 -0
  144. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/shared_params/pay_i_common_models_budget_management_create_limit_base.py +0 -0
  145. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/total_cost_data.py +0 -0
  146. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/use_case_instance_response.py +0 -0
  147. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/use_cases/__init__.py +0 -0
  148. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/use_cases/definition_create_params.py +0 -0
  149. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/use_cases/definition_list_params.py +0 -0
  150. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/use_cases/definition_update_params.py +0 -0
  151. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/use_cases/definitions/__init__.py +0 -0
  152. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/use_cases/definitions/kpi_create_params.py +0 -0
  153. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/use_cases/definitions/kpi_create_response.py +0 -0
  154. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/use_cases/definitions/kpi_delete_response.py +0 -0
  155. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/use_cases/definitions/kpi_list_params.py +0 -0
  156. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/use_cases/definitions/kpi_list_response.py +0 -0
  157. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/use_cases/definitions/kpi_retrieve_response.py +0 -0
  158. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/use_cases/definitions/kpi_update_params.py +0 -0
  159. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/use_cases/definitions/kpi_update_response.py +0 -0
  160. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/use_cases/definitions/limit_config_create_params.py +0 -0
  161. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/use_cases/kpi_create_params.py +0 -0
  162. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/use_cases/kpi_list_params.py +0 -0
  163. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/use_cases/kpi_list_response.py +0 -0
  164. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/use_cases/kpi_update_params.py +0 -0
  165. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/use_cases/property_create_params.py +0 -0
  166. {payi-0.1.0a92 → payi-0.1.0a93}/src/payi/types/use_cases/use_case_definition.py +0 -0
  167. {payi-0.1.0a92 → payi-0.1.0a93}/tests/__init__.py +0 -0
  168. {payi-0.1.0a92 → payi-0.1.0a93}/tests/api_resources/__init__.py +0 -0
  169. {payi-0.1.0a92 → payi-0.1.0a93}/tests/api_resources/categories/__init__.py +0 -0
  170. {payi-0.1.0a92 → payi-0.1.0a93}/tests/api_resources/categories/test_fixed_cost_resources.py +0 -0
  171. {payi-0.1.0a92 → payi-0.1.0a93}/tests/api_resources/categories/test_resources.py +0 -0
  172. {payi-0.1.0a92 → payi-0.1.0a93}/tests/api_resources/experiences/__init__.py +0 -0
  173. {payi-0.1.0a92 → payi-0.1.0a93}/tests/api_resources/experiences/test_properties.py +0 -0
  174. {payi-0.1.0a92 → payi-0.1.0a93}/tests/api_resources/experiences/test_types.py +0 -0
  175. {payi-0.1.0a92 → payi-0.1.0a93}/tests/api_resources/experiences/types/__init__.py +0 -0
  176. {payi-0.1.0a92 → payi-0.1.0a93}/tests/api_resources/experiences/types/test_limit_config.py +0 -0
  177. {payi-0.1.0a92 → payi-0.1.0a93}/tests/api_resources/limits/__init__.py +0 -0
  178. {payi-0.1.0a92 → payi-0.1.0a93}/tests/api_resources/limits/test_tags.py +0 -0
  179. {payi-0.1.0a92 → payi-0.1.0a93}/tests/api_resources/requests/__init__.py +0 -0
  180. {payi-0.1.0a92 → payi-0.1.0a93}/tests/api_resources/requests/test_properties.py +0 -0
  181. {payi-0.1.0a92 → payi-0.1.0a93}/tests/api_resources/requests/test_result.py +0 -0
  182. {payi-0.1.0a92 → payi-0.1.0a93}/tests/api_resources/test_categories.py +0 -0
  183. {payi-0.1.0a92 → payi-0.1.0a93}/tests/api_resources/test_experiences.py +0 -0
  184. {payi-0.1.0a92 → payi-0.1.0a93}/tests/api_resources/test_ingest.py +0 -0
  185. {payi-0.1.0a92 → payi-0.1.0a93}/tests/api_resources/test_limits.py +0 -0
  186. {payi-0.1.0a92 → payi-0.1.0a93}/tests/api_resources/test_use_cases.py +0 -0
  187. {payi-0.1.0a92 → payi-0.1.0a93}/tests/api_resources/use_cases/__init__.py +0 -0
  188. {payi-0.1.0a92 → payi-0.1.0a93}/tests/api_resources/use_cases/definitions/__init__.py +0 -0
  189. {payi-0.1.0a92 → payi-0.1.0a93}/tests/api_resources/use_cases/definitions/test_kpis.py +0 -0
  190. {payi-0.1.0a92 → payi-0.1.0a93}/tests/api_resources/use_cases/definitions/test_limit_config.py +0 -0
  191. {payi-0.1.0a92 → payi-0.1.0a93}/tests/api_resources/use_cases/definitions/test_version.py +0 -0
  192. {payi-0.1.0a92 → payi-0.1.0a93}/tests/api_resources/use_cases/test_definitions.py +0 -0
  193. {payi-0.1.0a92 → payi-0.1.0a93}/tests/api_resources/use_cases/test_kpis.py +0 -0
  194. {payi-0.1.0a92 → payi-0.1.0a93}/tests/api_resources/use_cases/test_properties.py +0 -0
  195. {payi-0.1.0a92 → payi-0.1.0a93}/tests/conftest.py +0 -0
  196. {payi-0.1.0a92 → payi-0.1.0a93}/tests/sample_file.txt +0 -0
  197. {payi-0.1.0a92 → payi-0.1.0a93}/tests/test_client.py +0 -0
  198. {payi-0.1.0a92 → payi-0.1.0a93}/tests/test_deepcopy.py +0 -0
  199. {payi-0.1.0a92 → payi-0.1.0a93}/tests/test_extract_files.py +0 -0
  200. {payi-0.1.0a92 → payi-0.1.0a93}/tests/test_files.py +0 -0
  201. {payi-0.1.0a92 → payi-0.1.0a93}/tests/test_models.py +0 -0
  202. {payi-0.1.0a92 → payi-0.1.0a93}/tests/test_qs.py +0 -0
  203. {payi-0.1.0a92 → payi-0.1.0a93}/tests/test_required_args.py +0 -0
  204. {payi-0.1.0a92 → payi-0.1.0a93}/tests/test_response.py +0 -0
  205. {payi-0.1.0a92 → payi-0.1.0a93}/tests/test_streaming.py +0 -0
  206. {payi-0.1.0a92 → payi-0.1.0a93}/tests/test_transform.py +0 -0
  207. {payi-0.1.0a92 → payi-0.1.0a93}/tests/test_utils/test_proxy.py +0 -0
  208. {payi-0.1.0a92 → payi-0.1.0a93}/tests/test_utils/test_typing.py +0 -0
  209. {payi-0.1.0a92 → payi-0.1.0a93}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.1.0-alpha.93"
3
+ }
@@ -1,5 +1,13 @@
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
+
3
11
  ## 0.1.0-alpha.92 (2025-06-30)
4
12
 
5
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)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: payi
3
- Version: 0.1.0a92
3
+ Version: 0.1.0a93
4
4
  Summary: The official Python library for the payi API
5
5
  Project-URL: Homepage, https://github.com/Pay-i/pay-i-python
6
6
  Project-URL: Repository, https://github.com/Pay-i/pay-i-python
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "payi"
3
- version = "0.1.0-alpha.92"
3
+ version = "0.1.0-alpha.93"
4
4
  description = "The official Python library for the payi API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "payi"
4
- __version__ = "0.1.0-alpha.92" # x-release-please-version
4
+ __version__ = "0.1.0-alpha.93" # x-release-please-version
@@ -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
- self._logger.error(f"Error Pay-i async ingesting: exception {e}, request {ingest_units}")
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
- self._logger.error(f"Error Pay-i ingesting: exception {e}, request {ingest_units}")
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
 
@@ -1,3 +0,0 @@
1
- {
2
- ".": "0.1.0-alpha.92"
3
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes