karrio-hermes 2026.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.
- karrio/mappers/hermes/__init__.py +3 -0
- karrio/mappers/hermes/mapper.py +59 -0
- karrio/mappers/hermes/proxy.py +78 -0
- karrio/mappers/hermes/settings.py +36 -0
- karrio/plugins/hermes/__init__.py +29 -0
- karrio/providers/hermes/__init__.py +16 -0
- karrio/providers/hermes/error.py +94 -0
- karrio/providers/hermes/pickup/__init__.py +12 -0
- karrio/providers/hermes/pickup/cancel.py +49 -0
- karrio/providers/hermes/pickup/create.py +98 -0
- karrio/providers/hermes/shipment/__init__.py +8 -0
- karrio/providers/hermes/shipment/create.py +336 -0
- karrio/providers/hermes/units.py +242 -0
- karrio/providers/hermes/utils.py +102 -0
- karrio/schemas/hermes/__init__.py +43 -0
- karrio/schemas/hermes/error_response.py +14 -0
- karrio/schemas/hermes/pickup_cancel_request.py +8 -0
- karrio/schemas/hermes/pickup_cancel_response.py +15 -0
- karrio/schemas/hermes/pickup_create_request.py +41 -0
- karrio/schemas/hermes/pickup_create_response.py +15 -0
- karrio/schemas/hermes/shipment_request.py +195 -0
- karrio/schemas/hermes/shipment_response.py +97 -0
- karrio_hermes-2026.1.dist-info/METADATA +44 -0
- karrio_hermes-2026.1.dist-info/RECORD +27 -0
- karrio_hermes-2026.1.dist-info/WHEEL +5 -0
- karrio_hermes-2026.1.dist-info/entry_points.txt +2 -0
- karrio_hermes-2026.1.dist-info/top_level.txt +4 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
from karrio.schemas.hermes.error_response import (
|
|
2
|
+
ErrorResponseType,
|
|
3
|
+
ListOfResultCodeType,
|
|
4
|
+
)
|
|
5
|
+
from karrio.schemas.hermes.shipment_request import (
|
|
6
|
+
ShipmentRequestType,
|
|
7
|
+
ErAddressType as ReceiverAddressType,
|
|
8
|
+
ErNameType as ReceiverNameType,
|
|
9
|
+
ReceiverContactType,
|
|
10
|
+
ParcelType,
|
|
11
|
+
ServiceType,
|
|
12
|
+
CustomsAndTaxesType,
|
|
13
|
+
ItemType,
|
|
14
|
+
ClientType,
|
|
15
|
+
FiscalRepresentationAddressType,
|
|
16
|
+
ShipmentOriginAddressType,
|
|
17
|
+
CashOnDeliveryServiceType,
|
|
18
|
+
CustomerAlertServiceType,
|
|
19
|
+
IdentServiceType,
|
|
20
|
+
MultipartServiceType,
|
|
21
|
+
ParcelShopDeliveryServiceType,
|
|
22
|
+
StatedDayServiceType,
|
|
23
|
+
StatedTimeServiceType,
|
|
24
|
+
)
|
|
25
|
+
from karrio.schemas.hermes.shipment_response import (
|
|
26
|
+
ShipmentResponseType,
|
|
27
|
+
ShipmentLabelDataType,
|
|
28
|
+
AddressType as LabelAddressType,
|
|
29
|
+
CarrierType,
|
|
30
|
+
OriginType,
|
|
31
|
+
ServiceDescriptionType,
|
|
32
|
+
EntityType,
|
|
33
|
+
HintType,
|
|
34
|
+
)
|
|
35
|
+
from karrio.schemas.hermes.pickup_create_request import (
|
|
36
|
+
PickupCreateRequestType,
|
|
37
|
+
PickupAddressType,
|
|
38
|
+
PickupNameType,
|
|
39
|
+
ParcelCountType,
|
|
40
|
+
)
|
|
41
|
+
from karrio.schemas.hermes.pickup_create_response import PickupCreateResponseType
|
|
42
|
+
from karrio.schemas.hermes.pickup_cancel_request import PickupCancelRequestType
|
|
43
|
+
from karrio.schemas.hermes.pickup_cancel_response import PickupCancelResponseType
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import attr
|
|
2
|
+
import jstruct
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
@attr.s(auto_attribs=True)
|
|
7
|
+
class ListOfResultCodeType:
|
|
8
|
+
code: typing.Optional[str] = None
|
|
9
|
+
message: typing.Optional[str] = None
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@attr.s(auto_attribs=True)
|
|
13
|
+
class ErrorResponseType:
|
|
14
|
+
listOfResultCodes: typing.Optional[typing.List[ListOfResultCodeType]] = jstruct.JList[ListOfResultCodeType]
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import attr
|
|
2
|
+
import jstruct
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
@attr.s(auto_attribs=True)
|
|
7
|
+
class ListOfResultCodeType:
|
|
8
|
+
code: typing.Optional[str] = None
|
|
9
|
+
message: typing.Optional[str] = None
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@attr.s(auto_attribs=True)
|
|
13
|
+
class PickupCancelResponseType:
|
|
14
|
+
listOfResultCodes: typing.Optional[typing.List[ListOfResultCodeType]] = jstruct.JList[ListOfResultCodeType]
|
|
15
|
+
pickupOrderID: typing.Optional[str] = None
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import attr
|
|
2
|
+
import jstruct
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
@attr.s(auto_attribs=True)
|
|
7
|
+
class ParcelCountType:
|
|
8
|
+
pickupParcelCountXS: typing.Optional[int] = None
|
|
9
|
+
pickupParcelCountS: typing.Optional[int] = None
|
|
10
|
+
pickupParcelCountM: typing.Optional[int] = None
|
|
11
|
+
pickupParcelCountL: typing.Optional[int] = None
|
|
12
|
+
pickupParcelCountXL: typing.Optional[int] = None
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@attr.s(auto_attribs=True)
|
|
16
|
+
class PickupAddressType:
|
|
17
|
+
street: typing.Optional[str] = None
|
|
18
|
+
houseNumber: typing.Optional[str] = None
|
|
19
|
+
zipCode: typing.Optional[str] = None
|
|
20
|
+
town: typing.Optional[str] = None
|
|
21
|
+
countryCode: typing.Optional[str] = None
|
|
22
|
+
addressAddition: typing.Optional[str] = None
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
@attr.s(auto_attribs=True)
|
|
26
|
+
class PickupNameType:
|
|
27
|
+
title: typing.Optional[str] = None
|
|
28
|
+
gender: typing.Optional[str] = None
|
|
29
|
+
firstname: typing.Optional[str] = None
|
|
30
|
+
middlename: typing.Optional[str] = None
|
|
31
|
+
lastname: typing.Optional[str] = None
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
@attr.s(auto_attribs=True)
|
|
35
|
+
class PickupCreateRequestType:
|
|
36
|
+
pickupAddress: typing.Optional[PickupAddressType] = jstruct.JStruct[PickupAddressType]
|
|
37
|
+
pickupName: typing.Optional[PickupNameType] = jstruct.JStruct[PickupNameType]
|
|
38
|
+
phone: typing.Optional[str] = None
|
|
39
|
+
pickupDate: typing.Optional[str] = None
|
|
40
|
+
pickupTimeSlot: typing.Optional[str] = None
|
|
41
|
+
parcelCount: typing.Optional[ParcelCountType] = jstruct.JStruct[ParcelCountType]
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import attr
|
|
2
|
+
import jstruct
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
@attr.s(auto_attribs=True)
|
|
7
|
+
class ListOfResultCodeType:
|
|
8
|
+
code: typing.Optional[str] = None
|
|
9
|
+
message: typing.Optional[str] = None
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@attr.s(auto_attribs=True)
|
|
13
|
+
class PickupCreateResponseType:
|
|
14
|
+
listOfResultCodes: typing.Optional[typing.List[ListOfResultCodeType]] = jstruct.JList[ListOfResultCodeType]
|
|
15
|
+
pickupOrderID: typing.Optional[str] = None
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import attr
|
|
2
|
+
import jstruct
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
@attr.s(auto_attribs=True)
|
|
7
|
+
class FiscalRepresentationAddressType:
|
|
8
|
+
company: typing.Optional[str] = None
|
|
9
|
+
street: typing.Optional[str] = None
|
|
10
|
+
houseNumber: typing.Optional[str] = None
|
|
11
|
+
zipCode: typing.Optional[str] = None
|
|
12
|
+
town: typing.Optional[str] = None
|
|
13
|
+
addressAddition: typing.Optional[str] = None
|
|
14
|
+
phone: typing.Optional[str] = None
|
|
15
|
+
mobile: typing.Optional[str] = None
|
|
16
|
+
mail: typing.Optional[str] = None
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@attr.s(auto_attribs=True)
|
|
20
|
+
class ClientType:
|
|
21
|
+
eoriNumber: typing.Optional[str] = None
|
|
22
|
+
iossId: typing.Optional[str] = None
|
|
23
|
+
vatId: typing.Optional[str] = None
|
|
24
|
+
zazAccount: typing.Optional[str] = None
|
|
25
|
+
fiscalRepresentationAddress: typing.Optional[FiscalRepresentationAddressType] = jstruct.JStruct[FiscalRepresentationAddressType]
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
@attr.s(auto_attribs=True)
|
|
29
|
+
class ItemType:
|
|
30
|
+
sku: typing.Optional[str] = None
|
|
31
|
+
category: typing.Optional[str] = None
|
|
32
|
+
countryCodeOfManufacture: typing.Optional[str] = None
|
|
33
|
+
value: typing.Optional[int] = None
|
|
34
|
+
weight: typing.Optional[int] = None
|
|
35
|
+
quantity: typing.Optional[int] = None
|
|
36
|
+
description: typing.Optional[str] = None
|
|
37
|
+
exportDescription: typing.Optional[str] = None
|
|
38
|
+
exportHsCode: typing.Optional[str] = None
|
|
39
|
+
hsCode: typing.Optional[str] = None
|
|
40
|
+
url: typing.Optional[str] = None
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
@attr.s(auto_attribs=True)
|
|
44
|
+
class ShipmentOriginAddressType:
|
|
45
|
+
title: typing.Optional[str] = None
|
|
46
|
+
firstname: typing.Optional[str] = None
|
|
47
|
+
lastname: typing.Optional[str] = None
|
|
48
|
+
company: typing.Optional[str] = None
|
|
49
|
+
street: typing.Optional[str] = None
|
|
50
|
+
houseNumber: typing.Optional[str] = None
|
|
51
|
+
zipCode: typing.Optional[str] = None
|
|
52
|
+
town: typing.Optional[str] = None
|
|
53
|
+
state: typing.Optional[str] = None
|
|
54
|
+
countryCode: typing.Optional[str] = None
|
|
55
|
+
addressAddition: typing.Optional[str] = None
|
|
56
|
+
addressAddition2: typing.Optional[str] = None
|
|
57
|
+
addressAddition3: typing.Optional[str] = None
|
|
58
|
+
phone: typing.Optional[str] = None
|
|
59
|
+
fax: typing.Optional[str] = None
|
|
60
|
+
mobile: typing.Optional[str] = None
|
|
61
|
+
mail: typing.Optional[str] = None
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
@attr.s(auto_attribs=True)
|
|
65
|
+
class CustomsAndTaxesType:
|
|
66
|
+
currency: typing.Optional[str] = None
|
|
67
|
+
shipmentCost: typing.Optional[int] = None
|
|
68
|
+
items: typing.Optional[typing.List[ItemType]] = jstruct.JList[ItemType]
|
|
69
|
+
invoiceReferences: typing.Optional[typing.List[str]] = None
|
|
70
|
+
value: typing.Optional[int] = None
|
|
71
|
+
exportCustomsClearance: typing.Optional[bool] = None
|
|
72
|
+
client: typing.Optional[ClientType] = jstruct.JStruct[ClientType]
|
|
73
|
+
shipmentOriginAddress: typing.Optional[ShipmentOriginAddressType] = jstruct.JStruct[ShipmentOriginAddressType]
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
@attr.s(auto_attribs=True)
|
|
77
|
+
class ParcelType:
|
|
78
|
+
parcelClass: typing.Optional[str] = None
|
|
79
|
+
parcelHeight: typing.Optional[int] = None
|
|
80
|
+
parcelWidth: typing.Optional[int] = None
|
|
81
|
+
parcelDepth: typing.Optional[int] = None
|
|
82
|
+
parcelWeight: typing.Optional[int] = None
|
|
83
|
+
parcelVolume: typing.Optional[int] = None
|
|
84
|
+
productType: typing.Optional[str] = None
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
@attr.s(auto_attribs=True)
|
|
88
|
+
class ErAddressType:
|
|
89
|
+
street: typing.Optional[str] = None
|
|
90
|
+
houseNumber: typing.Optional[str] = None
|
|
91
|
+
zipCode: typing.Optional[str] = None
|
|
92
|
+
town: typing.Optional[str] = None
|
|
93
|
+
countryCode: typing.Optional[str] = None
|
|
94
|
+
addressAddition: typing.Optional[str] = None
|
|
95
|
+
addressAddition2: typing.Optional[str] = None
|
|
96
|
+
addressAddition3: typing.Optional[str] = None
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
@attr.s(auto_attribs=True)
|
|
100
|
+
class ReceiverContactType:
|
|
101
|
+
phone: typing.Optional[str] = None
|
|
102
|
+
mobile: typing.Optional[str] = None
|
|
103
|
+
mail: typing.Optional[str] = None
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
@attr.s(auto_attribs=True)
|
|
107
|
+
class ErNameType:
|
|
108
|
+
title: typing.Optional[str] = None
|
|
109
|
+
gender: typing.Optional[str] = None
|
|
110
|
+
firstname: typing.Optional[str] = None
|
|
111
|
+
middlename: typing.Optional[str] = None
|
|
112
|
+
lastname: typing.Optional[str] = None
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
@attr.s(auto_attribs=True)
|
|
116
|
+
class CashOnDeliveryServiceType:
|
|
117
|
+
currency: typing.Optional[str] = None
|
|
118
|
+
amount: typing.Optional[float] = None
|
|
119
|
+
bankTransferAmount: typing.Optional[float] = None
|
|
120
|
+
bankTransferCurrency: typing.Optional[str] = None
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
@attr.s(auto_attribs=True)
|
|
124
|
+
class CustomerAlertServiceType:
|
|
125
|
+
notificationType: typing.Optional[str] = None
|
|
126
|
+
notificationEmail: typing.Optional[str] = None
|
|
127
|
+
notificationNumber: typing.Optional[str] = None
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
@attr.s(auto_attribs=True)
|
|
131
|
+
class IdentServiceType:
|
|
132
|
+
identID: typing.Optional[str] = None
|
|
133
|
+
identType: typing.Optional[str] = None
|
|
134
|
+
identVerifyFsk: typing.Optional[str] = None
|
|
135
|
+
identVerifyBirthday: typing.Optional[str] = None
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
@attr.s(auto_attribs=True)
|
|
139
|
+
class MultipartServiceType:
|
|
140
|
+
partNumber: typing.Optional[int] = None
|
|
141
|
+
numberOfParts: typing.Optional[int] = None
|
|
142
|
+
parentShipmentOrderID: typing.Optional[str] = None
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
@attr.s(auto_attribs=True)
|
|
146
|
+
class ParcelShopDeliveryServiceType:
|
|
147
|
+
psCustomerFirstName: typing.Optional[str] = None
|
|
148
|
+
psCustomerLastName: typing.Optional[str] = None
|
|
149
|
+
psID: typing.Optional[str] = None
|
|
150
|
+
psSelectionRule: typing.Optional[str] = None
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
@attr.s(auto_attribs=True)
|
|
154
|
+
class StatedDayServiceType:
|
|
155
|
+
statedDay: typing.Optional[str] = None
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
@attr.s(auto_attribs=True)
|
|
159
|
+
class StatedTimeServiceType:
|
|
160
|
+
timeSlot: typing.Optional[str] = None
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
@attr.s(auto_attribs=True)
|
|
164
|
+
class ServiceType:
|
|
165
|
+
tanService: typing.Optional[bool] = None
|
|
166
|
+
multipartService: typing.Optional[MultipartServiceType] = jstruct.JStruct[MultipartServiceType]
|
|
167
|
+
limitedQuantitiesService: typing.Optional[bool] = None
|
|
168
|
+
cashOnDeliveryService: typing.Optional[CashOnDeliveryServiceType] = jstruct.JStruct[CashOnDeliveryServiceType]
|
|
169
|
+
bulkGoodService: typing.Optional[bool] = None
|
|
170
|
+
statedTimeService: typing.Optional[StatedTimeServiceType] = jstruct.JStruct[StatedTimeServiceType]
|
|
171
|
+
householdSignatureService: typing.Optional[bool] = None
|
|
172
|
+
customerAlertService: typing.Optional[CustomerAlertServiceType] = jstruct.JStruct[CustomerAlertServiceType]
|
|
173
|
+
parcelShopDeliveryService: typing.Optional[ParcelShopDeliveryServiceType] = jstruct.JStruct[ParcelShopDeliveryServiceType]
|
|
174
|
+
compactParcelService: typing.Optional[bool] = None
|
|
175
|
+
identService: typing.Optional[IdentServiceType] = jstruct.JStruct[IdentServiceType]
|
|
176
|
+
statedDayService: typing.Optional[StatedDayServiceType] = jstruct.JStruct[StatedDayServiceType]
|
|
177
|
+
nextDayService: typing.Optional[bool] = None
|
|
178
|
+
signatureService: typing.Optional[bool] = None
|
|
179
|
+
redirectionProhibitedService: typing.Optional[bool] = None
|
|
180
|
+
excludeParcelShopAuthorization: typing.Optional[bool] = None
|
|
181
|
+
lateInjectionService: typing.Optional[bool] = None
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
@attr.s(auto_attribs=True)
|
|
185
|
+
class ShipmentRequestType:
|
|
186
|
+
clientReference: typing.Optional[str] = None
|
|
187
|
+
clientReference2: typing.Optional[str] = None
|
|
188
|
+
receiverName: typing.Optional[ErNameType] = jstruct.JStruct[ErNameType]
|
|
189
|
+
receiverAddress: typing.Optional[ErAddressType] = jstruct.JStruct[ErAddressType]
|
|
190
|
+
receiverContact: typing.Optional[ReceiverContactType] = jstruct.JStruct[ReceiverContactType]
|
|
191
|
+
senderName: typing.Optional[ErNameType] = jstruct.JStruct[ErNameType]
|
|
192
|
+
senderAddress: typing.Optional[ErAddressType] = jstruct.JStruct[ErAddressType]
|
|
193
|
+
parcel: typing.Optional[ParcelType] = jstruct.JStruct[ParcelType]
|
|
194
|
+
service: typing.Optional[ServiceType] = jstruct.JStruct[ServiceType]
|
|
195
|
+
customsAndTaxes: typing.Optional[CustomsAndTaxesType] = jstruct.JStruct[CustomsAndTaxesType]
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import attr
|
|
2
|
+
import jstruct
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
@attr.s(auto_attribs=True)
|
|
7
|
+
class ListOfResultCodeType:
|
|
8
|
+
code: typing.Optional[str] = None
|
|
9
|
+
message: typing.Optional[str] = None
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@attr.s(auto_attribs=True)
|
|
13
|
+
class CarrierType:
|
|
14
|
+
id: typing.Optional[str] = None
|
|
15
|
+
name: typing.Optional[str] = None
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
@attr.s(auto_attribs=True)
|
|
19
|
+
class AddressType:
|
|
20
|
+
title: typing.Optional[str] = None
|
|
21
|
+
addressLine1: typing.Optional[str] = None
|
|
22
|
+
addressLine2: typing.Optional[str] = None
|
|
23
|
+
addressLine3: typing.Optional[str] = None
|
|
24
|
+
addressLine4: typing.Optional[str] = None
|
|
25
|
+
addressLine5: typing.Optional[str] = None
|
|
26
|
+
addressLine6: typing.Optional[str] = None
|
|
27
|
+
addressLine7: typing.Optional[str] = None
|
|
28
|
+
addressLine8: typing.Optional[str] = None
|
|
29
|
+
addressLine9: typing.Optional[str] = None
|
|
30
|
+
addressLine10: typing.Optional[str] = None
|
|
31
|
+
postcode: typing.Optional[str] = None
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
@attr.s(auto_attribs=True)
|
|
35
|
+
class EntityType:
|
|
36
|
+
title: typing.Optional[str] = None
|
|
37
|
+
value: typing.Optional[str] = None
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
@attr.s(auto_attribs=True)
|
|
41
|
+
class HintType:
|
|
42
|
+
type: typing.Optional[str] = None
|
|
43
|
+
text: typing.Optional[str] = None
|
|
44
|
+
line1: typing.Optional[str] = None
|
|
45
|
+
line2: typing.Optional[str] = None
|
|
46
|
+
line3: typing.Optional[str] = None
|
|
47
|
+
line4: typing.Optional[str] = None
|
|
48
|
+
line5: typing.Optional[str] = None
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
@attr.s(auto_attribs=True)
|
|
52
|
+
class OriginType:
|
|
53
|
+
line01: typing.Optional[str] = None
|
|
54
|
+
line02: typing.Optional[str] = None
|
|
55
|
+
line03: typing.Optional[str] = None
|
|
56
|
+
line04: typing.Optional[str] = None
|
|
57
|
+
line05: typing.Optional[str] = None
|
|
58
|
+
line06: typing.Optional[str] = None
|
|
59
|
+
line07: typing.Optional[str] = None
|
|
60
|
+
line08: typing.Optional[str] = None
|
|
61
|
+
line09: typing.Optional[str] = None
|
|
62
|
+
line10: typing.Optional[str] = None
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
@attr.s(auto_attribs=True)
|
|
66
|
+
class ServiceDescriptionType:
|
|
67
|
+
serviceDescriptionText: typing.Optional[str] = None
|
|
68
|
+
serviceLogoRef: typing.Optional[str] = None
|
|
69
|
+
servicePosition: typing.Optional[str] = None
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
@attr.s(auto_attribs=True)
|
|
73
|
+
class ShipmentLabelDataType:
|
|
74
|
+
clientAddress: typing.Optional[AddressType] = jstruct.JStruct[AddressType]
|
|
75
|
+
senderAddress: typing.Optional[AddressType] = jstruct.JStruct[AddressType]
|
|
76
|
+
destinationAddress: typing.Optional[AddressType] = jstruct.JStruct[AddressType]
|
|
77
|
+
carrier1: typing.Optional[CarrierType] = jstruct.JStruct[CarrierType]
|
|
78
|
+
carrier2: typing.Optional[CarrierType] = jstruct.JStruct[CarrierType]
|
|
79
|
+
origin: typing.Optional[OriginType] = jstruct.JStruct[OriginType]
|
|
80
|
+
serviceDescriptions: typing.Optional[typing.List[ServiceDescriptionType]] = jstruct.JList[ServiceDescriptionType]
|
|
81
|
+
entities: typing.Optional[typing.List[EntityType]] = jstruct.JList[EntityType]
|
|
82
|
+
customerReference1: typing.Optional[str] = None
|
|
83
|
+
customerReference2: typing.Optional[str] = None
|
|
84
|
+
clientLogoRef: typing.Optional[str] = None
|
|
85
|
+
hint: typing.Optional[HintType] = jstruct.JStruct[HintType]
|
|
86
|
+
weightLogoRef: typing.Optional[str] = None
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
@attr.s(auto_attribs=True)
|
|
90
|
+
class ShipmentResponseType:
|
|
91
|
+
listOfResultCodes: typing.Optional[typing.List[ListOfResultCodeType]] = jstruct.JList[ListOfResultCodeType]
|
|
92
|
+
shipmentID: typing.Optional[str] = None
|
|
93
|
+
shipmentOrderID: typing.Optional[str] = None
|
|
94
|
+
labelImage: typing.Optional[str] = None
|
|
95
|
+
commInvoiceImage: typing.Optional[str] = None
|
|
96
|
+
labelMediatype: typing.Optional[str] = None
|
|
97
|
+
shipmentLabelData: typing.Optional[ShipmentLabelDataType] = jstruct.JStruct[ShipmentLabelDataType]
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: karrio_hermes
|
|
3
|
+
Version: 2026.1
|
|
4
|
+
Summary: Karrio - Hermes Shipping Extension
|
|
5
|
+
Author-email: karrio <hello@karrio.io>
|
|
6
|
+
License-Expression: LGPL-3.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.hermes
|
|
16
|
+
|
|
17
|
+
This package is a Hermes 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.hermes
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Usage
|
|
30
|
+
|
|
31
|
+
```python
|
|
32
|
+
import karrio.sdk as karrio
|
|
33
|
+
from karrio.mappers.hermes.settings import Settings
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
# Initialize a carrier gateway
|
|
37
|
+
hermes = karrio.gateway["hermes"].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,27 @@
|
|
|
1
|
+
karrio/mappers/hermes/__init__.py,sha256=3WcvIpOkQAy1p54BhLGfmi1hyY9Dhe0qSG2yZY9mPes,145
|
|
2
|
+
karrio/mappers/hermes/mapper.py,sha256=0fZbXPHGg5R4bbhRyJbzfEGNiKXSINW1FJQnhz-4MRM,2258
|
|
3
|
+
karrio/mappers/hermes/proxy.py,sha256=FG_OcaMEXiZxZp37m25pgrOtcdCziVk3Kft9HjoEnT8,2858
|
|
4
|
+
karrio/mappers/hermes/settings.py,sha256=4BTM7ncSQqTBP6J_oJTksBDGhaFHOWoHDnpq0iOWHVo,1151
|
|
5
|
+
karrio/plugins/hermes/__init__.py,sha256=zUfOhtzuErd1H1ICL4rQt68e6BWRQf_B6_kW5UVzd9M,1020
|
|
6
|
+
karrio/providers/hermes/__init__.py,sha256=lwP0P714ipPISsbd_6xXZ4oaCK32yTEHktP8yxmF4NQ,490
|
|
7
|
+
karrio/providers/hermes/error.py,sha256=YWmYC_l7_nyJCxiqM0Kgf6yV9IpJ04tkdZyyMT7QnkY,2974
|
|
8
|
+
karrio/providers/hermes/units.py,sha256=MO1ap8ItQUlwfTTx7_CqxJqx96KY-FyLm4pMSIXRg8g,8665
|
|
9
|
+
karrio/providers/hermes/utils.py,sha256=84N70gICmOmP2vjYmnzJbjzLhFaEHvXLKgHALZiE-2k,3077
|
|
10
|
+
karrio/providers/hermes/pickup/__init__.py,sha256=E59ks-qJAsNmfQgaZ7X0tZuBetITsdRSMJUAZnqxabg,307
|
|
11
|
+
karrio/providers/hermes/pickup/cancel.py,sha256=JYVGL9decPB0QOHsjrYU5cwT_4vzrpsaEjapC9F3t7A,1587
|
|
12
|
+
karrio/providers/hermes/pickup/create.py,sha256=q4AbBqI-_oXglD2DffJpqBp93zZo2hz-gf32DtX5lg8,3556
|
|
13
|
+
karrio/providers/hermes/shipment/__init__.py,sha256=B_zc5eaS4st1bnIyB_RwYY9XJJ9DyjB1Tb0SaIEJRJ8,209
|
|
14
|
+
karrio/providers/hermes/shipment/create.py,sha256=UcKTavylyrdbeFmzXY7pqCUI1lfOxmMO2Cr07xoB1YY,13046
|
|
15
|
+
karrio/schemas/hermes/__init__.py,sha256=yw5kUm6WMQ_UJEVW-LQUY-916m7Y-qxp0yLbqIMb2b4,1272
|
|
16
|
+
karrio/schemas/hermes/error_response.py,sha256=BJhI7P8wursdYsYACfDLT8cs-bsnKlJDs0OzurYMPR4,343
|
|
17
|
+
karrio/schemas/hermes/pickup_cancel_request.py,sha256=rZgm3BpL3iziO_TC_y-cAELMsWjXyvRYWmXYyExhdR0,148
|
|
18
|
+
karrio/schemas/hermes/pickup_cancel_response.py,sha256=9-STL_Aq0EvXWrNMfvc4DiPK658e1JPp0uhW695XOGI,397
|
|
19
|
+
karrio/schemas/hermes/pickup_create_request.py,sha256=0V14LMl0XVLOZ_zXRzoTLUZ8nB_TZHCmr2G03NPl4tw,1375
|
|
20
|
+
karrio/schemas/hermes/pickup_create_response.py,sha256=sAgq92J0TZOUolhMcvDkp6qSRvxOqWCIZHNQWQN7KeU,397
|
|
21
|
+
karrio/schemas/hermes/shipment_request.py,sha256=FMqrSlCDG4eGDkuqPDc_DDCbtV_vGRyrRBFCiNTFkmM,7415
|
|
22
|
+
karrio/schemas/hermes/shipment_response.py,sha256=BI2kUemG-wTzAFpok9KEnlwjm6eK_LemBA_Cyga_e6A,3477
|
|
23
|
+
karrio_hermes-2026.1.dist-info/METADATA,sha256=yF6_59XBxGBqORO5gj9Gjp5TJTdk4GOUJ_TxlGzA4eE,980
|
|
24
|
+
karrio_hermes-2026.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
25
|
+
karrio_hermes-2026.1.dist-info/entry_points.txt,sha256=R8XDrYBqWXTPqaO0iTi4Buz8iQiiBiuHkJVNtZIXTkU,57
|
|
26
|
+
karrio_hermes-2026.1.dist-info/top_level.txt,sha256=9Nasa6abG7pPPG8MGzlemnqw1ohIqgouzQ7HGBnOFLg,27
|
|
27
|
+
karrio_hermes-2026.1.dist-info/RECORD,,
|