karrio 2023.5.1__py3-none-any.whl → 2025.5rc1__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.
- karrio/__init__.py +0 -100
- karrio/addons/renderer.py +1 -1
- karrio/api/gateway.py +58 -35
- karrio/api/interface.py +41 -4
- karrio/api/mapper.py +39 -0
- karrio/api/proxy.py +18 -5
- karrio/core/__init__.py +5 -1
- karrio/core/errors.py +6 -5
- karrio/core/metadata.py +113 -20
- karrio/core/models.py +66 -5
- karrio/core/plugins.py +606 -0
- karrio/core/settings.py +39 -2
- karrio/core/units.py +639 -32
- karrio/core/utils/__init__.py +1 -1
- karrio/core/utils/datetime.py +75 -13
- karrio/core/utils/dict.py +5 -0
- karrio/core/utils/enum.py +132 -34
- karrio/core/utils/helpers.py +92 -35
- karrio/core/utils/number.py +52 -8
- karrio/core/utils/string.py +52 -1
- karrio/core/utils/transformer.py +12 -5
- karrio/core/validators.py +88 -0
- karrio/lib.py +241 -15
- karrio/plugins/__init__.py +6 -0
- karrio/references.py +652 -67
- karrio/schemas/__init__.py +2 -0
- karrio/sdk.py +102 -0
- karrio/universal/mappers/rating_proxy.py +35 -9
- karrio/validators/__init__.py +6 -0
- {karrio-2023.5.1.dist-info → karrio-2025.5rc1.dist-info}/METADATA +13 -15
- karrio-2025.5rc1.dist-info/RECORD +57 -0
- {karrio-2023.5.1.dist-info → karrio-2025.5rc1.dist-info}/WHEEL +1 -1
- {karrio-2023.5.1.dist-info → karrio-2025.5rc1.dist-info}/top_level.txt +1 -0
- karrio-2023.5.1.dist-info/RECORD +0 -51
karrio/core/models.py
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
"""Karrio Unified model definitions module."""
|
2
|
+
|
3
|
+
from unicodedata import category
|
2
4
|
import attr
|
3
5
|
from typing import List, Dict, Any, Union
|
4
6
|
from jstruct import JList, JStruct, REQUIRED
|
@@ -23,6 +25,7 @@ class Address:
|
|
23
25
|
address_line1: str = ""
|
24
26
|
address_line2: str = None
|
25
27
|
street_number: str = None
|
28
|
+
suite: str = None
|
26
29
|
|
27
30
|
federal_tax_id: str = None
|
28
31
|
state_tax_id: str = None
|
@@ -43,6 +46,7 @@ class Commodity:
|
|
43
46
|
value_amount: float = None
|
44
47
|
value_currency: str = None
|
45
48
|
origin_country: str = None
|
49
|
+
category: str = None
|
46
50
|
|
47
51
|
metadata: Dict = {}
|
48
52
|
|
@@ -124,6 +128,7 @@ class ShipmentRequest:
|
|
124
128
|
|
125
129
|
payment: Payment = JStruct[Payment]
|
126
130
|
customs: Customs = JStruct[Customs]
|
131
|
+
return_address: Address = JStruct[Address]
|
127
132
|
billing_address: Address = JStruct[Address]
|
128
133
|
|
129
134
|
options: Dict = {}
|
@@ -151,6 +156,11 @@ class RateRequest:
|
|
151
156
|
recipient: Address = JStruct[Address, REQUIRED]
|
152
157
|
parcels: List[Parcel] = JList[Parcel, REQUIRED]
|
153
158
|
|
159
|
+
payment: Payment = JStruct[Payment]
|
160
|
+
customs: Customs = JStruct[Customs]
|
161
|
+
return_address: Address = JStruct[Address]
|
162
|
+
billing_address: Address = JStruct[Address]
|
163
|
+
|
154
164
|
services: List[str] = []
|
155
165
|
options: Dict = {}
|
156
166
|
reference: str = ""
|
@@ -176,10 +186,13 @@ class PickupRequest:
|
|
176
186
|
address: Address = JStruct[Address, REQUIRED]
|
177
187
|
|
178
188
|
parcels: List[Parcel] = JList[Parcel]
|
179
|
-
|
189
|
+
shipment_identifiers: List[str] = []
|
180
190
|
package_location: str = None
|
191
|
+
instruction: str = None
|
181
192
|
options: Dict = {}
|
182
193
|
|
194
|
+
metadata: Dict = {}
|
195
|
+
|
183
196
|
|
184
197
|
@attr.s(auto_attribs=True)
|
185
198
|
class PickupUpdateRequest:
|
@@ -192,8 +205,9 @@ class PickupUpdateRequest:
|
|
192
205
|
address: Address = JStruct[Address, REQUIRED]
|
193
206
|
|
194
207
|
parcels: List[Parcel] = JList[Parcel]
|
195
|
-
|
208
|
+
shipment_identifiers: List[str] = []
|
196
209
|
package_location: str = None
|
210
|
+
instruction: str = None
|
197
211
|
options: Dict = {}
|
198
212
|
|
199
213
|
|
@@ -206,6 +220,7 @@ class PickupCancelRequest:
|
|
206
220
|
address: Address = JStruct[Address]
|
207
221
|
pickup_date: str = None
|
208
222
|
reason: str = None
|
223
|
+
options: Dict = {}
|
209
224
|
|
210
225
|
|
211
226
|
@attr.s(auto_attribs=True)
|
@@ -215,6 +230,18 @@ class AddressValidationRequest:
|
|
215
230
|
address: Address = JStruct[Address, REQUIRED]
|
216
231
|
|
217
232
|
|
233
|
+
@attr.s(auto_attribs=True)
|
234
|
+
class ManifestRequest:
|
235
|
+
"""manifest request unified data type."""
|
236
|
+
|
237
|
+
shipment_identifiers: List[str]
|
238
|
+
address: Address = JStruct[Address, REQUIRED]
|
239
|
+
|
240
|
+
reference: str = None
|
241
|
+
metadata: Dict = {}
|
242
|
+
options: Dict = {}
|
243
|
+
|
244
|
+
|
218
245
|
@attr.s(auto_attribs=True)
|
219
246
|
class Message:
|
220
247
|
"""Karrio unified Message data type."""
|
@@ -223,6 +250,7 @@ class Message:
|
|
223
250
|
carrier_id: str
|
224
251
|
message: Union[str, Any] = None
|
225
252
|
code: str = None
|
253
|
+
level: str = None
|
226
254
|
details: Dict = None
|
227
255
|
|
228
256
|
|
@@ -301,6 +329,14 @@ class TrackingInfo:
|
|
301
329
|
source: str = None
|
302
330
|
|
303
331
|
|
332
|
+
@attr.s(auto_attribs=True)
|
333
|
+
class Images:
|
334
|
+
"""Karrio unified tracker images data type."""
|
335
|
+
|
336
|
+
delivery_image: str = None
|
337
|
+
signature_image: str = None
|
338
|
+
|
339
|
+
|
304
340
|
@attr.s(auto_attribs=True)
|
305
341
|
class TrackingDetails:
|
306
342
|
"""Karrio unified tracking details data type."""
|
@@ -309,6 +345,7 @@ class TrackingDetails:
|
|
309
345
|
carrier_id: str
|
310
346
|
tracking_number: str
|
311
347
|
events: List[TrackingEvent] = JList[TrackingEvent, REQUIRED]
|
348
|
+
images: Images = JStruct[Images]
|
312
349
|
estimated_delivery: str = None
|
313
350
|
info: TrackingInfo = None
|
314
351
|
delivered: bool = None
|
@@ -318,13 +355,13 @@ class TrackingDetails:
|
|
318
355
|
|
319
356
|
@attr.s(auto_attribs=True)
|
320
357
|
class Documents:
|
321
|
-
"""Karrio unified shipment details data type."""
|
358
|
+
"""Karrio unified shipment documents details data type."""
|
322
359
|
|
323
360
|
label: str
|
324
|
-
zpl_label: str = None
|
325
|
-
pdf_label: str = None
|
326
361
|
|
327
362
|
invoice: str = None
|
363
|
+
zpl_label: str = None
|
364
|
+
pdf_label: str = None
|
328
365
|
|
329
366
|
|
330
367
|
@attr.s(auto_attribs=True)
|
@@ -353,6 +390,25 @@ class PickupDetails:
|
|
353
390
|
pickup_charge: ChargeDetails = JStruct[ChargeDetails]
|
354
391
|
ready_time: str = None
|
355
392
|
closing_time: str = None
|
393
|
+
meta: dict = None
|
394
|
+
id: str = None
|
395
|
+
|
396
|
+
|
397
|
+
@attr.s(auto_attribs=True)
|
398
|
+
class ManifestDocument:
|
399
|
+
"""Karrio unified manifest document details data type."""
|
400
|
+
|
401
|
+
manifest: str = None
|
402
|
+
|
403
|
+
|
404
|
+
@attr.s(auto_attribs=True)
|
405
|
+
class ManifestDetails:
|
406
|
+
"""Karrio unified manifest details data type."""
|
407
|
+
|
408
|
+
carrier_name: str
|
409
|
+
carrier_id: str
|
410
|
+
doc: ManifestDocument = JStruct[ManifestDocument]
|
411
|
+
meta: dict = None
|
356
412
|
id: str = None
|
357
413
|
|
358
414
|
|
@@ -389,6 +445,7 @@ class ServiceZone:
|
|
389
445
|
|
390
446
|
# Location
|
391
447
|
cities: List[str] = []
|
448
|
+
postal_codes: List[str] = []
|
392
449
|
country_codes: List[str] = []
|
393
450
|
|
394
451
|
|
@@ -398,6 +455,7 @@ class ServiceLevel:
|
|
398
455
|
|
399
456
|
service_name: str
|
400
457
|
service_code: str
|
458
|
+
carrier_service_code: str = None
|
401
459
|
description: str = ""
|
402
460
|
active: bool = True
|
403
461
|
id: str = None
|
@@ -425,6 +483,8 @@ class ServiceLevel:
|
|
425
483
|
transit_days: int = None
|
426
484
|
transit_time: float = None
|
427
485
|
|
486
|
+
metadata: Dict = {}
|
487
|
+
|
428
488
|
|
429
489
|
@attr.s(auto_attribs=True)
|
430
490
|
class LabelTemplate:
|
@@ -466,6 +526,7 @@ class DocumentUploadRequest:
|
|
466
526
|
|
467
527
|
document_files: List[DocumentFile] = JList[DocumentFile, REQUIRED]
|
468
528
|
tracking_number: str = None
|
529
|
+
shipment_date: str = None
|
469
530
|
reference: str = None
|
470
531
|
options: Dict = {}
|
471
532
|
|