dub 0.26.6__py3-none-any.whl → 0.26.7__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/operations/listcommissions.py +2 -0
- dub/models/operations/updatecommission.py +1 -0
- dub/utils/forms.py +49 -28
- {dub-0.26.6.dist-info → dub-0.26.7.dist-info}/METADATA +1 -1
- {dub-0.26.6.dist-info → dub-0.26.7.dist-info}/RECORD +8 -8
- {dub-0.26.6.dist-info → dub-0.26.7.dist-info}/LICENSE +0 -0
- {dub-0.26.6.dist-info → dub-0.26.7.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.26.
|
|
6
|
+
__version__: str = "0.26.7"
|
|
7
7
|
__openapi_doc_version__: str = "0.0.1"
|
|
8
|
-
__gen_version__: str = "2.
|
|
9
|
-
__user_agent__: str = "speakeasy-sdk/python 0.26.
|
|
8
|
+
__gen_version__: str = "2.628.0"
|
|
9
|
+
__user_agent__: str = "speakeasy-sdk/python 0.26.7 2.628.0 0.0.1 dub"
|
|
10
10
|
|
|
11
11
|
try:
|
|
12
12
|
if __package__ is not None:
|
|
@@ -14,6 +14,7 @@ class Type(str, Enum):
|
|
|
14
14
|
CLICK = "click"
|
|
15
15
|
LEAD = "lead"
|
|
16
16
|
SALE = "sale"
|
|
17
|
+
CUSTOM = "custom"
|
|
17
18
|
|
|
18
19
|
|
|
19
20
|
class QueryParamStatus(str, Enum):
|
|
@@ -174,6 +175,7 @@ class ListCommissionsType(str, Enum):
|
|
|
174
175
|
CLICK = "click"
|
|
175
176
|
LEAD = "lead"
|
|
176
177
|
SALE = "sale"
|
|
178
|
+
CUSTOM = "custom"
|
|
177
179
|
|
|
178
180
|
|
|
179
181
|
class ListCommissionsStatus(str, Enum):
|
dub/utils/forms.py
CHANGED
|
@@ -86,11 +86,39 @@ def _populate_form(
|
|
|
86
86
|
return form
|
|
87
87
|
|
|
88
88
|
|
|
89
|
+
def _extract_file_properties(file_obj: Any) -> Tuple[str, Any, Any]:
|
|
90
|
+
"""Extract file name, content, and content type from a file object."""
|
|
91
|
+
file_fields: Dict[str, FieldInfo] = file_obj.__class__.model_fields
|
|
92
|
+
|
|
93
|
+
file_name = ""
|
|
94
|
+
content = None
|
|
95
|
+
content_type = None
|
|
96
|
+
|
|
97
|
+
for file_field_name in file_fields:
|
|
98
|
+
file_field = file_fields[file_field_name]
|
|
99
|
+
|
|
100
|
+
file_metadata = find_field_metadata(file_field, MultipartFormMetadata)
|
|
101
|
+
if file_metadata is None:
|
|
102
|
+
continue
|
|
103
|
+
|
|
104
|
+
if file_metadata.content:
|
|
105
|
+
content = getattr(file_obj, file_field_name, None)
|
|
106
|
+
elif file_field_name == "content_type":
|
|
107
|
+
content_type = getattr(file_obj, file_field_name, None)
|
|
108
|
+
else:
|
|
109
|
+
file_name = getattr(file_obj, file_field_name)
|
|
110
|
+
|
|
111
|
+
if file_name == "" or content is None:
|
|
112
|
+
raise ValueError("invalid multipart/form-data file")
|
|
113
|
+
|
|
114
|
+
return file_name, content, content_type
|
|
115
|
+
|
|
116
|
+
|
|
89
117
|
def serialize_multipart_form(
|
|
90
118
|
media_type: str, request: Any
|
|
91
|
-
) -> Tuple[str, Dict[str, Any],
|
|
119
|
+
) -> Tuple[str, Dict[str, Any], List[Tuple[str, Any]]]:
|
|
92
120
|
form: Dict[str, Any] = {}
|
|
93
|
-
files:
|
|
121
|
+
files: List[Tuple[str, Any]] = []
|
|
94
122
|
|
|
95
123
|
if not isinstance(request, BaseModel):
|
|
96
124
|
raise TypeError("invalid request body type")
|
|
@@ -112,39 +140,32 @@ def serialize_multipart_form(
|
|
|
112
140
|
f_name = field.alias if field.alias else name
|
|
113
141
|
|
|
114
142
|
if field_metadata.file:
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
file_field = file_fields[file_field_name]
|
|
143
|
+
if isinstance(val, List):
|
|
144
|
+
# Handle array of files
|
|
145
|
+
for file_obj in val:
|
|
146
|
+
if not _is_set(file_obj):
|
|
147
|
+
continue
|
|
148
|
+
|
|
149
|
+
file_name, content, content_type = _extract_file_properties(file_obj)
|
|
123
150
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
151
|
+
if content_type is not None:
|
|
152
|
+
files.append((f_name + "[]", (file_name, content, content_type)))
|
|
153
|
+
else:
|
|
154
|
+
files.append((f_name + "[]", (file_name, content)))
|
|
155
|
+
else:
|
|
156
|
+
# Handle single file
|
|
157
|
+
file_name, content, content_type = _extract_file_properties(val)
|
|
127
158
|
|
|
128
|
-
if
|
|
129
|
-
|
|
130
|
-
elif file_field_name == "content_type":
|
|
131
|
-
content_type = getattr(val, file_field_name, None)
|
|
159
|
+
if content_type is not None:
|
|
160
|
+
files.append((f_name, (file_name, content, content_type)))
|
|
132
161
|
else:
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
if file_name == "" or content is None:
|
|
136
|
-
raise ValueError("invalid multipart/form-data file")
|
|
137
|
-
|
|
138
|
-
if content_type is not None:
|
|
139
|
-
files[f_name] = (file_name, content, content_type)
|
|
140
|
-
else:
|
|
141
|
-
files[f_name] = (file_name, content)
|
|
162
|
+
files.append((f_name, (file_name, content)))
|
|
142
163
|
elif field_metadata.json:
|
|
143
|
-
files
|
|
164
|
+
files.append((f_name, (
|
|
144
165
|
None,
|
|
145
166
|
marshal_json(val, request_field_types[name]),
|
|
146
167
|
"application/json",
|
|
147
|
-
)
|
|
168
|
+
)))
|
|
148
169
|
else:
|
|
149
170
|
if isinstance(val, List):
|
|
150
171
|
values = []
|
|
@@ -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=5vcNbFBNpCxqI7ZebiBtut7T_Gz2i36L5MjTqGvxV7Y,3035
|
|
6
|
-
dub/_version.py,sha256=
|
|
6
|
+
dub/_version.py,sha256=Sh7GZ-njiX-WhOs8SO6zkqXAd9oNIf0oHXhzsqHBswQ,450
|
|
7
7
|
dub/analytics.py,sha256=acVdNv1hS7JDmBS1ena0kG-RNNq64lRZwOV6_2FZn60,13032
|
|
8
8
|
dub/basesdk.py,sha256=nY5yee9uE5SQHkG_9Di9MUoQR0KcPr-WrtTCDHUdRnY,11779
|
|
9
9
|
dub/commissions.py,sha256=H56AkD5M03FuXaIdsd5jY6rWZ7qa8c0gssXQhLkF634,25796
|
|
@@ -89,7 +89,7 @@ dub/models/operations/getlinkscount.py,sha256=KvD0gh-Imn1WmiiRAIYUXHBoNNGEnmfBQX
|
|
|
89
89
|
dub/models/operations/getqrcode.py,sha256=ynCPJc8vy_QEt5FP8OU2s-u6UIt1BhmFSNZC-XPmO4I,3848
|
|
90
90
|
dub/models/operations/gettags.py,sha256=c9p_JrHFnTDJURyR5iiKFKpXFHlzJDt3R5X1U-anyYg,2664
|
|
91
91
|
dub/models/operations/getworkspace.py,sha256=V4-NfsEg3M1BTeoE13sDyazefb2_kI4yFxnzgvHPv4s,625
|
|
92
|
-
dub/models/operations/listcommissions.py,sha256=
|
|
92
|
+
dub/models/operations/listcommissions.py,sha256=LNb0OGeSGt4fFIfDBZLmLqtMmMDbT2fq-Bd_hbMqONg,8039
|
|
93
93
|
dub/models/operations/listdomains.py,sha256=gbQrJyBIvTGKSeqJo0Jb08iE44Xu39NS9zbfetx4p-s,1936
|
|
94
94
|
dub/models/operations/listevents.py,sha256=AwnXpTWOhhZ_er9FZukptf1U2dD52j-xQtvop9k-J7g,17943
|
|
95
95
|
dub/models/operations/listfolders.py,sha256=5FGf62ZTjquVXjq5axlzQgYGfEnrEwDn8QLlgGH_7jQ,1209
|
|
@@ -99,7 +99,7 @@ dub/models/operations/retrievelinks.py,sha256=1bLrT_Q2y60eU_gdOHTu99VW8c09gX3nki
|
|
|
99
99
|
dub/models/operations/retrievepartneranalytics.py,sha256=MmBDRCB5lQ1lKkfHpeMnZcQXkKIjSCVGEUVcvJgZ_Io,5275
|
|
100
100
|
dub/models/operations/tracklead.py,sha256=FxdbxL9r3PF0eqo4aOcGXCS7EERq11x07NEdPDkqeps,6855
|
|
101
101
|
dub/models/operations/tracksale.py,sha256=q_IL4dHay_dDTmRYH80zI6JphCyk46yHoLHBFEJEILg,8189
|
|
102
|
-
dub/models/operations/updatecommission.py,sha256=
|
|
102
|
+
dub/models/operations/updatecommission.py,sha256=q5Ifb9Zms429lr2MgORkdPG6FEfHz2jmByG_kAGy8Dg,5474
|
|
103
103
|
dub/models/operations/updatecustomer.py,sha256=xlW-W99WgdlAsKD4fNhIEw3f1Sipnb4ahPnZFOcisSY,13517
|
|
104
104
|
dub/models/operations/updatedomain.py,sha256=rexCga7uNxgBZLPiCMcaudc2cQGB0E_qX2HI0DgG_3M,4519
|
|
105
105
|
dub/models/operations/updatefolder.py,sha256=dNvSPY67g58SWynB8ic5rcgT-h7THRmyxuzuFdO42GQ,2581
|
|
@@ -122,7 +122,7 @@ dub/utils/annotations.py,sha256=aR7mZG34FzgRdew7WZPYEu9QGBerpuKxCF4sek5Z_5Y,1699
|
|
|
122
122
|
dub/utils/datetimes.py,sha256=oppAA5e3V35pQov1-FNLKxAaNF1_XWi-bQtyjjql3H8,855
|
|
123
123
|
dub/utils/enums.py,sha256=REU6ydF8gsVL3xaeGX4sMNyiL3q5P9h29-f6Sa6luAE,2633
|
|
124
124
|
dub/utils/eventstreaming.py,sha256=LtcrfJYw4nP2Oe4Wl0-cEURLzRGYReRGWNFY5wYECIE,6186
|
|
125
|
-
dub/utils/forms.py,sha256=
|
|
125
|
+
dub/utils/forms.py,sha256=EJdnrfIkuwpDtekyHutla0HjI_FypTYcmYNyPKEu_W0,6874
|
|
126
126
|
dub/utils/headers.py,sha256=cPxWSmUILrefTGDzTH1Hdj7_Hlsj-EY6K5Tyc4iH4dk,3663
|
|
127
127
|
dub/utils/logger.py,sha256=9nUtlKHo3RFsIVyMw5jq3wEKZMVwHnZMSc6xLp-otC0,520
|
|
128
128
|
dub/utils/metadata.py,sha256=Per2KFXXOqOtoUWXrlIfjrSrBg199KrRW0nKQDgHIBU,3136
|
|
@@ -134,7 +134,7 @@ dub/utils/serializers.py,sha256=hiHBXM1AY8_N2Z_rvFfNSYwvLBkSQlPGFp8poasdU4s,5986
|
|
|
134
134
|
dub/utils/url.py,sha256=BgGPgcTA6MRK4bF8fjP2dUopN3NzEzxWMXPBVg8NQUA,5254
|
|
135
135
|
dub/utils/values.py,sha256=CcaCXEa3xHhkUDROyXZocN8f0bdITftv9Y0P9lTf0YM,3517
|
|
136
136
|
dub/workspaces.py,sha256=_4KOZwwL0KADDqSrHZWfO7LpEwLi59uvaKm-X7JzAv0,25823
|
|
137
|
-
dub-0.26.
|
|
138
|
-
dub-0.26.
|
|
139
|
-
dub-0.26.
|
|
140
|
-
dub-0.26.
|
|
137
|
+
dub-0.26.7.dist-info/LICENSE,sha256=kc_aZ6YHHcdSsRy-mGsT0Ehji0ZgR_zevXiUt05V2KY,1079
|
|
138
|
+
dub-0.26.7.dist-info/METADATA,sha256=HFt_nIBsCWJ1AIPd3gzSKWq7Qtx8-Tu28b-ULvAM5Xo,28075
|
|
139
|
+
dub-0.26.7.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
140
|
+
dub-0.26.7.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|