dub 0.21.0__py3-none-any.whl → 0.22.1__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.
- dub/_version.py +3 -3
- dub/models/components/__init__.py +0 -2
- dub/models/components/analyticscities.py +5 -7
- dub/models/operations/getcustomers.py +29 -4
- dub/models/operations/getqrcode.py +4 -4
- dub/models/operations/updateworkspace.py +40 -3
- dub/sdk.py +1 -1
- dub/utils/serializers.py +32 -3
- {dub-0.21.0.dist-info → dub-0.22.1.dist-info}/METADATA +2 -4
- {dub-0.21.0.dist-info → dub-0.22.1.dist-info}/RECORD +12 -12
- {dub-0.21.0.dist-info → dub-0.22.1.dist-info}/LICENSE +0 -0
- {dub-0.21.0.dist-info → dub-0.22.1.dist-info}/WHEEL +0 -0
dub/_version.py
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
import importlib.metadata
|
|
4
4
|
|
|
5
5
|
__title__: str = "dub"
|
|
6
|
-
__version__: str = "0.
|
|
6
|
+
__version__: str = "0.22.1"
|
|
7
7
|
__openapi_doc_version__: str = "0.0.1"
|
|
8
|
-
__gen_version__: str = "2.
|
|
9
|
-
__user_agent__: str = "speakeasy-sdk/python 0.
|
|
8
|
+
__gen_version__: str = "2.593.4"
|
|
9
|
+
__user_agent__: str = "speakeasy-sdk/python 0.22.1 2.593.4 0.0.1 dub"
|
|
10
10
|
|
|
11
11
|
try:
|
|
12
12
|
if __package__ is not None:
|
|
@@ -4,7 +4,6 @@ from .analyticsbrowsers import AnalyticsBrowsers, AnalyticsBrowsersTypedDict
|
|
|
4
4
|
from .analyticscities import (
|
|
5
5
|
AnalyticsCities,
|
|
6
6
|
AnalyticsCitiesCountry,
|
|
7
|
-
AnalyticsCitiesRegion,
|
|
8
7
|
AnalyticsCitiesTypedDict,
|
|
9
8
|
)
|
|
10
9
|
from .analyticscontinents import (
|
|
@@ -205,7 +204,6 @@ __all__ = [
|
|
|
205
204
|
"AnalyticsBrowsersTypedDict",
|
|
206
205
|
"AnalyticsCities",
|
|
207
206
|
"AnalyticsCitiesCountry",
|
|
208
|
-
"AnalyticsCitiesRegion",
|
|
209
207
|
"AnalyticsCitiesTypedDict",
|
|
210
208
|
"AnalyticsContinents",
|
|
211
209
|
"AnalyticsContinentsTypedDict",
|
|
@@ -263,16 +263,13 @@ class AnalyticsCitiesCountry(str, Enum):
|
|
|
263
263
|
XK = "XK"
|
|
264
264
|
|
|
265
265
|
|
|
266
|
-
class AnalyticsCitiesRegion(str, Enum):
|
|
267
|
-
WILDCARD_ = "*"
|
|
268
|
-
|
|
269
|
-
|
|
270
266
|
class AnalyticsCitiesTypedDict(TypedDict):
|
|
271
267
|
country: AnalyticsCitiesCountry
|
|
272
268
|
r"""The 2-letter country code of the city: https://d.to/geo"""
|
|
269
|
+
region: str
|
|
270
|
+
r"""The 2-letter ISO 3166-2 region code representing the region associated with the location of the user."""
|
|
273
271
|
city: str
|
|
274
272
|
r"""The name of the city"""
|
|
275
|
-
region: NotRequired[AnalyticsCitiesRegion]
|
|
276
273
|
clicks: NotRequired[float]
|
|
277
274
|
r"""The number of clicks from this city"""
|
|
278
275
|
leads: NotRequired[float]
|
|
@@ -287,11 +284,12 @@ class AnalyticsCities(BaseModel):
|
|
|
287
284
|
country: AnalyticsCitiesCountry
|
|
288
285
|
r"""The 2-letter country code of the city: https://d.to/geo"""
|
|
289
286
|
|
|
287
|
+
region: str
|
|
288
|
+
r"""The 2-letter ISO 3166-2 region code representing the region associated with the location of the user."""
|
|
289
|
+
|
|
290
290
|
city: str
|
|
291
291
|
r"""The name of the city"""
|
|
292
292
|
|
|
293
|
-
region: Optional[AnalyticsCitiesRegion] = AnalyticsCitiesRegion.WILDCARD_
|
|
294
|
-
|
|
295
293
|
clicks: Optional[float] = 0
|
|
296
294
|
r"""The number of clicks from this city"""
|
|
297
295
|
|
|
@@ -12,11 +12,17 @@ from typing_extensions import Annotated, NotRequired, TypedDict
|
|
|
12
12
|
|
|
13
13
|
class GetCustomersRequestTypedDict(TypedDict):
|
|
14
14
|
email: NotRequired[str]
|
|
15
|
-
r"""A case-sensitive filter on the list based on the customer's `email` field. The value must be a string."""
|
|
15
|
+
r"""A case-sensitive filter on the list based on the customer's `email` field. The value must be a string. Takes precedence over `externalId`."""
|
|
16
16
|
external_id: NotRequired[str]
|
|
17
|
-
r"""A case-sensitive filter on the list based on the customer's `externalId` field. The value must be a string."""
|
|
17
|
+
r"""A case-sensitive filter on the list based on the customer's `externalId` field. The value must be a string. Takes precedence over `search`."""
|
|
18
|
+
search: NotRequired[str]
|
|
19
|
+
r"""A search query to filter customers by email, externalId, or name. If `email` or `externalId` is provided, this will be ignored."""
|
|
18
20
|
include_expanded_fields: NotRequired[bool]
|
|
19
21
|
r"""Whether to include expanded fields on the customer (`link`, `partner`, `discount`)."""
|
|
22
|
+
page: NotRequired[float]
|
|
23
|
+
r"""The page number for pagination."""
|
|
24
|
+
page_size: NotRequired[float]
|
|
25
|
+
r"""The number of items per page."""
|
|
20
26
|
|
|
21
27
|
|
|
22
28
|
class GetCustomersRequest(BaseModel):
|
|
@@ -24,14 +30,20 @@ class GetCustomersRequest(BaseModel):
|
|
|
24
30
|
Optional[str],
|
|
25
31
|
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
26
32
|
] = None
|
|
27
|
-
r"""A case-sensitive filter on the list based on the customer's `email` field. The value must be a string."""
|
|
33
|
+
r"""A case-sensitive filter on the list based on the customer's `email` field. The value must be a string. Takes precedence over `externalId`."""
|
|
28
34
|
|
|
29
35
|
external_id: Annotated[
|
|
30
36
|
Optional[str],
|
|
31
37
|
pydantic.Field(alias="externalId"),
|
|
32
38
|
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
33
39
|
] = None
|
|
34
|
-
r"""A case-sensitive filter on the list based on the customer's `externalId` field. The value must be a string."""
|
|
40
|
+
r"""A case-sensitive filter on the list based on the customer's `externalId` field. The value must be a string. Takes precedence over `search`."""
|
|
41
|
+
|
|
42
|
+
search: Annotated[
|
|
43
|
+
Optional[str],
|
|
44
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
45
|
+
] = None
|
|
46
|
+
r"""A search query to filter customers by email, externalId, or name. If `email` or `externalId` is provided, this will be ignored."""
|
|
35
47
|
|
|
36
48
|
include_expanded_fields: Annotated[
|
|
37
49
|
Optional[bool],
|
|
@@ -40,6 +52,19 @@ class GetCustomersRequest(BaseModel):
|
|
|
40
52
|
] = None
|
|
41
53
|
r"""Whether to include expanded fields on the customer (`link`, `partner`, `discount`)."""
|
|
42
54
|
|
|
55
|
+
page: Annotated[
|
|
56
|
+
Optional[float],
|
|
57
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
58
|
+
] = 1
|
|
59
|
+
r"""The page number for pagination."""
|
|
60
|
+
|
|
61
|
+
page_size: Annotated[
|
|
62
|
+
Optional[float],
|
|
63
|
+
pydantic.Field(alias="pageSize"),
|
|
64
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
65
|
+
] = 100
|
|
66
|
+
r"""The number of items per page."""
|
|
67
|
+
|
|
43
68
|
|
|
44
69
|
class GetCustomersLinkTypedDict(TypedDict):
|
|
45
70
|
id: str
|
|
@@ -22,7 +22,7 @@ class GetQRCodeRequestTypedDict(TypedDict):
|
|
|
22
22
|
url: str
|
|
23
23
|
r"""The URL to generate a QR code for."""
|
|
24
24
|
logo: NotRequired[str]
|
|
25
|
-
r"""The logo to include in the QR code. Can only be used with a paid plan on Dub.
|
|
25
|
+
r"""The logo to include in the QR code. Can only be used with a paid plan on Dub."""
|
|
26
26
|
size: NotRequired[float]
|
|
27
27
|
r"""The size of the QR code in pixels. Defaults to `600` if not provided."""
|
|
28
28
|
level: NotRequired[Level]
|
|
@@ -32,7 +32,7 @@ class GetQRCodeRequestTypedDict(TypedDict):
|
|
|
32
32
|
bg_color: NotRequired[str]
|
|
33
33
|
r"""The background color of the QR code in hex format. Defaults to `#ffffff` if not provided."""
|
|
34
34
|
hide_logo: NotRequired[bool]
|
|
35
|
-
r"""Whether to hide the logo in the QR code. Can only be used with a paid plan on Dub.
|
|
35
|
+
r"""Whether to hide the logo in the QR code. Can only be used with a paid plan on Dub."""
|
|
36
36
|
margin: NotRequired[float]
|
|
37
37
|
r"""The size of the margin around the QR code. Defaults to 2 if not provided."""
|
|
38
38
|
include_margin: NotRequired[bool]
|
|
@@ -49,7 +49,7 @@ class GetQRCodeRequest(BaseModel):
|
|
|
49
49
|
Optional[str],
|
|
50
50
|
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
51
51
|
] = None
|
|
52
|
-
r"""The logo to include in the QR code. Can only be used with a paid plan on Dub.
|
|
52
|
+
r"""The logo to include in the QR code. Can only be used with a paid plan on Dub."""
|
|
53
53
|
|
|
54
54
|
size: Annotated[
|
|
55
55
|
Optional[float],
|
|
@@ -82,7 +82,7 @@ class GetQRCodeRequest(BaseModel):
|
|
|
82
82
|
pydantic.Field(alias="hideLogo"),
|
|
83
83
|
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
84
84
|
] = True
|
|
85
|
-
r"""Whether to hide the logo in the QR code. Can only be used with a paid plan on Dub.
|
|
85
|
+
r"""Whether to hide the logo in the QR code. Can only be used with a paid plan on Dub."""
|
|
86
86
|
|
|
87
87
|
margin: Annotated[
|
|
88
88
|
Optional[float],
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
|
-
from dub.types import BaseModel
|
|
4
|
+
from dub.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
|
|
5
5
|
from dub.utils import FieldMetadata, PathParamMetadata, RequestMetadata
|
|
6
6
|
import pydantic
|
|
7
|
+
from pydantic import model_serializer
|
|
7
8
|
from typing import List, Optional
|
|
8
9
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
9
10
|
|
|
@@ -11,7 +12,7 @@ from typing_extensions import Annotated, NotRequired, TypedDict
|
|
|
11
12
|
class UpdateWorkspaceRequestBodyTypedDict(TypedDict):
|
|
12
13
|
name: NotRequired[str]
|
|
13
14
|
slug: NotRequired[str]
|
|
14
|
-
logo: NotRequired[str]
|
|
15
|
+
logo: NotRequired[Nullable[str]]
|
|
15
16
|
conversion_enabled: NotRequired[bool]
|
|
16
17
|
allowed_hostnames: NotRequired[List[str]]
|
|
17
18
|
|
|
@@ -21,7 +22,7 @@ class UpdateWorkspaceRequestBody(BaseModel):
|
|
|
21
22
|
|
|
22
23
|
slug: Optional[str] = None
|
|
23
24
|
|
|
24
|
-
logo:
|
|
25
|
+
logo: OptionalNullable[str] = UNSET
|
|
25
26
|
|
|
26
27
|
conversion_enabled: Annotated[
|
|
27
28
|
Optional[bool], pydantic.Field(alias="conversionEnabled")
|
|
@@ -31,6 +32,42 @@ class UpdateWorkspaceRequestBody(BaseModel):
|
|
|
31
32
|
Optional[List[str]], pydantic.Field(alias="allowedHostnames")
|
|
32
33
|
] = None
|
|
33
34
|
|
|
35
|
+
@model_serializer(mode="wrap")
|
|
36
|
+
def serialize_model(self, handler):
|
|
37
|
+
optional_fields = [
|
|
38
|
+
"name",
|
|
39
|
+
"slug",
|
|
40
|
+
"logo",
|
|
41
|
+
"conversionEnabled",
|
|
42
|
+
"allowedHostnames",
|
|
43
|
+
]
|
|
44
|
+
nullable_fields = ["logo"]
|
|
45
|
+
null_default_fields = []
|
|
46
|
+
|
|
47
|
+
serialized = handler(self)
|
|
48
|
+
|
|
49
|
+
m = {}
|
|
50
|
+
|
|
51
|
+
for n, f in type(self).model_fields.items():
|
|
52
|
+
k = f.alias or n
|
|
53
|
+
val = serialized.get(k)
|
|
54
|
+
serialized.pop(k, None)
|
|
55
|
+
|
|
56
|
+
optional_nullable = k in optional_fields and k in nullable_fields
|
|
57
|
+
is_set = (
|
|
58
|
+
self.__pydantic_fields_set__.intersection({n})
|
|
59
|
+
or k in null_default_fields
|
|
60
|
+
) # pylint: disable=no-member
|
|
61
|
+
|
|
62
|
+
if val is not None and val != UNSET_SENTINEL:
|
|
63
|
+
m[k] = val
|
|
64
|
+
elif val != UNSET_SENTINEL and (
|
|
65
|
+
not k in optional_fields or (optional_nullable and is_set)
|
|
66
|
+
):
|
|
67
|
+
m[k] = val
|
|
68
|
+
|
|
69
|
+
return m
|
|
70
|
+
|
|
34
71
|
|
|
35
72
|
class UpdateWorkspaceRequestTypedDict(TypedDict):
|
|
36
73
|
id_or_slug: str
|
dub/sdk.py
CHANGED
|
@@ -27,7 +27,7 @@ import weakref
|
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
class Dub(BaseSDK):
|
|
30
|
-
r"""Dub
|
|
30
|
+
r"""Dub API: Dub is link management infrastructure for companies to create marketing campaigns, link sharing features, and referral programs."""
|
|
31
31
|
|
|
32
32
|
links: Links
|
|
33
33
|
analytics: Analytics
|
dub/utils/serializers.py
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
2
|
|
|
3
3
|
from decimal import Decimal
|
|
4
|
+
import functools
|
|
4
5
|
import json
|
|
5
|
-
|
|
6
|
-
import
|
|
6
|
+
import typing
|
|
7
|
+
from typing import Any, Dict, List, Tuple, Union, get_args
|
|
8
|
+
import typing_extensions
|
|
7
9
|
from typing_extensions import get_origin
|
|
10
|
+
|
|
11
|
+
import httpx
|
|
8
12
|
from pydantic import ConfigDict, create_model
|
|
9
13
|
from pydantic_core import from_json
|
|
10
|
-
from typing_inspection.typing_objects import is_union
|
|
11
14
|
|
|
12
15
|
from ..types.basemodel import BaseModel, Nullable, OptionalNullable, Unset
|
|
13
16
|
|
|
@@ -185,6 +188,13 @@ def is_nullable(field):
|
|
|
185
188
|
return False
|
|
186
189
|
|
|
187
190
|
|
|
191
|
+
def is_union(obj: object) -> bool:
|
|
192
|
+
"""
|
|
193
|
+
Returns True if the given object is a typing.Union or typing_extensions.Union.
|
|
194
|
+
"""
|
|
195
|
+
return any(obj is typing_obj for typing_obj in _get_typing_objects_by_name_of("Union"))
|
|
196
|
+
|
|
197
|
+
|
|
188
198
|
def stream_to_text(stream: httpx.Response) -> str:
|
|
189
199
|
return "".join(stream.iter_text())
|
|
190
200
|
|
|
@@ -217,3 +227,22 @@ def _contains_pydantic_model(data: Any) -> bool:
|
|
|
217
227
|
return any(_contains_pydantic_model(value) for value in data.values())
|
|
218
228
|
|
|
219
229
|
return False
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
@functools.cache
|
|
233
|
+
def _get_typing_objects_by_name_of(name: str) -> Tuple[Any, ...]:
|
|
234
|
+
"""
|
|
235
|
+
Get typing objects by name from typing and typing_extensions.
|
|
236
|
+
Reference: https://typing-extensions.readthedocs.io/en/latest/#runtime-use-of-types
|
|
237
|
+
"""
|
|
238
|
+
result = tuple(
|
|
239
|
+
getattr(module, name)
|
|
240
|
+
for module in (typing, typing_extensions)
|
|
241
|
+
if hasattr(module, name)
|
|
242
|
+
)
|
|
243
|
+
if not result:
|
|
244
|
+
raise ValueError(
|
|
245
|
+
f"Neither typing nor typing_extensions has an object called {name!r}"
|
|
246
|
+
)
|
|
247
|
+
return result
|
|
248
|
+
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: dub
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.22.1
|
|
4
4
|
Summary: Python Client SDK Generated by Speakeasy
|
|
5
5
|
Author: Speakeasy
|
|
6
6
|
Requires-Python: >=3.9
|
|
@@ -10,11 +10,9 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
10
10
|
Classifier: Programming Language :: Python :: 3.11
|
|
11
11
|
Classifier: Programming Language :: Python :: 3.12
|
|
12
12
|
Classifier: Programming Language :: Python :: 3.13
|
|
13
|
-
Requires-Dist: eval-type-backport (>=0.2.0)
|
|
14
13
|
Requires-Dist: httpx (>=0.28.1)
|
|
15
14
|
Requires-Dist: jsonpath-python (>=1.0.6)
|
|
16
15
|
Requires-Dist: pydantic (>=2.11.2)
|
|
17
|
-
Requires-Dist: typing-inspection (>=0.4.0)
|
|
18
16
|
Project-URL: Repository, https://github.com/dubinc/dub-python.git
|
|
19
17
|
Description-Content-Type: text/markdown
|
|
20
18
|
|
|
@@ -34,7 +32,7 @@ Learn more about the Dub.co Python SDK in the [official documentation](https://d
|
|
|
34
32
|
<!-- Start Summary [summary] -->
|
|
35
33
|
## Summary
|
|
36
34
|
|
|
37
|
-
Dub
|
|
35
|
+
Dub API: Dub is link management infrastructure for companies to create marketing campaigns, link sharing features, and referral programs.
|
|
38
36
|
<!-- End Summary [summary] -->
|
|
39
37
|
|
|
40
38
|
<!-- Start Table of Contents [toc] -->
|
|
@@ -3,7 +3,7 @@ dub/_hooks/__init__.py,sha256=9_7W5jAYw8rcO8Kfc-Ty-lB82BHfksAJJpVFb_UeU1c,146
|
|
|
3
3
|
dub/_hooks/registration.py,sha256=tT-1Cjp5ax1DL-84HBNWPy4wAwgP-0aI4-asLfnkIlw,625
|
|
4
4
|
dub/_hooks/sdkhooks.py,sha256=2rLEjSz1xFGWabNs1voFn0lXSCqkS38bdKVFdnBJufE,2553
|
|
5
5
|
dub/_hooks/types.py,sha256=_f63z3zj-1mQYfbDbEgt_0Yzys8yQtKEivmhKxOPeU8,2806
|
|
6
|
-
dub/_version.py,sha256=
|
|
6
|
+
dub/_version.py,sha256=qh-P0HBky42lpYh9YTUMfsKB1gxXdeh7qZL7Y0P4YXE,450
|
|
7
7
|
dub/analytics.py,sha256=vlYINh0VlD1myVlTz5GbsJxoTEk45avOATjpJ_P_b9I,12938
|
|
8
8
|
dub/basesdk.py,sha256=rDM8sEHVtFjFSi7RgfDnl3T0gLUJzqguXrSxFOWFRqE,12105
|
|
9
9
|
dub/customers.py,sha256=8iLNQxjcU2gpWJsZp43XwKGNl2S9ONJQeo9IYtgdc-0,63157
|
|
@@ -14,9 +14,9 @@ dub/folders.py,sha256=e39wo7b8GauhN5Qdd4CpCnBfVsma3Pfj-eklyM07DuQ,50332
|
|
|
14
14
|
dub/httpclient.py,sha256=lC-YQ7q4yiJGKElxBeb3aZnr-4aYxjgEpZ6roeXYlyg,4318
|
|
15
15
|
dub/links.py,sha256=-Di3mUKKLmbXNSl4xSr3fos8-sRApWz2ZCL9UObEt5Y,128486
|
|
16
16
|
dub/models/__init__.py,sha256=HRiFG5CV9y2HvWWQl_JQNbYTPme0UYR1Mhh13Qc-5jE,84
|
|
17
|
-
dub/models/components/__init__.py,sha256=
|
|
17
|
+
dub/models/components/__init__.py,sha256=l2w2vvyhJTRJaSRPIxgqig8KphSuEuhiyvO4G1Lynf4,10710
|
|
18
18
|
dub/models/components/analyticsbrowsers.py,sha256=f6qMrkPFf38u3_PIovvdIc0hsX1YpYEaPxNwbXzkoeY,1172
|
|
19
|
-
dub/models/components/analyticscities.py,sha256=
|
|
19
|
+
dub/models/components/analyticscities.py,sha256=4DLioMjQkwGDCGPtSJ_RQK24ZJx5B2xPhMHVlUDFm3Y,5231
|
|
20
20
|
dub/models/components/analyticscontinents.py,sha256=D_SQTm1Xp_pOt7qZTLJVo2B3RQUP8k3MQmsYRQYbjlI,1616
|
|
21
21
|
dub/models/components/analyticscount.py,sha256=GddRT9d1RznwWgzQC09i8ZAIJUa06k2NkBnb14v3RGs,953
|
|
22
22
|
dub/models/components/analyticscountries.py,sha256=IHztB2-OISDD7j4QyXOnZpT6yx1MS0uvWloRy5TP59A,5312
|
|
@@ -80,11 +80,11 @@ dub/models/operations/deletefolder.py,sha256=lpetbObqu9jd-XLl-unlvmSTuztW8Ecn-dh
|
|
|
80
80
|
dub/models/operations/deletelink.py,sha256=o3Uia06QBrKb--6OkShjKkcqaK0dpt_Jw3AClUqTQq4,1062
|
|
81
81
|
dub/models/operations/deletetag.py,sha256=UJz-O6oTuvOdzuUXUQktw699hEv0cs1eJW9C3wQBQBc,785
|
|
82
82
|
dub/models/operations/getcustomer.py,sha256=fkv5GKhy_cTAG7--v0QRyQD7XXhxtpFAxn71zOPSLok,10129
|
|
83
|
-
dub/models/operations/getcustomers.py,sha256=
|
|
83
|
+
dub/models/operations/getcustomers.py,sha256=HO_bTlVFc7N1x_WC8lZFr3m8H1u3OKi2TuPixlR17YA,11439
|
|
84
84
|
dub/models/operations/getlinkinfo.py,sha256=I4bhM6HeW7IFg1J-68Uou5-OHA7XdQcM8I_lRBtXAJI,1530
|
|
85
85
|
dub/models/operations/getlinks.py,sha256=sKKTfFVnWOGB6am_TQv4suRYj3QTvlhGtsSEe4Dwnr0,7470
|
|
86
86
|
dub/models/operations/getlinkscount.py,sha256=mPzscUbOWoxVqW6TYp3iW8lnrv0H1Mmy1nEbT9nlESo,5849
|
|
87
|
-
dub/models/operations/getqrcode.py,sha256=
|
|
87
|
+
dub/models/operations/getqrcode.py,sha256=ynCPJc8vy_QEt5FP8OU2s-u6UIt1BhmFSNZC-XPmO4I,3848
|
|
88
88
|
dub/models/operations/gettags.py,sha256=c9p_JrHFnTDJURyR5iiKFKpXFHlzJDt3R5X1U-anyYg,2664
|
|
89
89
|
dub/models/operations/getworkspace.py,sha256=V4-NfsEg3M1BTeoE13sDyazefb2_kI4yFxnzgvHPv4s,625
|
|
90
90
|
dub/models/operations/listdomains.py,sha256=gbQrJyBIvTGKSeqJo0Jb08iE44Xu39NS9zbfetx4p-s,1936
|
|
@@ -101,13 +101,13 @@ dub/models/operations/updatefolder.py,sha256=dNvSPY67g58SWynB8ic5rcgT-h7THRmyxuz
|
|
|
101
101
|
dub/models/operations/updatelink.py,sha256=pwDVaSicVIB2Nb5e4sSrhn2NuHNa_1_MXNoDOaN-cXI,17855
|
|
102
102
|
dub/models/operations/updatepartnersale.py,sha256=GkykJPynsw2nWexos36ygnxvJX-EJY_sFNfwYFeeuCk,3415
|
|
103
103
|
dub/models/operations/updatetag.py,sha256=0nGAU6if5BsetDArXCIn8YvlDgG17N1Cp8q1o9F6ff4,2101
|
|
104
|
-
dub/models/operations/updateworkspace.py,sha256=
|
|
104
|
+
dub/models/operations/updateworkspace.py,sha256=qdlmA-Rz8_fC3iQs7bzmcn0qL9Lu3a04ziEIYfX3Ugo,2690
|
|
105
105
|
dub/models/operations/upsertlink.py,sha256=RdVy-L4I_mCqwaIhmU1DosYfndpW6yh_8OslaFs2v5s,16956
|
|
106
106
|
dub/models/operations/upsertpartnerlink.py,sha256=h08QRwsQyiIvDTUKu1ANE9mrwikDCqIzP8hWAKnc38Y,16880
|
|
107
107
|
dub/partners.py,sha256=a1V9Wy_BBOxg7_sVpElTPQ6DX-wNMXQNoTWu87_0-OU,77571
|
|
108
108
|
dub/py.typed,sha256=zrp19r0G21lr2yRiMC0f8MFkQFGj9wMpSbboePMg8KM,59
|
|
109
109
|
dub/qr_codes.py,sha256=E0qlx0gs5CWbcz4M-GMLjvoMlGmUmAtHb3dtEWUO8cY,12164
|
|
110
|
-
dub/sdk.py,sha256=
|
|
110
|
+
dub/sdk.py,sha256=29q0R5TMeRAf-Qd2qI0RIzTGtFDJsQ4v1AwBF8ie6eQ,6357
|
|
111
111
|
dub/sdkconfiguration.py,sha256=iGOSRTCoNX5k8H98ONo6B8rS6v5CtjAUN69Z6t5ftPg,1762
|
|
112
112
|
dub/tags.py,sha256=fp_qLI_0VYSXs2dB77TgMJT0uwpbaKLst_tIpPZctLo,49773
|
|
113
113
|
dub/track.py,sha256=znqpHDO_LBQmIiN4BO3PXCklIUz4xR0S8SKd5oElTJg,25772
|
|
@@ -126,11 +126,11 @@ dub/utils/queryparams.py,sha256=MTK6inMS1_WwjmMJEJmAn67tSHHJyarpdGRlorRHEtI,5899
|
|
|
126
126
|
dub/utils/requestbodies.py,sha256=ySjEyjcLi731LNUahWvLOrES2HihuA8VrOJx4eQ7Qzg,2101
|
|
127
127
|
dub/utils/retries.py,sha256=6yhfZifqIat9i76xF0lTR2jLj1IN9BNGyqqxATlEFPU,6348
|
|
128
128
|
dub/utils/security.py,sha256=ktep3HKwbFs-MLxUYTM8Jd4v-ZBum5_Z0u1PFIdYBX0,5516
|
|
129
|
-
dub/utils/serializers.py,sha256=
|
|
129
|
+
dub/utils/serializers.py,sha256=hiHBXM1AY8_N2Z_rvFfNSYwvLBkSQlPGFp8poasdU4s,5986
|
|
130
130
|
dub/utils/url.py,sha256=BgGPgcTA6MRK4bF8fjP2dUopN3NzEzxWMXPBVg8NQUA,5254
|
|
131
131
|
dub/utils/values.py,sha256=CcaCXEa3xHhkUDROyXZocN8f0bdITftv9Y0P9lTf0YM,3517
|
|
132
132
|
dub/workspaces.py,sha256=d4eBlOvwuYlENsGcYI0fHQKN-cpC8U9kekTbfNJ2C_4,25635
|
|
133
|
-
dub-0.
|
|
134
|
-
dub-0.
|
|
135
|
-
dub-0.
|
|
136
|
-
dub-0.
|
|
133
|
+
dub-0.22.1.dist-info/LICENSE,sha256=kc_aZ6YHHcdSsRy-mGsT0Ehji0ZgR_zevXiUt05V2KY,1079
|
|
134
|
+
dub-0.22.1.dist-info/METADATA,sha256=ZULbBQQ-aSq_BTJC5y6O1ScWiB4LMopNM2_wSu1VPXw,27587
|
|
135
|
+
dub-0.22.1.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
|
|
136
|
+
dub-0.22.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|