karrio 2023.4__py3-none-any.whl → 2023.4.4__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/core/models.py +0 -10
- karrio/core/units.py +50 -27
- {karrio-2023.4.dist-info → karrio-2023.4.4.dist-info}/METADATA +1 -1
- {karrio-2023.4.dist-info → karrio-2023.4.4.dist-info}/RECORD +6 -6
- {karrio-2023.4.dist-info → karrio-2023.4.4.dist-info}/WHEEL +0 -0
- {karrio-2023.4.dist-info → karrio-2023.4.4.dist-info}/top_level.txt +0 -0
karrio/core/models.py
CHANGED
@@ -4,14 +4,6 @@ from typing import List, Dict, Any, Union
|
|
4
4
|
from jstruct import JList, JStruct, REQUIRED
|
5
5
|
|
6
6
|
|
7
|
-
@attr.s(auto_attribs=True)
|
8
|
-
class AddressExtra:
|
9
|
-
street_name: str = None
|
10
|
-
street_type: str = None
|
11
|
-
suburb: str = None
|
12
|
-
suite: str = None
|
13
|
-
|
14
|
-
|
15
7
|
@attr.s(auto_attribs=True)
|
16
8
|
class Address:
|
17
9
|
"""shipping party (contact and address) data type."""
|
@@ -35,8 +27,6 @@ class Address:
|
|
35
27
|
federal_tax_id: str = None
|
36
28
|
state_tax_id: str = None
|
37
29
|
|
38
|
-
extra: AddressExtra = JStruct[AddressExtra]
|
39
|
-
|
40
30
|
|
41
31
|
@attr.s(auto_attribs=True)
|
42
32
|
class Commodity:
|
karrio/core/units.py
CHANGED
@@ -1106,6 +1106,9 @@ class ComputedAddress(models.Address):
|
|
1106
1106
|
self.address = address
|
1107
1107
|
|
1108
1108
|
def __getattr__(self, item):
|
1109
|
+
if item == "street_number":
|
1110
|
+
return self._compute_street_number()
|
1111
|
+
|
1109
1112
|
if hasattr(self.address, item):
|
1110
1113
|
return getattr(self.address, item)
|
1111
1114
|
|
@@ -1123,6 +1126,33 @@ class ComputedAddress(models.Address):
|
|
1123
1126
|
def address_lines(self) -> str:
|
1124
1127
|
return self._compute_address_line(join=False)
|
1125
1128
|
|
1129
|
+
@property
|
1130
|
+
def street(self) -> typing.Optional[str]:
|
1131
|
+
return typing.cast(
|
1132
|
+
str,
|
1133
|
+
utils.SF.concat_str(
|
1134
|
+
self.street_number,
|
1135
|
+
self.street_name,
|
1136
|
+
join=True,
|
1137
|
+
),
|
1138
|
+
)
|
1139
|
+
|
1140
|
+
@property
|
1141
|
+
def street_name(self) -> typing.Optional[str]:
|
1142
|
+
"""The address line 1 without the street number"""
|
1143
|
+
return typing.cast(
|
1144
|
+
str,
|
1145
|
+
utils.SF.concat_str(
|
1146
|
+
*[
|
1147
|
+
_
|
1148
|
+
for _ in self.address.address_line1.split(" ")
|
1149
|
+
if _ != self.street_number
|
1150
|
+
],
|
1151
|
+
join=True,
|
1152
|
+
),
|
1153
|
+
)
|
1154
|
+
return self.address.address_line1.replace(self.street_number, "").strip()
|
1155
|
+
|
1126
1156
|
@property
|
1127
1157
|
def tax_id(self) -> typing.Optional[str]:
|
1128
1158
|
return self.address.federal_tax_id or self.address.state_tax_id
|
@@ -1148,50 +1178,43 @@ class ComputedAddress(models.Address):
|
|
1148
1178
|
def has_tax_info(self) -> bool:
|
1149
1179
|
return any([self.address.federal_tax_id, self.address.state_tax_id])
|
1150
1180
|
|
1151
|
-
@property
|
1152
|
-
def suite(self) -> typing.Optional[str]:
|
1153
|
-
return getattr(self.address.extra, "suite", None)
|
1154
|
-
|
1155
1181
|
@property
|
1156
1182
|
def contact(self) -> typing.Optional[str]:
|
1157
1183
|
return getattr(self.address, "person_name", None) or getattr(
|
1158
1184
|
self.address, "company_name", None
|
1159
1185
|
)
|
1160
1186
|
|
1161
|
-
@property
|
1162
|
-
def street_name(self) -> typing.Optional[str]:
|
1163
|
-
return getattr(self.address.extra, "street_name", None)
|
1164
|
-
|
1165
|
-
@property
|
1166
|
-
def street_type(self) -> typing.Optional[str]:
|
1167
|
-
return getattr(self.address.extra, "street_type", None)
|
1168
|
-
|
1169
1187
|
def _compute_address_line(self, join: bool = True) -> typing.Optional[str]:
|
1170
1188
|
if any(
|
1171
1189
|
[
|
1172
|
-
self.
|
1173
|
-
self.
|
1174
|
-
self.
|
1190
|
+
self.street_number,
|
1191
|
+
self.street_name,
|
1192
|
+
self.address_line2,
|
1175
1193
|
]
|
1176
1194
|
):
|
1177
1195
|
return utils.SF.concat_str(
|
1178
|
-
self.
|
1179
|
-
self.
|
1180
|
-
self.
|
1196
|
+
self.street_number,
|
1197
|
+
self.street_name,
|
1198
|
+
self.address_line2,
|
1181
1199
|
join=join,
|
1182
1200
|
) # type:ignore
|
1183
1201
|
|
1184
|
-
if self.address.extra is not None:
|
1185
|
-
return utils.SF.concat_str(
|
1186
|
-
self.address.extra.suite,
|
1187
|
-
self.address.street_number,
|
1188
|
-
self.address.extra.street_name,
|
1189
|
-
self.address.extra.street_type,
|
1190
|
-
join=True,
|
1191
|
-
) # type:ignore
|
1192
|
-
|
1193
1202
|
return None
|
1194
1203
|
|
1204
|
+
def _compute_street_number(self):
|
1205
|
+
_value = getattr(self.address, "street_number", None)
|
1206
|
+
|
1207
|
+
if _value is None:
|
1208
|
+
words = self.address.address_line1.split(" ")
|
1209
|
+
|
1210
|
+
if any(_.isdigit() for _ in words[0]):
|
1211
|
+
return words[0]
|
1212
|
+
|
1213
|
+
if any(_.isdigit() for _ in words[-1]):
|
1214
|
+
return words[-1]
|
1215
|
+
|
1216
|
+
return _value
|
1217
|
+
|
1195
1218
|
|
1196
1219
|
class ComputedDocumentFile(models.DocumentFile):
|
1197
1220
|
def __init__(self, document: typing.Optional[models.DocumentFile]):
|
@@ -14,9 +14,9 @@ karrio/api/proxy.py,sha256=Mx5tpcL0L_02lIZ84AvnEfroVu5Qi22iz7AVueX4YjI,6320
|
|
14
14
|
karrio/core/__init__.py,sha256=BboTt3huAYrsqcTcaq1lFX5O4uKiIi2cpWEXp68ItMo,71
|
15
15
|
karrio/core/errors.py,sha256=iMwiwCwK0eiYzk5KJ9Qu86JMWpymw1zDCvmqY67ghSw,3006
|
16
16
|
karrio/core/metadata.py,sha256=vs4doqUjxDSRbDulbdBeTAyFUIZ8MdjsRP74YjtdNEY,1081
|
17
|
-
karrio/core/models.py,sha256=
|
17
|
+
karrio/core/models.py,sha256=wkqD4M7cCDFJmdpI3shDvxX4M9mFirL6K3yHUl0GIbM,10953
|
18
18
|
karrio/core/settings.py,sha256=1d-w-U5nODMxsbmR0B4CdgggvYCzsgtSipP7GUWmFkI,753
|
19
|
-
karrio/core/units.py,sha256=
|
19
|
+
karrio/core/units.py,sha256=PyHjHEdge6fY-xZph9_NUQdbExROoyIpUSdRT8MgKIs,58015
|
20
20
|
karrio/core/utils/__init__.py,sha256=NPxAugvQ4lhWOngITOagexXrsTQqlJQ0gyaXc9iBivg,739
|
21
21
|
karrio/core/utils/caching.py,sha256=zx0R1XAWPuA0q2hz5xUw0-OLZhHd7haS41uO_Prg8Ng,1734
|
22
22
|
karrio/core/utils/datetime.py,sha256=aFMqLB_AdRGM0By2TO8mYce-UlqExf_J2s2eLNtDClY,2311
|
@@ -45,7 +45,7 @@ karrio/universal/providers/rating/utils.py,sha256=WVyJWdxCdKM1YlhTHVFxEMyac0FKIG
|
|
45
45
|
karrio/universal/providers/shipping/__init__.py,sha256=JRcfJWSeDSjO2g2fRnLgBurBXn01nVpdi21ShxLpG34,188
|
46
46
|
karrio/universal/providers/shipping/shipment.py,sha256=t7PO4uSzD1ZL3q3UZWHAPD3UUZUKXReQvED8mVKUe1A,1512
|
47
47
|
karrio/universal/providers/shipping/utils.py,sha256=1LuO31RMhpUls6-h5xhWkfky4G7tdWmGKmRhLkj-e98,593
|
48
|
-
karrio-2023.4.dist-info/METADATA,sha256=
|
49
|
-
karrio-2023.4.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
|
50
|
-
karrio-2023.4.dist-info/top_level.txt,sha256=mfkVZXzNuVRmA7NRlck_Ub-C8Zgtqxbx3gX1Rq_W-i0,7
|
51
|
-
karrio-2023.4.dist-info/RECORD,,
|
48
|
+
karrio-2023.4.4.dist-info/METADATA,sha256=dRozbMtKfDyrdjkZtVUAHMOyE4vbgM3M-dzUyicgKJo,4705
|
49
|
+
karrio-2023.4.4.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
|
50
|
+
karrio-2023.4.4.dist-info/top_level.txt,sha256=mfkVZXzNuVRmA7NRlck_Ub-C8Zgtqxbx3gX1Rq_W-i0,7
|
51
|
+
karrio-2023.4.4.dist-info/RECORD,,
|
File without changes
|
File without changes
|