payi 0.1.0a113__py3-none-any.whl → 0.1.0a115__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/_utils/_transform.py CHANGED
@@ -16,18 +16,20 @@ from ._utils import (
16
16
  lru_cache,
17
17
  is_mapping,
18
18
  is_iterable,
19
+ is_sequence,
19
20
  )
20
21
  from .._files import is_base64_file_input
22
+ from ._compat import get_origin, is_typeddict
21
23
  from ._typing import (
22
24
  is_list_type,
23
25
  is_union_type,
24
26
  extract_type_arg,
25
27
  is_iterable_type,
26
28
  is_required_type,
29
+ is_sequence_type,
27
30
  is_annotated_type,
28
31
  strip_annotated_type,
29
32
  )
30
- from .._compat import get_origin, model_dump, is_typeddict
31
33
 
32
34
  _T = TypeVar("_T")
33
35
 
@@ -167,6 +169,8 @@ def _transform_recursive(
167
169
 
168
170
  Defaults to the same value as the `annotation` argument.
169
171
  """
172
+ from .._compat import model_dump
173
+
170
174
  if inner_type is None:
171
175
  inner_type = annotation
172
176
 
@@ -184,6 +188,8 @@ def _transform_recursive(
184
188
  (is_list_type(stripped_type) and is_list(data))
185
189
  # Iterable[T]
186
190
  or (is_iterable_type(stripped_type) and is_iterable(data) and not isinstance(data, str))
191
+ # Sequence[T]
192
+ or (is_sequence_type(stripped_type) and is_sequence(data) and not isinstance(data, str))
187
193
  ):
188
194
  # dicts are technically iterable, but it is an iterable on the keys of the dict and is not usually
189
195
  # intended as an iterable, so we don't transform it.
@@ -329,6 +335,8 @@ async def _async_transform_recursive(
329
335
 
330
336
  Defaults to the same value as the `annotation` argument.
331
337
  """
338
+ from .._compat import model_dump
339
+
332
340
  if inner_type is None:
333
341
  inner_type = annotation
334
342
 
@@ -346,6 +354,8 @@ async def _async_transform_recursive(
346
354
  (is_list_type(stripped_type) and is_list(data))
347
355
  # Iterable[T]
348
356
  or (is_iterable_type(stripped_type) and is_iterable(data) and not isinstance(data, str))
357
+ # Sequence[T]
358
+ or (is_sequence_type(stripped_type) and is_sequence(data) and not isinstance(data, str))
349
359
  ):
350
360
  # dicts are technically iterable, but it is an iterable on the keys of the dict and is not usually
351
361
  # intended as an iterable, so we don't transform it.
payi/_utils/_typing.py CHANGED
@@ -15,7 +15,7 @@ from typing_extensions import (
15
15
 
16
16
  from ._utils import lru_cache
17
17
  from .._types import InheritsGeneric
18
- from .._compat import is_union as _is_union
18
+ from ._compat import is_union as _is_union
19
19
 
20
20
 
21
21
  def is_annotated_type(typ: type) -> bool:
@@ -26,6 +26,11 @@ def is_list_type(typ: type) -> bool:
26
26
  return (get_origin(typ) or typ) == list
27
27
 
28
28
 
29
+ def is_sequence_type(typ: type) -> bool:
30
+ origin = get_origin(typ) or typ
31
+ return origin == typing_extensions.Sequence or origin == typing.Sequence or origin == _c_abc.Sequence
32
+
33
+
29
34
  def is_iterable_type(typ: type) -> bool:
30
35
  """If the given type is `typing.Iterable[T]`"""
31
36
  origin = get_origin(typ) or typ
payi/_utils/_utils.py CHANGED
@@ -22,7 +22,6 @@ from typing_extensions import TypeGuard
22
22
  import sniffio
23
23
 
24
24
  from .._types import NotGiven, FileTypes, NotGivenOr, HeadersLike
25
- from .._compat import parse_date as parse_date, parse_datetime as parse_datetime
26
25
 
27
26
  _T = TypeVar("_T")
28
27
  _TupleT = TypeVar("_TupleT", bound=Tuple[object, ...])
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.113" # x-release-please-version
4
+ __version__ = "0.1.0-alpha.115" # x-release-please-version
@@ -245,7 +245,7 @@ class _AnthropicProviderRequest(_ProviderRequest):
245
245
  return True
246
246
 
247
247
  def anthropic_process_compute_input_cost(request: _ProviderRequest, usage: 'dict[str, Any]') -> int:
248
- input = usage['input_tokens']
248
+ input = usage.get('input_tokens', 0)
249
249
  units: dict[str, Units] = request._ingest["units"]
250
250
 
251
251
  cache_creation_input_tokens = usage.get("cache_creation_input_tokens", 0)
@@ -282,11 +282,11 @@ def anthropic_process_compute_input_cost(request: _ProviderRequest, usage: 'dict
282
282
  return _PayiInstrumentor.update_for_vision(input, units, request._estimated_prompt_tokens, is_large_context=request._is_large_context)
283
283
 
284
284
  def anthropic_process_synchronous_response(request: _ProviderRequest, response: 'dict[str, Any]', log_prompt_and_response: bool, assign_id: bool) -> Any:
285
- usage = response['usage']
285
+ usage = response.get('usage', {})
286
286
  units: dict[str, Units] = request._ingest["units"]
287
287
 
288
288
  input_tokens = anthropic_process_compute_input_cost(request, usage)
289
- output = usage['output_tokens']
289
+ output = usage.get('output_tokens', 0)
290
290
 
291
291
  large_context = "_large_context" if request._is_large_context else ""
292
292
  units["text"+large_context] = Units(input=input_tokens, output=output)
@@ -327,7 +327,7 @@ def anthropic_process_chunk(request: _ProviderRequest, chunk: 'dict[str, Any]',
327
327
  if model and 'resource' in request._ingest:
328
328
  request._instrumentor._logger.debug(f"Anthropic streaming, reported model: {model}, instrumented model {request._ingest['resource']}")
329
329
 
330
- usage = message['usage']
330
+ usage = message.get('usage', {})
331
331
  units = request._ingest["units"]
332
332
 
333
333
  input = anthropic_process_compute_input_cost(request, usage)
@@ -424,10 +424,10 @@ class _BedrockConverseProviderRequest(_BedrockProviderRequest):
424
424
  log_prompt_and_response: bool,
425
425
  kwargs: Any) -> Any:
426
426
 
427
- usage = response["usage"]
428
- input = usage["inputTokens"]
429
- output = usage["outputTokens"]
430
-
427
+ usage = response.get("usage", {})
428
+ input = usage.get("inputTokens", 0)
429
+ output = usage.get("outputTokens", 0)
430
+
431
431
  units: dict[str, Units] = self._ingest["units"]
432
432
  units["text"] = Units(input=input, output=output)
433
433
 
@@ -456,9 +456,9 @@ class _BedrockConverseProviderRequest(_BedrockProviderRequest):
456
456
  metadata = chunk.get("metadata", {})
457
457
 
458
458
  if metadata:
459
- usage = metadata['usage']
460
- input = usage["inputTokens"]
461
- output = usage["outputTokens"]
459
+ usage = metadata.get('usage', {})
460
+ input = usage.get("inputTokens", 0)
461
+ output = usage.get("outputTokens", 0)
462
462
  self._ingest["units"]["text"] = Units(input=input, output=output)
463
463
 
464
464
  ingest = True
@@ -2,12 +2,12 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List, Union
5
+ from typing import Union
6
6
  from datetime import datetime
7
7
 
8
8
  import httpx
9
9
 
10
- from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven
10
+ from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven, SequenceNotStr
11
11
  from ..._utils import maybe_transform, async_maybe_transform
12
12
  from ..._compat import cached_property
13
13
  from ..._resource import SyncAPIResource, AsyncAPIResource
@@ -49,7 +49,7 @@ class FixedCostResourcesResource(SyncAPIResource):
49
49
  resource: str,
50
50
  *,
51
51
  category: str,
52
- units: List[str],
52
+ units: SequenceNotStr[str],
53
53
  cost_per_hour: float | NotGiven = NOT_GIVEN,
54
54
  start_timestamp: Union[str, datetime, None] | NotGiven = NOT_GIVEN,
55
55
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
@@ -117,7 +117,7 @@ class AsyncFixedCostResourcesResource(AsyncAPIResource):
117
117
  resource: str,
118
118
  *,
119
119
  category: str,
120
- units: List[str],
120
+ units: SequenceNotStr[str],
121
121
  cost_per_hour: float | NotGiven = NOT_GIVEN,
122
122
  start_timestamp: Union[str, datetime, None] | NotGiven = NOT_GIVEN,
123
123
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
payi/resources/ingest.py CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Dict, List, Union, Iterable, Optional
5
+ from typing import Dict, Union, Iterable, Optional
6
6
  from datetime import datetime
7
7
 
8
8
  import httpx
@@ -10,7 +10,7 @@ import httpx
10
10
  from payi._utils._utils import is_given
11
11
 
12
12
  from ..types import ingest_units_params
13
- from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven
13
+ from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven, SequenceNotStr
14
14
  from .._utils import maybe_transform, strip_not_given, async_maybe_transform
15
15
  from .._compat import cached_property
16
16
  from .._resource import SyncAPIResource, AsyncAPIResource
@@ -98,7 +98,7 @@ class IngestResource(SyncAPIResource):
98
98
  | NotGiven = NOT_GIVEN,
99
99
  provider_response_headers: Optional[Iterable[PayICommonModelsAPIRouterHeaderInfoParam]] | NotGiven = NOT_GIVEN,
100
100
  provider_response_id: Optional[str] | NotGiven = NOT_GIVEN,
101
- provider_response_json: Union[str, List[str], None] | NotGiven = NOT_GIVEN,
101
+ provider_response_json: Union[str, SequenceNotStr[str], None] | NotGiven = NOT_GIVEN,
102
102
  provider_uri: Optional[str] | NotGiven = NOT_GIVEN,
103
103
  resource: Optional[str] | NotGiven = NOT_GIVEN,
104
104
  time_to_first_completion_token_ms: Optional[int] | NotGiven = NOT_GIVEN,
@@ -328,7 +328,7 @@ class AsyncIngestResource(AsyncAPIResource):
328
328
  | NotGiven = NOT_GIVEN,
329
329
  provider_response_headers: Optional[Iterable[PayICommonModelsAPIRouterHeaderInfoParam]] | NotGiven = NOT_GIVEN,
330
330
  provider_response_id: Optional[str] | NotGiven = NOT_GIVEN,
331
- provider_response_json: Union[str, List[str], None] | NotGiven = NOT_GIVEN,
331
+ provider_response_json: Union[str, SequenceNotStr[str], None] | NotGiven = NOT_GIVEN,
332
332
  provider_uri: Optional[str] | NotGiven = NOT_GIVEN,
333
333
  resource: Optional[str] | NotGiven = NOT_GIVEN,
334
334
  time_to_first_completion_token_ms: Optional[int] | NotGiven = NOT_GIVEN,
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List, Union, Optional
5
+ from typing import Union, Optional
6
6
  from datetime import datetime
7
7
  from typing_extensions import Literal
8
8
 
@@ -17,7 +17,7 @@ from .tags import (
17
17
  AsyncTagsResourceWithStreamingResponse,
18
18
  )
19
19
  from ...types import limit_list_params, limit_reset_params, limit_create_params, limit_update_params
20
- from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven
20
+ from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven, SequenceNotStr
21
21
  from ..._utils import maybe_transform, async_maybe_transform
22
22
  from ..._compat import cached_property
23
23
  from ..._resource import SyncAPIResource, AsyncAPIResource
@@ -67,7 +67,7 @@ class LimitsResource(SyncAPIResource):
67
67
  limit_name: str,
68
68
  max: float,
69
69
  limit_id: Optional[str] | NotGiven = NOT_GIVEN,
70
- limit_tags: Optional[List[str]] | NotGiven = NOT_GIVEN,
70
+ limit_tags: Optional[SequenceNotStr[str]] | NotGiven = NOT_GIVEN,
71
71
  limit_type: Literal["block", "allow"] | NotGiven = NOT_GIVEN,
72
72
  threshold: Optional[float] | NotGiven = NOT_GIVEN,
73
73
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
@@ -334,7 +334,7 @@ class AsyncLimitsResource(AsyncAPIResource):
334
334
  limit_name: str,
335
335
  max: float,
336
336
  limit_id: Optional[str] | NotGiven = NOT_GIVEN,
337
- limit_tags: Optional[List[str]] | NotGiven = NOT_GIVEN,
337
+ limit_tags: Optional[SequenceNotStr[str]] | NotGiven = NOT_GIVEN,
338
338
  limit_type: Literal["block", "allow"] | NotGiven = NOT_GIVEN,
339
339
  threshold: Optional[float] | NotGiven = NOT_GIVEN,
340
340
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
@@ -2,11 +2,9 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List
6
-
7
5
  import httpx
8
6
 
9
- from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven
7
+ from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven, SequenceNotStr
10
8
  from ..._utils import maybe_transform, async_maybe_transform
11
9
  from ..._compat import cached_property
12
10
  from ..._resource import SyncAPIResource, AsyncAPIResource
@@ -51,7 +49,7 @@ class TagsResource(SyncAPIResource):
51
49
  self,
52
50
  limit_id: str,
53
51
  *,
54
- limit_tags: List[str],
52
+ limit_tags: SequenceNotStr[str],
55
53
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
56
54
  # The extra values given here take precedence over values defined on the client or passed to this method.
57
55
  extra_headers: Headers | None = None,
@@ -88,7 +86,7 @@ class TagsResource(SyncAPIResource):
88
86
  self,
89
87
  limit_id: str,
90
88
  *,
91
- limit_tags: List[str],
89
+ limit_tags: SequenceNotStr[str],
92
90
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
93
91
  # The extra values given here take precedence over values defined on the client or passed to this method.
94
92
  extra_headers: Headers | None = None,
@@ -191,7 +189,7 @@ class TagsResource(SyncAPIResource):
191
189
  self,
192
190
  limit_id: str,
193
191
  *,
194
- limit_tags: List[str],
192
+ limit_tags: SequenceNotStr[str],
195
193
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
196
194
  # The extra values given here take precedence over values defined on the client or passed to this method.
197
195
  extra_headers: Headers | None = None,
@@ -249,7 +247,7 @@ class AsyncTagsResource(AsyncAPIResource):
249
247
  self,
250
248
  limit_id: str,
251
249
  *,
252
- limit_tags: List[str],
250
+ limit_tags: SequenceNotStr[str],
253
251
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
254
252
  # The extra values given here take precedence over values defined on the client or passed to this method.
255
253
  extra_headers: Headers | None = None,
@@ -286,7 +284,7 @@ class AsyncTagsResource(AsyncAPIResource):
286
284
  self,
287
285
  limit_id: str,
288
286
  *,
289
- limit_tags: List[str],
287
+ limit_tags: SequenceNotStr[str],
290
288
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
291
289
  # The extra values given here take precedence over values defined on the client or passed to this method.
292
290
  extra_headers: Headers | None = None,
@@ -389,7 +387,7 @@ class AsyncTagsResource(AsyncAPIResource):
389
387
  self,
390
388
  limit_id: str,
391
389
  *,
392
- limit_tags: List[str],
390
+ limit_tags: SequenceNotStr[str],
393
391
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
394
392
  # The extra values given here take precedence over values defined on the client or passed to this method.
395
393
  extra_headers: Headers | None = None,
@@ -2,12 +2,12 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List, Optional
5
+ from typing import Optional
6
6
  from typing_extensions import Literal
7
7
 
8
8
  import httpx
9
9
 
10
- from ...._types import NOT_GIVEN, Body, Query, Headers, NotGiven
10
+ from ...._types import NOT_GIVEN, Body, Query, Headers, NotGiven, SequenceNotStr
11
11
  from ...._utils import maybe_transform, async_maybe_transform
12
12
  from ...._compat import cached_property
13
13
  from ...._resource import SyncAPIResource, AsyncAPIResource
@@ -49,7 +49,7 @@ class LimitConfigResource(SyncAPIResource):
49
49
  use_case_name: str,
50
50
  *,
51
51
  max: float,
52
- limit_tags: Optional[List[str]] | NotGiven = NOT_GIVEN,
52
+ limit_tags: Optional[SequenceNotStr[str]] | NotGiven = NOT_GIVEN,
53
53
  limit_type: Literal["block", "allow"] | NotGiven = NOT_GIVEN,
54
54
  threshold: Optional[float] | NotGiven = NOT_GIVEN,
55
55
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
@@ -149,7 +149,7 @@ class AsyncLimitConfigResource(AsyncAPIResource):
149
149
  use_case_name: str,
150
150
  *,
151
151
  max: float,
152
- limit_tags: Optional[List[str]] | NotGiven = NOT_GIVEN,
152
+ limit_tags: Optional[SequenceNotStr[str]] | NotGiven = NOT_GIVEN,
153
153
  limit_type: Literal["block", "allow"] | NotGiven = NOT_GIVEN,
154
154
  threshold: Optional[float] | NotGiven = NOT_GIVEN,
155
155
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
@@ -2,10 +2,11 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List, Union
5
+ from typing import Union
6
6
  from datetime import datetime
7
7
  from typing_extensions import Required, Annotated, TypedDict
8
8
 
9
+ from ..._types import SequenceNotStr
9
10
  from ..._utils import PropertyInfo
10
11
 
11
12
  __all__ = ["FixedCostResourceCreateParams"]
@@ -14,7 +15,7 @@ __all__ = ["FixedCostResourceCreateParams"]
14
15
  class FixedCostResourceCreateParams(TypedDict, total=False):
15
16
  category: Required[str]
16
17
 
17
- units: Required[List[str]]
18
+ units: Required[SequenceNotStr[str]]
18
19
 
19
20
  cost_per_hour: float
20
21
 
@@ -2,10 +2,11 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Dict, List, Union, Iterable, Optional
5
+ from typing import Dict, Union, Iterable, Optional
6
6
  from datetime import datetime
7
7
  from typing_extensions import Required, Annotated, TypedDict
8
8
 
9
+ from .._types import SequenceNotStr
9
10
  from .._utils import PropertyInfo
10
11
  from .shared_params.ingest_units import IngestUnits
11
12
  from .pay_i_common_models_api_router_header_info_param import PayICommonModelsAPIRouterHeaderInfoParam
@@ -32,7 +33,7 @@ class IngestEventParam(TypedDict, total=False):
32
33
 
33
34
  http_status_code: Optional[int]
34
35
 
35
- limit_ids: Optional[List[str]]
36
+ limit_ids: Optional[SequenceNotStr[str]]
36
37
 
37
38
  properties: Optional[Dict[str, str]]
38
39
 
@@ -48,11 +49,11 @@ class IngestEventParam(TypedDict, total=False):
48
49
 
49
50
  provider_response_id: Optional[str]
50
51
 
51
- provider_response_json: Union[str, List[str], None]
52
+ provider_response_json: Union[str, SequenceNotStr[str], None]
52
53
 
53
54
  provider_uri: Optional[str]
54
55
 
55
- request_tags: Optional[List[str]]
56
+ request_tags: Optional[SequenceNotStr[str]]
56
57
 
57
58
  resource: Optional[str]
58
59
 
@@ -2,10 +2,11 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Dict, List, Union, Iterable, Optional
5
+ from typing import Dict, Union, Iterable, Optional
6
6
  from datetime import datetime
7
7
  from typing_extensions import Required, Annotated, TypedDict
8
8
 
9
+ from .._types import SequenceNotStr
9
10
  from .._utils import PropertyInfo
10
11
  from .shared_params.ingest_units import IngestUnits
11
12
  from .pay_i_common_models_api_router_header_info_param import PayICommonModelsAPIRouterHeaderInfoParam
@@ -38,7 +39,7 @@ class IngestUnitsParams(TypedDict, total=False):
38
39
 
39
40
  provider_response_id: Optional[str]
40
41
 
41
- provider_response_json: Union[str, List[str], None]
42
+ provider_response_json: Union[str, SequenceNotStr[str], None]
42
43
 
43
44
  provider_uri: Optional[str]
44
45
 
@@ -2,9 +2,11 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List, Optional
5
+ from typing import Optional
6
6
  from typing_extensions import Literal, Required, TypedDict
7
7
 
8
+ from .._types import SequenceNotStr
9
+
8
10
  __all__ = ["LimitCreateParams"]
9
11
 
10
12
 
@@ -15,7 +17,7 @@ class LimitCreateParams(TypedDict, total=False):
15
17
 
16
18
  limit_id: Optional[str]
17
19
 
18
- limit_tags: Optional[List[str]]
20
+ limit_tags: Optional[SequenceNotStr[str]]
19
21
 
20
22
  limit_type: Literal["block", "allow"]
21
23
 
@@ -2,12 +2,13 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List
6
5
  from typing_extensions import Required, TypedDict
7
6
 
7
+ from ..._types import SequenceNotStr
8
+
8
9
  __all__ = ["TagCreateParams"]
9
10
 
10
11
 
11
12
  class TagCreateParams(TypedDict, total=False):
12
- limit_tags: Required[List[str]]
13
+ limit_tags: Required[SequenceNotStr[str]]
13
14
  """List of limit tags"""
@@ -2,12 +2,13 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List
6
5
  from typing_extensions import Required, TypedDict
7
6
 
7
+ from ..._types import SequenceNotStr
8
+
8
9
  __all__ = ["TagRemoveParams"]
9
10
 
10
11
 
11
12
  class TagRemoveParams(TypedDict, total=False):
12
- limit_tags: Required[List[str]]
13
+ limit_tags: Required[SequenceNotStr[str]]
13
14
  """List of limit tags"""
@@ -2,12 +2,13 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List
6
5
  from typing_extensions import Required, TypedDict
7
6
 
7
+ from ..._types import SequenceNotStr
8
+
8
9
  __all__ = ["TagUpdateParams"]
9
10
 
10
11
 
11
12
  class TagUpdateParams(TypedDict, total=False):
12
- limit_tags: Required[List[str]]
13
+ limit_tags: Required[SequenceNotStr[str]]
13
14
  """List of limit tags"""
@@ -2,16 +2,18 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List, Optional
5
+ from typing import Optional
6
6
  from typing_extensions import Literal, Required, TypedDict
7
7
 
8
+ from ..._types import SequenceNotStr
9
+
8
10
  __all__ = ["PayICommonModelsBudgetManagementCreateLimitBase"]
9
11
 
10
12
 
11
13
  class PayICommonModelsBudgetManagementCreateLimitBase(TypedDict, total=False):
12
14
  max: Required[float]
13
15
 
14
- limit_tags: Optional[List[str]]
16
+ limit_tags: Optional[SequenceNotStr[str]]
15
17
 
16
18
  limit_type: Literal["block", "allow"]
17
19
 
@@ -2,16 +2,18 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List, Optional
5
+ from typing import Optional
6
6
  from typing_extensions import Literal, Required, TypedDict
7
7
 
8
+ from ...._types import SequenceNotStr
9
+
8
10
  __all__ = ["LimitConfigCreateParams"]
9
11
 
10
12
 
11
13
  class LimitConfigCreateParams(TypedDict, total=False):
12
14
  max: Required[float]
13
15
 
14
- limit_tags: Optional[List[str]]
16
+ limit_tags: Optional[SequenceNotStr[str]]
15
17
 
16
18
  limit_type: Literal["block", "allow"]
17
19
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: payi
3
- Version: 0.1.0a113
3
+ Version: 0.1.0a115
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