karrio 2023.9.2__py3-none-any.whl → 2025.5rc3__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/metadata.py +113 -20
- karrio/core/models.py +64 -5
- karrio/core/plugins.py +606 -0
- karrio/core/settings.py +39 -2
- karrio/core/units.py +574 -29
- karrio/core/utils/datetime.py +62 -2
- karrio/core/utils/dict.py +5 -0
- karrio/core/utils/enum.py +98 -13
- karrio/core/utils/helpers.py +83 -32
- karrio/core/utils/number.py +52 -8
- karrio/core/utils/string.py +52 -1
- karrio/core/utils/transformer.py +9 -4
- karrio/core/validators.py +88 -0
- karrio/lib.py +147 -2
- karrio/plugins/__init__.py +6 -0
- karrio/references.py +652 -67
- karrio/sdk.py +102 -0
- karrio/universal/mappers/rating_proxy.py +35 -9
- karrio/validators/__init__.py +6 -0
- {karrio-2023.9.2.dist-info → karrio-2025.5rc3.dist-info}/METADATA +9 -8
- karrio-2025.5rc3.dist-info/RECORD +57 -0
- {karrio-2023.9.2.dist-info → karrio-2025.5rc3.dist-info}/WHEEL +1 -1
- {karrio-2023.9.2.dist-info → karrio-2025.5rc3.dist-info}/top_level.txt +1 -0
- karrio-2023.9.2.dist-info/RECORD +0 -52
karrio/sdk.py
ADDED
@@ -0,0 +1,102 @@
|
|
1
|
+
"""Karrio package root module
|
2
|
+
|
3
|
+
Karrio makes shipping carrier webservices integration easy by providing
|
4
|
+
a modern and dev friendly library and by providing a unified extensible API
|
5
|
+
to communicate with all supported carriers.
|
6
|
+
|
7
|
+
-- Speak Karrio, Speak carriers...
|
8
|
+
|
9
|
+
Example:
|
10
|
+
Examples can be given using either the ``Example`` or ``Examples``
|
11
|
+
sections. Sections support any reStructuredText formatting, including
|
12
|
+
literal blocks::
|
13
|
+
|
14
|
+
>>> import karrio.sdk as karrio
|
15
|
+
>>> from karrio.core.utils import DP
|
16
|
+
>>> from karrio.core.models import Address, Parcel, RateRequest
|
17
|
+
>>> canadapost = karrio.gateway["canadapost"].create(
|
18
|
+
... {
|
19
|
+
... "username": "username",
|
20
|
+
... "password": "password",
|
21
|
+
... "customer_number": "123456789",
|
22
|
+
... "test": True
|
23
|
+
... }
|
24
|
+
... )
|
25
|
+
>>> shipper = Address(
|
26
|
+
... postal_code= "V6M2V9",
|
27
|
+
... city= "Vancouver",
|
28
|
+
... country_code= "CA",
|
29
|
+
... state_code= "BC",
|
30
|
+
... address_line1= "5840 Oak St"
|
31
|
+
... )
|
32
|
+
>>> recipient = Address(
|
33
|
+
... postal_code= "E1C4Z8",
|
34
|
+
... city= "Moncton",
|
35
|
+
... country_code= "CA",
|
36
|
+
... state_code= "NB",
|
37
|
+
... residential= False,
|
38
|
+
... address_line1= "125 Church St"
|
39
|
+
... )
|
40
|
+
>>> parcel = Parcel(
|
41
|
+
... height= 3.0,
|
42
|
+
... length= 6.0,
|
43
|
+
... width= 3.0,
|
44
|
+
... weight= 0.5
|
45
|
+
... )
|
46
|
+
>>> request = karrio.Rating.fetch(
|
47
|
+
... RateRequest(
|
48
|
+
... shipper=shipper,
|
49
|
+
... recipient=recipient,
|
50
|
+
... parcels=[parcel],
|
51
|
+
... services=["canadapost_priority"]
|
52
|
+
... )
|
53
|
+
... )
|
54
|
+
>>> rates = request.from_(canadapost).parse()
|
55
|
+
>>> print(DP.to_dict(rates))
|
56
|
+
[
|
57
|
+
[],
|
58
|
+
[
|
59
|
+
{
|
60
|
+
"base_charge": 12.26,
|
61
|
+
"carrier_name": "canadapost",
|
62
|
+
"carrier_id": "canadapost",
|
63
|
+
"currency": "CAD",
|
64
|
+
"transit_days": 2,
|
65
|
+
"extra_charges": [
|
66
|
+
{"amount": -0.37, "currency": "CAD", "name": "Automation discount"},
|
67
|
+
{"amount": 1.75, "currency": "CAD", "name": "Fuel surcharge"}
|
68
|
+
],
|
69
|
+
"service": "canadapost_xpresspost",
|
70
|
+
"total_charge": 13.64
|
71
|
+
}
|
72
|
+
]
|
73
|
+
]
|
74
|
+
|
75
|
+
Attributes:
|
76
|
+
gateway (GatewayInitializer): Gateway initializer singleton instance
|
77
|
+
|
78
|
+
"""
|
79
|
+
|
80
|
+
from karrio.api.gateway import GatewayInitializer
|
81
|
+
import karrio.api.interface as interface
|
82
|
+
|
83
|
+
gateway = GatewayInitializer.get_instance()
|
84
|
+
Pickup = interface.Pickup
|
85
|
+
Rating = interface.Rating
|
86
|
+
Shipment = interface.Shipment
|
87
|
+
Tracking = interface.Tracking
|
88
|
+
Address = interface.Address
|
89
|
+
Document = interface.Document
|
90
|
+
Manifest = interface.Manifest
|
91
|
+
|
92
|
+
|
93
|
+
__all__ = [
|
94
|
+
"gateway",
|
95
|
+
"Pickup",
|
96
|
+
"Rating",
|
97
|
+
"Shipment",
|
98
|
+
"Tracking",
|
99
|
+
"Address",
|
100
|
+
"Document",
|
101
|
+
"Manifest",
|
102
|
+
]
|
@@ -16,9 +16,16 @@ class RatingMixinProxy:
|
|
16
16
|
tracer: utils.Tracer = attr.field(factory=utils.Tracer)
|
17
17
|
|
18
18
|
def trace(self, *args, **kwargs):
|
19
|
-
return self.tracer.with_metadata(
|
20
|
-
|
21
|
-
|
19
|
+
return self.tracer.with_metadata(
|
20
|
+
dict(
|
21
|
+
connection=dict(
|
22
|
+
id=self.settings.id,
|
23
|
+
test_mode=self.settings.test_mode,
|
24
|
+
carrier_id=self.settings.carrier_id,
|
25
|
+
carrier_name=self.settings.carrier_name,
|
26
|
+
)
|
27
|
+
)
|
28
|
+
)(*args, **kwargs)
|
22
29
|
|
23
30
|
def get_rates(
|
24
31
|
self, request: utils.Serializable
|
@@ -130,7 +137,7 @@ def get_available_rates(
|
|
130
137
|
match_min_weight_requirements = (
|
131
138
|
service.min_weight is not None
|
132
139
|
and package.weight[service.weight_unit]
|
133
|
-
|
140
|
+
>= units.Weight(service.min_weight, service.weight_unit).value
|
134
141
|
) or (service.min_weight is None)
|
135
142
|
match_max_weight_requirements = (
|
136
143
|
service.max_weight is not None
|
@@ -144,11 +151,20 @@ def get_available_rates(
|
|
144
151
|
for zone in service.zones or []:
|
145
152
|
# Check Location inclusion
|
146
153
|
_cover_supported_cities = (
|
147
|
-
zone.cities is not None
|
154
|
+
zone.cities is not None
|
155
|
+
and recipient.city is not None
|
156
|
+
and recipient.city.lower() in [_.lower() for _ in zone.cities]
|
148
157
|
) or not any(zone.cities or [])
|
149
158
|
_cover_supported_countries = (
|
150
|
-
zone.
|
159
|
+
zone.country_codes is not None
|
160
|
+
and recipient.country_code in zone.country_codes
|
151
161
|
) or not any(zone.country_codes or [])
|
162
|
+
_cover_supported_postal_codes = (
|
163
|
+
zone.postal_codes is not None
|
164
|
+
and recipient.postal_code is not None
|
165
|
+
and str(recipient.postal_code).lower()
|
166
|
+
in [str(_).lower() for _ in zone.postal_codes]
|
167
|
+
) or not any(zone.postal_codes or [])
|
152
168
|
|
153
169
|
# Check if weight and dimensions fit restrictions
|
154
170
|
_match_zone_min_weight_requirements = (
|
@@ -165,16 +181,26 @@ def get_available_rates(
|
|
165
181
|
# Check if best fit zone is selected
|
166
182
|
_best_fit_zone_selected = (
|
167
183
|
selected_zone is not None
|
168
|
-
and selected_zone.
|
184
|
+
and selected_zone.max_weight is not None
|
169
185
|
and (
|
170
|
-
selected_zone.
|
171
|
-
or
|
186
|
+
selected_zone.rate < zone.rate
|
187
|
+
or (
|
188
|
+
selected_zone.max_weight is not None
|
189
|
+
and zone.max_weight is not None
|
190
|
+
and selected_zone.max_weight < zone.max_weight
|
191
|
+
)
|
192
|
+
or (
|
193
|
+
selected_zone.min_weight is not None
|
194
|
+
and zone.min_weight is not None
|
195
|
+
and selected_zone.min_weight < zone.min_weight
|
196
|
+
)
|
172
197
|
)
|
173
198
|
)
|
174
199
|
|
175
200
|
if (
|
176
201
|
_cover_supported_cities
|
177
202
|
and _cover_supported_countries
|
203
|
+
and _cover_supported_postal_codes
|
178
204
|
and _match_zone_min_weight_requirements
|
179
205
|
and _match_zone_max_weight_requirements
|
180
206
|
and _best_fit_zone_selected is False
|
@@ -1,14 +1,14 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.4
|
2
2
|
Name: karrio
|
3
|
-
Version:
|
3
|
+
Version: 2025.5rc3
|
4
4
|
Summary: Multi-carrier shipping API integration with python
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
License: Apache-2.0
|
5
|
+
Author-email: karrio <hello@karrio.io>
|
6
|
+
License-Expression: Apache-2.0
|
7
|
+
Project-URL: Homepage, https://github.com/karrioapi/karrio
|
9
8
|
Classifier: Intended Audience :: Developers
|
10
9
|
Classifier: Operating System :: OS Independent
|
11
10
|
Classifier: Programming Language :: Python :: 3
|
11
|
+
Requires-Python: >=3.11
|
12
12
|
Description-Content-Type: text/markdown
|
13
13
|
Requires-Dist: jstruct
|
14
14
|
Requires-Dist: xmltodict
|
@@ -19,6 +19,7 @@ Requires-Dist: Pillow
|
|
19
19
|
Requires-Dist: phonenumbers
|
20
20
|
Requires-Dist: python-barcode
|
21
21
|
Requires-Dist: PyPDF2
|
22
|
+
Requires-Dist: toml
|
22
23
|
|
23
24
|
# <a href="https://karrio.io" target="_blank"><img alt="Karrio" src="https://docs.karrio.io/img/logo.svg" height="50px" /></a>
|
24
25
|
|
@@ -37,7 +38,7 @@ The key features are:
|
|
37
38
|
|
38
39
|
## Requirements
|
39
40
|
|
40
|
-
Python 3.
|
41
|
+
Python 3.11+
|
41
42
|
|
42
43
|
## Installation
|
43
44
|
|
@@ -81,7 +82,7 @@ pip install karrio.canadapost
|
|
81
82
|
- Fetch shipping rates
|
82
83
|
|
83
84
|
```python
|
84
|
-
import karrio
|
85
|
+
import karrio.sdk as karrio
|
85
86
|
from karrio.core.models import Address, Parcel, RateRequest
|
86
87
|
from karrio.mappers.canadapost.settings import Settings
|
87
88
|
|
@@ -0,0 +1,57 @@
|
|
1
|
+
karrio/__init__.py,sha256=bpT73UG7mZL_JjEqMwbYx6q69jA8J5Jcoul1LcDokhA,81
|
2
|
+
karrio/lib.py,sha256=eEHcJv9ig5UnkMMgJs1KTSEx3mJSYOmVQvSl_UjtWZQ,23962
|
3
|
+
karrio/references.py,sha256=fSZK62trivpzHp7u3IRWRgfOH2fxoP2hSjG5AKAFEyA,26200
|
4
|
+
karrio/sdk.py,sha256=JW7hFSxq6ki05vwR90-JiBYpos7QUlLDd8JEWf_dndg,3128
|
5
|
+
karrio/addons/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
6
|
+
karrio/addons/label.py,sha256=WwC1o97Ztyj3kRNTlAkHmYh4It7dC7l8bsC3fc-5yMA,10316
|
7
|
+
karrio/addons/renderer.py,sha256=wNfN1MXPFNRrIyyij8Hw30S2sWE2-lLT0SpyE3DiYsE,7007
|
8
|
+
karrio/addons/fonts/Oswald-Regular.ttf,sha256=JkY5cy9a34D6weSp7z8OtY5Yta6tB4UAh2Yt7euhGxI,91400
|
9
|
+
karrio/addons/fonts/Oswald-SemiBold.ttf,sha256=s4enQAb3fl-rF7yrZAHO8P99AVqUjiJ3DS873v-lidA,91700
|
10
|
+
karrio/api/__init__.py,sha256=fJbOJLRIdrVlUi2BM-JtagKdm05ADc9naRMtx6rZ0V4,127
|
11
|
+
karrio/api/gateway.py,sha256=fYU4nuer97LdiKHNEoj7rHi4vL49YPqLYG_KuJ0PTtU,5578
|
12
|
+
karrio/api/interface.py,sha256=kNO3weB890CHIzEQ3m-aewbROUxZ2rEWEdtC0NJ6AQ4,17458
|
13
|
+
karrio/api/mapper.py,sha256=KU9kiXo4l6ocY7F8AYmf4U6398gc2hhBDGhAeBTM3ag,14893
|
14
|
+
karrio/api/proxy.py,sha256=rZtlptH-H6yrEqjr9VUG89JuQg3tpAmYgOxT8ChrX5I,6828
|
15
|
+
karrio/core/__init__.py,sha256=2RAhlihO1ExRNx2msF5N889aY2DjdzAGJqUZaQo0XmM,143
|
16
|
+
karrio/core/errors.py,sha256=asxG9d0t13Ac1bQtZzPOThfEZKXFSHskOE58jNUYvFg,2560
|
17
|
+
karrio/core/metadata.py,sha256=y8a76z79WR1IIPyRedc9u7-MLdnlvZaIt_cGcEUN1N0,4132
|
18
|
+
karrio/core/models.py,sha256=h-Zmhh2RbMkM0257hy2qdAKD6OspPrFxxGWeKqWuISc,12404
|
19
|
+
karrio/core/plugins.py,sha256=ss5qHIgUA4qbuHMrsjyOP0Nd0QrQfU9WEwCg2dRUqwc,25129
|
20
|
+
karrio/core/settings.py,sha256=4taIdp7oafekXyhZ3JQyeC4iThQpJx7gP4Q5OKTU_II,1839
|
21
|
+
karrio/core/units.py,sha256=Ji0jHCXk0pDzHi-4Rb6MWYwL7lS_fcWMdyoFXO60Itc,77293
|
22
|
+
karrio/core/validators.py,sha256=5x45MxFthaQrlbs5_cDVmnwsWdKl6icbkp7yoBceDx4,2187
|
23
|
+
karrio/core/utils/__init__.py,sha256=dt4643diYv2nmVx3tCF9hRvwAQ-Xzsl2JPd854_qAzA,748
|
24
|
+
karrio/core/utils/caching.py,sha256=zx0R1XAWPuA0q2hz5xUw0-OLZhHd7haS41uO_Prg8Ng,1734
|
25
|
+
karrio/core/utils/datetime.py,sha256=khfeEmsqlRppQBCWvmcpkSDlx_rBdM2TWZipHGOJU6I,4837
|
26
|
+
karrio/core/utils/dict.py,sha256=Fi4SUht4L_Otcol0t0Padga2firSHEUlqTMCaiVALWk,2475
|
27
|
+
karrio/core/utils/enum.py,sha256=Acwa3jpBYx2OdBOsTepw96wKON60rkXJPQStQ5p-T8c,7969
|
28
|
+
karrio/core/utils/helpers.py,sha256=oiPSloVDN27kl4xc3l0S7Cz3ed03mTIDECA0cd7DlpI,10709
|
29
|
+
karrio/core/utils/log.py,sha256=G0JqUqNiS7JwkFMurtHtbxa42miAs28dPfNZZdlZid4,434
|
30
|
+
karrio/core/utils/number.py,sha256=6NMpdyiYqMrF-KQvPDg_wxer5zkr8ts2JHfi82xzQ7o,2703
|
31
|
+
karrio/core/utils/pipeline.py,sha256=6wXdsUGW7ZVqhpsEzreBnS6dHSCU5XgClOaBgKfJyh8,1253
|
32
|
+
karrio/core/utils/serializable.py,sha256=iaeiVeiCqnpIhX0danUPfsixVWcYkhb3NkYlfQaFuJA,916
|
33
|
+
karrio/core/utils/soap.py,sha256=g8AzymGypJris0liiK-zwsjeoCPlIJ8r25WSBlSHqqs,5274
|
34
|
+
karrio/core/utils/string.py,sha256=EM6kHXZtr53gk856GbOaqID-Hqr50SeQQVWsdB5GoMk,2776
|
35
|
+
karrio/core/utils/tracing.py,sha256=84dmmpEPs_iBC3JaFv4f9vbC0VgR6KW4HZEYIrdt084,1462
|
36
|
+
karrio/core/utils/transformer.py,sha256=VHhZjXtxyeXEhAM4B5lGdcJUqT9-FZg10dZoOmnHwjs,5115
|
37
|
+
karrio/core/utils/xml.py,sha256=eMPbMVHvCMEDgUMuicB2-EQnzsxWTkNJ7RW7o9MKIc0,5493
|
38
|
+
karrio/mappers/__init__.py,sha256=i5qDwqYoTmFscV1rwxIOo19JiRzyfTWJd9Jx0qEvUmo,129
|
39
|
+
karrio/plugins/__init__.py,sha256=pKV0dTWzyqHqLT3PFmsNZ-sAge0avF7g7Vl8qZJx864,176
|
40
|
+
karrio/providers/__init__.py,sha256=02HsiVGylnZLoB_OE-7kJTvF500-CpOe-WWkOkqRUno,131
|
41
|
+
karrio/schemas/__init__.py,sha256=02HsiVGylnZLoB_OE-7kJTvF500-CpOe-WWkOkqRUno,131
|
42
|
+
karrio/universal/__init__.py,sha256=bpT73UG7mZL_JjEqMwbYx6q69jA8J5Jcoul1LcDokhA,81
|
43
|
+
karrio/universal/mappers/__init__.py,sha256=bpT73UG7mZL_JjEqMwbYx6q69jA8J5Jcoul1LcDokhA,81
|
44
|
+
karrio/universal/mappers/rating_proxy.py,sha256=nXvNmNziu5Iszuk-2qRrN-UIwnLX0AgluDUqHpPNqO4,11765
|
45
|
+
karrio/universal/mappers/shipping_proxy.py,sha256=-hEXZ0R3-Ps6MSRAGpE_IlWsa0gKr6xJjIz4NuoeXQ8,1935
|
46
|
+
karrio/universal/providers/__init__.py,sha256=bpT73UG7mZL_JjEqMwbYx6q69jA8J5Jcoul1LcDokhA,81
|
47
|
+
karrio/universal/providers/rating/__init__.py,sha256=3f8u1FS7OF9OZUGauBSt4B1ad0dmqIsmFaG3pWu7Sck,139
|
48
|
+
karrio/universal/providers/rating/rate.py,sha256=5M79YhIX-XMnm44kezFEoY5vE9d-WWjGAaBnE7MOmJI,861
|
49
|
+
karrio/universal/providers/rating/utils.py,sha256=WVyJWdxCdKM1YlhTHVFxEMyac0FKIGHEkYXWEgJUzYA,558
|
50
|
+
karrio/universal/providers/shipping/__init__.py,sha256=JRcfJWSeDSjO2g2fRnLgBurBXn01nVpdi21ShxLpG34,188
|
51
|
+
karrio/universal/providers/shipping/shipment.py,sha256=t7PO4uSzD1ZL3q3UZWHAPD3UUZUKXReQvED8mVKUe1A,1512
|
52
|
+
karrio/universal/providers/shipping/utils.py,sha256=1LuO31RMhpUls6-h5xhWkfky4G7tdWmGKmRhLkj-e98,593
|
53
|
+
karrio/validators/__init__.py,sha256=r1Tb6phNVqLsBVgu41tNpTC1F1DoBqz4nwXy-BZ_S0g,206
|
54
|
+
karrio-2025.5rc3.dist-info/METADATA,sha256=KP5ZKR1S7g3YvkSH4jB5mgqk7JC5ROv1uoDzrK37_MI,4762
|
55
|
+
karrio-2025.5rc3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
56
|
+
karrio-2025.5rc3.dist-info/top_level.txt,sha256=D1D7x8R3cTfjF_15mfiO7wCQ5QMtuM4x8GaPr7z5i78,12
|
57
|
+
karrio-2025.5rc3.dist-info/RECORD,,
|
karrio-2023.9.2.dist-info/RECORD
DELETED
@@ -1,52 +0,0 @@
|
|
1
|
-
karrio/__init__.py,sha256=MGaZGiMfGOpYY5gTQaOT-FgpyAmRoBio8dfXl1IcRWA,3149
|
2
|
-
karrio/lib.py,sha256=WcrIzecBiwE507VSVPNkNT8--nvS6AgrZ-uv1crGBEA,19903
|
3
|
-
karrio/references.py,sha256=Re-PHb3QyhFkqCGTuKyQjIFxpa30b9vaRqA5TVjwr1E,4969
|
4
|
-
karrio/addons/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
5
|
-
karrio/addons/label.py,sha256=WwC1o97Ztyj3kRNTlAkHmYh4It7dC7l8bsC3fc-5yMA,10316
|
6
|
-
karrio/addons/renderer.py,sha256=tLO1ZWrYExBOyLVv29v-1FWtASrevZlG2OCgQFf8lqk,7016
|
7
|
-
karrio/addons/fonts/Oswald-Regular.ttf,sha256=JkY5cy9a34D6weSp7z8OtY5Yta6tB4UAh2Yt7euhGxI,91400
|
8
|
-
karrio/addons/fonts/Oswald-SemiBold.ttf,sha256=s4enQAb3fl-rF7yrZAHO8P99AVqUjiJ3DS873v-lidA,91700
|
9
|
-
karrio/api/__init__.py,sha256=fJbOJLRIdrVlUi2BM-JtagKdm05ADc9naRMtx6rZ0V4,127
|
10
|
-
karrio/api/gateway.py,sha256=9E30taInhrN7-VGeZz3NKcbKEwhy7h9grB_nZ8dlkQM,4955
|
11
|
-
karrio/api/interface.py,sha256=ruH6ZV9RitmH_uTP5Czoym-P1DhqRpmCoRCPK0oPGRE,16146
|
12
|
-
karrio/api/mapper.py,sha256=OjLH2b6_NRcVNnJDb3hZypY6FfHuTHiMlAJgYnWpkzM,13472
|
13
|
-
karrio/api/proxy.py,sha256=Mx5tpcL0L_02lIZ84AvnEfroVu5Qi22iz7AVueX4YjI,6320
|
14
|
-
karrio/core/__init__.py,sha256=BboTt3huAYrsqcTcaq1lFX5O4uKiIi2cpWEXp68ItMo,71
|
15
|
-
karrio/core/errors.py,sha256=asxG9d0t13Ac1bQtZzPOThfEZKXFSHskOE58jNUYvFg,2560
|
16
|
-
karrio/core/metadata.py,sha256=vs4doqUjxDSRbDulbdBeTAyFUIZ8MdjsRP74YjtdNEY,1081
|
17
|
-
karrio/core/models.py,sha256=B_n4AS8qrqHI3AJie_waFOayYad2zypaC9tgfFoxSAI,11005
|
18
|
-
karrio/core/settings.py,sha256=1d-w-U5nODMxsbmR0B4CdgggvYCzsgtSipP7GUWmFkI,753
|
19
|
-
karrio/core/units.py,sha256=2hYiZNH_xPnD95-wWne7GZCfy6YoLPzXGzcov29ro7Q,61396
|
20
|
-
karrio/core/utils/__init__.py,sha256=dt4643diYv2nmVx3tCF9hRvwAQ-Xzsl2JPd854_qAzA,748
|
21
|
-
karrio/core/utils/caching.py,sha256=zx0R1XAWPuA0q2hz5xUw0-OLZhHd7haS41uO_Prg8Ng,1734
|
22
|
-
karrio/core/utils/datetime.py,sha256=VD6pCFfnFFbhslWr0_QclMlR4DRCj58kn4KWXVl-aK8,2394
|
23
|
-
karrio/core/utils/dict.py,sha256=fUsyMwRduh3qJ6D6Vf4LUVcljEqDHJVn8Av9x4rUadg,2312
|
24
|
-
karrio/core/utils/enum.py,sha256=Twle9bvD1LQ5ks0XqPapYnYl-qY1rDRmsICJ5K-VCKg,4748
|
25
|
-
karrio/core/utils/helpers.py,sha256=ij_nD-P2PlCAKNxtYY3pjKjaMOXX6qKiqcAcZ7BvdXM,8695
|
26
|
-
karrio/core/utils/log.py,sha256=G0JqUqNiS7JwkFMurtHtbxa42miAs28dPfNZZdlZid4,434
|
27
|
-
karrio/core/utils/number.py,sha256=z455Zbx5V92Ofo8PEaC_UEfmVEwnb-nq7fIoSeApz4o,1176
|
28
|
-
karrio/core/utils/pipeline.py,sha256=6wXdsUGW7ZVqhpsEzreBnS6dHSCU5XgClOaBgKfJyh8,1253
|
29
|
-
karrio/core/utils/serializable.py,sha256=iaeiVeiCqnpIhX0danUPfsixVWcYkhb3NkYlfQaFuJA,916
|
30
|
-
karrio/core/utils/soap.py,sha256=g8AzymGypJris0liiK-zwsjeoCPlIJ8r25WSBlSHqqs,5274
|
31
|
-
karrio/core/utils/string.py,sha256=l2CL4rn7Tls26oH_IgAsiQh80grG39Tj4NKY4CtcCsU,762
|
32
|
-
karrio/core/utils/tracing.py,sha256=84dmmpEPs_iBC3JaFv4f9vbC0VgR6KW4HZEYIrdt084,1462
|
33
|
-
karrio/core/utils/transformer.py,sha256=QOO2bb23j3EqV3ez7I71veaNqnYhiX17tLcqm8LaWgw,4969
|
34
|
-
karrio/core/utils/xml.py,sha256=eMPbMVHvCMEDgUMuicB2-EQnzsxWTkNJ7RW7o9MKIc0,5493
|
35
|
-
karrio/mappers/__init__.py,sha256=i5qDwqYoTmFscV1rwxIOo19JiRzyfTWJd9Jx0qEvUmo,129
|
36
|
-
karrio/providers/__init__.py,sha256=02HsiVGylnZLoB_OE-7kJTvF500-CpOe-WWkOkqRUno,131
|
37
|
-
karrio/schemas/__init__.py,sha256=02HsiVGylnZLoB_OE-7kJTvF500-CpOe-WWkOkqRUno,131
|
38
|
-
karrio/universal/__init__.py,sha256=bpT73UG7mZL_JjEqMwbYx6q69jA8J5Jcoul1LcDokhA,81
|
39
|
-
karrio/universal/mappers/__init__.py,sha256=bpT73UG7mZL_JjEqMwbYx6q69jA8J5Jcoul1LcDokhA,81
|
40
|
-
karrio/universal/mappers/rating_proxy.py,sha256=la0cAsbhuXzSFYdzi8tJalC4kT79FvZu_N99VMGTktU,10634
|
41
|
-
karrio/universal/mappers/shipping_proxy.py,sha256=-hEXZ0R3-Ps6MSRAGpE_IlWsa0gKr6xJjIz4NuoeXQ8,1935
|
42
|
-
karrio/universal/providers/__init__.py,sha256=bpT73UG7mZL_JjEqMwbYx6q69jA8J5Jcoul1LcDokhA,81
|
43
|
-
karrio/universal/providers/rating/__init__.py,sha256=3f8u1FS7OF9OZUGauBSt4B1ad0dmqIsmFaG3pWu7Sck,139
|
44
|
-
karrio/universal/providers/rating/rate.py,sha256=5M79YhIX-XMnm44kezFEoY5vE9d-WWjGAaBnE7MOmJI,861
|
45
|
-
karrio/universal/providers/rating/utils.py,sha256=WVyJWdxCdKM1YlhTHVFxEMyac0FKIGHEkYXWEgJUzYA,558
|
46
|
-
karrio/universal/providers/shipping/__init__.py,sha256=JRcfJWSeDSjO2g2fRnLgBurBXn01nVpdi21ShxLpG34,188
|
47
|
-
karrio/universal/providers/shipping/shipment.py,sha256=t7PO4uSzD1ZL3q3UZWHAPD3UUZUKXReQvED8mVKUe1A,1512
|
48
|
-
karrio/universal/providers/shipping/utils.py,sha256=1LuO31RMhpUls6-h5xhWkfky4G7tdWmGKmRhLkj-e98,593
|
49
|
-
karrio-2023.9.2.dist-info/METADATA,sha256=R1u5MuYFmrH6pyzOx-T-yPkQH-sLq3TKYGUfGImxJoM,4685
|
50
|
-
karrio-2023.9.2.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
51
|
-
karrio-2023.9.2.dist-info/top_level.txt,sha256=mfkVZXzNuVRmA7NRlck_Ub-C8Zgtqxbx3gX1Rq_W-i0,7
|
52
|
-
karrio-2023.9.2.dist-info/RECORD,,
|