payi 0.1.0a131__tar.gz → 0.1.0a132__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 (196) hide show
  1. payi-0.1.0a132/.release-please-manifest.json +3 -0
  2. {payi-0.1.0a131 → payi-0.1.0a132}/CHANGELOG.md +8 -0
  3. {payi-0.1.0a131 → payi-0.1.0a132}/PKG-INFO +1 -1
  4. {payi-0.1.0a131 → payi-0.1.0a132}/pyproject.toml +1 -1
  5. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/_version.py +1 -1
  6. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/lib/instrument.py +42 -3
  7. payi-0.1.0a131/.release-please-manifest.json +0 -3
  8. {payi-0.1.0a131 → payi-0.1.0a132}/.gitignore +0 -0
  9. {payi-0.1.0a131 → payi-0.1.0a132}/CONTRIBUTING.md +0 -0
  10. {payi-0.1.0a131 → payi-0.1.0a132}/LICENSE +0 -0
  11. {payi-0.1.0a131 → payi-0.1.0a132}/README.md +0 -0
  12. {payi-0.1.0a131 → payi-0.1.0a132}/SECURITY.md +0 -0
  13. {payi-0.1.0a131 → payi-0.1.0a132}/api.md +0 -0
  14. {payi-0.1.0a131 → payi-0.1.0a132}/bin/check-release-environment +0 -0
  15. {payi-0.1.0a131 → payi-0.1.0a132}/bin/publish-pypi +0 -0
  16. {payi-0.1.0a131 → payi-0.1.0a132}/examples/.keep +0 -0
  17. {payi-0.1.0a131 → payi-0.1.0a132}/noxfile.py +0 -0
  18. {payi-0.1.0a131 → payi-0.1.0a132}/release-please-config.json +0 -0
  19. {payi-0.1.0a131 → payi-0.1.0a132}/requirements-dev.lock +0 -0
  20. {payi-0.1.0a131 → payi-0.1.0a132}/requirements.lock +0 -0
  21. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/__init__.py +0 -0
  22. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/_base_client.py +0 -0
  23. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/_client.py +0 -0
  24. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/_compat.py +0 -0
  25. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/_constants.py +0 -0
  26. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/_exceptions.py +0 -0
  27. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/_files.py +0 -0
  28. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/_models.py +0 -0
  29. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/_qs.py +0 -0
  30. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/_resource.py +0 -0
  31. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/_response.py +0 -0
  32. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/_streaming.py +0 -0
  33. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/_types.py +0 -0
  34. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/_utils/__init__.py +0 -0
  35. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/_utils/_compat.py +0 -0
  36. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/_utils/_datetime_parse.py +0 -0
  37. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/_utils/_logs.py +0 -0
  38. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/_utils/_proxy.py +0 -0
  39. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/_utils/_reflection.py +0 -0
  40. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/_utils/_resources_proxy.py +0 -0
  41. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/_utils/_streams.py +0 -0
  42. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/_utils/_sync.py +0 -0
  43. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/_utils/_transform.py +0 -0
  44. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/_utils/_typing.py +0 -0
  45. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/_utils/_utils.py +0 -0
  46. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/lib/.keep +0 -0
  47. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/lib/AnthropicInstrumentor.py +0 -0
  48. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/lib/BedrockInstrumentor.py +0 -0
  49. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/lib/GoogleGenAiInstrumentor.py +0 -0
  50. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/lib/OpenAIInstrumentor.py +0 -0
  51. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/lib/Stopwatch.py +0 -0
  52. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/lib/VertexInstrumentor.py +0 -0
  53. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/lib/VertexRequest.py +0 -0
  54. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/lib/data/cohere_embed_english_v3.json +0 -0
  55. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/lib/helpers.py +0 -0
  56. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/lib/version_helper.py +0 -0
  57. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/pagination.py +0 -0
  58. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/py.typed +0 -0
  59. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/resources/__init__.py +0 -0
  60. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/resources/categories/__init__.py +0 -0
  61. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/resources/categories/categories.py +0 -0
  62. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/resources/categories/resources.py +0 -0
  63. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/resources/ingest.py +0 -0
  64. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/resources/limits/__init__.py +0 -0
  65. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/resources/limits/limits.py +0 -0
  66. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/resources/limits/properties.py +0 -0
  67. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/resources/requests/__init__.py +0 -0
  68. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/resources/requests/request_id/__init__.py +0 -0
  69. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/resources/requests/request_id/properties.py +0 -0
  70. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/resources/requests/request_id/request_id.py +0 -0
  71. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/resources/requests/request_id/result.py +0 -0
  72. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/resources/requests/requests.py +0 -0
  73. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/resources/requests/response_id/__init__.py +0 -0
  74. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/resources/requests/response_id/properties.py +0 -0
  75. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/resources/requests/response_id/response_id.py +0 -0
  76. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/resources/requests/response_id/result.py +0 -0
  77. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/resources/use_cases/__init__.py +0 -0
  78. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/resources/use_cases/definitions/__init__.py +0 -0
  79. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/resources/use_cases/definitions/definitions.py +0 -0
  80. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/resources/use_cases/definitions/kpis.py +0 -0
  81. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/resources/use_cases/definitions/limit_config.py +0 -0
  82. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/resources/use_cases/definitions/version.py +0 -0
  83. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/resources/use_cases/kpis.py +0 -0
  84. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/resources/use_cases/properties.py +0 -0
  85. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/resources/use_cases/use_cases.py +0 -0
  86. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/__init__.py +0 -0
  87. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/bulk_ingest_response.py +0 -0
  88. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/categories/__init__.py +0 -0
  89. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/categories/resource_create_params.py +0 -0
  90. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/categories/resource_list_params.py +0 -0
  91. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/category_delete_resource_response.py +0 -0
  92. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/category_delete_response.py +0 -0
  93. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/category_list_params.py +0 -0
  94. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/category_list_resources_params.py +0 -0
  95. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/category_resource_response.py +0 -0
  96. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/category_response.py +0 -0
  97. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/cost_data.py +0 -0
  98. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/cost_details.py +0 -0
  99. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/default_response.py +0 -0
  100. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/ingest_bulk_params.py +0 -0
  101. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/ingest_event_param.py +0 -0
  102. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/ingest_response.py +0 -0
  103. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/ingest_units_params.py +0 -0
  104. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/limit_create_params.py +0 -0
  105. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/limit_history_response.py +0 -0
  106. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/limit_list_params.py +0 -0
  107. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/limit_list_response.py +0 -0
  108. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/limit_reset_params.py +0 -0
  109. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/limit_response.py +0 -0
  110. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/limit_update_params.py +0 -0
  111. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/limits/__init__.py +0 -0
  112. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/limits/property_update_params.py +0 -0
  113. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/limits/property_update_response.py +0 -0
  114. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/pay_i_common_models_api_router_header_info_param.py +0 -0
  115. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/request_result.py +0 -0
  116. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/requests/__init__.py +0 -0
  117. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/requests/request_id/__init__.py +0 -0
  118. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/requests/request_id/property_update_params.py +0 -0
  119. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/requests/response_id/__init__.py +0 -0
  120. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/requests/response_id/property_update_params.py +0 -0
  121. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/requests_data.py +0 -0
  122. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/shared/__init__.py +0 -0
  123. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/shared/api_error.py +0 -0
  124. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/shared/evaluation_response.py +0 -0
  125. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/shared/ingest_units.py +0 -0
  126. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/shared/pay_i_common_models_budget_management_cost_details_base.py +0 -0
  127. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/shared/pay_i_common_models_budget_management_create_limit_base.py +0 -0
  128. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/shared/properties_request.py +0 -0
  129. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/shared/properties_response.py +0 -0
  130. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/shared/xproxy_error.py +0 -0
  131. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/shared/xproxy_result.py +0 -0
  132. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/shared_params/__init__.py +0 -0
  133. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/shared_params/ingest_units.py +0 -0
  134. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/shared_params/pay_i_common_models_budget_management_create_limit_base.py +0 -0
  135. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/total_cost_data.py +0 -0
  136. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/use_case_instance_response.py +0 -0
  137. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/use_cases/__init__.py +0 -0
  138. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/use_cases/definition_create_params.py +0 -0
  139. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/use_cases/definition_list_params.py +0 -0
  140. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/use_cases/definition_update_params.py +0 -0
  141. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/use_cases/definitions/__init__.py +0 -0
  142. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/use_cases/definitions/kpi_create_params.py +0 -0
  143. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/use_cases/definitions/kpi_create_response.py +0 -0
  144. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/use_cases/definitions/kpi_delete_response.py +0 -0
  145. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/use_cases/definitions/kpi_list_params.py +0 -0
  146. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/use_cases/definitions/kpi_list_response.py +0 -0
  147. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/use_cases/definitions/kpi_retrieve_response.py +0 -0
  148. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/use_cases/definitions/kpi_update_params.py +0 -0
  149. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/use_cases/definitions/kpi_update_response.py +0 -0
  150. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/use_cases/definitions/limit_config_create_params.py +0 -0
  151. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/use_cases/kpi_list_params.py +0 -0
  152. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/use_cases/kpi_list_response.py +0 -0
  153. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/use_cases/kpi_update_params.py +0 -0
  154. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/use_cases/property_update_params.py +0 -0
  155. {payi-0.1.0a131 → payi-0.1.0a132}/src/payi/types/use_cases/use_case_definition.py +0 -0
  156. {payi-0.1.0a131 → payi-0.1.0a132}/tests/__init__.py +0 -0
  157. {payi-0.1.0a131 → payi-0.1.0a132}/tests/api_resources/__init__.py +0 -0
  158. {payi-0.1.0a131 → payi-0.1.0a132}/tests/api_resources/categories/__init__.py +0 -0
  159. {payi-0.1.0a131 → payi-0.1.0a132}/tests/api_resources/categories/test_resources.py +0 -0
  160. {payi-0.1.0a131 → payi-0.1.0a132}/tests/api_resources/limits/__init__.py +0 -0
  161. {payi-0.1.0a131 → payi-0.1.0a132}/tests/api_resources/limits/test_properties.py +0 -0
  162. {payi-0.1.0a131 → payi-0.1.0a132}/tests/api_resources/requests/__init__.py +0 -0
  163. {payi-0.1.0a131 → payi-0.1.0a132}/tests/api_resources/requests/request_id/__init__.py +0 -0
  164. {payi-0.1.0a131 → payi-0.1.0a132}/tests/api_resources/requests/request_id/test_properties.py +0 -0
  165. {payi-0.1.0a131 → payi-0.1.0a132}/tests/api_resources/requests/request_id/test_result.py +0 -0
  166. {payi-0.1.0a131 → payi-0.1.0a132}/tests/api_resources/requests/response_id/__init__.py +0 -0
  167. {payi-0.1.0a131 → payi-0.1.0a132}/tests/api_resources/requests/response_id/test_properties.py +0 -0
  168. {payi-0.1.0a131 → payi-0.1.0a132}/tests/api_resources/requests/response_id/test_result.py +0 -0
  169. {payi-0.1.0a131 → payi-0.1.0a132}/tests/api_resources/test_categories.py +0 -0
  170. {payi-0.1.0a131 → payi-0.1.0a132}/tests/api_resources/test_ingest.py +0 -0
  171. {payi-0.1.0a131 → payi-0.1.0a132}/tests/api_resources/test_limits.py +0 -0
  172. {payi-0.1.0a131 → payi-0.1.0a132}/tests/api_resources/test_use_cases.py +0 -0
  173. {payi-0.1.0a131 → payi-0.1.0a132}/tests/api_resources/use_cases/__init__.py +0 -0
  174. {payi-0.1.0a131 → payi-0.1.0a132}/tests/api_resources/use_cases/definitions/__init__.py +0 -0
  175. {payi-0.1.0a131 → payi-0.1.0a132}/tests/api_resources/use_cases/definitions/test_kpis.py +0 -0
  176. {payi-0.1.0a131 → payi-0.1.0a132}/tests/api_resources/use_cases/definitions/test_limit_config.py +0 -0
  177. {payi-0.1.0a131 → payi-0.1.0a132}/tests/api_resources/use_cases/definitions/test_version.py +0 -0
  178. {payi-0.1.0a131 → payi-0.1.0a132}/tests/api_resources/use_cases/test_definitions.py +0 -0
  179. {payi-0.1.0a131 → payi-0.1.0a132}/tests/api_resources/use_cases/test_kpis.py +0 -0
  180. {payi-0.1.0a131 → payi-0.1.0a132}/tests/api_resources/use_cases/test_properties.py +0 -0
  181. {payi-0.1.0a131 → payi-0.1.0a132}/tests/conftest.py +0 -0
  182. {payi-0.1.0a131 → payi-0.1.0a132}/tests/sample_file.txt +0 -0
  183. {payi-0.1.0a131 → payi-0.1.0a132}/tests/test_client.py +0 -0
  184. {payi-0.1.0a131 → payi-0.1.0a132}/tests/test_deepcopy.py +0 -0
  185. {payi-0.1.0a131 → payi-0.1.0a132}/tests/test_extract_files.py +0 -0
  186. {payi-0.1.0a131 → payi-0.1.0a132}/tests/test_files.py +0 -0
  187. {payi-0.1.0a131 → payi-0.1.0a132}/tests/test_models.py +0 -0
  188. {payi-0.1.0a131 → payi-0.1.0a132}/tests/test_qs.py +0 -0
  189. {payi-0.1.0a131 → payi-0.1.0a132}/tests/test_required_args.py +0 -0
  190. {payi-0.1.0a131 → payi-0.1.0a132}/tests/test_response.py +0 -0
  191. {payi-0.1.0a131 → payi-0.1.0a132}/tests/test_streaming.py +0 -0
  192. {payi-0.1.0a131 → payi-0.1.0a132}/tests/test_transform.py +0 -0
  193. {payi-0.1.0a131 → payi-0.1.0a132}/tests/test_utils/test_datetime_parse.py +0 -0
  194. {payi-0.1.0a131 → payi-0.1.0a132}/tests/test_utils/test_proxy.py +0 -0
  195. {payi-0.1.0a131 → payi-0.1.0a132}/tests/test_utils/test_typing.py +0 -0
  196. {payi-0.1.0a131 → payi-0.1.0a132}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.1.0-alpha.132"
3
+ }
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.0-alpha.132 (2025-10-22)
4
+
5
+ Full Changelog: [v0.1.0-alpha.131...v0.1.0-alpha.132](https://github.com/Pay-i/pay-i-python/compare/v0.1.0-alpha.131...v0.1.0-alpha.132)
6
+
7
+ ### Features
8
+
9
+ * thread local storage ([#385](https://github.com/Pay-i/pay-i-python/issues/385)) ([057de83](https://github.com/Pay-i/pay-i-python/commit/057de83b15fc791e6eb813d8cb62a54a0de0eea9))
10
+
3
11
  ## 0.1.0-alpha.131 (2025-10-21)
4
12
 
5
13
  Full Changelog: [v0.1.0-alpha.130...v0.1.0-alpha.131](https://github.com/Pay-i/pay-i-python/compare/v0.1.0-alpha.130...v0.1.0-alpha.131)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: payi
3
- Version: 0.1.0a131
3
+ Version: 0.1.0a132
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.131"
3
+ version = "0.1.0-alpha.132"
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.131" # x-release-please-version
4
+ __version__ = "0.1.0-alpha.132" # x-release-please-version
@@ -6,6 +6,7 @@ import atexit
6
6
  import asyncio
7
7
  import inspect
8
8
  import logging
9
+ import threading
9
10
  import traceback
10
11
  from abc import abstractmethod
11
12
  from enum import Enum
@@ -210,6 +211,15 @@ class _StreamingType(Enum):
210
211
  iterator = 1
211
212
  stream_manager = 2
212
213
 
214
+ class _ThreadLocalContextStorage(threading.local):
215
+ """
216
+ Thread-local storage for context stacks. Each thread gets its own context stack.
217
+
218
+ Note: We don't use __init__ because threading.local's __init__ semantics are tricky.
219
+ Instead, we lazily initialize the context_stack attribute in the property accessor.
220
+ """
221
+ context_stack: "list[_Context]"
222
+
213
223
  class _InternalTrackContext:
214
224
  def __init__(
215
225
  self,
@@ -256,7 +266,12 @@ class _PayiInstrumentor:
256
266
  if self._apayi:
257
267
  _g_logger.debug(f"Pay-i instrumentor initialized with AsyncPayi instance: {self._apayi}")
258
268
 
259
- self._context_stack: list[_Context] = [] # Stack of context dictionaries
269
+ # Thread-local storage for context stacks - each thread gets its own stack
270
+ self._thread_local_storage = _ThreadLocalContextStorage()
271
+
272
+ # Global immutable initial context that all threads inherit on first access
273
+ self._global_initial_context: Optional[_Context] = None
274
+
260
275
  self._log_prompt_and_response: bool = log_prompt_and_response
261
276
 
262
277
  self._blocked_limits: set[str] = set()
@@ -316,7 +331,7 @@ class _PayiInstrumentor:
316
331
 
317
332
  self.__enter__()
318
333
 
319
- # _init_current_context will update the currrent context stack location
334
+ # _init_current_context will update the current context stack location
320
335
  context: _Context = {}
321
336
  # Copy allowed keys from global_config into context
322
337
  # Dynamically use keys from _Context TypedDict
@@ -325,7 +340,12 @@ class _PayiInstrumentor:
325
340
  if key in global_config:
326
341
  context[key] = global_config[key] # type: ignore
327
342
 
328
- self._init_current_context(**context)
343
+ self._init_current_context(**context)
344
+
345
+ # Store the initialized context as the global initial context (immutable after this point)
346
+ # All threads will inherit a copy of this context on their first access
347
+ current_context = self.get_context()
348
+ self._global_initial_context = current_context.copy() if current_context else None
329
349
 
330
350
  def _ensure_payi_clients(self) -> None:
331
351
  if self._offline_instrumentation is not None:
@@ -689,6 +709,25 @@ class _PayiInstrumentor:
689
709
  def _ingest_units(self, request: _ProviderRequest) -> Optional[Union[XproxyResult, XproxyError]]:
690
710
  return self.set_xproxy_result(self._ingest_units_worker(request))
691
711
 
712
+ @property
713
+ def _context_stack(self) -> "list[_Context]":
714
+ """
715
+ Get the thread-local context stack. On first access per thread,
716
+ initializes with the global initial context if one was set.
717
+ """
718
+ # Lazy-initialize the context_stack for this thread if it doesn't exist
719
+ if not hasattr(self._thread_local_storage, 'context_stack'):
720
+ self._thread_local_storage.context_stack = []
721
+
722
+ stack = self._thread_local_storage.context_stack
723
+
724
+ # If this is the first access in this thread and we have a global initial context,
725
+ # initialize this thread's stack with it
726
+ if len(stack) == 0 and self._global_initial_context is not None:
727
+ stack.append(self._global_initial_context.copy())
728
+
729
+ return stack
730
+
692
731
  def _setup_call_func(
693
732
  self
694
733
  ) -> _Context:
@@ -1,3 +0,0 @@
1
- {
2
- ".": "0.1.0-alpha.131"
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