payi 0.1.0a107__tar.gz → 0.1.0a109__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 (201) hide show
  1. payi-0.1.0a109/.release-please-manifest.json +3 -0
  2. {payi-0.1.0a107 → payi-0.1.0a109}/CHANGELOG.md +16 -0
  3. {payi-0.1.0a107 → payi-0.1.0a109}/PKG-INFO +1 -1
  4. {payi-0.1.0a107 → payi-0.1.0a109}/pyproject.toml +2 -2
  5. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/_version.py +1 -1
  6. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/lib/helpers.py +9 -4
  7. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/lib/instrument.py +39 -1
  8. payi-0.1.0a107/.release-please-manifest.json +0 -3
  9. {payi-0.1.0a107 → payi-0.1.0a109}/.gitignore +0 -0
  10. {payi-0.1.0a107 → payi-0.1.0a109}/CONTRIBUTING.md +0 -0
  11. {payi-0.1.0a107 → payi-0.1.0a109}/LICENSE +0 -0
  12. {payi-0.1.0a107 → payi-0.1.0a109}/README.md +0 -0
  13. {payi-0.1.0a107 → payi-0.1.0a109}/SECURITY.md +0 -0
  14. {payi-0.1.0a107 → payi-0.1.0a109}/api.md +0 -0
  15. {payi-0.1.0a107 → payi-0.1.0a109}/bin/check-release-environment +0 -0
  16. {payi-0.1.0a107 → payi-0.1.0a109}/bin/publish-pypi +0 -0
  17. {payi-0.1.0a107 → payi-0.1.0a109}/examples/.keep +0 -0
  18. {payi-0.1.0a107 → payi-0.1.0a109}/mypy.ini +0 -0
  19. {payi-0.1.0a107 → payi-0.1.0a109}/noxfile.py +0 -0
  20. {payi-0.1.0a107 → payi-0.1.0a109}/release-please-config.json +0 -0
  21. {payi-0.1.0a107 → payi-0.1.0a109}/requirements-dev.lock +0 -0
  22. {payi-0.1.0a107 → payi-0.1.0a109}/requirements.lock +0 -0
  23. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/__init__.py +0 -0
  24. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/_base_client.py +0 -0
  25. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/_client.py +0 -0
  26. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/_compat.py +0 -0
  27. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/_constants.py +0 -0
  28. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/_exceptions.py +0 -0
  29. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/_files.py +0 -0
  30. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/_models.py +0 -0
  31. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/_qs.py +0 -0
  32. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/_resource.py +0 -0
  33. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/_response.py +0 -0
  34. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/_streaming.py +0 -0
  35. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/_types.py +0 -0
  36. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/_utils/__init__.py +0 -0
  37. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/_utils/_logs.py +0 -0
  38. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/_utils/_proxy.py +0 -0
  39. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/_utils/_reflection.py +0 -0
  40. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/_utils/_resources_proxy.py +0 -0
  41. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/_utils/_streams.py +0 -0
  42. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/_utils/_sync.py +0 -0
  43. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/_utils/_transform.py +0 -0
  44. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/_utils/_typing.py +0 -0
  45. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/_utils/_utils.py +0 -0
  46. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/lib/.keep +0 -0
  47. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/lib/AnthropicInstrumentor.py +0 -0
  48. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/lib/BedrockInstrumentor.py +0 -0
  49. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/lib/GoogleGenAiInstrumentor.py +0 -0
  50. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/lib/OpenAIInstrumentor.py +0 -0
  51. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/lib/Stopwatch.py +0 -0
  52. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/lib/VertexInstrumentor.py +0 -0
  53. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/lib/VertexRequest.py +0 -0
  54. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/lib/version_helper.py +0 -0
  55. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/pagination.py +0 -0
  56. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/py.typed +0 -0
  57. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/resources/__init__.py +0 -0
  58. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/resources/categories/__init__.py +0 -0
  59. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/resources/categories/categories.py +0 -0
  60. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/resources/categories/fixed_cost_resources.py +0 -0
  61. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/resources/categories/resources.py +0 -0
  62. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/resources/ingest.py +0 -0
  63. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/resources/limits/__init__.py +0 -0
  64. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/resources/limits/limits.py +0 -0
  65. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/resources/limits/tags.py +0 -0
  66. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/resources/requests/__init__.py +0 -0
  67. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/resources/requests/request_id/__init__.py +0 -0
  68. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/resources/requests/request_id/properties.py +0 -0
  69. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/resources/requests/request_id/request_id.py +0 -0
  70. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/resources/requests/request_id/result.py +0 -0
  71. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/resources/requests/requests.py +0 -0
  72. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/resources/requests/response_id/__init__.py +0 -0
  73. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/resources/requests/response_id/properties.py +0 -0
  74. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/resources/requests/response_id/response_id.py +0 -0
  75. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/resources/requests/response_id/result.py +0 -0
  76. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/resources/use_cases/__init__.py +0 -0
  77. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/resources/use_cases/definitions/__init__.py +0 -0
  78. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/resources/use_cases/definitions/definitions.py +0 -0
  79. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/resources/use_cases/definitions/kpis.py +0 -0
  80. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/resources/use_cases/definitions/limit_config.py +0 -0
  81. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/resources/use_cases/definitions/version.py +0 -0
  82. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/resources/use_cases/kpis.py +0 -0
  83. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/resources/use_cases/properties.py +0 -0
  84. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/resources/use_cases/use_cases.py +0 -0
  85. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/__init__.py +0 -0
  86. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/bulk_ingest_response.py +0 -0
  87. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/categories/__init__.py +0 -0
  88. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/categories/fixed_cost_resource_create_params.py +0 -0
  89. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/categories/resource_create_params.py +0 -0
  90. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/categories/resource_list_params.py +0 -0
  91. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/category_delete_resource_response.py +0 -0
  92. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/category_delete_response.py +0 -0
  93. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/category_list_params.py +0 -0
  94. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/category_list_resources_params.py +0 -0
  95. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/category_resource_response.py +0 -0
  96. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/category_response.py +0 -0
  97. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/cost_data.py +0 -0
  98. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/cost_details.py +0 -0
  99. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/default_response.py +0 -0
  100. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/ingest_bulk_params.py +0 -0
  101. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/ingest_event_param.py +0 -0
  102. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/ingest_response.py +0 -0
  103. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/ingest_units_params.py +0 -0
  104. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/limit_create_params.py +0 -0
  105. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/limit_history_response.py +0 -0
  106. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/limit_list_params.py +0 -0
  107. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/limit_list_response.py +0 -0
  108. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/limit_reset_params.py +0 -0
  109. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/limit_response.py +0 -0
  110. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/limit_update_params.py +0 -0
  111. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/limits/__init__.py +0 -0
  112. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/limits/limit_tags.py +0 -0
  113. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/limits/tag_create_params.py +0 -0
  114. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/limits/tag_create_response.py +0 -0
  115. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/limits/tag_delete_response.py +0 -0
  116. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/limits/tag_list_response.py +0 -0
  117. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/limits/tag_remove_params.py +0 -0
  118. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/limits/tag_remove_response.py +0 -0
  119. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/limits/tag_update_params.py +0 -0
  120. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/limits/tag_update_response.py +0 -0
  121. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/pay_i_common_models_api_router_header_info_param.py +0 -0
  122. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/request_result.py +0 -0
  123. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/requests/__init__.py +0 -0
  124. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/requests/request_id/__init__.py +0 -0
  125. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/requests/request_id/property_update_params.py +0 -0
  126. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/requests/response_id/__init__.py +0 -0
  127. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/requests/response_id/property_update_params.py +0 -0
  128. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/requests_data.py +0 -0
  129. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/shared/__init__.py +0 -0
  130. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/shared/evaluation_response.py +0 -0
  131. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/shared/ingest_units.py +0 -0
  132. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/shared/pay_i_common_models_budget_management_cost_details_base.py +0 -0
  133. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/shared/pay_i_common_models_budget_management_create_limit_base.py +0 -0
  134. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/shared/properties_response.py +0 -0
  135. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/shared/xproxy_error.py +0 -0
  136. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/shared/xproxy_result.py +0 -0
  137. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/shared_params/__init__.py +0 -0
  138. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/shared_params/ingest_units.py +0 -0
  139. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/shared_params/pay_i_common_models_budget_management_create_limit_base.py +0 -0
  140. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/total_cost_data.py +0 -0
  141. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/use_case_instance_response.py +0 -0
  142. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/use_cases/__init__.py +0 -0
  143. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/use_cases/definition_create_params.py +0 -0
  144. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/use_cases/definition_list_params.py +0 -0
  145. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/use_cases/definition_update_params.py +0 -0
  146. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/use_cases/definitions/__init__.py +0 -0
  147. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/use_cases/definitions/kpi_create_params.py +0 -0
  148. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/use_cases/definitions/kpi_create_response.py +0 -0
  149. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/use_cases/definitions/kpi_delete_response.py +0 -0
  150. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/use_cases/definitions/kpi_list_params.py +0 -0
  151. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/use_cases/definitions/kpi_list_response.py +0 -0
  152. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/use_cases/definitions/kpi_retrieve_response.py +0 -0
  153. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/use_cases/definitions/kpi_update_params.py +0 -0
  154. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/use_cases/definitions/kpi_update_response.py +0 -0
  155. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/use_cases/definitions/limit_config_create_params.py +0 -0
  156. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/use_cases/kpi_list_params.py +0 -0
  157. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/use_cases/kpi_list_response.py +0 -0
  158. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/use_cases/kpi_update_params.py +0 -0
  159. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/use_cases/property_update_params.py +0 -0
  160. {payi-0.1.0a107 → payi-0.1.0a109}/src/payi/types/use_cases/use_case_definition.py +0 -0
  161. {payi-0.1.0a107 → payi-0.1.0a109}/tests/__init__.py +0 -0
  162. {payi-0.1.0a107 → payi-0.1.0a109}/tests/api_resources/__init__.py +0 -0
  163. {payi-0.1.0a107 → payi-0.1.0a109}/tests/api_resources/categories/__init__.py +0 -0
  164. {payi-0.1.0a107 → payi-0.1.0a109}/tests/api_resources/categories/test_fixed_cost_resources.py +0 -0
  165. {payi-0.1.0a107 → payi-0.1.0a109}/tests/api_resources/categories/test_resources.py +0 -0
  166. {payi-0.1.0a107 → payi-0.1.0a109}/tests/api_resources/limits/__init__.py +0 -0
  167. {payi-0.1.0a107 → payi-0.1.0a109}/tests/api_resources/limits/test_tags.py +0 -0
  168. {payi-0.1.0a107 → payi-0.1.0a109}/tests/api_resources/requests/__init__.py +0 -0
  169. {payi-0.1.0a107 → payi-0.1.0a109}/tests/api_resources/requests/request_id/__init__.py +0 -0
  170. {payi-0.1.0a107 → payi-0.1.0a109}/tests/api_resources/requests/request_id/test_properties.py +0 -0
  171. {payi-0.1.0a107 → payi-0.1.0a109}/tests/api_resources/requests/request_id/test_result.py +0 -0
  172. {payi-0.1.0a107 → payi-0.1.0a109}/tests/api_resources/requests/response_id/__init__.py +0 -0
  173. {payi-0.1.0a107 → payi-0.1.0a109}/tests/api_resources/requests/response_id/test_properties.py +0 -0
  174. {payi-0.1.0a107 → payi-0.1.0a109}/tests/api_resources/requests/response_id/test_result.py +0 -0
  175. {payi-0.1.0a107 → payi-0.1.0a109}/tests/api_resources/test_categories.py +0 -0
  176. {payi-0.1.0a107 → payi-0.1.0a109}/tests/api_resources/test_ingest.py +0 -0
  177. {payi-0.1.0a107 → payi-0.1.0a109}/tests/api_resources/test_limits.py +0 -0
  178. {payi-0.1.0a107 → payi-0.1.0a109}/tests/api_resources/test_use_cases.py +0 -0
  179. {payi-0.1.0a107 → payi-0.1.0a109}/tests/api_resources/use_cases/__init__.py +0 -0
  180. {payi-0.1.0a107 → payi-0.1.0a109}/tests/api_resources/use_cases/definitions/__init__.py +0 -0
  181. {payi-0.1.0a107 → payi-0.1.0a109}/tests/api_resources/use_cases/definitions/test_kpis.py +0 -0
  182. {payi-0.1.0a107 → payi-0.1.0a109}/tests/api_resources/use_cases/definitions/test_limit_config.py +0 -0
  183. {payi-0.1.0a107 → payi-0.1.0a109}/tests/api_resources/use_cases/definitions/test_version.py +0 -0
  184. {payi-0.1.0a107 → payi-0.1.0a109}/tests/api_resources/use_cases/test_definitions.py +0 -0
  185. {payi-0.1.0a107 → payi-0.1.0a109}/tests/api_resources/use_cases/test_kpis.py +0 -0
  186. {payi-0.1.0a107 → payi-0.1.0a109}/tests/api_resources/use_cases/test_properties.py +0 -0
  187. {payi-0.1.0a107 → payi-0.1.0a109}/tests/conftest.py +0 -0
  188. {payi-0.1.0a107 → payi-0.1.0a109}/tests/sample_file.txt +0 -0
  189. {payi-0.1.0a107 → payi-0.1.0a109}/tests/test_client.py +0 -0
  190. {payi-0.1.0a107 → payi-0.1.0a109}/tests/test_deepcopy.py +0 -0
  191. {payi-0.1.0a107 → payi-0.1.0a109}/tests/test_extract_files.py +0 -0
  192. {payi-0.1.0a107 → payi-0.1.0a109}/tests/test_files.py +0 -0
  193. {payi-0.1.0a107 → payi-0.1.0a109}/tests/test_models.py +0 -0
  194. {payi-0.1.0a107 → payi-0.1.0a109}/tests/test_qs.py +0 -0
  195. {payi-0.1.0a107 → payi-0.1.0a109}/tests/test_required_args.py +0 -0
  196. {payi-0.1.0a107 → payi-0.1.0a109}/tests/test_response.py +0 -0
  197. {payi-0.1.0a107 → payi-0.1.0a109}/tests/test_streaming.py +0 -0
  198. {payi-0.1.0a107 → payi-0.1.0a109}/tests/test_transform.py +0 -0
  199. {payi-0.1.0a107 → payi-0.1.0a109}/tests/test_utils/test_proxy.py +0 -0
  200. {payi-0.1.0a107 → payi-0.1.0a109}/tests/test_utils/test_typing.py +0 -0
  201. {payi-0.1.0a107 → payi-0.1.0a109}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.1.0-alpha.109"
3
+ }
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.0-alpha.109 (2025-08-06)
4
+
5
+ Full Changelog: [v0.1.0-alpha.108...v0.1.0-alpha.109](https://github.com/Pay-i/pay-i-python/compare/v0.1.0-alpha.108...v0.1.0-alpha.109)
6
+
7
+ ### Chores
8
+
9
+ * **internal:** fix ruff target version ([e6299f0](https://github.com/Pay-i/pay-i-python/commit/e6299f02beafe98b848e1853b1ac9e8f27a51b43))
10
+
11
+ ## 0.1.0-alpha.108 (2025-08-05)
12
+
13
+ Full Changelog: [v0.1.0-alpha.107...v0.1.0-alpha.108](https://github.com/Pay-i/pay-i-python/compare/v0.1.0-alpha.107...v0.1.0-alpha.108)
14
+
15
+ ### Features
16
+
17
+ * account_name ([#352](https://github.com/Pay-i/pay-i-python/issues/352)) ([719e871](https://github.com/Pay-i/pay-i-python/commit/719e871927187e2bce511d637144fd99a59b7234))
18
+
3
19
  ## 0.1.0-alpha.107 (2025-07-31)
4
20
 
5
21
  Full Changelog: [v0.1.0-alpha.106...v0.1.0-alpha.107](https://github.com/Pay-i/pay-i-python/compare/v0.1.0-alpha.106...v0.1.0-alpha.107)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: payi
3
- Version: 0.1.0a107
3
+ Version: 0.1.0a109
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.107"
3
+ version = "0.1.0-alpha.109"
4
4
  description = "The official Python library for the payi API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -163,7 +163,7 @@ reportPrivateUsage = false
163
163
  [tool.ruff]
164
164
  line-length = 120
165
165
  output-format = "grouped"
166
- target-version = "py37"
166
+ target-version = "py38"
167
167
 
168
168
  [tool.ruff.format]
169
169
  docstring-code-format = true
@@ -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.107" # x-release-please-version
4
+ __version__ = "0.1.0-alpha.109" # x-release-please-version
@@ -11,6 +11,7 @@ class PayiHeaderNames:
11
11
  use_case_version:str = "xProxy-UseCase-Version"
12
12
  use_case_step:str = "xProxy-UseCase-Step"
13
13
  user_id:str = "xProxy-User-ID"
14
+ account_name:str = "xProxy-Account-Name"
14
15
  price_as_category:str = "xProxy-PriceAs-Category"
15
16
  price_as_resource:str = "xProxy-PriceAs-Resource"
16
17
  provider_base_uri = "xProxy-Provider-BaseUri"
@@ -24,7 +25,7 @@ class PayiCategories:
24
25
  aws_bedrock:str = "system.aws.bedrock"
25
26
  google_vertex:str = "system.google.vertex"
26
27
 
27
- def create_limit_header_from_ids(limit_ids: List[str]) -> Dict[str, str]:
28
+ def create_limit_header_from_ids(*, limit_ids: List[str]) -> Dict[str, str]:
28
29
  if not isinstance(limit_ids, list): # type: ignore
29
30
  raise TypeError("limit_ids must be a list")
30
31
 
@@ -32,7 +33,7 @@ def create_limit_header_from_ids(limit_ids: List[str]) -> Dict[str, str]:
32
33
 
33
34
  return { PayiHeaderNames.limit_ids: ",".join(valid_ids) } if valid_ids else {}
34
35
 
35
- def create_request_header_from_tags(request_tags: List[str]) -> Dict[str, str]:
36
+ def create_request_header_from_tags(*, request_tags: List[str]) -> Dict[str, str]:
36
37
  if not isinstance(request_tags, list): # type: ignore
37
38
  raise TypeError("request_tags must be a list")
38
39
 
@@ -41,9 +42,11 @@ def create_request_header_from_tags(request_tags: List[str]) -> Dict[str, str]:
41
42
  return { PayiHeaderNames.request_tags: ",".join(valid_tags) } if valid_tags else {}
42
43
 
43
44
  def create_headers(
45
+ *,
44
46
  limit_ids: Union[List[str], None] = None,
45
47
  request_tags: Union[List[str], None] = None,
46
48
  user_id: Union[str, None] = None,
49
+ account_name: Union[str, None] = None,
47
50
  use_case_id: Union[str, None] = None,
48
51
  use_case_name: Union[str, None] = None,
49
52
  use_case_version: Union[int, None] = None,
@@ -55,11 +58,13 @@ def create_headers(
55
58
  headers: Dict[str, str] = {}
56
59
 
57
60
  if limit_ids:
58
- headers.update(create_limit_header_from_ids(limit_ids))
61
+ headers.update(create_limit_header_from_ids(limit_ids=limit_ids))
59
62
  if request_tags:
60
- headers.update(create_request_header_from_tags(request_tags))
63
+ headers.update(create_request_header_from_tags(request_tags=request_tags))
61
64
  if user_id:
62
65
  headers.update({ PayiHeaderNames.user_id: user_id})
66
+ if account_name:
67
+ headers.update({ PayiHeaderNames.account_name: account_name})
63
68
  if use_case_id:
64
69
  headers.update({ PayiHeaderNames.use_case_id: use_case_id})
65
70
  if use_case_name:
@@ -157,6 +157,7 @@ class PayiInstrumentConfig(TypedDict, total=False):
157
157
  use_case_version: Optional[int]
158
158
  use_case_properties: Optional["dict[str, str]"]
159
159
  user_id: Optional[str]
160
+ account_name: Optional[str]
160
161
  request_tags: Optional["list[str]"]
161
162
  request_properties: Optional["dict[str, str]"]
162
163
 
@@ -168,6 +169,7 @@ class PayiContext(TypedDict, total=False):
168
169
  use_case_properties: Optional["dict[str, str]"]
169
170
  limit_ids: Optional['list[str]']
170
171
  user_id: Optional[str]
172
+ account_name: Optional[str]
171
173
  request_tags: Optional["list[str]"]
172
174
  request_properties: Optional["dict[str, str]"]
173
175
  price_as_category: Optional[str]
@@ -184,6 +186,7 @@ class _Context(TypedDict, total=False):
184
186
  use_case_properties: Optional["dict[str, str]"]
185
187
  limit_ids: Optional['list[str]']
186
188
  user_id: Optional[str]
189
+ account_name: Optional[str]
187
190
  request_tags: Optional["list[str]"]
188
191
  request_properties: Optional["dict[str, str]"]
189
192
  price_as_category: Optional[str]
@@ -655,6 +658,7 @@ class _PayiInstrumentor:
655
658
  use_case_version: Optional[int]= None,
656
659
  use_case_step: Optional[str]= None,
657
660
  user_id: Optional[str]= None,
661
+ account_name: Optional[str]= None,
658
662
  request_tags: Optional["list[str]"] = None,
659
663
  request_properties: Optional["dict[str, str]"] = None,
660
664
  use_case_properties: Optional["dict[str, str]"] = None,
@@ -747,6 +751,16 @@ class _PayiInstrumentor:
747
751
  else:
748
752
  context["user_id"] = user_id
749
753
 
754
+ parent_account_name = parent_context.get("account_name", None)
755
+ if account_name is None:
756
+ # use the parent account_name if it exists
757
+ context["account_name"] = parent_account_name
758
+ elif len(account_name) == 0:
759
+ # caller passing an empty string explicitly blocks inheriting from the parent state
760
+ context["account_name"] = None
761
+ else:
762
+ context["account_name"] = account_name
763
+
750
764
  parent_request_tags = parent_context.get("request_tags", None)
751
765
  if request_tags is not None:
752
766
  if len(request_tags) == 0:
@@ -795,6 +809,7 @@ class _PayiInstrumentor:
795
809
  use_case_id: Optional[str],
796
810
  use_case_version: Optional[int],
797
811
  user_id: Optional[str],
812
+ account_name: Optional[str],
798
813
  request_tags: Optional["list[str]"] = None,
799
814
  request_properties: Optional["dict[str, str]"] = None,
800
815
  use_case_properties: Optional["dict[str, str]"] = None,
@@ -809,6 +824,7 @@ class _PayiInstrumentor:
809
824
  use_case_id=use_case_id,
810
825
  use_case_version=use_case_version,
811
826
  user_id=user_id,
827
+ account_name=account_name,
812
828
  request_tags=request_tags,
813
829
  request_properties=request_properties,
814
830
  use_case_properties=use_case_properties
@@ -824,6 +840,7 @@ class _PayiInstrumentor:
824
840
  use_case_id: Optional[str],
825
841
  use_case_version: Optional[int],
826
842
  user_id: Optional[str],
843
+ account_name: Optional[str],
827
844
  request_tags: Optional["list[str]"] = None,
828
845
  request_properties: Optional["dict[str, str]"] = None,
829
846
  use_case_properties: Optional["dict[str, str]"] = None,
@@ -838,6 +855,7 @@ class _PayiInstrumentor:
838
855
  use_case_id=use_case_id,
839
856
  use_case_version=use_case_version,
840
857
  user_id=user_id,
858
+ account_name=account_name,
841
859
  request_tags=request_tags,
842
860
  request_properties=request_properties,
843
861
  use_case_properties=use_case_properties)
@@ -879,6 +897,7 @@ class _PayiInstrumentor:
879
897
  use_case_step = ingest_extra_headers.pop(PayiHeaderNames.use_case_step, None)
880
898
 
881
899
  user_id = ingest_extra_headers.pop(PayiHeaderNames.user_id, None)
900
+ account_name = ingest_extra_headers.pop(PayiHeaderNames.account_name, None)
882
901
 
883
902
  if limit_ids:
884
903
  request._ingest["limit_ids"] = limit_ids.split(",")
@@ -894,6 +913,8 @@ class _PayiInstrumentor:
894
913
  request._ingest["use_case_step"] = use_case_step
895
914
  if user_id:
896
915
  request._ingest["user_id"] = user_id
916
+ if account_name:
917
+ request._ingest["account_name"] = account_name
897
918
 
898
919
  request_properties = context.get("request_properties", None)
899
920
  if request_properties:
@@ -1207,6 +1228,7 @@ class _PayiInstrumentor:
1207
1228
  context_use_case_step: Optional[str] = context.get("use_case_step")
1208
1229
 
1209
1230
  context_user_id: Optional[str] = context.get("user_id")
1231
+ context_account_name: Optional[str] = context.get("account_name")
1210
1232
  context_request_tags: Optional[list[str]] = context.get("request_tags")
1211
1233
 
1212
1234
  context_price_as_category: Optional[str] = context.get("price_as_category")
@@ -1239,6 +1261,17 @@ class _PayiInstrumentor:
1239
1261
  elif context_user_id:
1240
1262
  extra_headers[PayiHeaderNames.user_id] = context_user_id
1241
1263
 
1264
+ if PayiHeaderNames.account_name in extra_headers:
1265
+ headers_account_name = extra_headers.get(PayiHeaderNames.account_name, None)
1266
+ if headers_account_name is None or len(headers_account_name) == 0:
1267
+ # headers_account_name is empty, remove it from extra_headers
1268
+ extra_headers.pop(PayiHeaderNames.account_name, None)
1269
+ else:
1270
+ # leave the value in extra_headers
1271
+ ...
1272
+ elif context_account_name:
1273
+ extra_headers[PayiHeaderNames.account_name] = context_account_name
1274
+
1242
1275
  if PayiHeaderNames.use_case_name in extra_headers:
1243
1276
  headers_use_case_name = extra_headers.get(PayiHeaderNames.use_case_name, None)
1244
1277
  if headers_use_case_name is None or len(headers_use_case_name) == 0:
@@ -1711,6 +1744,7 @@ def track(
1711
1744
  use_case_id: Optional[str] = None,
1712
1745
  use_case_version: Optional[int] = None,
1713
1746
  user_id: Optional[str] = None,
1747
+ account_name: Optional[str] = None,
1714
1748
  request_tags: Optional["list[str]"] = None,
1715
1749
  request_properties: Optional["dict[str, str]"] = None,
1716
1750
  use_case_properties: Optional["dict[str, str]"] = None,
@@ -1735,6 +1769,7 @@ def track(
1735
1769
  use_case_id,
1736
1770
  use_case_version,
1737
1771
  user_id,
1772
+ account_name,
1738
1773
  request_tags,
1739
1774
  request_properties,
1740
1775
  use_case_properties,
@@ -1748,7 +1783,7 @@ def track(
1748
1783
  _g_logger.debug(f"track: no instrumentor!")
1749
1784
  return func(*args, **kwargs)
1750
1785
 
1751
- _instrumentor._logger.debug(f"track: call sync function (proxy={proxy}, limit_ids={limit_ids}, use_case_name={use_case_name}, use_case_id={use_case_id}, use_case_version={use_case_version}, user_id={user_id})")
1786
+ _instrumentor._logger.debug(f"track: call sync function (proxy={proxy}, limit_ids={limit_ids}, use_case_name={use_case_name}, use_case_id={use_case_id}, use_case_version={use_case_version}, user_id={user_id}, account_name={account_name})")
1752
1787
 
1753
1788
  return _instrumentor._call_func(
1754
1789
  func,
@@ -1758,6 +1793,7 @@ def track(
1758
1793
  use_case_id,
1759
1794
  use_case_version,
1760
1795
  user_id,
1796
+ account_name,
1761
1797
  request_tags,
1762
1798
  request_properties,
1763
1799
  use_case_properties,
@@ -1775,6 +1811,7 @@ def track_context(
1775
1811
  use_case_version: Optional[int] = None,
1776
1812
  use_case_step: Optional[str] = None,
1777
1813
  user_id: Optional[str] = None,
1814
+ account_name: Optional[str] = None,
1778
1815
  request_tags: Optional["list[str]"] = None,
1779
1816
  request_properties: Optional["dict[str, str]"] = None,
1780
1817
  use_case_properties: Optional["dict[str, str]"] = None,
@@ -1796,6 +1833,7 @@ def track_context(
1796
1833
  context["use_case_step"] = use_case_step
1797
1834
 
1798
1835
  context["user_id"] = user_id
1836
+ context["account_name"] = account_name
1799
1837
  context["request_tags"] = request_tags
1800
1838
 
1801
1839
  context["price_as_category"] = price_as_category
@@ -1,3 +0,0 @@
1
- {
2
- ".": "0.1.0-alpha.107"
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