payi 0.1.0a13__py3-none-any.whl → 0.1.0a14__py3-none-any.whl

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.

@@ -4,82 +4,33 @@ from typing import List, Optional
4
4
  from datetime import datetime
5
5
  from typing_extensions import Literal
6
6
 
7
- from pydantic import Field as FieldInfo
8
-
9
7
  from .._models import BaseModel
8
+ from .cost_data import CostData
9
+ from .requests_data import RequestsData
10
10
 
11
- __all__ = [
12
- "BudgetHistoryResponse",
13
- "BudgetHistory",
14
- "BudgetHistoryTotals",
15
- "BudgetHistoryTotalsCost",
16
- "BudgetHistoryTotalsCostInput",
17
- "BudgetHistoryTotalsCostOutput",
18
- "BudgetHistoryTotalsCostTotal",
19
- "BudgetHistoryTotalsRequests",
20
- ]
21
-
22
-
23
- class BudgetHistoryTotalsCostInput(BaseModel):
24
- base: Optional[float] = None
25
-
26
- billed: Optional[float] = None
27
-
28
- overrun_base: Optional[float] = FieldInfo(alias="overrunBase", default=None)
29
-
30
- overrun_billed: Optional[float] = FieldInfo(alias="overrunBilled", default=None)
31
-
32
- revenue: Optional[float] = None
33
-
34
-
35
- class BudgetHistoryTotalsCostOutput(BaseModel):
36
- base: Optional[float] = None
37
-
38
- billed: Optional[float] = None
39
-
40
- overrun_base: Optional[float] = FieldInfo(alias="overrunBase", default=None)
41
-
42
- overrun_billed: Optional[float] = FieldInfo(alias="overrunBilled", default=None)
11
+ __all__ = ["BudgetHistoryResponse", "BudgetHistory", "BudgetHistoryTotals", "BudgetHistoryTotalsBudgetTransactions"]
43
12
 
44
- revenue: Optional[float] = None
45
13
 
14
+ class BudgetHistoryTotalsBudgetTransactions(BaseModel):
15
+ blocked: int
46
16
 
47
- class BudgetHistoryTotalsCostTotal(BaseModel):
48
- base: Optional[float] = None
17
+ blocked_external: int
49
18
 
50
- billed: Optional[float] = None
19
+ exceeded: int
51
20
 
52
- overrun_base: Optional[float] = FieldInfo(alias="overrunBase", default=None)
21
+ successful: int
53
22
 
54
- overrun_billed: Optional[float] = FieldInfo(alias="overrunBilled", default=None)
55
-
56
- revenue: Optional[float] = None
57
-
58
-
59
- class BudgetHistoryTotalsCost(BaseModel):
60
- input: BudgetHistoryTotalsCostInput
61
-
62
- output: BudgetHistoryTotalsCostOutput
63
-
64
- total: BudgetHistoryTotalsCostTotal
65
-
66
-
67
- class BudgetHistoryTotalsRequests(BaseModel):
68
- blocked: Optional[int] = None
69
-
70
- exceeded: Optional[int] = None
71
-
72
- failed: Optional[int] = None
73
-
74
- successful: Optional[int] = None
23
+ error: Optional[int] = None
75
24
 
76
25
  total: Optional[int] = None
77
26
 
78
27
 
79
28
  class BudgetHistoryTotals(BaseModel):
80
- cost: BudgetHistoryTotalsCost
29
+ cost: CostData
30
+
31
+ requests: RequestsData
81
32
 
82
- requests: BudgetHistoryTotalsRequests
33
+ budget_transactions: Optional[BudgetHistoryTotalsBudgetTransactions] = None
83
34
 
84
35
 
85
36
  class BudgetHistory(BaseModel):
@@ -26,12 +26,12 @@ class BudgetTotalsBudgetTransactions(BaseModel):
26
26
 
27
27
 
28
28
  class BudgetTotals(BaseModel):
29
- budget_transactions: BudgetTotalsBudgetTransactions
30
-
31
29
  cost: CostData
32
30
 
33
31
  requests: RequestsData
34
32
 
33
+ budget_transactions: Optional[BudgetTotalsBudgetTransactions] = None
34
+
35
35
 
36
36
  class Budget(BaseModel):
37
37
  base_cost_estimate: Literal["max"]
@@ -2,12 +2,13 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing_extensions import Required, TypedDict
5
+ from typing import Optional
6
+ from typing_extensions import TypedDict
6
7
 
7
8
  __all__ = ["BudgetUpdateParams"]
8
9
 
9
10
 
10
11
  class BudgetUpdateParams(TypedDict, total=False):
11
- budget_name: Required[str]
12
+ budget_name: Optional[str]
12
13
 
13
- max: float
14
+ max: Optional[float]
@@ -0,0 +1,6 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from .resource_create_params import ResourceCreateParams as ResourceCreateParams
6
+ from .resource_list_response import ResourceListResponse as ResourceListResponse
@@ -0,0 +1,25 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Union
6
+ from datetime import datetime
7
+ from typing_extensions import Required, Annotated, TypedDict
8
+
9
+ from ..._utils import PropertyInfo
10
+
11
+ __all__ = ["ResourceCreateParams"]
12
+
13
+
14
+ class ResourceCreateParams(TypedDict, total=False):
15
+ category: Required[str]
16
+
17
+ start_timestamp: Required[Annotated[Union[str, datetime], PropertyInfo(format="iso8601")]]
18
+
19
+ input_price: float
20
+
21
+ max_input_units: int
22
+
23
+ max_output_units: int
24
+
25
+ output_price: float
@@ -0,0 +1,9 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List
4
+
5
+ from ..category_resource_response import CategoryResourceResponse
6
+
7
+ __all__ = ["ResourceListResponse"]
8
+
9
+ ResourceListResponse = List[CategoryResourceResponse]
@@ -0,0 +1,9 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List
4
+
5
+ from .category_resource_response import CategoryResourceResponse
6
+
7
+ __all__ = ["CategoryDeleteResourceResponse"]
8
+
9
+ CategoryDeleteResourceResponse = List[CategoryResourceResponse]
@@ -0,0 +1,9 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Dict, List
4
+
5
+ from .category_resource_response import CategoryResourceResponse
6
+
7
+ __all__ = ["CategoryDeleteResponse"]
8
+
9
+ CategoryDeleteResponse = Dict[str, List[CategoryResourceResponse]]
@@ -0,0 +1,9 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List
4
+
5
+ from .category_resource_response import CategoryResourceResponse
6
+
7
+ __all__ = ["CategoryListResourcesResponse"]
8
+
9
+ CategoryListResourcesResponse = List[CategoryResourceResponse]
@@ -0,0 +1,9 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List
4
+
5
+ from .category_response import CategoryResponse
6
+
7
+ __all__ = ["CategoryListResponse"]
8
+
9
+ CategoryListResponse = List[CategoryResponse]
@@ -0,0 +1,24 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from datetime import datetime
5
+
6
+ from .._models import BaseModel
7
+
8
+ __all__ = ["CategoryResourceResponse"]
9
+
10
+
11
+ class CategoryResourceResponse(BaseModel):
12
+ category: str
13
+
14
+ resource: str
15
+
16
+ start_timestamp: datetime
17
+
18
+ input_price: Optional[float] = None
19
+
20
+ max_input_units: Optional[int] = None
21
+
22
+ max_output_units: Optional[int] = None
23
+
24
+ output_price: Optional[float] = None
@@ -0,0 +1,15 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from datetime import datetime
4
+
5
+ from .._models import BaseModel
6
+
7
+ __all__ = ["CategoryResponse"]
8
+
9
+
10
+ class CategoryResponse(BaseModel):
11
+ category: str
12
+
13
+ resource_count: int
14
+
15
+ start_timestamp: datetime
@@ -2,6 +2,8 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ from typing import Union
6
+ from datetime import datetime
5
7
  from typing_extensions import Required, Annotated, TypedDict
6
8
 
7
9
  from .._utils import PropertyInfo
@@ -18,6 +20,8 @@ class IngestUnitsParams(TypedDict, total=False):
18
20
 
19
21
  resource: Required[str]
20
22
 
21
- budget_ids: Annotated[list[str], PropertyInfo(alias="xProxy-Budget-IDs")]
23
+ event_timestamp: Annotated[Union[str, datetime, None], PropertyInfo(format="iso8601")]
22
24
 
23
- request_tags: Annotated[list[str], PropertyInfo(alias="xProxy-Request-Tags")]
25
+ budget_ids: Annotated[Union[list[str], None], PropertyInfo(alias="xProxy-Budget-IDs")]
26
+
27
+ request_tags: Annotated[Union[list[str], None], PropertyInfo(alias="xProxy-Request-Tags")]
@@ -28,12 +28,12 @@ class ItemTotalsBudgetTransactions(BaseModel):
28
28
 
29
29
 
30
30
  class ItemTotals(BaseModel):
31
- budget_transactions: ItemTotalsBudgetTransactions
32
-
33
31
  cost: CostData
34
32
 
35
33
  requests: RequestsData
36
34
 
35
+ budget_transactions: Optional[ItemTotalsBudgetTransactions] = None
36
+
37
37
 
38
38
  class Item(BaseModel):
39
39
  base_cost_estimate: Literal["max"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: payi
3
- Version: 0.1.0a13
3
+ Version: 0.1.0a14
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
@@ -44,7 +44,7 @@ It is generated with [Stainless](https://www.stainlessapi.com/).
44
44
 
45
45
  ## Documentation
46
46
 
47
- The REST API documentation can be found [on docs.payi.com](https://docs.payi.com). The full API of this library can be found in [api.md](https://github.com/Pay-i/pay-i-python/tree/main/api.md).
47
+ The REST API documentation can be found on [docs.payi.com](https://docs.payi.com). The full API of this library can be found in [api.md](https://github.com/Pay-i/pay-i-python/tree/main/api.md).
48
48
 
49
49
  ## Installation
50
50
 
@@ -334,6 +334,12 @@ client = Payi(
334
334
  )
335
335
  ```
336
336
 
337
+ You can also customize the client on a per-request basis by using `with_options()`:
338
+
339
+ ```python
340
+ client.with_options(http_client=DefaultHttpxClient(...))
341
+ ```
342
+
337
343
  ### Managing HTTP resources
338
344
 
339
345
  By default the library closes underlying HTTP connections whenever the client is [garbage collected](https://docs.python.org/3/reference/datamodel.html#object.__del__). You can manually close the client using the `.close()` method if desired, or with a context manager that closes when exiting.
@@ -1,17 +1,17 @@
1
1
  payi/__init__.py,sha256=LWpfR6WSMPTnmmx3ToqqZ0A8CNduLcuxY1SSOqhPxuk,2381
2
- payi/_base_client.py,sha256=c5Hju1M9F2Bweaubt_YHoIW6WBi41ztJdw6WV6ALxVg,66170
3
- payi/_client.py,sha256=lQBkhIC3OQpsv84PQvVpoOPdR5QabmEPkzyn7U9O1aA,15622
4
- payi/_compat.py,sha256=m0I0haqFZuVxd5m227_8nNmvA1saXyuNJ7BjidX_PTE,6389
2
+ payi/_base_client.py,sha256=m9HUAVfRZskxs-zENi8VtkaGXSipWhRq8Qh2H1YGWbc,66226
3
+ payi/_client.py,sha256=xw0Z15gsNtWO5ktYEleEwksIYhUtHx8ogU3-j4gkdWM,16222
4
+ payi/_compat.py,sha256=BPuFBQUQE-C6lIB2PTMco9-g08p94cqPxbU3x8VENso,6430
5
5
  payi/_constants.py,sha256=JE8kyZa2Q4NK_i4fO--8siEYTzeHnT0fYbOFDgDP4uk,464
6
6
  payi/_exceptions.py,sha256=ItygKNrNXIVY0H6LsGVZvFuAHB3Vtm_VZXmWzCnpHy0,3216
7
7
  payi/_files.py,sha256=me2eyWzJCM4YKh10Gzkxw4YyIEJoikzD4BVu_20UUc0,3565
8
- payi/_models.py,sha256=iIdzp18nPedv1mQxC6hoNDEsRIAiPkS88e4ZwA5mpGo,27892
8
+ payi/_models.py,sha256=3METTz2oSlPfVcHL0fZ-L5IPnvckZDkgEe1H58mRsFE,28210
9
9
  payi/_qs.py,sha256=AOkSz4rHtK4YI3ZU_kzea-zpwBUgEY8WniGmTPyEimc,4846
10
10
  payi/_resource.py,sha256=j2jIkTr8OIC8sU6-05nxSaCyj4MaFlbZrwlyg4_xJos,1088
11
11
  payi/_response.py,sha256=W6pADUzbnMFGnVzGY4M3FkX9uvw8AFSMTPZKPgQ_TV4,28363
12
12
  payi/_streaming.py,sha256=Z_wIyo206T6Jqh2rolFg2VXZgX24PahLmpURp0-NssU,10092
13
13
  payi/_types.py,sha256=04q-KHD-qZ1xlfwEb_muyIHWmD-nZ-KxnRxA_QEjqNk,6125
14
- payi/_version.py,sha256=fVekM5nK6zjT_VszEGHaPVvPL-b6_3OcQkrsnwQaG28,165
14
+ payi/_version.py,sha256=cwDaS1s4d14-vMkYZvUwMjxwz304MCqJ-dzDY2Svctc,165
15
15
  payi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
16
  payi/_utils/__init__.py,sha256=Uzq1-FIih_VUjzdNVWXks0sdC39KBKLMrZoz-_JOjJ4,1988
17
17
  payi/_utils/_logs.py,sha256=fmnf5D9TOgkgZKfgYmSa3PiUc3SZgkchn6CzJUeo0SQ,768
@@ -24,22 +24,31 @@ payi/_utils/_typing.py,sha256=tFbktdpdHCQliwzGsWysgn0P5H0JRdagkZdb_LegGkY,3838
24
24
  payi/_utils/_utils.py,sha256=FaZdW0tWil7IERdxUfKt7pVcyXL2aCnR3lo73q66qgI,11447
25
25
  payi/lib/.keep,sha256=wuNrz-5SXo3jJaJOJgz4vFHM41YH_g20F5cRQo0vLes,224
26
26
  payi/lib/helpers.py,sha256=IdB_pi8dLtVh9b4DG-zasA1i9Yk-5xAayoUTNWBAFpc,1235
27
- payi/resources/__init__.py,sha256=1p8kzMES8NNDQQoK3TEDE-8vVuQ59xxUjyyblZJBTjw,1015
28
- payi/resources/ingest.py,sha256=nEJcbeKt0eI6qi7lkVxVUmRXaI5hH5UtmSDLZUkkmSM,8419
27
+ payi/resources/__init__.py,sha256=uGNmPeysPonVR9KOzw-Qs1WB4CqJm17pEfoXqeEX1JA,1517
28
+ payi/resources/ingest.py,sha256=bj7iQqKHQVhOOh4x80x7-8D-zCYeSKW_fd_umy8Fzew,10050
29
29
  payi/resources/budgets/__init__.py,sha256=w1UhOdDXtUH4A91ME5Tw2nr9bRvPJyJY1YWiVVy7jj0,989
30
- payi/resources/budgets/budgets.py,sha256=_z9fg1rq1dNeIKJJxZ4kfqOTBdVzifMSRINwlLHGRHs,25946
30
+ payi/resources/budgets/budgets.py,sha256=TD9aUdxhoD_JIXOISzb7RfmvLEUuCAUn4oUyJimi7zA,26508
31
31
  payi/resources/budgets/tags.py,sha256=N26Uc7N8N1egvujY4LZ7RDoQ7oWeTR9w1pPbbgKLLqc,17841
32
- payi/types/__init__.py,sha256=JjHDryLWv31S0mtDuNEepBt4Dp1YSEtGRks9SBiMj4o,897
33
- payi/types/budget_create_params.py,sha256=2Vd6Z2x-xEfk73QknmNKJAicIT4ACmrPUYkmrAKp4dc,573
34
- payi/types/budget_history_response.py,sha256=WI7a6WZ2Dv573uPsFXKdGutj15Y975AOQfrINKwsgBc,2629
32
+ payi/resources/categories/__init__.py,sha256=w5gMiPdBSzJA_qfoVtFBElaoe8wGf_O63R7R1Spr6Gk,1093
33
+ payi/resources/categories/categories.py,sha256=hqJE4iSiMe5nvvsui4RjFJxFb8170iRbJfTafk2NzGw,15072
34
+ payi/resources/categories/resources.py,sha256=07OP3lAU7NAFoUAInEeT8EywRTPq5GhVqwPXsVs6SF4,17790
35
+ payi/types/__init__.py,sha256=HSIq-IJqP_J6TTkig6Oodn61zi1-NErWQUOsNOnJckE,1447
36
+ payi/types/budget_create_params.py,sha256=Et0SeC3yekUUkl0FxqAaQ5wa3BgaH1wsrpYWhz0aanc,653
37
+ payi/types/budget_history_response.py,sha256=YPWeFGM9NwQj3maUccX_sqlzOE34wsI1PRUtmYMhOyM,1409
35
38
  payi/types/budget_list_params.py,sha256=Win-Spveurf6WarTgCXXsP-yDIxr_HCP7oV_4JbqKOc,674
36
- payi/types/budget_response.py,sha256=OkG2MfiRMHqBalaZN23lLHiKC5DMAk04RRdpu5Z1kuQ,1243
37
- payi/types/budget_update_params.py,sha256=TTH7uu1c1zBK5zYhh2SPuRWEwr1XwDX_8bVS_GxIn9I,306
39
+ payi/types/budget_response.py,sha256=t3E501aCpUpgldgVs4zJa7JGIdJrnjKms7aYiHoDQ98,1260
40
+ payi/types/budget_update_params.py,sha256=foD5cPa1p2M2cpVUqlwkXwSEQlQcBLaigUQMUGkvcic,334
41
+ payi/types/category_delete_resource_response.py,sha256=DHGvvldGMSxwqsk83EAkqzEge94bYYZKPNyzL9jULdM,288
42
+ payi/types/category_delete_response.py,sha256=i9hW9WGPSIR9cBCLgSfH6lseGISoQwAK_3pgjlVMoI4,289
43
+ payi/types/category_list_resources_response.py,sha256=CnaOKWwDUPH47EKrNyeiI3p7jhEdgM9qs97M2tPRSGg,286
44
+ payi/types/category_list_response.py,sha256=LHuL6iKGoDVjHWWbpA4tm1r3mQMauQm4EZrWGrOZzWQ,243
45
+ payi/types/category_resource_response.py,sha256=OIzFoGSQgxY1zo2eLqXJSOzDf4kUoUwXCxL1wE5CfWk,501
46
+ payi/types/category_response.py,sha256=43i8bii20Sb-z9R5M1Ia6RGfRZmdQqsWPlv4Bl1XQf0,293
38
47
  payi/types/cost_data.py,sha256=jZtju_3WWNXh4wCu77XnyvxZkvewcvXBS_V0z07BizA,284
39
48
  payi/types/cost_details.py,sha256=3ldvnYILAG6Sz9wGWMs1SZvIfdGEbn5i4-CauWEXMPA,265
40
49
  payi/types/default_response.py,sha256=o617LpRsCIZHCZxAc5nVI2JQ3HPGZo4gCDvSDkxkIJ8,270
41
- payi/types/ingest_units_params.py,sha256=NhC7wRF0lpoKikUPQUAgE1OxpU8dqMxtRZNIbiXkYCA,575
42
- payi/types/paged_budget_list.py,sha256=wEC2UMQ6xSEfD1Z27Rb0J4uw-ewBWeKQ2ppKkPeWrxc,1789
50
+ payi/types/ingest_units_params.py,sha256=a3fEqwmrRNtGR9pqbTo50feTTjSmRGov6MYvXhBo1yc,748
51
+ payi/types/paged_budget_list.py,sha256=MtRZBf0oGMC1rz1RxKtS_ab_Akg4FoM28qxslSqLvUA,1806
43
52
  payi/types/proxy_result.py,sha256=qsl1dwZMXf3Gy7f7BzE4Fe4Pnu6OlSUY_LIo0oYLEZo,798
44
53
  payi/types/requests_data.py,sha256=UniFVu9SgDQIbZupzrLSrvBKV487_iKFemLw9nRDhGo,296
45
54
  payi/types/budgets/__init__.py,sha256=5ByVuqOcgSYLHmGzhuj6-HG48mtQhC6oT5U5tNjQtxk,725
@@ -52,7 +61,10 @@ payi/types/budgets/tag_remove_params.py,sha256=fNiHex1U11o_B0bfJDkpGARkEf99J-bd-
52
61
  payi/types/budgets/tag_remove_response.py,sha256=Wt4KwC76y3qxdEqKhXzFkYu2iECYePgXcpidXkuheWQ,219
53
62
  payi/types/budgets/tag_update_params.py,sha256=bWWeDqfySt7CZ6HDsZzENREOWGWGWFgnAtyleNMwUsE,314
54
63
  payi/types/budgets/tag_update_response.py,sha256=Vlf-zxLZzvmhUodhzF7hiqWcxyjrb7Ri_lSajg8vOPM,219
55
- payi-0.1.0a13.dist-info/METADATA,sha256=KaoE098u5vTXtTVQbyyDX_fEHkH3mc45DAm9UUYfIic,11873
56
- payi-0.1.0a13.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
57
- payi-0.1.0a13.dist-info/licenses/LICENSE,sha256=8vX1pjh3esb6D5DvXAf6NxiBcVyon8aHWNJCxmmHXeY,11334
58
- payi-0.1.0a13.dist-info/RECORD,,
64
+ payi/types/categories/__init__.py,sha256=HQScxfK3F_J9HYbphrhG6bYb7S6vtrwafLViar5pHcM,285
65
+ payi/types/categories/resource_create_params.py,sha256=OcWN9QTsvtI9cItgHgD40jFmRWuKYvr8JA6MfSS6GVA,591
66
+ payi/types/categories/resource_list_response.py,sha256=DmfAmYm72WK9hSF0FSj6XYsZ59_S-ErmXNbZM8Bkc4o,269
67
+ payi-0.1.0a14.dist-info/METADATA,sha256=2wgNSdRaM74LWRHU2XKBYEgCM7-SlaGC7HS1PG5nh8o,12030
68
+ payi-0.1.0a14.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
69
+ payi-0.1.0a14.dist-info/licenses/LICENSE,sha256=8vX1pjh3esb6D5DvXAf6NxiBcVyon8aHWNJCxmmHXeY,11334
70
+ payi-0.1.0a14.dist-info/RECORD,,