karrio-seko 2025.5.2__py3-none-any.whl → 2025.5.3__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.
@@ -23,14 +23,27 @@ def parse_error_response(
23
23
  "message": validation_errors.get(
24
24
  "Message", next(iter(validation_errors.values()))
25
25
  ),
26
+ "level": (validation_errors.get("Severity") or "error").lower(),
26
27
  **{
27
- k: v for k, v in validation_errors.items() if k != "Message"
28
+ k: v for k, v in validation_errors.items() if k not in ["Message", "Severity"]
28
29
  },
29
30
  }
30
31
  )
32
+ elif isinstance(validation_errors, list):
33
+ for ve in validation_errors:
34
+ errors.append(
35
+ {
36
+ "code": ve.get("ErrorCode") or "ValidationError",
37
+ "message": ve.get("Message"),
38
+ "level": (ve.get("Severity") or "error").lower(),
39
+ **{
40
+ k: v for k, v in ve.items() if k not in ["Message", "Severity", "ErrorCode"]
41
+ },
42
+ }
43
+ )
31
44
  else:
32
45
  errors.append(
33
- {"code": "ValidationError", "message": str(validation_errors)}
46
+ {"code": "ValidationError", "message": str(validation_errors), "level": "error"}
34
47
  )
35
48
  break
36
49
 
@@ -40,6 +53,7 @@ def parse_error_response(
40
53
  {
41
54
  "code": "Rejected",
42
55
  "message": error.get("Reason"),
56
+ "level": "error",
43
57
  **{k: v for k, v in error.items() if k != "Reason"},
44
58
  }
45
59
  )
@@ -53,20 +67,36 @@ def parse_error_response(
53
67
  {
54
68
  "code": "Error",
55
69
  "message": error.get("Message"),
56
- **{k: v for k, v in error.items() if k != "Message"},
70
+ "level": (error.get("Severity") or "error").lower(),
71
+ **{k: v for k, v in error.items() if k not in ["Message", "Severity"]},
57
72
  }
58
73
  )
59
74
  break
60
75
 
76
+ # Handle Warnings array
77
+ if warnings := response_item.get("Warnings", []):
78
+ for warning in warnings:
79
+ errors.append(
80
+ {
81
+ "code": warning.get("WarningCode") or warning.get("ErrorCode") or "Warning",
82
+ "message": warning.get("Message"),
83
+ "level": (warning.get("Severity") or "warning").lower(),
84
+ **{
85
+ k: v for k, v in warning.items() if k not in ["Message", "Severity", "WarningCode", "ErrorCode"]
86
+ },
87
+ }
88
+ )
89
+
61
90
  return [
62
91
  models.Message(
63
92
  carrier_id=settings.carrier_id,
64
93
  carrier_name=settings.carrier_name,
65
94
  code=error["code"],
66
95
  message=error["message"],
96
+ level=error.get("level"),
67
97
  details={
68
98
  **kwargs,
69
- **{k: v for k, v in error.items() if k not in ["code", "message"]},
99
+ **{k: v for k, v in error.items() if k not in ["code", "message", "level"]},
70
100
  },
71
101
  )
72
102
  for error in errors
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: karrio_seko
3
- Version: 2025.5.2
3
+ Version: 2025.5.3
4
4
  Summary: Karrio - SEKO Logistics Shipping Extension
5
5
  Author-email: karrio <hello@karrio.io>
6
6
  License-Expression: LGPL-3.0
@@ -4,7 +4,7 @@ karrio/mappers/seko/proxy.py,sha256=IvwK9SqaxDBX7ZamekHOn0KbucHrwK0Zcma2oA0QOx8,
4
4
  karrio/mappers/seko/settings.py,sha256=iiOuwWh-I5FkNex4JyLvs9DmqNjFdWgu096cCTuceu8,491
5
5
  karrio/plugins/seko/__init__.py,sha256=7BgFvF8_VRy3CKFmGv3iiBs3KJK_0wsAde8473Nl7Zw,534
6
6
  karrio/providers/seko/__init__.py,sha256=IzIUO4eo-TjsNmZeJ85u4yziUgnVu_uSg4dVct20e9U,527
7
- karrio/providers/seko/error.py,sha256=0tcIO-sZSp039qmMy6M5AjJXOBxYo25Nxe3YzQOTkbM,2371
7
+ karrio/providers/seko/error.py,sha256=MoyMQeVCUImTteJovs6NKsZ6t_zzuKD1AwIMJfGTFk4,3908
8
8
  karrio/providers/seko/manifest.py,sha256=1r9yenrHGeQeOhacuHw4U28mE2cK0fanR-9pRKEH83w,1915
9
9
  karrio/providers/seko/rate.py,sha256=31Le9mQbADdZ0ZSLdBy3AOQF--uGCwS1hbl9usyiH_U,6781
10
10
  karrio/providers/seko/tracking.py,sha256=yhwJ0M0dPpC8Swe_z3P__aJ5XjDxLM7f4W_CIr4oMR8,3093
@@ -21,8 +21,8 @@ karrio/schemas/seko/rating_response.py,sha256=DZJgnP9YJWXy-mABPLD6YcdmE0Z4oVXosM
21
21
  karrio/schemas/seko/shipping_request.py,sha256=P7vFsGB1IZDfH85mq8pv4qsIL5tYRGsAWWRJcryfv3U,5481
22
22
  karrio/schemas/seko/shipping_response.py,sha256=a-cBMrZyUu9y5OOqgt7VWO7-LJ1mWVuZRWm7ygUY12I,5289
23
23
  karrio/schemas/seko/tracking_response.py,sha256=vWhaKhWP4ZSor5cVZ2h8CvZMxE3h87e4tDXfPAgCsF4,702
24
- karrio_seko-2025.5.2.dist-info/METADATA,sha256=wMsFj9UUwrT1usnGcexPWynuj_u9c9O5K60USHE5rhw,987
25
- karrio_seko-2025.5.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
26
- karrio_seko-2025.5.2.dist-info/entry_points.txt,sha256=38t4NWTw7ZuhE4-KYDHI3ZAN-PKrfduhrwTofZuhDxg,53
27
- karrio_seko-2025.5.2.dist-info/top_level.txt,sha256=FZCY8Nwft8oEGHdl--xku8P3TrnOxu5dETEU_fWpRSM,20
28
- karrio_seko-2025.5.2.dist-info/RECORD,,
24
+ karrio_seko-2025.5.3.dist-info/METADATA,sha256=BBh6pcAkS2fs7LYBxU3JgQLnp0I-sDRblRbqFWEMe4g,987
25
+ karrio_seko-2025.5.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
26
+ karrio_seko-2025.5.3.dist-info/entry_points.txt,sha256=38t4NWTw7ZuhE4-KYDHI3ZAN-PKrfduhrwTofZuhDxg,53
27
+ karrio_seko-2025.5.3.dist-info/top_level.txt,sha256=FZCY8Nwft8oEGHdl--xku8P3TrnOxu5dETEU_fWpRSM,20
28
+ karrio_seko-2025.5.3.dist-info/RECORD,,