dub 0.32.0__py3-none-any.whl → 0.33.0__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/analytics.py +4 -4
- dub/commissions.py +8 -8
- dub/customers.py +16 -313
- dub/domains.py +22 -26
- dub/embed_tokens.py +4 -4
- dub/events.py +4 -4
- dub/folders.py +16 -20
- dub/links.py +38 -54
- dub/models/components/__init__.py +32 -0
- dub/models/components/analyticstopurls.py +2 -2
- dub/models/components/clickevent.py +7 -6
- dub/models/components/leadcreatedevent.py +7 -6
- dub/models/components/leadevent.py +7 -6
- dub/models/components/linkclickedevent.py +7 -6
- dub/models/components/linkschema.py +6 -0
- dub/models/components/linkwebhookevent.py +7 -6
- dub/models/components/partnerapplicationsubmittedevent.py +269 -0
- dub/models/components/partnerenrolledevent.py +64 -4
- dub/models/components/salecreatedevent.py +7 -6
- dub/models/components/saleevent.py +7 -6
- dub/models/components/webhookevent.py +6 -0
- dub/models/components/workspaceschema.py +6 -0
- dub/models/operations/__init__.py +17 -35
- dub/models/operations/banpartner.py +83 -0
- dub/models/operations/createpartner.py +64 -4
- dub/models/operations/listcommissions.py +13 -2
- dub/models/operations/listevents.py +10 -0
- dub/models/operations/listpartners.py +71 -4
- dub/models/operations/retrieveanalytics.py +12 -0
- dub/models/operations/retrievelinks.py +42 -7
- dub/models/operations/retrievepartneranalytics.py +51 -11
- dub/models/operations/updatecommission.py +7 -2
- dub/partners.py +298 -24
- dub/qr_codes.py +2 -2
- dub/tags.py +16 -24
- dub/track.py +8 -16
- dub/utils/retries.py +69 -5
- dub/utils/unmarshal_json_response.py +15 -1
- dub/workspaces.py +8 -16
- {dub-0.32.0.dist-info → dub-0.33.0.dist-info}/METADATA +2 -20
- {dub-0.32.0.dist-info → dub-0.33.0.dist-info}/RECORD +44 -43
- dub/models/operations/createcustomer.py +0 -382
- {dub-0.32.0.dist-info → dub-0.33.0.dist-info}/WHEEL +0 -0
- {dub-0.32.0.dist-info → dub-0.33.0.dist-info}/licenses/LICENSE +0 -0
dub/track.py
CHANGED
|
@@ -23,7 +23,7 @@ class Track(BaseSDK):
|
|
|
23
23
|
server_url: Optional[str] = None,
|
|
24
24
|
timeout_ms: Optional[int] = None,
|
|
25
25
|
http_headers: Optional[Mapping[str, str]] = None,
|
|
26
|
-
) ->
|
|
26
|
+
) -> operations.TrackLeadResponseBody:
|
|
27
27
|
r"""Track a lead
|
|
28
28
|
|
|
29
29
|
Track a lead for a short link.
|
|
@@ -104,9 +104,7 @@ class Track(BaseSDK):
|
|
|
104
104
|
|
|
105
105
|
response_data: Any = None
|
|
106
106
|
if utils.match_response(http_res, "200", "application/json"):
|
|
107
|
-
return unmarshal_json_response(
|
|
108
|
-
Optional[operations.TrackLeadResponseBody], http_res
|
|
109
|
-
)
|
|
107
|
+
return unmarshal_json_response(operations.TrackLeadResponseBody, http_res)
|
|
110
108
|
if utils.match_response(http_res, "400", "application/json"):
|
|
111
109
|
response_data = unmarshal_json_response(errors.BadRequestData, http_res)
|
|
112
110
|
raise errors.BadRequest(response_data, http_res)
|
|
@@ -162,7 +160,7 @@ class Track(BaseSDK):
|
|
|
162
160
|
server_url: Optional[str] = None,
|
|
163
161
|
timeout_ms: Optional[int] = None,
|
|
164
162
|
http_headers: Optional[Mapping[str, str]] = None,
|
|
165
|
-
) ->
|
|
163
|
+
) -> operations.TrackLeadResponseBody:
|
|
166
164
|
r"""Track a lead
|
|
167
165
|
|
|
168
166
|
Track a lead for a short link.
|
|
@@ -243,9 +241,7 @@ class Track(BaseSDK):
|
|
|
243
241
|
|
|
244
242
|
response_data: Any = None
|
|
245
243
|
if utils.match_response(http_res, "200", "application/json"):
|
|
246
|
-
return unmarshal_json_response(
|
|
247
|
-
Optional[operations.TrackLeadResponseBody], http_res
|
|
248
|
-
)
|
|
244
|
+
return unmarshal_json_response(operations.TrackLeadResponseBody, http_res)
|
|
249
245
|
if utils.match_response(http_res, "400", "application/json"):
|
|
250
246
|
response_data = unmarshal_json_response(errors.BadRequestData, http_res)
|
|
251
247
|
raise errors.BadRequest(response_data, http_res)
|
|
@@ -301,7 +297,7 @@ class Track(BaseSDK):
|
|
|
301
297
|
server_url: Optional[str] = None,
|
|
302
298
|
timeout_ms: Optional[int] = None,
|
|
303
299
|
http_headers: Optional[Mapping[str, str]] = None,
|
|
304
|
-
) ->
|
|
300
|
+
) -> operations.TrackSaleResponseBody:
|
|
305
301
|
r"""Track a sale
|
|
306
302
|
|
|
307
303
|
Track a sale for a short link.
|
|
@@ -382,9 +378,7 @@ class Track(BaseSDK):
|
|
|
382
378
|
|
|
383
379
|
response_data: Any = None
|
|
384
380
|
if utils.match_response(http_res, "200", "application/json"):
|
|
385
|
-
return unmarshal_json_response(
|
|
386
|
-
Optional[operations.TrackSaleResponseBody], http_res
|
|
387
|
-
)
|
|
381
|
+
return unmarshal_json_response(operations.TrackSaleResponseBody, http_res)
|
|
388
382
|
if utils.match_response(http_res, "400", "application/json"):
|
|
389
383
|
response_data = unmarshal_json_response(errors.BadRequestData, http_res)
|
|
390
384
|
raise errors.BadRequest(response_data, http_res)
|
|
@@ -440,7 +434,7 @@ class Track(BaseSDK):
|
|
|
440
434
|
server_url: Optional[str] = None,
|
|
441
435
|
timeout_ms: Optional[int] = None,
|
|
442
436
|
http_headers: Optional[Mapping[str, str]] = None,
|
|
443
|
-
) ->
|
|
437
|
+
) -> operations.TrackSaleResponseBody:
|
|
444
438
|
r"""Track a sale
|
|
445
439
|
|
|
446
440
|
Track a sale for a short link.
|
|
@@ -521,9 +515,7 @@ class Track(BaseSDK):
|
|
|
521
515
|
|
|
522
516
|
response_data: Any = None
|
|
523
517
|
if utils.match_response(http_res, "200", "application/json"):
|
|
524
|
-
return unmarshal_json_response(
|
|
525
|
-
Optional[operations.TrackSaleResponseBody], http_res
|
|
526
|
-
)
|
|
518
|
+
return unmarshal_json_response(operations.TrackSaleResponseBody, http_res)
|
|
527
519
|
if utils.match_response(http_res, "400", "application/json"):
|
|
528
520
|
response_data = unmarshal_json_response(errors.BadRequestData, http_res)
|
|
529
521
|
raise errors.BadRequest(response_data, http_res)
|
dub/utils/retries.py
CHANGED
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
import asyncio
|
|
4
4
|
import random
|
|
5
5
|
import time
|
|
6
|
-
from
|
|
6
|
+
from datetime import datetime
|
|
7
|
+
from email.utils import parsedate_to_datetime
|
|
8
|
+
from typing import List, Optional
|
|
7
9
|
|
|
8
10
|
import httpx
|
|
9
11
|
|
|
@@ -51,9 +53,11 @@ class Retries:
|
|
|
51
53
|
|
|
52
54
|
class TemporaryError(Exception):
|
|
53
55
|
response: httpx.Response
|
|
56
|
+
retry_after: Optional[int]
|
|
54
57
|
|
|
55
58
|
def __init__(self, response: httpx.Response):
|
|
56
59
|
self.response = response
|
|
60
|
+
self.retry_after = _parse_retry_after_header(response)
|
|
57
61
|
|
|
58
62
|
|
|
59
63
|
class PermanentError(Exception):
|
|
@@ -63,6 +67,62 @@ class PermanentError(Exception):
|
|
|
63
67
|
self.inner = inner
|
|
64
68
|
|
|
65
69
|
|
|
70
|
+
def _parse_retry_after_header(response: httpx.Response) -> Optional[int]:
|
|
71
|
+
"""Parse Retry-After header from response.
|
|
72
|
+
|
|
73
|
+
Returns:
|
|
74
|
+
Retry interval in milliseconds, or None if header is missing or invalid.
|
|
75
|
+
"""
|
|
76
|
+
retry_after_header = response.headers.get("retry-after")
|
|
77
|
+
if not retry_after_header:
|
|
78
|
+
return None
|
|
79
|
+
|
|
80
|
+
try:
|
|
81
|
+
seconds = float(retry_after_header)
|
|
82
|
+
return round(seconds * 1000)
|
|
83
|
+
except ValueError:
|
|
84
|
+
pass
|
|
85
|
+
|
|
86
|
+
try:
|
|
87
|
+
retry_date = parsedate_to_datetime(retry_after_header)
|
|
88
|
+
delta = (retry_date - datetime.now(retry_date.tzinfo)).total_seconds()
|
|
89
|
+
return round(max(0, delta) * 1000)
|
|
90
|
+
except (ValueError, TypeError):
|
|
91
|
+
pass
|
|
92
|
+
|
|
93
|
+
return None
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
def _get_sleep_interval(
|
|
97
|
+
exception: Exception,
|
|
98
|
+
initial_interval: int,
|
|
99
|
+
max_interval: int,
|
|
100
|
+
exponent: float,
|
|
101
|
+
retries: int,
|
|
102
|
+
) -> float:
|
|
103
|
+
"""Get sleep interval for retry with exponential backoff.
|
|
104
|
+
|
|
105
|
+
Args:
|
|
106
|
+
exception: The exception that triggered the retry.
|
|
107
|
+
initial_interval: Initial retry interval in milliseconds.
|
|
108
|
+
max_interval: Maximum retry interval in milliseconds.
|
|
109
|
+
exponent: Base for exponential backoff calculation.
|
|
110
|
+
retries: Current retry attempt count.
|
|
111
|
+
|
|
112
|
+
Returns:
|
|
113
|
+
Sleep interval in seconds.
|
|
114
|
+
"""
|
|
115
|
+
if (
|
|
116
|
+
isinstance(exception, TemporaryError)
|
|
117
|
+
and exception.retry_after is not None
|
|
118
|
+
and exception.retry_after > 0
|
|
119
|
+
):
|
|
120
|
+
return exception.retry_after / 1000
|
|
121
|
+
|
|
122
|
+
sleep = (initial_interval / 1000) * exponent**retries + random.uniform(0, 1)
|
|
123
|
+
return min(sleep, max_interval / 1000)
|
|
124
|
+
|
|
125
|
+
|
|
66
126
|
def retry(func, retries: Retries):
|
|
67
127
|
if retries.config.strategy == "backoff":
|
|
68
128
|
|
|
@@ -183,8 +243,10 @@ def retry_with_backoff(
|
|
|
183
243
|
return exception.response
|
|
184
244
|
|
|
185
245
|
raise
|
|
186
|
-
|
|
187
|
-
sleep =
|
|
246
|
+
|
|
247
|
+
sleep = _get_sleep_interval(
|
|
248
|
+
exception, initial_interval, max_interval, exponent, retries
|
|
249
|
+
)
|
|
188
250
|
time.sleep(sleep)
|
|
189
251
|
retries += 1
|
|
190
252
|
|
|
@@ -211,7 +273,9 @@ async def retry_with_backoff_async(
|
|
|
211
273
|
return exception.response
|
|
212
274
|
|
|
213
275
|
raise
|
|
214
|
-
|
|
215
|
-
sleep =
|
|
276
|
+
|
|
277
|
+
sleep = _get_sleep_interval(
|
|
278
|
+
exception, initial_interval, max_interval, exponent, retries
|
|
279
|
+
)
|
|
216
280
|
await asyncio.sleep(sleep)
|
|
217
281
|
retries += 1
|
|
@@ -1,12 +1,26 @@
|
|
|
1
1
|
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
2
|
|
|
3
|
-
from typing import Any, Optional
|
|
3
|
+
from typing import Any, Optional, Type, TypeVar, overload
|
|
4
4
|
|
|
5
5
|
import httpx
|
|
6
6
|
|
|
7
7
|
from .serializers import unmarshal_json
|
|
8
8
|
from dub.models import errors
|
|
9
9
|
|
|
10
|
+
T = TypeVar("T")
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@overload
|
|
14
|
+
def unmarshal_json_response(
|
|
15
|
+
typ: Type[T], http_res: httpx.Response, body: Optional[str] = None
|
|
16
|
+
) -> T: ...
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@overload
|
|
20
|
+
def unmarshal_json_response(
|
|
21
|
+
typ: Any, http_res: httpx.Response, body: Optional[str] = None
|
|
22
|
+
) -> Any: ...
|
|
23
|
+
|
|
10
24
|
|
|
11
25
|
def unmarshal_json_response(
|
|
12
26
|
typ: Any, http_res: httpx.Response, body: Optional[str] = None
|
dub/workspaces.py
CHANGED
|
@@ -20,7 +20,7 @@ class Workspaces(BaseSDK):
|
|
|
20
20
|
server_url: Optional[str] = None,
|
|
21
21
|
timeout_ms: Optional[int] = None,
|
|
22
22
|
http_headers: Optional[Mapping[str, str]] = None,
|
|
23
|
-
) ->
|
|
23
|
+
) -> components.WorkspaceSchema:
|
|
24
24
|
r"""Retrieve a workspace
|
|
25
25
|
|
|
26
26
|
Retrieve a workspace for the authenticated user.
|
|
@@ -96,9 +96,7 @@ class Workspaces(BaseSDK):
|
|
|
96
96
|
|
|
97
97
|
response_data: Any = None
|
|
98
98
|
if utils.match_response(http_res, "200", "application/json"):
|
|
99
|
-
return unmarshal_json_response(
|
|
100
|
-
Optional[components.WorkspaceSchema], http_res
|
|
101
|
-
)
|
|
99
|
+
return unmarshal_json_response(components.WorkspaceSchema, http_res)
|
|
102
100
|
if utils.match_response(http_res, "400", "application/json"):
|
|
103
101
|
response_data = unmarshal_json_response(errors.BadRequestData, http_res)
|
|
104
102
|
raise errors.BadRequest(response_data, http_res)
|
|
@@ -151,7 +149,7 @@ class Workspaces(BaseSDK):
|
|
|
151
149
|
server_url: Optional[str] = None,
|
|
152
150
|
timeout_ms: Optional[int] = None,
|
|
153
151
|
http_headers: Optional[Mapping[str, str]] = None,
|
|
154
|
-
) ->
|
|
152
|
+
) -> components.WorkspaceSchema:
|
|
155
153
|
r"""Retrieve a workspace
|
|
156
154
|
|
|
157
155
|
Retrieve a workspace for the authenticated user.
|
|
@@ -227,9 +225,7 @@ class Workspaces(BaseSDK):
|
|
|
227
225
|
|
|
228
226
|
response_data: Any = None
|
|
229
227
|
if utils.match_response(http_res, "200", "application/json"):
|
|
230
|
-
return unmarshal_json_response(
|
|
231
|
-
Optional[components.WorkspaceSchema], http_res
|
|
232
|
-
)
|
|
228
|
+
return unmarshal_json_response(components.WorkspaceSchema, http_res)
|
|
233
229
|
if utils.match_response(http_res, "400", "application/json"):
|
|
234
230
|
response_data = unmarshal_json_response(errors.BadRequestData, http_res)
|
|
235
231
|
raise errors.BadRequest(response_data, http_res)
|
|
@@ -286,7 +282,7 @@ class Workspaces(BaseSDK):
|
|
|
286
282
|
server_url: Optional[str] = None,
|
|
287
283
|
timeout_ms: Optional[int] = None,
|
|
288
284
|
http_headers: Optional[Mapping[str, str]] = None,
|
|
289
|
-
) ->
|
|
285
|
+
) -> components.WorkspaceSchema:
|
|
290
286
|
r"""Update a workspace
|
|
291
287
|
|
|
292
288
|
Update a workspace by ID or slug.
|
|
@@ -373,9 +369,7 @@ class Workspaces(BaseSDK):
|
|
|
373
369
|
|
|
374
370
|
response_data: Any = None
|
|
375
371
|
if utils.match_response(http_res, "200", "application/json"):
|
|
376
|
-
return unmarshal_json_response(
|
|
377
|
-
Optional[components.WorkspaceSchema], http_res
|
|
378
|
-
)
|
|
372
|
+
return unmarshal_json_response(components.WorkspaceSchema, http_res)
|
|
379
373
|
if utils.match_response(http_res, "400", "application/json"):
|
|
380
374
|
response_data = unmarshal_json_response(errors.BadRequestData, http_res)
|
|
381
375
|
raise errors.BadRequest(response_data, http_res)
|
|
@@ -432,7 +426,7 @@ class Workspaces(BaseSDK):
|
|
|
432
426
|
server_url: Optional[str] = None,
|
|
433
427
|
timeout_ms: Optional[int] = None,
|
|
434
428
|
http_headers: Optional[Mapping[str, str]] = None,
|
|
435
|
-
) ->
|
|
429
|
+
) -> components.WorkspaceSchema:
|
|
436
430
|
r"""Update a workspace
|
|
437
431
|
|
|
438
432
|
Update a workspace by ID or slug.
|
|
@@ -519,9 +513,7 @@ class Workspaces(BaseSDK):
|
|
|
519
513
|
|
|
520
514
|
response_data: Any = None
|
|
521
515
|
if utils.match_response(http_res, "200", "application/json"):
|
|
522
|
-
return unmarshal_json_response(
|
|
523
|
-
Optional[components.WorkspaceSchema], http_res
|
|
524
|
-
)
|
|
516
|
+
return unmarshal_json_response(components.WorkspaceSchema, http_res)
|
|
525
517
|
if utils.match_response(http_res, "400", "application/json"):
|
|
526
518
|
response_data = unmarshal_json_response(errors.BadRequestData, http_res)
|
|
527
519
|
raise errors.BadRequest(response_data, http_res)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dub
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.33.0
|
|
4
4
|
Summary: Python Client SDK Generated by Speakeasy
|
|
5
5
|
License-File: LICENSE
|
|
6
6
|
Author: Speakeasy
|
|
@@ -155,8 +155,6 @@ with Dub(
|
|
|
155
155
|
],
|
|
156
156
|
})
|
|
157
157
|
|
|
158
|
-
assert res is not None
|
|
159
|
-
|
|
160
158
|
# Handle response
|
|
161
159
|
print(res)
|
|
162
160
|
```
|
|
@@ -194,8 +192,6 @@ async def main():
|
|
|
194
192
|
],
|
|
195
193
|
})
|
|
196
194
|
|
|
197
|
-
assert res is not None
|
|
198
|
-
|
|
199
195
|
# Handle response
|
|
200
196
|
print(res)
|
|
201
197
|
|
|
@@ -231,8 +227,6 @@ with Dub(
|
|
|
231
227
|
],
|
|
232
228
|
})
|
|
233
229
|
|
|
234
|
-
assert res is not None
|
|
235
|
-
|
|
236
230
|
# Handle response
|
|
237
231
|
print(res)
|
|
238
232
|
```
|
|
@@ -270,8 +264,6 @@ async def main():
|
|
|
270
264
|
],
|
|
271
265
|
})
|
|
272
266
|
|
|
273
|
-
assert res is not None
|
|
274
|
-
|
|
275
267
|
# Handle response
|
|
276
268
|
print(res)
|
|
277
269
|
|
|
@@ -297,7 +289,6 @@ asyncio.run(main())
|
|
|
297
289
|
### [customers](https://github.com/dubinc/dub-python/blob/master/docs/sdks/customers/README.md)
|
|
298
290
|
|
|
299
291
|
* [list](https://github.com/dubinc/dub-python/blob/master/docs/sdks/customers/README.md#list) - Retrieve a list of customers
|
|
300
|
-
* [~~create~~](https://github.com/dubinc/dub-python/blob/master/docs/sdks/customers/README.md#create) - Create a customer :warning: **Deprecated**
|
|
301
292
|
* [get](https://github.com/dubinc/dub-python/blob/master/docs/sdks/customers/README.md#get) - Retrieve a customer
|
|
302
293
|
* [update](https://github.com/dubinc/dub-python/blob/master/docs/sdks/customers/README.md#update) - Update a customer
|
|
303
294
|
* [delete](https://github.com/dubinc/dub-python/blob/master/docs/sdks/customers/README.md#delete) - Delete a customer
|
|
@@ -347,6 +338,7 @@ asyncio.run(main())
|
|
|
347
338
|
* [retrieve_links](https://github.com/dubinc/dub-python/blob/master/docs/sdks/partners/README.md#retrieve_links) - Retrieve a partner's links.
|
|
348
339
|
* [upsert_link](https://github.com/dubinc/dub-python/blob/master/docs/sdks/partners/README.md#upsert_link) - Upsert a link for a partner
|
|
349
340
|
* [analytics](https://github.com/dubinc/dub-python/blob/master/docs/sdks/partners/README.md#analytics) - Retrieve analytics for a partner
|
|
341
|
+
* [ban](https://github.com/dubinc/dub-python/blob/master/docs/sdks/partners/README.md#ban) - Ban a partner
|
|
350
342
|
|
|
351
343
|
### [qr_codes](https://github.com/dubinc/dub-python/blob/master/docs/sdks/qrcodes/README.md)
|
|
352
344
|
|
|
@@ -416,8 +408,6 @@ with Dub(
|
|
|
416
408
|
],
|
|
417
409
|
})
|
|
418
410
|
|
|
419
|
-
assert res is not None
|
|
420
|
-
|
|
421
411
|
# Handle response
|
|
422
412
|
print(res)
|
|
423
413
|
|
|
@@ -497,8 +487,6 @@ with Dub(
|
|
|
497
487
|
],
|
|
498
488
|
})
|
|
499
489
|
|
|
500
|
-
assert res is not None
|
|
501
|
-
|
|
502
490
|
# Handle response
|
|
503
491
|
print(res)
|
|
504
492
|
|
|
@@ -624,8 +612,6 @@ with Dub(
|
|
|
624
612
|
],
|
|
625
613
|
})
|
|
626
614
|
|
|
627
|
-
assert res is not None
|
|
628
|
-
|
|
629
615
|
# Handle response
|
|
630
616
|
print(res)
|
|
631
617
|
|
|
@@ -666,8 +652,6 @@ with Dub(
|
|
|
666
652
|
},
|
|
667
653
|
RetryConfig("backoff", BackoffStrategy(1, 50, 1.1, 100), False))
|
|
668
654
|
|
|
669
|
-
assert res is not None
|
|
670
|
-
|
|
671
655
|
# Handle response
|
|
672
656
|
print(res)
|
|
673
657
|
|
|
@@ -702,8 +686,6 @@ with Dub(
|
|
|
702
686
|
],
|
|
703
687
|
})
|
|
704
688
|
|
|
705
|
-
assert res is not None
|
|
706
|
-
|
|
707
689
|
# Handle response
|
|
708
690
|
print(res)
|
|
709
691
|
|
|
@@ -3,19 +3,19 @@ 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=5vcNbFBNpCxqI7ZebiBtut7T_Gz2i36L5MjTqGvxV7Y,3035
|
|
6
|
-
dub/_version.py,sha256=
|
|
7
|
-
dub/analytics.py,sha256=
|
|
6
|
+
dub/_version.py,sha256=O9gMKNMP0tyVcgQ2NTaV6UbRz7P-cFhNmOaC3o34QCo,450
|
|
7
|
+
dub/analytics.py,sha256=9Z3qSz591YLmyg619YAcin25bDlGorruZ2HvfQbRMZw,12306
|
|
8
8
|
dub/basesdk.py,sha256=ZpolQ0D1eZ93wq3jecXpg7RHj8NuFodyWkk9l4eIcqY,12108
|
|
9
|
-
dub/commissions.py,sha256=
|
|
10
|
-
dub/customers.py,sha256=
|
|
11
|
-
dub/domains.py,sha256=
|
|
12
|
-
dub/embed_tokens.py,sha256=
|
|
13
|
-
dub/events.py,sha256=
|
|
14
|
-
dub/folders.py,sha256=
|
|
9
|
+
dub/commissions.py,sha256=WXXwm6DKA1tJko-aVlvl-aV5N2sVmlyTJ1y8Gt7zj6w,24274
|
|
10
|
+
dub/customers.py,sha256=OM-HfOt7b0B-M3gihbiBV8ntcGtx_Wd9BO56O5MDHrQ,46908
|
|
11
|
+
dub/domains.py,sha256=wE0-QHAKig7ZBSJOvtdRABzvML2xv6WRX5Y6Zfj_J9k,73684
|
|
12
|
+
dub/embed_tokens.py,sha256=DrUkqTRQvl6zJAqNA8sjKLFG7xQdKmdP98j9bc59i1o,12988
|
|
13
|
+
dub/events.py,sha256=zrUeMGRdHUewa94KrTQSwamycTiVdKDYvAbfGPCb2hg,11953
|
|
14
|
+
dub/folders.py,sha256=99eoCKuw0dZ9tV7pay3LgjBIeOcXrq9EnMztMv36dHs,47398
|
|
15
15
|
dub/httpclient.py,sha256=dqTPONDBpRn4ktXfcetQiRXnG93f0pJkFhqsYFhLUac,3945
|
|
16
|
-
dub/links.py,sha256=
|
|
16
|
+
dub/links.py,sha256=UP-uh3JR-RwureHq1IhgJv4WxoCMZQQp4wyfe3yRaxM,121284
|
|
17
17
|
dub/models/__init__.py,sha256=wIW9sbvSKlrGyoPY4mXvHqw-_Inpl6zqpN6U6j-w6SU,83
|
|
18
|
-
dub/models/components/__init__.py,sha256=
|
|
18
|
+
dub/models/components/__init__.py,sha256=OGpIrEQnmmA8_U_Gwi79-_MJuzN4kF7--7PzP3-NGQo,23193
|
|
19
19
|
dub/models/components/analyticsbrowsers.py,sha256=f6qMrkPFf38u3_PIovvdIc0hsX1YpYEaPxNwbXzkoeY,1172
|
|
20
20
|
dub/models/components/analyticscities.py,sha256=zef22QucFtrOCkPDrpvpNlrbX465_0dFHyZ5va_LRRI,1666
|
|
21
21
|
dub/models/components/analyticscontinents.py,sha256=D_SQTm1Xp_pOt7qZTLJVo2B3RQUP8k3MQmsYRQYbjlI,1616
|
|
@@ -28,29 +28,30 @@ dub/models/components/analyticsrefererurls.py,sha256=HDhayuZqqT1wvW09I-ialrQ1pvS
|
|
|
28
28
|
dub/models/components/analyticsregions.py,sha256=--tqwuWSWUYswV_OkQFAbI1PIFala7t2d40-mUGZHXA,1637
|
|
29
29
|
dub/models/components/analyticstimeseries.py,sha256=ZEZpE6oX0FPeiy5snz-kwYhXE9pwGBwzXY0Rq3u9XPI,1186
|
|
30
30
|
dub/models/components/analyticstoplinks.py,sha256=RvhyKQcmDT47F-4sPojhhDgvFYRZCA5k257JrndHSp8,3649
|
|
31
|
-
dub/models/components/analyticstopurls.py,sha256=
|
|
31
|
+
dub/models/components/analyticstopurls.py,sha256=1x5MhFQKnXk-VJ0SP3LC7dI7Q4EuUf2smvNCsru3EFs,1190
|
|
32
32
|
dub/models/components/analyticstriggers.py,sha256=reWQ1cQDNgPc_cDhGrMv5EplFviiyWZ0nYTvU7bm3C0,1484
|
|
33
|
-
dub/models/components/clickevent.py,sha256=
|
|
33
|
+
dub/models/components/clickevent.py,sha256=v7-9uwT1pPArfVFXkPhYGqv2gn1aejKeCXgW-WPZWjc,18719
|
|
34
34
|
dub/models/components/commissioncreatedevent.py,sha256=9dVdgcBxxDwsOAy4tR-WFWzewa2WRNM7Y1l0-ofw83k,9431
|
|
35
35
|
dub/models/components/continentcode.py,sha256=YFw3_x0w7CxCQijsbfiiOoS9FbNATeHyGLcw-LEsXYw,315
|
|
36
36
|
dub/models/components/domainschema.py,sha256=m0QHTiOcO20Ne77d1VanWGSdOxdi5Zt4kIgtQFpXbgI,6688
|
|
37
37
|
dub/models/components/folderschema.py,sha256=RTeyCW0V8AvFtGDREay_2imS76T063aJZ-OhyyGN0Oc,2577
|
|
38
|
-
dub/models/components/leadcreatedevent.py,sha256=
|
|
39
|
-
dub/models/components/leadevent.py,sha256=
|
|
40
|
-
dub/models/components/linkclickedevent.py,sha256=
|
|
38
|
+
dub/models/components/leadcreatedevent.py,sha256=Tf5zZU4LlaN9Qap3OmhEkk1MPB93bqBfGyMIe21ziHM,21926
|
|
39
|
+
dub/models/components/leadevent.py,sha256=Z6tKQv-NknAyTA4uuoG6eb12rwZ53Ue7KmyKeSQS5M4,22963
|
|
40
|
+
dub/models/components/linkclickedevent.py,sha256=00QRCa2kdLpM5myJBK6-h-3-KBx0BKdv8CwIZMsVC44,14860
|
|
41
41
|
dub/models/components/linkerrorschema.py,sha256=BHHLHZv1ojPYUO78d8kCKIjgq68uuMMhW7LbyLMbzqo,1114
|
|
42
|
-
dub/models/components/linkschema.py,sha256=
|
|
42
|
+
dub/models/components/linkschema.py,sha256=9QwFsmfP051YIyiY4Jhxexl7XCzM2dNrj4GN01WgsWc,15584
|
|
43
43
|
dub/models/components/linktagschema.py,sha256=yBMX0ZFB4UbA85UkWRuLYMPaRsb7d1b6NTECgWNDeQs,767
|
|
44
|
-
dub/models/components/linkwebhookevent.py,sha256=
|
|
44
|
+
dub/models/components/linkwebhookevent.py,sha256=64mau-eTg9F85xgf0lff8HG9mEtdyRqnt7kKRYKTckE,13478
|
|
45
45
|
dub/models/components/partneranalyticscount.py,sha256=hJOuFVUTFOuXWviLxExwXDZVgPLBcgmqt8VxeHv7JAw,1035
|
|
46
46
|
dub/models/components/partneranalyticstimeseries.py,sha256=Bh431YfEd8v6TD9o9DPCAwGCDo5Rrf1xR1pccm7q5aw,1268
|
|
47
47
|
dub/models/components/partneranalyticstoplinks.py,sha256=xy1F1vueaBX93Gj2AYqqa7jbEueJy-FAVD5GdnjPva8,3755
|
|
48
|
-
dub/models/components/
|
|
49
|
-
dub/models/components/
|
|
50
|
-
dub/models/components/
|
|
48
|
+
dub/models/components/partnerapplicationsubmittedevent.py,sha256=TH8zxEDeHPwdoVrIYwUzwRNmPUtWZm0cOV8vxYW-yxs,8431
|
|
49
|
+
dub/models/components/partnerenrolledevent.py,sha256=sah0lh_CAR7qH-k1CsIftU0nrUaMBYp74pU2pgISKAU,17359
|
|
50
|
+
dub/models/components/salecreatedevent.py,sha256=EiMQ0o4nDBfIOWq7n7ds3AxJZjk7MJ3y59DIrUgKTRA,23344
|
|
51
|
+
dub/models/components/saleevent.py,sha256=9BXCm0r0pW2IuCgXe0yKE3iBWT-IB5v2PMJtgmMfTis,26578
|
|
51
52
|
dub/models/components/security.py,sha256=be_cng1n5ULto_xGGPBKH1ZE5LrtmBTg6kX2uPJqJOw,599
|
|
52
|
-
dub/models/components/webhookevent.py,sha256=
|
|
53
|
-
dub/models/components/workspaceschema.py,sha256=
|
|
53
|
+
dub/models/components/webhookevent.py,sha256=2yVpFqxevDgyJi5MLBynfo_B3E8FZhp_FsMHmJpmyrU,1496
|
|
54
|
+
dub/models/components/workspaceschema.py,sha256=uSFutfeVfOx5gjQhoZtcFE_K7J_TmAgNBMBXpnx8yNM,11671
|
|
54
55
|
dub/models/errors/__init__.py,sha256=puGRbwSI00uEfD5rs_zvN4GtHhVFXRqrkK60R_nSI24,6462
|
|
55
56
|
dub/models/errors/badrequest.py,sha256=h7qM4M-ttdI6M1yzlT05D1zUfJB8p0oQyYdKwTz-T6c,1758
|
|
56
57
|
dub/models/errors/conflict.py,sha256=PvwtAXs2dAs6evhPJ2Ql3NhNrpMlg0vOcFQ2RGM1tjI,1674
|
|
@@ -65,16 +66,16 @@ dub/models/errors/responsevalidationerror.py,sha256=ODuGOuGulVoPYKLAXuKF4HWDZ7uq
|
|
|
65
66
|
dub/models/errors/sdkerror.py,sha256=K1Fk_HkOwYdNxWGY0XTOzCz4o0XeDqwFLNAmXeO2zQg,1279
|
|
66
67
|
dub/models/errors/unauthorized.py,sha256=wTZD3otsoV2MxnV6zmXnoliC0lRinkOjEZ0Fu6yaUNc,1822
|
|
67
68
|
dub/models/errors/unprocessableentity.py,sha256=Ns3lkmwq8Puc2Gscwg1yUMP6lkuedUbZjY-OEWEFwR4,1805
|
|
68
|
-
dub/models/operations/__init__.py,sha256=
|
|
69
|
+
dub/models/operations/__init__.py,sha256=V6S8eYhlMovlHcdXvD82xc0CjCOmPMWOKNMCyb7-7Bc,41615
|
|
70
|
+
dub/models/operations/banpartner.py,sha256=ytTEip4T1xdnuC4NxWy2NATHlz00L6xW0GQKKJ6K1BM,2709
|
|
69
71
|
dub/models/operations/bulkcreatelinks.py,sha256=BHsqm2NHfaVPOUeN3F576egqYYbqSnkJjzaxwchr6pw,17870
|
|
70
72
|
dub/models/operations/bulkdeletelinks.py,sha256=u_hEFC9TZ1UnGGgLhQ-Mf3HNDO98Ur49MtdBnNVIRsE,1151
|
|
71
73
|
dub/models/operations/bulkupdatelinks.py,sha256=TCkPBC7wD-EZdJm0m9XSznY7sNF8pixyXPXokb3S4XY,15879
|
|
72
74
|
dub/models/operations/checkdomainstatus.py,sha256=W085WT-gUgU73qDi4LlXppdiPVC0Pm1CpPXTqTM56sI,2538
|
|
73
|
-
dub/models/operations/createcustomer.py,sha256=U84gPtRbF6ODG75Ila8h5p7CtB0RWH6VjY9-7J3AjNQ,12485
|
|
74
75
|
dub/models/operations/createdomain.py,sha256=dHRvCzE6knsndN4FTFjfijHVmTi8NXKpURz8cM_C-bk,3900
|
|
75
76
|
dub/models/operations/createfolder.py,sha256=Ott0-OYEpdlun-oZBx2RrOMFsMONO4tko8ESa6GLp18,2097
|
|
76
77
|
dub/models/operations/createlink.py,sha256=bwg4k7nm1igtZeopPvSuMHRSsKZYedhIfv791VWV_ws,17208
|
|
77
|
-
dub/models/operations/createpartner.py,sha256=
|
|
78
|
+
dub/models/operations/createpartner.py,sha256=k7WF_wud0uA08WDWgPSSPCssRW72hyMv0kfWK1yVSQU,34911
|
|
78
79
|
dub/models/operations/createpartnerlink.py,sha256=rOlnyEQdBk2jb5T3ryzvboWney3cRXIG9rCxuwQO58I,17091
|
|
79
80
|
dub/models/operations/createreferralsembedtoken.py,sha256=wu1piQus6oCum3m8etYP6zKKy6pks3pj36x_04Hbfp8,19414
|
|
80
81
|
dub/models/operations/createtag.py,sha256=g0iRXZ4_w-608SLWjU4SvI4paKVpNehvJVYeoWm4NZc,1479
|
|
@@ -91,18 +92,18 @@ dub/models/operations/getlinkscount.py,sha256=PR5EPwhjTTpnlPnWqZX42U7HIT7wtygtIF
|
|
|
91
92
|
dub/models/operations/getqrcode.py,sha256=ynCPJc8vy_QEt5FP8OU2s-u6UIt1BhmFSNZC-XPmO4I,3848
|
|
92
93
|
dub/models/operations/gettags.py,sha256=c9p_JrHFnTDJURyR5iiKFKpXFHlzJDt3R5X1U-anyYg,2664
|
|
93
94
|
dub/models/operations/getworkspace.py,sha256=V4-NfsEg3M1BTeoE13sDyazefb2_kI4yFxnzgvHPv4s,625
|
|
94
|
-
dub/models/operations/listcommissions.py,sha256=
|
|
95
|
+
dub/models/operations/listcommissions.py,sha256=66DflUWCKuK1Bv_li2jeya1qV_BiX5IsozhpT5dnq60,14897
|
|
95
96
|
dub/models/operations/listdomains.py,sha256=gbQrJyBIvTGKSeqJo0Jb08iE44Xu39NS9zbfetx4p-s,1936
|
|
96
|
-
dub/models/operations/listevents.py,sha256=
|
|
97
|
+
dub/models/operations/listevents.py,sha256=AZcFROo0lsUuqLcjCN1S3I50zlmWCywKMWRKkaUEHoA,19812
|
|
97
98
|
dub/models/operations/listfolders.py,sha256=5FGf62ZTjquVXjq5axlzQgYGfEnrEwDn8QLlgGH_7jQ,1209
|
|
98
|
-
dub/models/operations/listpartners.py,sha256=
|
|
99
|
+
dub/models/operations/listpartners.py,sha256=3jNF6-pUd_6p72QuQreFDC2Xy33pmKAiob52r-qS_sE,21447
|
|
99
100
|
dub/models/operations/registerdomain.py,sha256=fjozn1tFU-cNarHdAqN_flQoGAE498ob-f4A2bIAiOc,2058
|
|
100
|
-
dub/models/operations/retrieveanalytics.py,sha256=
|
|
101
|
-
dub/models/operations/retrievelinks.py,sha256=
|
|
102
|
-
dub/models/operations/retrievepartneranalytics.py,sha256=
|
|
101
|
+
dub/models/operations/retrieveanalytics.py,sha256=p21QifcOOt6C0GWkRfp8-yWJornspT9W33oMDeXRiTU,21216
|
|
102
|
+
dub/models/operations/retrievelinks.py,sha256=UKHBX74DNOKHxGi5SoT9j6vc8-SUPmob1qWApvS2PTc,4592
|
|
103
|
+
dub/models/operations/retrievepartneranalytics.py,sha256=4bbue9Ef8qW0ioDkiMSpoXjyfOT5Z--ZORtj8GGOoCQ,6756
|
|
103
104
|
dub/models/operations/tracklead.py,sha256=J6KcI7SS6Saa58PWZP0sYLsL0cdpW307v5UMeEfXn4k,11991
|
|
104
105
|
dub/models/operations/tracksale.py,sha256=F604McUWJ-cjNeXDV-bvUKD7pEnsbOUdbzTsWt8vfFk,11172
|
|
105
|
-
dub/models/operations/updatecommission.py,sha256=
|
|
106
|
+
dub/models/operations/updatecommission.py,sha256=LqMCCQKAHAJNdWvyg91TbjYWveW0Gg-c3RqGpYHsFLU,11253
|
|
106
107
|
dub/models/operations/updatecustomer.py,sha256=zEX_PDLybrFOFn7dqNjhEUsWnj92graAKnmedeTPb5E,13996
|
|
107
108
|
dub/models/operations/updatedomain.py,sha256=rexCga7uNxgBZLPiCMcaudc2cQGB0E_qX2HI0DgG_3M,4519
|
|
108
109
|
dub/models/operations/updatefolder.py,sha256=d1PFkkQ-xApd22N0weWZ6FIfyJ8ZPH2xuIm5lFC0YKw,2794
|
|
@@ -111,13 +112,13 @@ dub/models/operations/updatetag.py,sha256=_cQx77PnR9Jqz9xJ3q3ZwQwpntSibcnlkFFcRb
|
|
|
111
112
|
dub/models/operations/updateworkspace.py,sha256=CKxZZGfgJJeKgWIllyBGmQIPjgfxF0BQMRxNu-c91is,2429
|
|
112
113
|
dub/models/operations/upsertlink.py,sha256=Wli0fSeYDCa7vX9MbAeAFj0GA32ae2RBQGqrgnDA_7U,17331
|
|
113
114
|
dub/models/operations/upsertpartnerlink.py,sha256=Z0xtZHGzePne4wM2XaouR8f_pJrHA6avCmczxEo-9p0,17091
|
|
114
|
-
dub/partners.py,sha256=
|
|
115
|
+
dub/partners.py,sha256=D3svY-Q_6vWZYY88-SS74Jy6_GKj2TOBBMkIAbOlDM8,84933
|
|
115
116
|
dub/py.typed,sha256=zrp19r0G21lr2yRiMC0f8MFkQFGj9wMpSbboePMg8KM,59
|
|
116
|
-
dub/qr_codes.py,sha256=
|
|
117
|
+
dub/qr_codes.py,sha256=l1v6zB9DFJM3P0-jGzdHUvEXAsQuhzmtBnTVarTWzto,11556
|
|
117
118
|
dub/sdk.py,sha256=5CYWxNW6k-XRskdIwLZ_xhpXtGi8rXgfx_aB0RM7Wtg,8127
|
|
118
119
|
dub/sdkconfiguration.py,sha256=2aIgzM94TIYQe5zkQmHhDsdlxJdV6cfhWX0pspYMHow,1605
|
|
119
|
-
dub/tags.py,sha256=
|
|
120
|
-
dub/track.py,sha256
|
|
120
|
+
dub/tags.py,sha256=Bw0JRT6Wn6dBwG-eQmNON7KXL34Yg3F6ZgONH0kN7XQ,46947
|
|
121
|
+
dub/track.py,sha256=B05w47VaQaecw3WHvqu8Q5Bjr9htQxxmniIKFVz7KHs,24318
|
|
121
122
|
dub/types/__init__.py,sha256=RArOwSgeeTIva6h-4ttjXwMUeCkz10nAFBL9D-QljI4,377
|
|
122
123
|
dub/types/basemodel.py,sha256=L79WXvTECbSqaJzs8D3ud_KdIWkU7Cx2wbohDAktE9E,1127
|
|
123
124
|
dub/utils/__init__.py,sha256=88uXYJ3d7C29IuuhPMgWfu4i00tNl555vaqrLA61hds,5766
|
|
@@ -131,14 +132,14 @@ dub/utils/logger.py,sha256=9nUtlKHo3RFsIVyMw5jq3wEKZMVwHnZMSc6xLp-otC0,520
|
|
|
131
132
|
dub/utils/metadata.py,sha256=Per2KFXXOqOtoUWXrlIfjrSrBg199KrRW0nKQDgHIBU,3136
|
|
132
133
|
dub/utils/queryparams.py,sha256=MTK6inMS1_WwjmMJEJmAn67tSHHJyarpdGRlorRHEtI,5899
|
|
133
134
|
dub/utils/requestbodies.py,sha256=ySjEyjcLi731LNUahWvLOrES2HihuA8VrOJx4eQ7Qzg,2101
|
|
134
|
-
dub/utils/retries.py,sha256=
|
|
135
|
+
dub/utils/retries.py,sha256=stPJEFtmK8gOM6aT0DpEJp9Z39oXX1-8I69jpa2n3Ww,8130
|
|
135
136
|
dub/utils/security.py,sha256=ktep3HKwbFs-MLxUYTM8Jd4v-ZBum5_Z0u1PFIdYBX0,5516
|
|
136
137
|
dub/utils/serializers.py,sha256=Hndks5M_rJXVub_N5lu0gKZQUoEmWrn6PN7R-0HwvOE,5999
|
|
137
|
-
dub/utils/unmarshal_json_response.py,sha256=
|
|
138
|
+
dub/utils/unmarshal_json_response.py,sha256=bq-O_sDTisDOcbllFkpH0hAUh0nkOvc-ORF_73pUgr8,875
|
|
138
139
|
dub/utils/url.py,sha256=BgGPgcTA6MRK4bF8fjP2dUopN3NzEzxWMXPBVg8NQUA,5254
|
|
139
140
|
dub/utils/values.py,sha256=CcaCXEa3xHhkUDROyXZocN8f0bdITftv9Y0P9lTf0YM,3517
|
|
140
|
-
dub/workspaces.py,sha256=
|
|
141
|
-
dub-0.
|
|
142
|
-
dub-0.
|
|
143
|
-
dub-0.
|
|
144
|
-
dub-0.
|
|
141
|
+
dub/workspaces.py,sha256=KuklneWZXoJLEyKjdcUysm8XLPU9e8WetCWm-lIV03U,24181
|
|
142
|
+
dub-0.33.0.dist-info/METADATA,sha256=OgLt0N5sH4vReiamHukeUImS_GP_yNc9xkl6BXKX9Ks,30449
|
|
143
|
+
dub-0.33.0.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
|
|
144
|
+
dub-0.33.0.dist-info/licenses/LICENSE,sha256=kc_aZ6YHHcdSsRy-mGsT0Ehji0ZgR_zevXiUt05V2KY,1079
|
|
145
|
+
dub-0.33.0.dist-info/RECORD,,
|