karrio-mydhl 2025.5rc7__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.
Files changed (39) hide show
  1. karrio/mappers/mydhl/__init__.py +3 -0
  2. karrio/mappers/mydhl/mapper.py +99 -0
  3. karrio/mappers/mydhl/proxy.py +148 -0
  4. karrio/mappers/mydhl/settings.py +24 -0
  5. karrio/plugins/mydhl/__init__.py +24 -0
  6. karrio/providers/mydhl/__init__.py +28 -0
  7. karrio/providers/mydhl/address.py +65 -0
  8. karrio/providers/mydhl/error.py +77 -0
  9. karrio/providers/mydhl/pickup/__init__.py +14 -0
  10. karrio/providers/mydhl/pickup/cancel.py +62 -0
  11. karrio/providers/mydhl/pickup/create.py +94 -0
  12. karrio/providers/mydhl/pickup/update.py +108 -0
  13. karrio/providers/mydhl/rate.py +112 -0
  14. karrio/providers/mydhl/shipment/__init__.py +9 -0
  15. karrio/providers/mydhl/shipment/cancel.py +91 -0
  16. karrio/providers/mydhl/shipment/create.py +100 -0
  17. karrio/providers/mydhl/tracking.py +86 -0
  18. karrio/providers/mydhl/units.py +99 -0
  19. karrio/providers/mydhl/utils.py +92 -0
  20. karrio/schemas/mydhl/__init__.py +0 -0
  21. karrio/schemas/mydhl/address_validation_request.py +13 -0
  22. karrio/schemas/mydhl/address_validation_response.py +25 -0
  23. karrio/schemas/mydhl/error_response.py +13 -0
  24. karrio/schemas/mydhl/pickup_cancel_request.py +10 -0
  25. karrio/schemas/mydhl/pickup_cancel_response.py +8 -0
  26. karrio/schemas/mydhl/pickup_create_request.py +108 -0
  27. karrio/schemas/mydhl/pickup_create_response.py +11 -0
  28. karrio/schemas/mydhl/pickup_update_request.py +110 -0
  29. karrio/schemas/mydhl/pickup_update_response.py +11 -0
  30. karrio/schemas/mydhl/rate_request.py +114 -0
  31. karrio/schemas/mydhl/rate_response.py +143 -0
  32. karrio/schemas/mydhl/shipment_request.py +275 -0
  33. karrio/schemas/mydhl/shipment_response.py +90 -0
  34. karrio/schemas/mydhl/tracking_response.py +112 -0
  35. karrio_mydhl-2025.5rc7.dist-info/METADATA +44 -0
  36. karrio_mydhl-2025.5rc7.dist-info/RECORD +39 -0
  37. karrio_mydhl-2025.5rc7.dist-info/WHEEL +5 -0
  38. karrio_mydhl-2025.5rc7.dist-info/entry_points.txt +2 -0
  39. karrio_mydhl-2025.5rc7.dist-info/top_level.txt +3 -0
@@ -0,0 +1,275 @@
1
+ import attr
2
+ import jstruct
3
+ import typing
4
+
5
+
6
+ @attr.s(auto_attribs=True)
7
+ class AccountType:
8
+ typeCode: typing.Optional[str] = None
9
+ number: typing.Optional[int] = None
10
+
11
+
12
+ @attr.s(auto_attribs=True)
13
+ class AdditionalChargeType:
14
+ value: typing.Optional[int] = None
15
+ typeCode: typing.Optional[str] = None
16
+
17
+
18
+ @attr.s(auto_attribs=True)
19
+ class CustomerReferenceType:
20
+ typeCode: typing.Optional[str] = None
21
+ value: typing.Optional[str] = None
22
+
23
+
24
+ @attr.s(auto_attribs=True)
25
+ class ExporterType:
26
+ id: typing.Optional[int] = None
27
+ code: typing.Optional[str] = None
28
+
29
+
30
+ @attr.s(auto_attribs=True)
31
+ class InvoiceType:
32
+ number: typing.Optional[str] = None
33
+ date: typing.Optional[str] = None
34
+ function: typing.Optional[str] = None
35
+ customerReferences: typing.Optional[typing.List[CustomerReferenceType]] = jstruct.JList[CustomerReferenceType]
36
+
37
+
38
+ @attr.s(auto_attribs=True)
39
+ class QuantityType:
40
+ value: typing.Optional[int] = None
41
+ unitOfMeasurement: typing.Optional[str] = None
42
+
43
+
44
+ @attr.s(auto_attribs=True)
45
+ class WeightType:
46
+ netValue: typing.Optional[int] = None
47
+ grossValue: typing.Optional[float] = None
48
+
49
+
50
+ @attr.s(auto_attribs=True)
51
+ class LineItemType:
52
+ number: typing.Optional[int] = None
53
+ description: typing.Optional[str] = None
54
+ price: typing.Optional[int] = None
55
+ quantity: typing.Optional[QuantityType] = jstruct.JStruct[QuantityType]
56
+ commodityCodes: typing.Optional[typing.List[CustomerReferenceType]] = jstruct.JList[CustomerReferenceType]
57
+ exportReasonType: typing.Optional[str] = None
58
+ manufacturerCountry: typing.Optional[str] = None
59
+ weight: typing.Optional[WeightType] = jstruct.JStruct[WeightType]
60
+ isTaxesPaid: typing.Optional[bool] = None
61
+ customerReferences: typing.Optional[typing.List[CustomerReferenceType]] = jstruct.JList[CustomerReferenceType]
62
+ customsDocuments: typing.Optional[typing.List[CustomerReferenceType]] = jstruct.JList[CustomerReferenceType]
63
+
64
+
65
+ @attr.s(auto_attribs=True)
66
+ class RemarkType:
67
+ value: typing.Optional[str] = None
68
+
69
+
70
+ @attr.s(auto_attribs=True)
71
+ class ExportDeclarationType:
72
+ lineItems: typing.Optional[typing.List[LineItemType]] = jstruct.JList[LineItemType]
73
+ invoice: typing.Optional[InvoiceType] = jstruct.JStruct[InvoiceType]
74
+ remarks: typing.Optional[typing.List[RemarkType]] = jstruct.JList[RemarkType]
75
+ additionalCharges: typing.Optional[typing.List[AdditionalChargeType]] = jstruct.JList[AdditionalChargeType]
76
+ placeOfIncoterm: typing.Optional[str] = None
77
+ recipientReference: typing.Optional[str] = None
78
+ exporter: typing.Optional[ExporterType] = jstruct.JStruct[ExporterType]
79
+ exportReasonType: typing.Optional[str] = None
80
+ shipmentType: typing.Optional[str] = None
81
+ customsDocuments: typing.Optional[typing.List[CustomerReferenceType]] = jstruct.JList[CustomerReferenceType]
82
+
83
+
84
+ @attr.s(auto_attribs=True)
85
+ class DimensionsType:
86
+ length: typing.Optional[int] = None
87
+ width: typing.Optional[int] = None
88
+ height: typing.Optional[int] = None
89
+
90
+
91
+ @attr.s(auto_attribs=True)
92
+ class BarcodeType:
93
+ position: typing.Optional[str] = None
94
+ symbologyCode: typing.Optional[int] = None
95
+ content: typing.Optional[str] = None
96
+ textBelowBarcode: typing.Optional[str] = None
97
+
98
+
99
+ @attr.s(auto_attribs=True)
100
+ class LabelTextType:
101
+ position: typing.Optional[str] = None
102
+ caption: typing.Optional[str] = None
103
+ value: typing.Optional[str] = None
104
+
105
+
106
+ @attr.s(auto_attribs=True)
107
+ class PackageType:
108
+ typeCode: typing.Optional[str] = None
109
+ weight: typing.Optional[float] = None
110
+ dimensions: typing.Optional[DimensionsType] = jstruct.JStruct[DimensionsType]
111
+ customerReferences: typing.Optional[typing.List[CustomerReferenceType]] = jstruct.JList[CustomerReferenceType]
112
+ description: typing.Optional[str] = None
113
+ labelBarcodes: typing.Optional[typing.List[BarcodeType]] = jstruct.JList[BarcodeType]
114
+ labelText: typing.Optional[typing.List[LabelTextType]] = jstruct.JList[LabelTextType]
115
+ labelDescription: typing.Optional[str] = None
116
+
117
+
118
+ @attr.s(auto_attribs=True)
119
+ class ContentType:
120
+ packages: typing.Optional[typing.List[PackageType]] = jstruct.JList[PackageType]
121
+ isCustomsDeclarable: typing.Optional[bool] = None
122
+ declaredValue: typing.Optional[int] = None
123
+ declaredValueCurrency: typing.Optional[str] = None
124
+ exportDeclaration: typing.Optional[ExportDeclarationType] = jstruct.JStruct[ExportDeclarationType]
125
+ description: typing.Optional[str] = None
126
+ USFilingTypeValue: typing.Optional[int] = None
127
+ incoterm: typing.Optional[str] = None
128
+ unitOfMeasurement: typing.Optional[str] = None
129
+
130
+
131
+ @attr.s(auto_attribs=True)
132
+ class ContactInformationType:
133
+ email: typing.Optional[str] = None
134
+ phone: typing.Optional[str] = None
135
+ mobilePhone: typing.Optional[str] = None
136
+ companyName: typing.Optional[str] = None
137
+ fullName: typing.Optional[str] = None
138
+
139
+
140
+ @attr.s(auto_attribs=True)
141
+ class PostalAddressType:
142
+ postalCode: typing.Optional[int] = None
143
+ cityName: typing.Optional[str] = None
144
+ countryCode: typing.Optional[str] = None
145
+ provinceCode: typing.Optional[str] = None
146
+ addressLine1: typing.Optional[str] = None
147
+ addressLine2: typing.Optional[str] = None
148
+ addressLine3: typing.Optional[str] = None
149
+ countyName: typing.Optional[str] = None
150
+
151
+
152
+ @attr.s(auto_attribs=True)
153
+ class RegistrationNumberType:
154
+ typeCode: typing.Optional[str] = None
155
+ number: typing.Optional[str] = None
156
+ issuerCountryCode: typing.Optional[str] = None
157
+
158
+
159
+ @attr.s(auto_attribs=True)
160
+ class DetailsType:
161
+ postalAddress: typing.Optional[PostalAddressType] = jstruct.JStruct[PostalAddressType]
162
+ contactInformation: typing.Optional[ContactInformationType] = jstruct.JStruct[ContactInformationType]
163
+ registrationNumbers: typing.Optional[typing.List[RegistrationNumberType]] = jstruct.JList[RegistrationNumberType]
164
+ typeCode: typing.Optional[str] = None
165
+
166
+
167
+ @attr.s(auto_attribs=True)
168
+ class CustomerDetailsType:
169
+ shipperDetails: typing.Optional[DetailsType] = jstruct.JStruct[DetailsType]
170
+ receiverDetails: typing.Optional[DetailsType] = jstruct.JStruct[DetailsType]
171
+ buyerDetails: typing.Optional[DetailsType] = jstruct.JStruct[DetailsType]
172
+
173
+
174
+ @attr.s(auto_attribs=True)
175
+ class DocumentImageType:
176
+ typeCode: typing.Optional[str] = None
177
+ imageFormat: typing.Optional[str] = None
178
+ content: typing.Optional[str] = None
179
+ isRequested: typing.Optional[bool] = None
180
+
181
+
182
+ @attr.s(auto_attribs=True)
183
+ class CustomerLogoType:
184
+ fileFormat: typing.Optional[str] = None
185
+ content: typing.Optional[str] = None
186
+
187
+
188
+ @attr.s(auto_attribs=True)
189
+ class LabelOptionsType:
190
+ customerLogos: typing.Optional[typing.List[CustomerLogoType]] = jstruct.JList[CustomerLogoType]
191
+ waybillTemplate: typing.Optional[str] = None
192
+
193
+
194
+ @attr.s(auto_attribs=True)
195
+ class OnDemandDeliveryType:
196
+ deliveryOption: typing.Optional[str] = None
197
+ location: typing.Optional[str] = None
198
+ specialInstructions: typing.Optional[str] = None
199
+ gateCode: typing.Optional[int] = None
200
+ whereToLeave: typing.Optional[str] = None
201
+ neighbourName: typing.Optional[str] = None
202
+ neighbourHouseNumber: typing.Optional[int] = None
203
+ authorizerName: typing.Optional[str] = None
204
+ servicePointId: typing.Optional[str] = None
205
+ requestedDeliveryDate: typing.Optional[str] = None
206
+
207
+
208
+ @attr.s(auto_attribs=True)
209
+ class ImageOptionType:
210
+ typeCode: typing.Optional[str] = None
211
+ templateName: typing.Optional[str] = None
212
+ isRequested: typing.Optional[bool] = None
213
+ invoiceType: typing.Optional[str] = None
214
+ languageCode: typing.Optional[str] = None
215
+ hideAccountNumber: typing.Optional[bool] = None
216
+ numberOfCopies: typing.Optional[int] = None
217
+
218
+
219
+ @attr.s(auto_attribs=True)
220
+ class OutputImagePropertiesType:
221
+ printerDPI: typing.Optional[int] = None
222
+ customerBarcodes: typing.Optional[typing.List[BarcodeType]] = jstruct.JList[BarcodeType]
223
+ customerLogos: typing.Optional[typing.List[CustomerLogoType]] = jstruct.JList[CustomerLogoType]
224
+ encodingFormat: typing.Optional[str] = None
225
+ imageOptions: typing.Optional[typing.List[ImageOptionType]] = jstruct.JList[ImageOptionType]
226
+ splitTransportAndWaybillDocLabels: typing.Optional[bool] = None
227
+ allDocumentsInOneImage: typing.Optional[bool] = None
228
+ splitDocumentsByPages: typing.Optional[bool] = None
229
+ splitInvoiceAndReceipt: typing.Optional[bool] = None
230
+ receiptAndLabelsInOneImage: typing.Optional[bool] = None
231
+
232
+
233
+ @attr.s(auto_attribs=True)
234
+ class PickupType:
235
+ isRequested: typing.Optional[bool] = None
236
+ closeTime: typing.Optional[str] = None
237
+ location: typing.Optional[str] = None
238
+ pickupDetails: typing.Optional[DetailsType] = jstruct.JStruct[DetailsType]
239
+ pickupRequestorDetails: typing.Optional[DetailsType] = jstruct.JStruct[DetailsType]
240
+
241
+
242
+ @attr.s(auto_attribs=True)
243
+ class ShipmentNotificationType:
244
+ typeCode: typing.Optional[str] = None
245
+ receiverId: typing.Optional[str] = None
246
+ languageCode: typing.Optional[str] = None
247
+ languageCountryCode: typing.Optional[str] = None
248
+ bespokeMessage: typing.Optional[str] = None
249
+
250
+
251
+ @attr.s(auto_attribs=True)
252
+ class ValueAddedServiceType:
253
+ serviceCode: typing.Optional[str] = None
254
+ value: typing.Optional[int] = None
255
+ currency: typing.Optional[str] = None
256
+
257
+
258
+ @attr.s(auto_attribs=True)
259
+ class ShipmentRequestType:
260
+ plannedShippingDateAndTime: typing.Optional[str] = None
261
+ pickup: typing.Optional[PickupType] = jstruct.JStruct[PickupType]
262
+ productCode: typing.Optional[str] = None
263
+ localProductCode: typing.Optional[str] = None
264
+ getRateEstimates: typing.Optional[bool] = None
265
+ accounts: typing.Optional[typing.List[AccountType]] = jstruct.JList[AccountType]
266
+ valueAddedServices: typing.Optional[typing.List[ValueAddedServiceType]] = jstruct.JList[ValueAddedServiceType]
267
+ outputImageProperties: typing.Optional[OutputImagePropertiesType] = jstruct.JStruct[OutputImagePropertiesType]
268
+ customerReferences: typing.Optional[typing.List[CustomerReferenceType]] = jstruct.JList[CustomerReferenceType]
269
+ customerDetails: typing.Optional[CustomerDetailsType] = jstruct.JStruct[CustomerDetailsType]
270
+ content: typing.Optional[ContentType] = jstruct.JStruct[ContentType]
271
+ documentImages: typing.Optional[typing.List[DocumentImageType]] = jstruct.JList[DocumentImageType]
272
+ onDemandDelivery: typing.Optional[OnDemandDeliveryType] = jstruct.JStruct[OnDemandDeliveryType]
273
+ requestOndemandDeliveryURL: typing.Optional[bool] = None
274
+ shipmentNotification: typing.Optional[typing.List[ShipmentNotificationType]] = jstruct.JList[ShipmentNotificationType]
275
+ labelOptions: typing.Optional[LabelOptionsType] = jstruct.JStruct[LabelOptionsType]
@@ -0,0 +1,90 @@
1
+ import attr
2
+ import jstruct
3
+ import typing
4
+
5
+
6
+ @attr.s(auto_attribs=True)
7
+ class DocumentType:
8
+ imageFormat: typing.Optional[str] = None
9
+ content: typing.Optional[str] = None
10
+ typeCode: typing.Optional[str] = None
11
+
12
+
13
+ @attr.s(auto_attribs=True)
14
+ class EstimatedDeliveryDateType:
15
+ estimatedDeliveryDate: typing.Optional[str] = None
16
+ estimatedDeliveryType: typing.Optional[str] = None
17
+
18
+
19
+ @attr.s(auto_attribs=True)
20
+ class PackageType:
21
+ referenceNumber: typing.Optional[int] = None
22
+ trackingNumber: typing.Optional[str] = None
23
+ trackingUrl: typing.Optional[str] = None
24
+ volumetricWeight: typing.Optional[float] = None
25
+ documents: typing.Optional[typing.List[DocumentType]] = jstruct.JList[DocumentType]
26
+
27
+
28
+ @attr.s(auto_attribs=True)
29
+ class ContactInformationType:
30
+ email: typing.Optional[str] = None
31
+ phone: typing.Optional[str] = None
32
+ mobilePhone: typing.Optional[str] = None
33
+ companyName: typing.Optional[str] = None
34
+ fullName: typing.Optional[str] = None
35
+
36
+
37
+ @attr.s(auto_attribs=True)
38
+ class PostalAddressType:
39
+ postalCode: typing.Optional[int] = None
40
+ cityName: typing.Optional[str] = None
41
+ countryCode: typing.Optional[str] = None
42
+ provinceCode: typing.Optional[str] = None
43
+ addressLine1: typing.Optional[str] = None
44
+ addressLine2: typing.Optional[str] = None
45
+ addressLine3: typing.Optional[str] = None
46
+ countyName: typing.Optional[str] = None
47
+
48
+
49
+ @attr.s(auto_attribs=True)
50
+ class RegistrationNumberType:
51
+ typeCode: typing.Optional[str] = None
52
+ number: typing.Optional[str] = None
53
+ issuerCountryCode: typing.Optional[str] = None
54
+
55
+
56
+ @attr.s(auto_attribs=True)
57
+ class ErDetailsType:
58
+ postalAddress: typing.Optional[PostalAddressType] = jstruct.JStruct[PostalAddressType]
59
+ contactInformation: typing.Optional[ContactInformationType] = jstruct.JStruct[ContactInformationType]
60
+ registrationNumbers: typing.Optional[typing.List[RegistrationNumberType]] = jstruct.JList[RegistrationNumberType]
61
+ typeCode: typing.Optional[str] = None
62
+
63
+
64
+ @attr.s(auto_attribs=True)
65
+ class CustomerDetailsType:
66
+ shipperDetails: typing.Optional[ErDetailsType] = jstruct.JStruct[ErDetailsType]
67
+ receiverDetails: typing.Optional[ErDetailsType] = jstruct.JStruct[ErDetailsType]
68
+
69
+
70
+ @attr.s(auto_attribs=True)
71
+ class ShipmentDetailType:
72
+ serviceHandlingFeatureCodes: typing.Optional[typing.List[str]] = None
73
+ volumetricWeight: typing.Optional[float] = None
74
+ billingCode: typing.Optional[str] = None
75
+ serviceContentCode: typing.Optional[str] = None
76
+ customerDetails: typing.Optional[CustomerDetailsType] = jstruct.JStruct[CustomerDetailsType]
77
+
78
+
79
+ @attr.s(auto_attribs=True)
80
+ class ShipmentResponseType:
81
+ shipmentTrackingNumber: typing.Optional[int] = None
82
+ cancelPickupUrl: typing.Optional[str] = None
83
+ trackingUrl: typing.Optional[str] = None
84
+ dispatchConfirmationNumber: typing.Optional[str] = None
85
+ packages: typing.Optional[typing.List[PackageType]] = jstruct.JList[PackageType]
86
+ documents: typing.Optional[typing.List[DocumentType]] = jstruct.JList[DocumentType]
87
+ onDemandDeliveryURL: typing.Optional[str] = None
88
+ shipmentDetails: typing.Optional[typing.List[ShipmentDetailType]] = jstruct.JList[ShipmentDetailType]
89
+ estimatedDeliveryDate: typing.Optional[EstimatedDeliveryDateType] = jstruct.JStruct[EstimatedDeliveryDateType]
90
+ warnings: typing.Optional[typing.List[str]] = None
@@ -0,0 +1,112 @@
1
+ import attr
2
+ import jstruct
3
+ import typing
4
+
5
+
6
+ @attr.s(auto_attribs=True)
7
+ class EventServiceAreaType:
8
+ code: typing.Optional[str] = None
9
+ description: typing.Optional[str] = None
10
+
11
+
12
+ @attr.s(auto_attribs=True)
13
+ class EventType:
14
+ date: typing.Optional[str] = None
15
+ time: typing.Optional[str] = None
16
+ typeCode: typing.Optional[str] = None
17
+ description: typing.Optional[str] = None
18
+ serviceArea: typing.Optional[typing.List[EventServiceAreaType]] = jstruct.JList[EventServiceAreaType]
19
+ signedBy: typing.Optional[str] = None
20
+
21
+
22
+ @attr.s(auto_attribs=True)
23
+ class DimensionsType:
24
+ length: typing.Optional[int] = None
25
+ width: typing.Optional[int] = None
26
+ height: typing.Optional[int] = None
27
+
28
+
29
+ @attr.s(auto_attribs=True)
30
+ class ShipperReferenceType:
31
+ value: typing.Optional[str] = None
32
+ typeCode: typing.Optional[str] = None
33
+
34
+
35
+ @attr.s(auto_attribs=True)
36
+ class PieceType:
37
+ number: typing.Optional[int] = None
38
+ typeCode: typing.Optional[str] = None
39
+ shipmentTrackingNumber: typing.Optional[str] = None
40
+ trackingNumber: typing.Optional[str] = None
41
+ description: typing.Optional[str] = None
42
+ weight: typing.Optional[float] = None
43
+ dimensionalWeight: typing.Optional[float] = None
44
+ actualWeight: typing.Optional[float] = None
45
+ dimensions: typing.Optional[DimensionsType] = jstruct.JStruct[DimensionsType]
46
+ actualDimensions: typing.Optional[DimensionsType] = jstruct.JStruct[DimensionsType]
47
+ unitOfMeasurements: typing.Optional[str] = None
48
+ shipperReferences: typing.Optional[typing.List[ShipperReferenceType]] = jstruct.JList[ShipperReferenceType]
49
+ events: typing.Optional[typing.List[EventType]] = jstruct.JList[EventType]
50
+
51
+
52
+ @attr.s(auto_attribs=True)
53
+ class PostalAddressType:
54
+ cityName: typing.Optional[str] = None
55
+ countyName: typing.Optional[str] = None
56
+ postalCode: typing.Optional[int] = None
57
+ provinceCode: typing.Optional[str] = None
58
+ countryCode: typing.Optional[str] = None
59
+
60
+
61
+ @attr.s(auto_attribs=True)
62
+ class ReceiverDetailsServiceAreaType:
63
+ code: typing.Optional[str] = None
64
+ description: typing.Optional[str] = None
65
+ facilityCode: typing.Optional[str] = None
66
+ inboundSortCode: typing.Optional[int] = None
67
+
68
+
69
+ @attr.s(auto_attribs=True)
70
+ class ReceiverDetailsType:
71
+ name: typing.Optional[str] = None
72
+ postalAddress: typing.Optional[PostalAddressType] = jstruct.JStruct[PostalAddressType]
73
+ serviceArea: typing.Optional[typing.List[ReceiverDetailsServiceAreaType]] = jstruct.JList[ReceiverDetailsServiceAreaType]
74
+
75
+
76
+ @attr.s(auto_attribs=True)
77
+ class ShipperDetailsServiceAreaType:
78
+ code: typing.Optional[str] = None
79
+ description: typing.Optional[str] = None
80
+ outboundSortCode: typing.Optional[int] = None
81
+
82
+
83
+ @attr.s(auto_attribs=True)
84
+ class ShipperDetailsType:
85
+ name: typing.Optional[str] = None
86
+ postalAddress: typing.Optional[PostalAddressType] = jstruct.JStruct[PostalAddressType]
87
+ serviceArea: typing.Optional[typing.List[ShipperDetailsServiceAreaType]] = jstruct.JList[ShipperDetailsServiceAreaType]
88
+ accountNumber: typing.Optional[int] = None
89
+
90
+
91
+ @attr.s(auto_attribs=True)
92
+ class ShipmentType:
93
+ shipmentTrackingNumber: typing.Optional[int] = None
94
+ status: typing.Optional[str] = None
95
+ shipmentTimestamp: typing.Optional[str] = None
96
+ productCode: typing.Optional[str] = None
97
+ description: typing.Optional[str] = None
98
+ shipperDetails: typing.Optional[ShipperDetailsType] = jstruct.JStruct[ShipperDetailsType]
99
+ receiverDetails: typing.Optional[ReceiverDetailsType] = jstruct.JStruct[ReceiverDetailsType]
100
+ totalWeight: typing.Optional[int] = None
101
+ unitOfMeasurements: typing.Optional[str] = None
102
+ shipperReferences: typing.Optional[typing.List[ShipperReferenceType]] = jstruct.JList[ShipperReferenceType]
103
+ numberOfPieces: typing.Optional[int] = None
104
+ pieces: typing.Optional[typing.List[PieceType]] = jstruct.JList[PieceType]
105
+ events: typing.Optional[typing.List[EventType]] = jstruct.JList[EventType]
106
+ estimatedDeliveryDate: typing.Optional[str] = None
107
+ childrenShipmentIdentificationNumbers: typing.Optional[typing.List[int]] = None
108
+
109
+
110
+ @attr.s(auto_attribs=True)
111
+ class TrackingResponseType:
112
+ shipments: typing.Optional[typing.List[ShipmentType]] = jstruct.JList[ShipmentType]
@@ -0,0 +1,44 @@
1
+ Metadata-Version: 2.4
2
+ Name: karrio_mydhl
3
+ Version: 2025.5rc7
4
+ Summary: Karrio - MyDHL Shipping Extension
5
+ Author-email: karrio <hello@karrio.io>
6
+ License-Expression: Apache-2.0
7
+ Project-URL: Homepage, https://github.com/karrioapi/karrio
8
+ Classifier: Intended Audience :: Developers
9
+ Classifier: Operating System :: OS Independent
10
+ Classifier: Programming Language :: Python :: 3
11
+ Requires-Python: >=3.11
12
+ Description-Content-Type: text/markdown
13
+ Requires-Dist: karrio
14
+
15
+ # karrio.mydhl
16
+
17
+ This package is a MyDHL extension of the [karrio](https://pypi.org/project/karrio) multi carrier shipping SDK.
18
+
19
+ ## Requirements
20
+
21
+ `Python 3.11+`
22
+
23
+ ## Installation
24
+
25
+ ```bash
26
+ pip install karrio.mydhl
27
+ ```
28
+
29
+ ## Usage
30
+
31
+ ```python
32
+ import karrio.sdk as karrio
33
+ from karrio.mappers.mydhl.settings import Settings
34
+
35
+
36
+ # Initialize a carrier gateway
37
+ mydhl = karrio.gateway["mydhl"].create(
38
+ Settings(
39
+ ...
40
+ )
41
+ )
42
+ ```
43
+
44
+ Check the [Karrio Mutli-carrier SDK docs](https://docs.karrio.io) for Shipping API requests
@@ -0,0 +1,39 @@
1
+ karrio/mappers/mydhl/__init__.py,sha256=LxuFOX-NZF-y0F2hv579VQA8hXu6aaVljrqlMxoQPMc,142
2
+ karrio/mappers/mydhl/mapper.py,sha256=hDgAmF6Hlyk3V68tj_HJnVzzpKYgfZ66nQe4E4hoi_s,3966
3
+ karrio/mappers/mydhl/proxy.py,sha256=e3ORcmO1eL9EdkwOISJ82sKh9yeVlNkkZM4wE1ozDU0,6084
4
+ karrio/mappers/mydhl/settings.py,sha256=Dxzg4xc9LTguBqRUzd9IoOfvsP9Aw-0utig7ObsrNGk,658
5
+ karrio/plugins/mydhl/__init__.py,sha256=QoFnRwCmbUsNRFaNoHK4N66SfvO4ySC3nqzK5k8Taj8,814
6
+ karrio/providers/mydhl/__init__.py,sha256=3r2vKfozTjiNatewJLZGc_FA1aZZ91xrwe025rvvfsg,769
7
+ karrio/providers/mydhl/address.py,sha256=tY7C8Bo5iGBZ3ITHYi3GMkwUWHFhu6INt1HRSUkBSVU,2262
8
+ karrio/providers/mydhl/error.py,sha256=Xbtxn5O9flANNAI_q-CWxJslSiA6ebpy1HiHWE1qWV4,2321
9
+ karrio/providers/mydhl/rate.py,sha256=H0YJ8bQWGOZY-5ZXCMe-3mMZP3Okq5jyjo_LHWHvSeo,4336
10
+ karrio/providers/mydhl/tracking.py,sha256=VxqrlM9jpvF-YgmK1_E68oHCuHj7p2YCD3BnYfYKwGo,2811
11
+ karrio/providers/mydhl/units.py,sha256=jSbICuCuqwoGA0j5iS7Cem1h4EFnyCwdHpG20awXfSQ,3119
12
+ karrio/providers/mydhl/utils.py,sha256=hFXmLWN74QfeFRzPdBBBfE7n9o6oe4bMLr-F45Nno-w,3030
13
+ karrio/providers/mydhl/pickup/__init__.py,sha256=_a8t8S3kNhBFNItSa_JchdWpNdBlpl36pyrnO9PKweg,367
14
+ karrio/providers/mydhl/pickup/cancel.py,sha256=j7jNWw-Fy1jH9KLQagfHHpu6aJYGxGJbMfBP_k3xZpg,1899
15
+ karrio/providers/mydhl/pickup/create.py,sha256=uTzg2vc63jot54rsWw_hn44Jaa3up3r8r_wUuhJIwZU,3204
16
+ karrio/providers/mydhl/pickup/update.py,sha256=nZ4h8zrzb_TbAttAEN-cmKb5UGZFJe4Dmkk2wuZO2V4,3366
17
+ karrio/providers/mydhl/shipment/__init__.py,sha256=bKG2xYOw9LYJiEOBcDXQj2prXNKmQMewkNODKsKfKZM,227
18
+ karrio/providers/mydhl/shipment/cancel.py,sha256=cJu1I8fO0HAeI6QDLydh1NZqjyF-ahrWTTJlW2ltiog,2696
19
+ karrio/providers/mydhl/shipment/create.py,sha256=CNhX0z9sPKSZdV6FqPn7c2HuY1jLb77tBHvSzUDEcHE,3635
20
+ karrio/schemas/mydhl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
+ karrio/schemas/mydhl/address_validation_request.py,sha256=Lrd6nFMkYiRI9eFQ3R26ckdAPl5GSlieH7ny-jF2gN4,370
22
+ karrio/schemas/mydhl/address_validation_response.py,sha256=HaEkbAckXmo0YuwcMEg3vS9flCjsCWPFFyiDqz_glSw,732
23
+ karrio/schemas/mydhl/error_response.py,sha256=yL7g_pnIwmaykFj9pOQn4G0Uw4viyaYo5J7Vb9bndvM,361
24
+ karrio/schemas/mydhl/pickup_cancel_request.py,sha256=-oYRc3CLUYlncnASK4uA-ux7c0RMxEGyH-3dMd7y058,248
25
+ karrio/schemas/mydhl/pickup_cancel_response.py,sha256=Sypu2u5ii9VZ6ho--RIaMYTKQjYWR00FwmlWfXujS3Y,143
26
+ karrio/schemas/mydhl/pickup_create_request.py,sha256=IoAgaAgzjfHZnXmnjXPPPLVpjR9iTY-xviKca7dJ3wI,3986
27
+ karrio/schemas/mydhl/pickup_create_response.py,sha256=eUQwG-Z5P1hD6VuXns3KD_HXJCNs9Dz9Z6JIkDjy71w,324
28
+ karrio/schemas/mydhl/pickup_update_request.py,sha256=9QfzzEQsiwY7-HpfYpPMPze9wTZ3IwdWxuU5vHKbRGM,4108
29
+ karrio/schemas/mydhl/pickup_update_response.py,sha256=yloyHAEXR9OMH9i-L1Z7O4WOXDbL5lET30XfpTBJELI,310
30
+ karrio/schemas/mydhl/rate_request.py,sha256=gPoGGEHLXq3a-kYPTFMn4-PhDQabewO5u86HhjVBoQ8,4276
31
+ karrio/schemas/mydhl/rate_response.py,sha256=lI__9C4XiBgCikBU5iqxqiw7r0LRFpTT8z2E3OoDM-o,5713
32
+ karrio/schemas/mydhl/shipment_request.py,sha256=I2wwH5ubuMwptQAQYOQSofbnaLr9w-gztNehTKuKhYQ,10607
33
+ karrio/schemas/mydhl/shipment_response.py,sha256=amF1SjkClhpJwTgxlOLji6w3kXb9Bu_AneUCxh9eSUI,3370
34
+ karrio/schemas/mydhl/tracking_response.py,sha256=y86w1DyBTlYx1mmncFNPp75zrJvNR0pOD3-jPlZYcEU,4240
35
+ karrio_mydhl-2025.5rc7.dist-info/METADATA,sha256=fuHqKmCi--NpXob25qD1y7PQrRsJ-VdpM0Yv3nwf9L4,977
36
+ karrio_mydhl-2025.5rc7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
37
+ karrio_mydhl-2025.5rc7.dist-info/entry_points.txt,sha256=NRiOTfZybCEMlDTq9_VOpFy--jBA0somsAYdXVgPzdY,55
38
+ karrio_mydhl-2025.5rc7.dist-info/top_level.txt,sha256=FZCY8Nwft8oEGHdl--xku8P3TrnOxu5dETEU_fWpRSM,20
39
+ karrio_mydhl-2025.5rc7.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.9.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [karrio.plugins]
2
+ mydhl = karrio.plugins.mydhl:METADATA
@@ -0,0 +1,3 @@
1
+ dist
2
+ karrio
3
+ schemas