karrio-dicom 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/mappers/dicom/__init__.py +3 -0
- karrio/mappers/dicom/mapper.py +107 -0
- karrio/mappers/dicom/proxy.py +31 -0
- karrio/mappers/dicom/settings.py +22 -0
- karrio/plugins/dicom/__init__.py +16 -0
- karrio/providers/dicom/__init__.py +20 -0
- karrio/providers/dicom/error.py +19 -0
- karrio/providers/dicom/pickup/__init__.py +3 -0
- karrio/providers/dicom/pickup/cancel.py +33 -0
- karrio/providers/dicom/pickup/create.py +102 -0
- karrio/providers/dicom/pickup/update.py +57 -0
- karrio/providers/dicom/rate.py +127 -0
- karrio/providers/dicom/shipment/__init__.py +2 -0
- karrio/providers/dicom/shipment/cancel.py +32 -0
- karrio/providers/dicom/shipment/create.py +192 -0
- karrio/providers/dicom/tracking.py +47 -0
- karrio/providers/dicom/units.py +167 -0
- karrio/providers/dicom/utils.py +34 -0
- karrio/schemas/dicom/__init__.py +0 -0
- karrio/schemas/dicom/pickups.py +83 -0
- karrio/schemas/dicom/rates.py +126 -0
- karrio/schemas/dicom/shipments.py +140 -0
- karrio/schemas/dicom/tracking.py +58 -0
- karrio_dicom-2025.5rc1.dist-info/METADATA +44 -0
- karrio_dicom-2025.5rc1.dist-info/RECORD +28 -0
- karrio_dicom-2025.5rc1.dist-info/WHEEL +5 -0
- karrio_dicom-2025.5rc1.dist-info/entry_points.txt +2 -0
- karrio_dicom-2025.5rc1.dist-info/top_level.txt +3 -0
@@ -0,0 +1,140 @@
|
|
1
|
+
import attr
|
2
|
+
from jstruct import JStruct, JList, REQUIRED
|
3
|
+
from typing import Optional, List
|
4
|
+
|
5
|
+
|
6
|
+
@attr.s(auto_attribs=True)
|
7
|
+
class Appointment:
|
8
|
+
type: str
|
9
|
+
date: Optional[str] = None
|
10
|
+
time: Optional[str] = None
|
11
|
+
phone: Optional[str] = None
|
12
|
+
|
13
|
+
|
14
|
+
@attr.s(auto_attribs=True)
|
15
|
+
class Contact:
|
16
|
+
fullName: str
|
17
|
+
extension: Optional[int] = None
|
18
|
+
language: Optional[str] = None
|
19
|
+
email: Optional[str] = None
|
20
|
+
department: Optional[str] = None
|
21
|
+
telephone: Optional[str] = None
|
22
|
+
|
23
|
+
|
24
|
+
@attr.s(auto_attribs=True)
|
25
|
+
class Address:
|
26
|
+
city: str
|
27
|
+
provinceCode: str
|
28
|
+
postalCode: str
|
29
|
+
countryCode: str
|
30
|
+
customerName: str
|
31
|
+
streetNumber: Optional[int] = None
|
32
|
+
suite: Optional[int] = None
|
33
|
+
addressLine1: Optional[str] = None
|
34
|
+
addressLine2: Optional[str] = None
|
35
|
+
streetType: Optional[str] = None
|
36
|
+
streetName: Optional[str] = None
|
37
|
+
streetDirection: Optional[str] = None
|
38
|
+
customerNickName: Optional[str] = None
|
39
|
+
contact: Contact = JStruct[Contact]
|
40
|
+
|
41
|
+
|
42
|
+
@attr.s(auto_attribs=True)
|
43
|
+
class Broker:
|
44
|
+
id: int
|
45
|
+
CSA_BusinessNumber: Optional[int] = None
|
46
|
+
href: Optional[str] = None
|
47
|
+
otherBroker: Optional[str] = None
|
48
|
+
|
49
|
+
|
50
|
+
@attr.s(auto_attribs=True)
|
51
|
+
class Product:
|
52
|
+
id: int
|
53
|
+
Quantity: int
|
54
|
+
|
55
|
+
|
56
|
+
@attr.s(auto_attribs=True)
|
57
|
+
class InternationalDetails:
|
58
|
+
isDicomBroker: bool
|
59
|
+
descriptionOfGoods: str
|
60
|
+
totalRetailValue: Optional[int] = None
|
61
|
+
currency: Optional[str] = None
|
62
|
+
exchangeRate: Optional[int] = None
|
63
|
+
dutyBilling: Optional[str] = None
|
64
|
+
importerOfRecord: Optional[Address] = JStruct[Address]
|
65
|
+
broker: Optional[Broker] = JStruct[Broker]
|
66
|
+
purpose: Optional[str] = None
|
67
|
+
products: Optional[List[Product]] = JList[Product]
|
68
|
+
borderStatus: Optional[str] = None
|
69
|
+
|
70
|
+
|
71
|
+
@attr.s(auto_attribs=True)
|
72
|
+
class Hazmat:
|
73
|
+
number: int
|
74
|
+
phone: str
|
75
|
+
|
76
|
+
|
77
|
+
@attr.s(auto_attribs=True)
|
78
|
+
class Parcel:
|
79
|
+
quantity: int
|
80
|
+
parcelType: str
|
81
|
+
id: Optional[int] = None
|
82
|
+
weight: Optional[int] = None
|
83
|
+
length: Optional[int] = None
|
84
|
+
depth: Optional[int] = None
|
85
|
+
width: Optional[int] = None
|
86
|
+
note: Optional[str] = None
|
87
|
+
status: Optional[int] = None
|
88
|
+
FCAClass: Optional[str] = None
|
89
|
+
hazmat: Optional[Hazmat] = JStruct[Hazmat]
|
90
|
+
requestReturnLabel: Optional[bool] = None
|
91
|
+
returnWaybill: Optional[str] = None
|
92
|
+
|
93
|
+
|
94
|
+
@attr.s(auto_attribs=True)
|
95
|
+
class PromoCode:
|
96
|
+
code: str
|
97
|
+
|
98
|
+
|
99
|
+
@attr.s(auto_attribs=True)
|
100
|
+
class Reference:
|
101
|
+
code: int
|
102
|
+
type: str
|
103
|
+
|
104
|
+
|
105
|
+
@attr.s(auto_attribs=True)
|
106
|
+
class Surcharge:
|
107
|
+
type: str
|
108
|
+
id: Optional[int] = None
|
109
|
+
value: Optional[str] = None
|
110
|
+
name: Optional[str] = None
|
111
|
+
amount: Optional[int] = None
|
112
|
+
|
113
|
+
|
114
|
+
@attr.s(auto_attribs=True)
|
115
|
+
class ShipmentRequest:
|
116
|
+
paymentType: str
|
117
|
+
billingAccount: int
|
118
|
+
sender: Address = JStruct[Address, REQUIRED]
|
119
|
+
consignee: Address = JStruct[Address, REQUIRED]
|
120
|
+
parcels: List[Parcel] = JList[Parcel, REQUIRED]
|
121
|
+
|
122
|
+
note: Optional[str] = None
|
123
|
+
category: Optional[str] = None
|
124
|
+
pickupDate: Optional[str] = None
|
125
|
+
deliveryType: Optional[str] = None
|
126
|
+
trackingNumber: Optional[str] = None
|
127
|
+
unitOfMeasurement: Optional[str] = None
|
128
|
+
surcharges: Optional[List[Surcharge]] = JList[Surcharge]
|
129
|
+
promoCodes: Optional[List[PromoCode]] = JList[PromoCode]
|
130
|
+
references: Optional[List[Reference]] = JList[Reference]
|
131
|
+
returnAddress: Optional[Address] = JStruct[Address]
|
132
|
+
appointment: Optional[Appointment] = JStruct[Appointment]
|
133
|
+
internationalDetails: Optional[InternationalDetails] = JStruct[InternationalDetails]
|
134
|
+
|
135
|
+
|
136
|
+
@attr.s(auto_attribs=True)
|
137
|
+
class ShipmentResponse:
|
138
|
+
parcelTrackingNumbers: List[str] = JList[str]
|
139
|
+
ID: Optional[str] = None
|
140
|
+
trackingNumber: Optional[str] = None
|
@@ -0,0 +1,58 @@
|
|
1
|
+
import attr
|
2
|
+
from jstruct import JStruct, JList
|
3
|
+
from typing import Optional, List
|
4
|
+
|
5
|
+
|
6
|
+
@attr.s(auto_attribs=True)
|
7
|
+
class Activity:
|
8
|
+
parcelId: Optional[int] = None
|
9
|
+
activityDate: Optional[str] = None
|
10
|
+
createDate: Optional[str] = None
|
11
|
+
status: Optional[str] = None
|
12
|
+
statusDetail: Optional[str] = None
|
13
|
+
code: Optional[str] = None
|
14
|
+
codeDetail: Optional[str] = None
|
15
|
+
group: Optional[str] = None
|
16
|
+
additionalInformation: Optional[str] = None
|
17
|
+
terminal: Optional[str] = None
|
18
|
+
latitude: Optional[str] = None
|
19
|
+
longitude: Optional[str] = None
|
20
|
+
height: Optional[str] = None
|
21
|
+
weight: Optional[str] = None
|
22
|
+
width: Optional[str] = None
|
23
|
+
length: Optional[str] = None
|
24
|
+
|
25
|
+
|
26
|
+
@attr.s(auto_attribs=True)
|
27
|
+
class Tracking:
|
28
|
+
id: Optional[int] = None
|
29
|
+
billingAccount: Optional[int] = None
|
30
|
+
status: Optional[int] = None
|
31
|
+
custRefNum: Optional[str] = None
|
32
|
+
activities: Optional[List[Activity]] = JList[Activity]
|
33
|
+
activityImages: Optional[List[dict]] = JList[dict]
|
34
|
+
isAuthorized: Optional[bool] = None
|
35
|
+
trackingNumber: Optional[str] = None
|
36
|
+
category: Optional[str] = None
|
37
|
+
paymentType: Optional[str] = None
|
38
|
+
note: Optional[str] = None
|
39
|
+
direction: Optional[str] = None
|
40
|
+
sender: Optional[dict] = None
|
41
|
+
consignee: Optional[dict] = None
|
42
|
+
unitOfMeasurement: Optional[str] = None
|
43
|
+
parcels: Optional[List[dict]] = None
|
44
|
+
surcharges: Optional[List[dict]] = None
|
45
|
+
createDate: Optional[str] = None
|
46
|
+
updateDate: Optional[str] = None
|
47
|
+
deliveryType: Optional[str] = None
|
48
|
+
references: Optional[List[dict]] = None
|
49
|
+
returnAddress: Optional[dict] = None
|
50
|
+
appointment: Optional[dict] = None
|
51
|
+
promoCodes: Optional[List[dict]] = None
|
52
|
+
internationalDetails: Optional[dict] = None
|
53
|
+
pickupDate: Optional[str] = None
|
54
|
+
|
55
|
+
|
56
|
+
@attr.s(auto_attribs=True)
|
57
|
+
class TrackingAPI:
|
58
|
+
tracking: Optional[List[Tracking]] = JList[Tracking]
|
@@ -0,0 +1,44 @@
|
|
1
|
+
Metadata-Version: 2.4
|
2
|
+
Name: karrio_dicom
|
3
|
+
Version: 2025.5rc1
|
4
|
+
Summary: Karrio - Dicom 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.7
|
12
|
+
Description-Content-Type: text/markdown
|
13
|
+
Requires-Dist: karrio
|
14
|
+
|
15
|
+
# karrio.dicom
|
16
|
+
|
17
|
+
This package is a Dicom extension of the [karrio](https://pypi.org/project/karrio) multi carrier shipping SDK.
|
18
|
+
|
19
|
+
## Requirements
|
20
|
+
|
21
|
+
`Python 3.7+`
|
22
|
+
|
23
|
+
## Installation
|
24
|
+
|
25
|
+
```bash
|
26
|
+
pip install karrio.dicom
|
27
|
+
```
|
28
|
+
|
29
|
+
## Usage
|
30
|
+
|
31
|
+
```python
|
32
|
+
import karrio.sdk as karrio
|
33
|
+
from karrio.mappers.dicom.settings import Settings
|
34
|
+
|
35
|
+
|
36
|
+
# Initialize a carrier gateway
|
37
|
+
canadapost = karrio.gateway["dicom"].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,28 @@
|
|
1
|
+
karrio/mappers/dicom/__init__.py,sha256=torxdiMKQFDTLcPQdQ30abGoOavU44DqjxtmlWDjPM0,143
|
2
|
+
karrio/mappers/dicom/mapper.py,sha256=gFl3ntss2O2YQ0vwj_2QY8V0KndzoFZZVvbRXOMdm2U,3568
|
3
|
+
karrio/mappers/dicom/proxy.py,sha256=6MU2HKCqiA6fQRQbSZNzPYZVVUOk4nilMTDOdNwEg7U,978
|
4
|
+
karrio/mappers/dicom/settings.py,sha256=TUUWviX9rHRCMZV9QeQNr9YJ1xH3JoSDpguIwtYGOjA,497
|
5
|
+
karrio/plugins/dicom/__init__.py,sha256=VXZv9mJFVHUuyyv5vT2qtfzXDy4mdO51OUv569c-aaA,294
|
6
|
+
karrio/providers/dicom/__init__.py,sha256=Y8jmSY8rxZYsHd3UU5buW_cYv3-4GixD-BiTweh-WOk,634
|
7
|
+
karrio/providers/dicom/error.py,sha256=sJDrRH2XTBtOkCi2pdYujMG0uYPUU7fMTvWyHbQmTCQ,576
|
8
|
+
karrio/providers/dicom/rate.py,sha256=nIRD-h3NRU9mvuAKJFWCyJlII9RC8anKk48OqnkusPM,4159
|
9
|
+
karrio/providers/dicom/tracking.py,sha256=m-qqd0FoKm317N4asuAqBZHOZxTkTaX0BjrVCU3nvjE,1571
|
10
|
+
karrio/providers/dicom/units.py,sha256=kxtQetEfR3ofxPjLLKjT8RYuIVeRnWRqw24a8XerP7c,5484
|
11
|
+
karrio/providers/dicom/utils.py,sha256=Hohf71y7eCe5HYoZI44kRHgMtoTmrbIub6Hf9-dxKc4,797
|
12
|
+
karrio/providers/dicom/pickup/__init__.py,sha256=gXajqCRIia5wPYhAN5oNKWbB4PXsoxxgnHjuQYdvV2g,289
|
13
|
+
karrio/providers/dicom/pickup/cancel.py,sha256=m8Z_RZtZ28k2Y1NX2MN3tcajJsUe6LMVJx9aUbtiWHc,980
|
14
|
+
karrio/providers/dicom/pickup/create.py,sha256=cBuMpPNANOy9D6vBKyoBwBfkUpvRU0YVi2kFIOJkTAQ,3404
|
15
|
+
karrio/providers/dicom/pickup/update.py,sha256=iSxgZmMp80OtSmVGqi8q51tSDEjL-9WbsT1ZFoo-qCQ,1902
|
16
|
+
karrio/providers/dicom/shipment/__init__.py,sha256=Rx4GcWFSWh2f8P-qwH2vEvmzjW7Ed00rTOKWWMigVZw,200
|
17
|
+
karrio/providers/dicom/shipment/cancel.py,sha256=LqY8qtX0Z42uJvXTSBp6yvo3J_yy2guFeQoqM3kb4B4,950
|
18
|
+
karrio/providers/dicom/shipment/create.py,sha256=eYjC_vkPNxQKcSqMpUpGR22Msx1YWhpWbwZ1pkUphwU,6706
|
19
|
+
karrio/schemas/dicom/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
20
|
+
karrio/schemas/dicom/pickups.py,sha256=HNJwnnze1tXnI3D9goi1aBVHc2_9BLCwAn9Nueq8xro,2018
|
21
|
+
karrio/schemas/dicom/rates.py,sha256=oGPwtVL6gHIv5_M8faYgVTIThsemLChRc8pDROQbRLU,3327
|
22
|
+
karrio/schemas/dicom/shipments.py,sha256=XpffWFe4ZUsJ7rfGYV9T732mybGcN5bzUAWUKM15O0o,3623
|
23
|
+
karrio/schemas/dicom/tracking.py,sha256=RVa_1LdlMPyYTVKvyhEqEixXZ_tq43TryPo1gUTqUZQ,1885
|
24
|
+
karrio_dicom-2025.5rc1.dist-info/METADATA,sha256=ccvk8iXazZIIAPojg6lILVkQZNkFY2quYaZeQYbrhDI,980
|
25
|
+
karrio_dicom-2025.5rc1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
26
|
+
karrio_dicom-2025.5rc1.dist-info/entry_points.txt,sha256=SD5VlK4aW56iHQWMKbCYi-nfu3lQ74NbqVKKruwcaZI,55
|
27
|
+
karrio_dicom-2025.5rc1.dist-info/top_level.txt,sha256=FZCY8Nwft8oEGHdl--xku8P3TrnOxu5dETEU_fWpRSM,20
|
28
|
+
karrio_dicom-2025.5rc1.dist-info/RECORD,,
|