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 +18 -2
- payi/_models.py +27 -0
- payi/_version.py +1 -1
- payi/resources/budgets/budgets.py +42 -48
- payi/resources/ingest.py +15 -7
- payi/types/budget_create_params.py +3 -3
- payi/types/budget_history_response.py +5 -5
- payi/types/budget_response.py +3 -3
- payi/types/paged_budget_list.py +3 -3
- {payi-0.1.0a8.dist-info → payi-0.1.0a10.dist-info}/METADATA +1 -1
- {payi-0.1.0a8.dist-info → payi-0.1.0a10.dist-info}/RECORD +13 -13
- {payi-0.1.0a8.dist-info → payi-0.1.0a10.dist-info}/WHEEL +0 -0
- {payi-0.1.0a8.dist-info → payi-0.1.0a10.dist-info}/licenses/LICENSE +0 -0
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=
|
|
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
|
@@ -58,10 +58,10 @@ class BudgetsResource(SyncAPIResource):
|
|
|
58
58
|
*,
|
|
59
59
|
budget_name: str,
|
|
60
60
|
max: float,
|
|
61
|
-
base_cost_estimate: Literal["
|
|
62
|
-
budget_response_type: Literal["
|
|
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["
|
|
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
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
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
|
-
|
|
119
|
-
|
|
120
|
-
extra_query:
|
|
121
|
-
|
|
122
|
-
|
|
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
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
timeout
|
|
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:
|
|
199
|
-
|
|
200
|
-
|
|
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
|
-
|
|
244
|
-
|
|
245
|
-
extra_query:
|
|
246
|
-
|
|
247
|
-
|
|
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
|
-
|
|
277
|
-
|
|
278
|
-
extra_query:
|
|
279
|
-
|
|
280
|
-
|
|
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["
|
|
314
|
-
budget_response_type: Literal["
|
|
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["
|
|
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
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
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["
|
|
16
|
+
base_cost_estimate: Literal["max"]
|
|
17
17
|
|
|
18
|
-
budget_response_type: Literal["
|
|
18
|
+
budget_response_type: Literal["block", "allow"]
|
|
19
19
|
|
|
20
20
|
budget_tags: Optional[List[str]]
|
|
21
21
|
|
|
22
|
-
budget_type: Literal["
|
|
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["
|
|
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
|
-
|
|
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["
|
|
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
|
|
payi/types/budget_response.py
CHANGED
|
@@ -18,7 +18,7 @@ class BudgetTotals(BaseModel):
|
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
class Budget(BaseModel):
|
|
21
|
-
base_cost_estimate: Literal["
|
|
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["
|
|
29
|
+
budget_response_type: Literal["block", "allow"]
|
|
30
30
|
|
|
31
|
-
budget_type: Literal["
|
|
31
|
+
budget_type: Literal["conservative", "liberal"]
|
|
32
32
|
|
|
33
33
|
budget_update_timestamp: datetime
|
|
34
34
|
|
payi/types/paged_budget_list.py
CHANGED
|
@@ -20,7 +20,7 @@ class ItemTotals(BaseModel):
|
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
class Item(BaseModel):
|
|
23
|
-
base_cost_estimate: Literal["
|
|
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["
|
|
31
|
+
budget_response_type: Literal["block", "allow"]
|
|
32
32
|
|
|
33
|
-
budget_type: Literal["
|
|
33
|
+
budget_type: Literal["conservative", "liberal"]
|
|
34
34
|
|
|
35
35
|
budget_update_timestamp: datetime
|
|
36
36
|
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
payi/__init__.py,sha256=LWpfR6WSMPTnmmx3ToqqZ0A8CNduLcuxY1SSOqhPxuk,2381
|
|
2
|
-
payi/_base_client.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
34
|
-
payi/types/budget_history_response.py,sha256=
|
|
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=
|
|
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=
|
|
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.
|
|
56
|
-
payi-0.1.
|
|
57
|
-
payi-0.1.
|
|
58
|
-
payi-0.1.
|
|
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,,
|
|
File without changes
|
|
File without changes
|