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.
@@ -0,0 +1,2 @@
1
+ """The unified provider implementations module"""
2
+ __path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore
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(dict(connection=self.settings))(
20
- *args, **kwargs
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
- <= units.Weight(service.min_weight, service.weight_unit).value
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 and recipient.city in zone.cities
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.cities is not None and recipient.country_code in zone.country_codes
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.rate < zone.rate
184
+ and selected_zone.max_weight is not None
169
185
  and (
170
- selected_zone.max_weight < zone.max_weight
171
- or selected_zone.min_weight < zone.min_weight
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
@@ -0,0 +1,6 @@
1
+ """
2
+ Karrio validators package.
3
+
4
+ This package provides address validation functionality through various service providers.
5
+ """
6
+ __path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore
@@ -1,25 +1,25 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: karrio
3
- Version: 2023.5.1
3
+ Version: 2025.5rc1
4
4
  Summary: Multi-carrier shipping API integration with python
5
- Home-page: https://github.com/karrioapi/karrio
6
- Author: karrio
7
- Author-email: hello@karrio.io
8
- License: Apache-2.0
9
- Platform: UNKNOWN
5
+ Author-email: karrio <hello@karrio.io>
6
+ License-Expression: Apache-2.0
7
+ Project-URL: Homepage, https://github.com/karrioapi/karrio
10
8
  Classifier: Intended Audience :: Developers
11
9
  Classifier: Operating System :: OS Independent
12
10
  Classifier: Programming Language :: Python :: 3
11
+ Requires-Python: >=3.11
13
12
  Description-Content-Type: text/markdown
14
- Requires-Dist: Pillow
15
- Requires-Dist: PyPDF2
16
13
  Requires-Dist: jstruct
14
+ Requires-Dist: xmltodict
17
15
  Requires-Dist: lxml
18
16
  Requires-Dist: lxml-stubs
19
- Requires-Dist: phonenumbers
20
17
  Requires-Dist: py-soap
18
+ Requires-Dist: Pillow
19
+ Requires-Dist: phonenumbers
21
20
  Requires-Dist: python-barcode
22
- Requires-Dist: xmltodict
21
+ Requires-Dist: PyPDF2
22
+ Requires-Dist: toml
23
23
 
24
24
  # <a href="https://karrio.io" target="_blank"><img alt="Karrio" src="https://docs.karrio.io/img/logo.svg" height="50px" /></a>
25
25
 
@@ -38,7 +38,7 @@ The key features are:
38
38
 
39
39
  ## Requirements
40
40
 
41
- Python 3.7+
41
+ Python 3.11+
42
42
 
43
43
  ## Installation
44
44
 
@@ -82,7 +82,7 @@ pip install karrio.canadapost
82
82
  - Fetch shipping rates
83
83
 
84
84
  ```python
85
- import karrio
85
+ import karrio.sdk as karrio
86
86
  from karrio.core.models import Address, Parcel, RateRequest
87
87
  from karrio.mappers.canadapost.settings import Settings
88
88
 
@@ -175,5 +175,3 @@ print(rates)
175
175
  - [**Blog**](https://docs.karrio.io/blog)
176
176
 
177
177
  > [Join us on Discord](https://discord.gg/gS88uE7sEx)
178
-
179
-
@@ -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.5rc1.dist-info/METADATA,sha256=R8GeK45dYdpq4pnLOkADTVt1P2W2j0TG-bVCR1PSbdU,4762
55
+ karrio-2025.5rc1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
56
+ karrio-2025.5rc1.dist-info/top_level.txt,sha256=D1D7x8R3cTfjF_15mfiO7wCQ5QMtuM4x8GaPr7z5i78,12
57
+ karrio-2025.5rc1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.40.0)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,51 +0,0 @@
1
- karrio/__init__.py,sha256=MGaZGiMfGOpYY5gTQaOT-FgpyAmRoBio8dfXl1IcRWA,3149
2
- karrio/lib.py,sha256=82KqopUD2G6YafDzIRJT9dpDEa5OB0hJqaRuuATa4Vk,18189
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=N7jeUNtN7kW9vumjoRBXH8-G0O3ZWZ9yvtXGYSXKECo,2569
16
- karrio/core/metadata.py,sha256=vs4doqUjxDSRbDulbdBeTAyFUIZ8MdjsRP74YjtdNEY,1081
17
- karrio/core/models.py,sha256=wkqD4M7cCDFJmdpI3shDvxX4M9mFirL6K3yHUl0GIbM,10953
18
- karrio/core/settings.py,sha256=1d-w-U5nODMxsbmR0B4CdgggvYCzsgtSipP7GUWmFkI,753
19
- karrio/core/units.py,sha256=eWe-kJAtSohZGnCXkZ1JNKQEqsoYHczmJnPttisg3no,58771
20
- karrio/core/utils/__init__.py,sha256=NPxAugvQ4lhWOngITOagexXrsTQqlJQ0gyaXc9iBivg,739
21
- karrio/core/utils/caching.py,sha256=zx0R1XAWPuA0q2hz5xUw0-OLZhHd7haS41uO_Prg8Ng,1734
22
- karrio/core/utils/datetime.py,sha256=UEu6F5X_AeksCiYFZoPpTzWyllef4i3YuGPTJR5LfVk,2313
23
- karrio/core/utils/dict.py,sha256=fUsyMwRduh3qJ6D6Vf4LUVcljEqDHJVn8Av9x4rUadg,2312
24
- karrio/core/utils/enum.py,sha256=qCrqP49wXyypfQ7rw4kFGjJ6rawptOxq_RPwqaz09dk,4420
25
- karrio/core/utils/helpers.py,sha256=IOYRFWPc1Wsc7TfkWjq-movvikaTZfkI-n2Z7RHQXys,8549
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=lJuErv4jvWU93DYQZi6Dla585SaIphZU1-BhqUWe-O4,4887
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/universal/__init__.py,sha256=bpT73UG7mZL_JjEqMwbYx6q69jA8J5Jcoul1LcDokhA,81
38
- karrio/universal/mappers/__init__.py,sha256=bpT73UG7mZL_JjEqMwbYx6q69jA8J5Jcoul1LcDokhA,81
39
- karrio/universal/mappers/rating_proxy.py,sha256=la0cAsbhuXzSFYdzi8tJalC4kT79FvZu_N99VMGTktU,10634
40
- karrio/universal/mappers/shipping_proxy.py,sha256=-hEXZ0R3-Ps6MSRAGpE_IlWsa0gKr6xJjIz4NuoeXQ8,1935
41
- karrio/universal/providers/__init__.py,sha256=bpT73UG7mZL_JjEqMwbYx6q69jA8J5Jcoul1LcDokhA,81
42
- karrio/universal/providers/rating/__init__.py,sha256=3f8u1FS7OF9OZUGauBSt4B1ad0dmqIsmFaG3pWu7Sck,139
43
- karrio/universal/providers/rating/rate.py,sha256=5M79YhIX-XMnm44kezFEoY5vE9d-WWjGAaBnE7MOmJI,861
44
- karrio/universal/providers/rating/utils.py,sha256=WVyJWdxCdKM1YlhTHVFxEMyac0FKIGHEkYXWEgJUzYA,558
45
- karrio/universal/providers/shipping/__init__.py,sha256=JRcfJWSeDSjO2g2fRnLgBurBXn01nVpdi21ShxLpG34,188
46
- karrio/universal/providers/shipping/shipment.py,sha256=t7PO4uSzD1ZL3q3UZWHAPD3UUZUKXReQvED8mVKUe1A,1512
47
- karrio/universal/providers/shipping/utils.py,sha256=1LuO31RMhpUls6-h5xhWkfky4G7tdWmGKmRhLkj-e98,593
48
- karrio-2023.5.1.dist-info/METADATA,sha256=H40ALALN8cLiG6iLgd9gQJ5Dy0S1G2uE-0KaS6j3GvY,4705
49
- karrio-2023.5.1.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
50
- karrio-2023.5.1.dist-info/top_level.txt,sha256=mfkVZXzNuVRmA7NRlck_Ub-C8Zgtqxbx3gX1Rq_W-i0,7
51
- karrio-2023.5.1.dist-info/RECORD,,