payi 0.1.0a8__py3-none-any.whl → 0.1.0a10__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.

payi/_base_client.py CHANGED
@@ -58,6 +58,7 @@ from ._types import (
58
58
  HttpxSendArgs,
59
59
  AsyncTransport,
60
60
  RequestOptions,
61
+ HttpxRequestFiles,
61
62
  ModelBuilderProtocol,
62
63
  )
63
64
  from ._utils import is_dict, is_list, asyncify, is_given, lru_cache, is_mapping
@@ -459,6 +460,7 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
459
460
  headers = self._build_headers(options)
460
461
  params = _merge_mappings(self.default_query, options.params)
461
462
  content_type = headers.get("Content-Type")
463
+ files = options.files
462
464
 
463
465
  # If the given Content-Type header is multipart/form-data then it
464
466
  # has to be removed so that httpx can generate the header with
@@ -472,7 +474,7 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
472
474
  headers.pop("Content-Type")
473
475
 
474
476
  # As we are now sending multipart/form-data instead of application/json
475
- # we need to tell httpx to use it, https://www.python-httpx.org/advanced/#multipart-file-encoding
477
+ # we need to tell httpx to use it, https://www.python-httpx.org/advanced/clients/#multipart-file-encoding
476
478
  if json_data:
477
479
  if not is_dict(json_data):
478
480
  raise TypeError(
@@ -480,6 +482,15 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
480
482
  )
481
483
  kwargs["data"] = self._serialize_multipartform(json_data)
482
484
 
485
+ # httpx determines whether or not to send a "multipart/form-data"
486
+ # request based on the truthiness of the "files" argument.
487
+ # This gets around that issue by generating a dict value that
488
+ # evaluates to true.
489
+ #
490
+ # https://github.com/encode/httpx/discussions/2399#discussioncomment-3814186
491
+ if not files:
492
+ files = cast(HttpxRequestFiles, ForceMultipartDict())
493
+
483
494
  # TODO: report this error to httpx
484
495
  return self._client.build_request( # pyright: ignore[reportUnknownMemberType]
485
496
  headers=headers,
@@ -492,7 +503,7 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
492
503
  # https://github.com/microsoft/pyright/issues/3526#event-6715453066
493
504
  params=self.qs.stringify(cast(Mapping[str, Any], params)) if params else None,
494
505
  json=json_data,
495
- files=options.files,
506
+ files=files,
496
507
  **kwargs,
497
508
  )
498
509
 
@@ -1863,6 +1874,11 @@ def make_request_options(
1863
1874
  return options
1864
1875
 
1865
1876
 
1877
+ class ForceMultipartDict(Dict[str, None]):
1878
+ def __bool__(self) -> bool:
1879
+ return True
1880
+
1881
+
1866
1882
  class OtherPlatform:
1867
1883
  def __init__(self, name: str) -> None:
1868
1884
  self.name = name
payi/_models.py CHANGED
@@ -10,6 +10,7 @@ from typing_extensions import (
10
10
  ClassVar,
11
11
  Protocol,
12
12
  Required,
13
+ ParamSpec,
13
14
  TypedDict,
14
15
  TypeGuard,
15
16
  final,
@@ -67,6 +68,9 @@ if TYPE_CHECKING:
67
68
  __all__ = ["BaseModel", "GenericModel"]
68
69
 
69
70
  _T = TypeVar("_T")
71
+ _BaseModelT = TypeVar("_BaseModelT", bound="BaseModel")
72
+
73
+ P = ParamSpec("P")
70
74
 
71
75
 
72
76
  @runtime_checkable
@@ -379,6 +383,29 @@ def is_basemodel_type(type_: type) -> TypeGuard[type[BaseModel] | type[GenericMo
379
383
  return issubclass(origin, BaseModel) or issubclass(origin, GenericModel)
380
384
 
381
385
 
386
+ def build(
387
+ base_model_cls: Callable[P, _BaseModelT],
388
+ *args: P.args,
389
+ **kwargs: P.kwargs,
390
+ ) -> _BaseModelT:
391
+ """Construct a BaseModel class without validation.
392
+
393
+ This is useful for cases where you need to instantiate a `BaseModel`
394
+ from an API response as this provides type-safe params which isn't supported
395
+ by helpers like `construct_type()`.
396
+
397
+ ```py
398
+ build(MyModel, my_field_a="foo", my_field_b=123)
399
+ ```
400
+ """
401
+ if args:
402
+ raise TypeError(
403
+ "Received positional arguments which are not supported; Keyword arguments must be used instead",
404
+ )
405
+
406
+ return cast(_BaseModelT, construct_type(type_=base_model_cls, value=kwargs))
407
+
408
+
382
409
  def construct_type(*, value: object, type_: object) -> object:
383
410
  """Loose coercion to the expected type with construction of nested values.
384
411
 
payi/_version.py CHANGED
@@ -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.8" # x-release-please-version
4
+ __version__ = "0.1.0-alpha.10" # x-release-please-version
@@ -58,10 +58,10 @@ class BudgetsResource(SyncAPIResource):
58
58
  *,
59
59
  budget_name: str,
60
60
  max: float,
61
- base_cost_estimate: Literal["Max"] | NotGiven = NOT_GIVEN,
62
- budget_response_type: Literal["Block", "Allow"] | NotGiven = NOT_GIVEN,
61
+ base_cost_estimate: Literal["max"] | NotGiven = NOT_GIVEN,
62
+ budget_response_type: Literal["block", "allow"] | NotGiven = NOT_GIVEN,
63
63
  budget_tags: Optional[List[str]] | NotGiven = NOT_GIVEN,
64
- budget_type: Literal["Conservative", "Liberal"] | NotGiven = NOT_GIVEN,
64
+ budget_type: Literal["conservative", "liberal"] | NotGiven = NOT_GIVEN,
65
65
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
66
66
  # The extra values given here take precedence over values defined on the client or passed to this method.
67
67
  extra_headers: Headers | None = None,
@@ -73,13 +73,16 @@ class BudgetsResource(SyncAPIResource):
73
73
  Create a Budget
74
74
 
75
75
  Args:
76
- extra_headers: Send extra headers
77
-
78
- extra_query: Add additional query parameters to the request
79
-
80
- extra_body: Add additional JSON properties to the request
81
-
82
- timeout: Override the client-level default timeout for this request, in seconds
76
+ budget_name (str): The name of the budget.
77
+ max (float): The maximum budget amount.
78
+ base_cost_estimate (Union[float, Literal['max']], optional): The base cost estimate. Defaults to 'max'.
79
+ budget_response_type (Literal['block', 'allow'], optional): The budget response type. Defaults to 'block'.
80
+ budget_tags (Union[List[str], None], optional): List of budget tags. Defaults to None.
81
+ budget_type (Literal['conservative', 'liberal'], optional): The budget type. Defaults to 'conservative'.
82
+ extra_headers (Dict[str, str], optional): Additional headers for the request. Defaults to None.
83
+ extra_query (Dict[str, str], optional): Additional query parameters. Defaults to None.
84
+ extra_body (Dict[str, Any], optional): Additional body parameters. Defaults to None.
85
+ timeout (Union[float, None], optional): The timeout for the request in seconds. Defaults to None.
83
86
  """
84
87
  return self._post(
85
88
  "/api/v1/budgets",
@@ -115,13 +118,11 @@ class BudgetsResource(SyncAPIResource):
115
118
  Get a Budget's details
116
119
 
117
120
  Args:
118
- extra_headers: Send extra headers
119
-
120
- extra_query: Add additional query parameters to the request
121
-
122
- extra_body: Add additional JSON properties to the request
123
-
124
- timeout: Override the client-level default timeout for this request, in seconds
121
+ budget_id (str): The ID of the budget.
122
+ extra_headers (Dict[str, str], optional): Additional headers for the request. Defaults to None.
123
+ extra_query (Dict[str, str], optional): Additional query parameters. Defaults to None.
124
+ extra_body (Dict[str, Any], optional): Additional body parameters. Defaults to None.
125
+ timeout (Union[float, None], optional): The timeout for the request in seconds. Defaults to None.
125
126
  """
126
127
  if not budget_id:
127
128
  raise ValueError(f"Expected a non-empty value for `budget_id` but received {budget_id!r}")
@@ -150,13 +151,13 @@ class BudgetsResource(SyncAPIResource):
150
151
  Update a Budget
151
152
 
152
153
  Args:
153
- extra_headers: Send extra headers
154
-
155
- extra_query: Add additional query parameters to the request
156
-
157
- extra_body: Add additional JSON properties to the request
158
-
159
- timeout: Override the client-level default timeout for this request, in seconds
154
+ budget_id (str): The ID of the budget.
155
+ budget_name (Union[str, optional]): The updated name of the budget. Defaults to None.
156
+ max (Union[float, optional])): The maximum budget amount. Defaults to None.
157
+ extra_headers (Dict[str, str], optional): Additional headers for the request. Defaults to None.
158
+ extra_query (Dict[str, str], optional): Additional query parameters. Defaults to None.
159
+ extra_body (Dict[str, Any], optional): Additional body parameters. Defaults to None.
160
+ timeout (Union[float, None], optional): The timeout for the request in seconds. Defaults to None.
160
161
  """
161
162
  if not budget_id:
162
163
  raise ValueError(f"Expected a non-empty value for `budget_id` but received {budget_id!r}")
@@ -195,13 +196,10 @@ class BudgetsResource(SyncAPIResource):
195
196
  Get all Budgets
196
197
 
197
198
  Args:
198
- extra_headers: Send extra headers
199
-
200
- extra_query: Add additional query parameters to the request
201
-
202
- extra_body: Add additional JSON properties to the request
203
-
204
- timeout: Override the client-level default timeout for this request, in seconds
199
+ extra_headers (Dict[str, str], optional): Additional headers for the request. Defaults to None.
200
+ extra_query (Dict[str, str], optional): Additional query parameters. Defaults to None.
201
+ extra_body (Dict[str, Any], optional): Additional body parameters. Defaults to None.
202
+ timeout (Union[float, None], optional): The timeout for the request in seconds. Defaults to None.
205
203
  """
206
204
  return self._get(
207
205
  "/api/v1/budgets",
@@ -240,13 +238,11 @@ class BudgetsResource(SyncAPIResource):
240
238
  Delete a Budget
241
239
 
242
240
  Args:
243
- extra_headers: Send extra headers
244
-
245
- extra_query: Add additional query parameters to the request
246
-
247
- extra_body: Add additional JSON properties to the request
248
-
249
- timeout: Override the client-level default timeout for this request, in seconds
241
+ budget_id (str): The ID of the budget.
242
+ extra_headers (Dict[str, str], optional): Additional headers for the request. Defaults to None.
243
+ extra_query (Dict[str, str], optional): Additional query parameters. Defaults to None.
244
+ extra_body (Dict[str, Any], optional): Additional body parameters. Defaults to None.
245
+ timeout (Union[float, None], optional): The timeout for the request in seconds. Defaults to None.
250
246
  """
251
247
  if not budget_id:
252
248
  raise ValueError(f"Expected a non-empty value for `budget_id` but received {budget_id!r}")
@@ -273,13 +269,11 @@ class BudgetsResource(SyncAPIResource):
273
269
  Reset the Budget
274
270
 
275
271
  Args:
276
- extra_headers: Send extra headers
277
-
278
- extra_query: Add additional query parameters to the request
279
-
280
- extra_body: Add additional JSON properties to the request
281
-
282
- timeout: Override the client-level default timeout for this request, in seconds
272
+ budget_id (str): The ID of the budget.
273
+ extra_headers (Dict[str, str], optional): Additional headers for the request. Defaults to None.
274
+ extra_query (Dict[str, str], optional): Additional query parameters. Defaults to None.
275
+ extra_body (Dict[str, Any], optional): Additional body parameters. Defaults to None.
276
+ timeout (Union[float, None], optional): The timeout for the request in seconds. Defaults to None.
283
277
  """
284
278
  if not budget_id:
285
279
  raise ValueError(f"Expected a non-empty value for `budget_id` but received {budget_id!r}")
@@ -310,10 +304,10 @@ class AsyncBudgetsResource(AsyncAPIResource):
310
304
  *,
311
305
  budget_name: str,
312
306
  max: float,
313
- base_cost_estimate: Literal["Max"] | NotGiven = NOT_GIVEN,
314
- budget_response_type: Literal["Block", "Allow"] | NotGiven = NOT_GIVEN,
307
+ base_cost_estimate: Literal["max"] | NotGiven = NOT_GIVEN,
308
+ budget_response_type: Literal["block", "allow"] | NotGiven = NOT_GIVEN,
315
309
  budget_tags: Optional[List[str]] | NotGiven = NOT_GIVEN,
316
- budget_type: Literal["Conservative", "Liberal"] | NotGiven = NOT_GIVEN,
310
+ budget_type: Literal["conservative", "liberal"] | NotGiven = NOT_GIVEN,
317
311
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
318
312
  # The extra values given here take precedence over values defined on the client or passed to this method.
319
313
  extra_headers: Headers | None = None,
payi/resources/ingest.py CHANGED
@@ -56,25 +56,33 @@ class IngestResource(SyncAPIResource):
56
56
  Ingest a request
57
57
 
58
58
  Args:
59
- extra_headers: Send extra headers
60
-
61
- extra_query: Add additional query parameters to the request
62
-
63
- extra_body: Add additional JSON properties to the request
64
-
65
- timeout: Override the client-level default timeout for this request, in seconds
59
+ category (str): The name of the category
60
+ resource (str): The name of the resource.
61
+ input (int): The number of input units
62
+ output (int): The number of output units
63
+ budget_ids (list[str], optional): The budget IDs to associate with the request. Defaults to None.
64
+ request_tags (list[str], optional): The request tags to associate with the request. Defaults to None.
65
+ extra_headers (Dict[str, str], optional): Additional headers for the request. Defaults to None.
66
+ extra_query (Dict[str, str], optional): Additional query parameters. Defaults to None.
67
+ extra_body (Dict[str, Any], optional): Additional body parameters. Defaults to None.
68
+ timeout (Union[float, None], optional): The timeout for the request in seconds. Defaults to None.
66
69
  """
67
70
  valid_ids_str: str | NotGiven = NOT_GIVEN
68
71
  valid_tags_str: str | NotGiven = NOT_GIVEN
69
72
 
70
73
  if isinstance(budget_ids, NotGiven):
71
74
  valid_ids_str = NOT_GIVEN
75
+ elif not isinstance(budget_ids, list): # type: ignore
76
+ raise TypeError("budget_ids must be a list")
72
77
  else:
73
78
  # Proceed with the list comprehension if budget_ids is not NotGiven
74
79
  valid_ids = [id.strip() for id in budget_ids if id.strip()]
75
80
  valid_ids_str = ",".join(valid_ids) if valid_ids else NOT_GIVEN
81
+
76
82
  if isinstance(request_tags, NotGiven):
77
83
  valid_tags_str = NOT_GIVEN
84
+ elif not isinstance(request_tags, list): # type: ignore
85
+ raise TypeError("request_tags must be a list")
78
86
  else:
79
87
  # Proceed with the list comprehension if budget_ids is not NotGiven
80
88
  valid_tags = [tag.strip() for tag in request_tags if tag.strip()]
@@ -13,10 +13,10 @@ class BudgetCreateParams(TypedDict, total=False):
13
13
 
14
14
  max: Required[float]
15
15
 
16
- base_cost_estimate: Literal["Max"]
16
+ base_cost_estimate: Literal["max"]
17
17
 
18
- budget_response_type: Literal["Block", "Allow"]
18
+ budget_response_type: Literal["block", "allow"]
19
19
 
20
20
  budget_tags: Optional[List[str]]
21
21
 
22
- budget_type: Literal["Conservative", "Liberal"]
22
+ budget_type: Literal["conservative", "liberal"]
@@ -83,22 +83,22 @@ class BudgetHistoryTotals(BaseModel):
83
83
 
84
84
 
85
85
  class BudgetHistory(BaseModel):
86
- base_cost_estimate: Optional[Literal["Max"]] = None
86
+ base_cost_estimate: Optional[Literal["max"]] = None
87
87
 
88
88
  budget_id: Optional[str] = None
89
89
 
90
90
  budget_name: Optional[str] = None
91
91
 
92
- budget_response_type: Optional[Literal["Block", "Allow"]] = None
92
+ budget_reset_timestamp: Optional[datetime] = None
93
+
94
+ budget_response_type: Optional[Literal["block", "allow"]] = None
93
95
 
94
96
  budget_tags: Optional[List[str]] = None
95
97
 
96
- budget_type: Optional[Literal["Conservative", "Liberal"]] = None
98
+ budget_type: Optional[Literal["conservative", "liberal"]] = None
97
99
 
98
100
  max: Optional[float] = None
99
101
 
100
- reset_date: Optional[datetime] = None
101
-
102
102
  totals: Optional[BudgetHistoryTotals] = None
103
103
 
104
104
 
@@ -18,7 +18,7 @@ class BudgetTotals(BaseModel):
18
18
 
19
19
 
20
20
  class Budget(BaseModel):
21
- base_cost_estimate: Literal["Max"]
21
+ base_cost_estimate: Literal["max"]
22
22
 
23
23
  budget_creation_timestamp: datetime
24
24
 
@@ -26,9 +26,9 @@ class Budget(BaseModel):
26
26
 
27
27
  budget_name: str
28
28
 
29
- budget_response_type: Literal["Block", "Allow"]
29
+ budget_response_type: Literal["block", "allow"]
30
30
 
31
- budget_type: Literal["Conservative", "Liberal"]
31
+ budget_type: Literal["conservative", "liberal"]
32
32
 
33
33
  budget_update_timestamp: datetime
34
34
 
@@ -20,7 +20,7 @@ class ItemTotals(BaseModel):
20
20
 
21
21
 
22
22
  class Item(BaseModel):
23
- base_cost_estimate: Literal["Max"]
23
+ base_cost_estimate: Literal["max"]
24
24
 
25
25
  budget_creation_timestamp: datetime
26
26
 
@@ -28,9 +28,9 @@ class Item(BaseModel):
28
28
 
29
29
  budget_name: str
30
30
 
31
- budget_response_type: Literal["Block", "Allow"]
31
+ budget_response_type: Literal["block", "allow"]
32
32
 
33
- budget_type: Literal["Conservative", "Liberal"]
33
+ budget_type: Literal["conservative", "liberal"]
34
34
 
35
35
  budget_update_timestamp: datetime
36
36
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: payi
3
- Version: 0.1.0a8
3
+ Version: 0.1.0a10
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,17 +1,17 @@
1
1
  payi/__init__.py,sha256=LWpfR6WSMPTnmmx3ToqqZ0A8CNduLcuxY1SSOqhPxuk,2381
2
- payi/_base_client.py,sha256=70yaoCPiDyAppE3S2nKsAfpKOztY3SEjlhJq2898umc,65090
2
+ payi/_base_client.py,sha256=5gYnjxN9eWzRl0eIm7Q8cu_LHS7yDPLsn9E9j700VIw,65696
3
3
  payi/_client.py,sha256=lQBkhIC3OQpsv84PQvVpoOPdR5QabmEPkzyn7U9O1aA,15622
4
4
  payi/_compat.py,sha256=m0I0haqFZuVxd5m227_8nNmvA1saXyuNJ7BjidX_PTE,6389
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=kbTvpEMoo6a_660jyvLNARXzS7fsSlg-O0yQrjJpdBs,26876
8
+ payi/_models.py,sha256=k20LxEUkldClNv6I_51gfVsisaGqMHXReSflhS3uz9Q,27656
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=Ls4MSTXQFcf_KpAijqH7H0RxHhpuu3maVXh4b1igY6Q,164
14
+ payi/_version.py,sha256=BVdliMCUN6eTb9QTla5jn-MQd_Cm2yeHS9Tnr9cVF90,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
@@ -25,21 +25,21 @@ 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
27
  payi/resources/__init__.py,sha256=1p8kzMES8NNDQQoK3TEDE-8vVuQ59xxUjyyblZJBTjw,1015
28
- payi/resources/ingest.py,sha256=bMWFiUsMbV913HmE61CEGnPcqTydM6OLNQP22Kg1_Eg,7631
28
+ payi/resources/ingest.py,sha256=KnR7ouxd9Qx_078BNB9BIeB-nVQoTLpFoqCW1Lmyb5k,8428
29
29
  payi/resources/budgets/__init__.py,sha256=w1UhOdDXtUH4A91ME5Tw2nr9bRvPJyJY1YWiVVy7jj0,989
30
- payi/resources/budgets/budgets.py,sha256=aMu39MrRsVTtNfYwQPMeFK329ouwnHuFXM_vK9Ewj0k,24047
30
+ payi/resources/budgets/budgets.py,sha256=buS9vZ_kyBSJwYquGhndKmDTs8HYBkIPMOtzesAiQU0,25757
31
31
  payi/resources/budgets/tags.py,sha256=jzP0nal287bL2htY1TwDcdFRJyNMm6IdM936O1jCeMo,17850
32
32
  payi/types/__init__.py,sha256=JjHDryLWv31S0mtDuNEepBt4Dp1YSEtGRks9SBiMj4o,897
33
- payi/types/budget_create_params.py,sha256=dDQvPOY8lx5oGuumAYQybAx-jPTRupsipVeezBd0l7I,543
34
- payi/types/budget_history_response.py,sha256=SeOabYz6xQvH4YkJSejbk_dUB49LZy7Y2MXZFPvrYMY,2702
33
+ payi/types/budget_create_params.py,sha256=ow-Uo7ZxJfZhRwfwz2f-YppIDAZu1luo1-HqggLyU9c,543
34
+ payi/types/budget_history_response.py,sha256=7geNJDvwl5gJGnUsKMTtaGkca2Lk0e5oEKQarsCj3nw,2714
35
35
  payi/types/budget_list_params.py,sha256=Win-Spveurf6WarTgCXXsP-yDIxr_HCP7oV_4JbqKOc,674
36
- payi/types/budget_response.py,sha256=s_bBLUKEbJ0NaKEZUERMmeMBu5_C-4yjAw7wpcUtjTI,974
36
+ payi/types/budget_response.py,sha256=tdZxvnrGGr1ozWTvENR1OFEPEXndwkxuRa3DvkFAndI,974
37
37
  payi/types/budget_update_params.py,sha256=TTH7uu1c1zBK5zYhh2SPuRWEwr1XwDX_8bVS_GxIn9I,306
38
38
  payi/types/cost_data.py,sha256=jZtju_3WWNXh4wCu77XnyvxZkvewcvXBS_V0z07BizA,284
39
39
  payi/types/cost_details.py,sha256=3ldvnYILAG6Sz9wGWMs1SZvIfdGEbn5i4-CauWEXMPA,265
40
40
  payi/types/default_response.py,sha256=o617LpRsCIZHCZxAc5nVI2JQ3HPGZo4gCDvSDkxkIJ8,270
41
41
  payi/types/ingest_units_params.py,sha256=NhC7wRF0lpoKikUPQUAgE1OxpU8dqMxtRZNIbiXkYCA,575
42
- payi/types/paged_budget_list.py,sha256=DZVCO5LM0pN5LM6GyxWrz8D4VqDNNeSEWuIBsDp6tx8,1526
42
+ payi/types/paged_budget_list.py,sha256=eTWFP2fcWEOCm7hkK_TjktPpek1bd_LwAS_wjBIEG7I,1526
43
43
  payi/types/proxy_result.py,sha256=i8vx5sXUw1CpNq-dOLGTE4BJPqROMlwzc0vLeG3XK-o,686
44
44
  payi/types/requests_data.py,sha256=G9N8SKqR5-851hIe8mFqu6XYBAXjQ-VhCQyQGXKFb1A,417
45
45
  payi/types/budgets/__init__.py,sha256=5ByVuqOcgSYLHmGzhuj6-HG48mtQhC6oT5U5tNjQtxk,725
@@ -52,7 +52,7 @@ payi/types/budgets/tag_remove_params.py,sha256=fNiHex1U11o_B0bfJDkpGARkEf99J-bd-
52
52
  payi/types/budgets/tag_remove_response.py,sha256=Wt4KwC76y3qxdEqKhXzFkYu2iECYePgXcpidXkuheWQ,219
53
53
  payi/types/budgets/tag_update_params.py,sha256=bWWeDqfySt7CZ6HDsZzENREOWGWGWFgnAtyleNMwUsE,314
54
54
  payi/types/budgets/tag_update_response.py,sha256=Vlf-zxLZzvmhUodhzF7hiqWcxyjrb7Ri_lSajg8vOPM,219
55
- payi-0.1.0a8.dist-info/METADATA,sha256=jEUmB2yAVCC_6IRuV-Wzj8obdFgO0LkKbYBAJkzOWjY,11872
56
- payi-0.1.0a8.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
57
- payi-0.1.0a8.dist-info/licenses/LICENSE,sha256=8vX1pjh3esb6D5DvXAf6NxiBcVyon8aHWNJCxmmHXeY,11334
58
- payi-0.1.0a8.dist-info/RECORD,,
55
+ payi-0.1.0a10.dist-info/METADATA,sha256=zR99hLC5LSOoXaml-CPMkU9-cfjrA-AUWThtZPbTNRU,11873
56
+ payi-0.1.0a10.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
57
+ payi-0.1.0a10.dist-info/licenses/LICENSE,sha256=8vX1pjh3esb6D5DvXAf6NxiBcVyon8aHWNJCxmmHXeY,11334
58
+ payi-0.1.0a10.dist-info/RECORD,,