karrio-server-core 2025.5rc13__py3-none-any.whl → 2025.5rc15__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.

Potentially problematic release.


This version of karrio-server-core might be problematic. Click here for more details.

Files changed (54) hide show
  1. karrio/server/core/serializers.py +6 -0
  2. karrio/server/iam/serializers.py +9 -0
  3. karrio/server/providers/migrations/0084_alter_servicelevel_currency.py +168 -0
  4. karrio/server/providers/models/__init__.py +1 -2
  5. karrio/server/providers/models/carrier.py +7 -2
  6. karrio/server/user/models.py +11 -12
  7. {karrio_server_core-2025.5rc13.dist-info → karrio_server_core-2025.5rc15.dist-info}/METADATA +1 -1
  8. {karrio_server_core-2025.5rc13.dist-info → karrio_server_core-2025.5rc15.dist-info}/RECORD +10 -53
  9. karrio/server/providers/extension/__init__.py +0 -1
  10. karrio/server/providers/extension/models/__init__.py +0 -1
  11. karrio/server/providers/extension/models/allied_express.py +0 -22
  12. karrio/server/providers/extension/models/allied_express_local.py +0 -22
  13. karrio/server/providers/extension/models/amazon_shipping.py +0 -27
  14. karrio/server/providers/extension/models/aramex.py +0 -25
  15. karrio/server/providers/extension/models/asendia_us.py +0 -21
  16. karrio/server/providers/extension/models/australiapost.py +0 -20
  17. karrio/server/providers/extension/models/boxknight.py +0 -19
  18. karrio/server/providers/extension/models/bpost.py +0 -21
  19. karrio/server/providers/extension/models/canadapost.py +0 -21
  20. karrio/server/providers/extension/models/canpar.py +0 -19
  21. karrio/server/providers/extension/models/chronopost.py +0 -22
  22. karrio/server/providers/extension/models/colissimo.py +0 -22
  23. karrio/server/providers/extension/models/dhl_express.py +0 -23
  24. karrio/server/providers/extension/models/dhl_parcel_de.py +0 -25
  25. karrio/server/providers/extension/models/dhl_poland.py +0 -22
  26. karrio/server/providers/extension/models/dhl_universal.py +0 -19
  27. karrio/server/providers/extension/models/dicom.py +0 -20
  28. karrio/server/providers/extension/models/dpd.py +0 -37
  29. karrio/server/providers/extension/models/dpdhl.py +0 -26
  30. karrio/server/providers/extension/models/easypost.py +0 -20
  31. karrio/server/providers/extension/models/eshipper.py +0 -21
  32. karrio/server/providers/extension/models/fedex.py +0 -25
  33. karrio/server/providers/extension/models/fedex_ws.py +0 -24
  34. karrio/server/providers/extension/models/freightcom.py +0 -21
  35. karrio/server/providers/extension/models/generic.py +0 -35
  36. karrio/server/providers/extension/models/geodis.py +0 -22
  37. karrio/server/providers/extension/models/hay_post.py +0 -22
  38. karrio/server/providers/extension/models/laposte.py +0 -19
  39. karrio/server/providers/extension/models/locate2u.py +0 -22
  40. karrio/server/providers/extension/models/nationex.py +0 -22
  41. karrio/server/providers/extension/models/purolator.py +0 -21
  42. karrio/server/providers/extension/models/roadie.py +0 -18
  43. karrio/server/providers/extension/models/royalmail.py +0 -19
  44. karrio/server/providers/extension/models/sendle.py +0 -22
  45. karrio/server/providers/extension/models/tge.py +0 -63
  46. karrio/server/providers/extension/models/tnt.py +0 -23
  47. karrio/server/providers/extension/models/ups.py +0 -23
  48. karrio/server/providers/extension/models/usps.py +0 -23
  49. karrio/server/providers/extension/models/usps_international.py +0 -23
  50. karrio/server/providers/extension/models/usps_wt.py +0 -24
  51. karrio/server/providers/extension/models/usps_wt_international.py +0 -24
  52. karrio/server/providers/extension/models/zoom2u.py +0 -23
  53. {karrio_server_core-2025.5rc13.dist-info → karrio_server_core-2025.5rc15.dist-info}/WHEEL +0 -0
  54. {karrio_server_core-2025.5rc13.dist-info → karrio_server_core-2025.5rc15.dist-info}/top_level.txt +0 -0
@@ -613,6 +613,12 @@ class Charge(serializers.Serializer):
613
613
  allow_null=True,
614
614
  help_text="The charge amount currency",
615
615
  )
616
+ id = serializers.CharField(
617
+ required=False,
618
+ allow_blank=True,
619
+ allow_null=True,
620
+ help_text="A surcharge id",
621
+ )
616
622
 
617
623
 
618
624
  @serializers.allow_model_id(
@@ -20,6 +20,15 @@ PERMISSION_GROUPS = [(p.name, p.name) for p in list(PermissionGroup)]
20
20
  ROLES_GROUPS: typing.Dict[str, typing.List[str]] = {
21
21
  "owner": [
22
22
  PermissionGroup.manage_org_owner.value,
23
+ PermissionGroup.manage_team.value,
24
+ PermissionGroup.manage_apps.value,
25
+ PermissionGroup.manage_carriers.value,
26
+ PermissionGroup.manage_webhooks.value,
27
+ PermissionGroup.manage_data.value,
28
+ PermissionGroup.manage_orders.value,
29
+ PermissionGroup.manage_pickups.value,
30
+ PermissionGroup.manage_trackers.value,
31
+ PermissionGroup.manage_shipments.value,
23
32
  ],
24
33
  "admin": [
25
34
  PermissionGroup.manage_team.value,
@@ -0,0 +1,168 @@
1
+ # Generated by Django 5.2.5 on 2025-08-19 19:09
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ("providers", "0083_add_optimized_rate_sheet_structure"),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.AlterField(
14
+ model_name="servicelevel",
15
+ name="currency",
16
+ field=models.CharField(
17
+ blank=True,
18
+ choices=[
19
+ ("EUR", "EUR"),
20
+ ("AED", "AED"),
21
+ ("USD", "USD"),
22
+ ("XCD", "XCD"),
23
+ ("AMD", "AMD"),
24
+ ("ANG", "ANG"),
25
+ ("AOA", "AOA"),
26
+ ("ARS", "ARS"),
27
+ ("AUD", "AUD"),
28
+ ("AWG", "AWG"),
29
+ ("AZN", "AZN"),
30
+ ("BAM", "BAM"),
31
+ ("BBD", "BBD"),
32
+ ("BDT", "BDT"),
33
+ ("XOF", "XOF"),
34
+ ("BGN", "BGN"),
35
+ ("BHD", "BHD"),
36
+ ("BIF", "BIF"),
37
+ ("BMD", "BMD"),
38
+ ("BND", "BND"),
39
+ ("BOB", "BOB"),
40
+ ("BRL", "BRL"),
41
+ ("BSD", "BSD"),
42
+ ("BTN", "BTN"),
43
+ ("BWP", "BWP"),
44
+ ("BYN", "BYN"),
45
+ ("BZD", "BZD"),
46
+ ("CAD", "CAD"),
47
+ ("CDF", "CDF"),
48
+ ("XAF", "XAF"),
49
+ ("CHF", "CHF"),
50
+ ("NZD", "NZD"),
51
+ ("CLP", "CLP"),
52
+ ("CNY", "CNY"),
53
+ ("COP", "COP"),
54
+ ("CRC", "CRC"),
55
+ ("CUC", "CUC"),
56
+ ("CVE", "CVE"),
57
+ ("CZK", "CZK"),
58
+ ("DJF", "DJF"),
59
+ ("DKK", "DKK"),
60
+ ("DOP", "DOP"),
61
+ ("DZD", "DZD"),
62
+ ("EGP", "EGP"),
63
+ ("ERN", "ERN"),
64
+ ("ETB", "ETB"),
65
+ ("FJD", "FJD"),
66
+ ("GBP", "GBP"),
67
+ ("GEL", "GEL"),
68
+ ("GHS", "GHS"),
69
+ ("GMD", "GMD"),
70
+ ("GNF", "GNF"),
71
+ ("GTQ", "GTQ"),
72
+ ("GYD", "GYD"),
73
+ ("HKD", "HKD"),
74
+ ("HNL", "HNL"),
75
+ ("HRK", "HRK"),
76
+ ("HTG", "HTG"),
77
+ ("HUF", "HUF"),
78
+ ("IDR", "IDR"),
79
+ ("ILS", "ILS"),
80
+ ("INR", "INR"),
81
+ ("IRR", "IRR"),
82
+ ("ISK", "ISK"),
83
+ ("JMD", "JMD"),
84
+ ("JOD", "JOD"),
85
+ ("JPY", "JPY"),
86
+ ("KES", "KES"),
87
+ ("KGS", "KGS"),
88
+ ("KHR", "KHR"),
89
+ ("KMF", "KMF"),
90
+ ("KPW", "KPW"),
91
+ ("KRW", "KRW"),
92
+ ("KWD", "KWD"),
93
+ ("KYD", "KYD"),
94
+ ("KZT", "KZT"),
95
+ ("LAK", "LAK"),
96
+ ("LKR", "LKR"),
97
+ ("LRD", "LRD"),
98
+ ("LSL", "LSL"),
99
+ ("LYD", "LYD"),
100
+ ("MAD", "MAD"),
101
+ ("MDL", "MDL"),
102
+ ("MGA", "MGA"),
103
+ ("MKD", "MKD"),
104
+ ("MMK", "MMK"),
105
+ ("MNT", "MNT"),
106
+ ("MOP", "MOP"),
107
+ ("MRO", "MRO"),
108
+ ("MUR", "MUR"),
109
+ ("MVR", "MVR"),
110
+ ("MWK", "MWK"),
111
+ ("MXN", "MXN"),
112
+ ("MYR", "MYR"),
113
+ ("MZN", "MZN"),
114
+ ("NAD", "NAD"),
115
+ ("XPF", "XPF"),
116
+ ("NGN", "NGN"),
117
+ ("NIO", "NIO"),
118
+ ("NOK", "NOK"),
119
+ ("NPR", "NPR"),
120
+ ("OMR", "OMR"),
121
+ ("PEN", "PEN"),
122
+ ("PGK", "PGK"),
123
+ ("PHP", "PHP"),
124
+ ("PKR", "PKR"),
125
+ ("PLN", "PLN"),
126
+ ("PYG", "PYG"),
127
+ ("QAR", "QAR"),
128
+ ("RON", "RON"),
129
+ ("RSD", "RSD"),
130
+ ("RUB", "RUB"),
131
+ ("RWF", "RWF"),
132
+ ("SAR", "SAR"),
133
+ ("SBD", "SBD"),
134
+ ("SCR", "SCR"),
135
+ ("SDG", "SDG"),
136
+ ("SEK", "SEK"),
137
+ ("SGD", "SGD"),
138
+ ("SHP", "SHP"),
139
+ ("SLL", "SLL"),
140
+ ("SOS", "SOS"),
141
+ ("SRD", "SRD"),
142
+ ("SSP", "SSP"),
143
+ ("STD", "STD"),
144
+ ("SYP", "SYP"),
145
+ ("SZL", "SZL"),
146
+ ("THB", "THB"),
147
+ ("TJS", "TJS"),
148
+ ("TND", "TND"),
149
+ ("TOP", "TOP"),
150
+ ("TRY", "TRY"),
151
+ ("TTD", "TTD"),
152
+ ("TWD", "TWD"),
153
+ ("TZS", "TZS"),
154
+ ("UAH", "UAH"),
155
+ ("UYU", "UYU"),
156
+ ("UZS", "UZS"),
157
+ ("VEF", "VEF"),
158
+ ("VND", "VND"),
159
+ ("VUV", "VUV"),
160
+ ("WST", "WST"),
161
+ ("YER", "YER"),
162
+ ("ZAR", "ZAR"),
163
+ ],
164
+ max_length=4,
165
+ null=True,
166
+ ),
167
+ ),
168
+ ]
@@ -3,9 +3,8 @@ from karrio.server.providers.models.sheet import RateSheet
3
3
  from karrio.server.providers.models.config import CarrierConfig
4
4
  from karrio.server.providers.models.service import ServiceLevel
5
5
  from karrio.server.providers.models.template import LabelTemplate
6
- import karrio.server.providers.extension.models as extensions
7
- from karrio.server.core.models.base import register_model
8
6
  from karrio.server.providers.models.utils import has_rate_sheet
7
+ from karrio.server.core.models.base import register_model
9
8
  from karrio.server.providers.models.carrier import (
10
9
  Carrier,
11
10
  COUNTRIES,
@@ -4,8 +4,8 @@ import django.conf as conf
4
4
  import django.forms as forms
5
5
  import django.db.models as models
6
6
 
7
- import karrio.sdk as karrio
8
7
  import karrio.lib as lib
8
+ import karrio.sdk as karrio
9
9
  import karrio.core.units as units
10
10
  import django.core.cache as caching
11
11
  import karrio.api.gateway as gateway
@@ -148,10 +148,15 @@ class Carrier(core.OwnedEntity):
148
148
  @property
149
149
  def carrier_name(self):
150
150
  return (
151
- self.credentials.get("custom_carrier_name")
151
+ "generic"
152
152
  if "custom_carrier_name" in self.credentials
153
153
  else lib.failsafe(lambda: self.carrier_code) or "generic"
154
154
  )
155
+ # return (
156
+ # self.credentials.get("custom_carrier_name")
157
+ # if "custom_carrier_name" in self.credentials
158
+ # else lib.failsafe(lambda: self.carrier_code) or "generic"
159
+ # )
155
160
 
156
161
  @property
157
162
  def display_name(self):
@@ -75,29 +75,28 @@ class User(auth.AbstractUser):
75
75
  ctx = middleware.SessionContext.get_current_request()
76
76
  _permissions = []
77
77
 
78
- if conf.settings.MULTI_ORGANIZATIONS and ctx.org is not None:
78
+ if conf.settings.MULTI_ORGANIZATIONS and ctx is not None and hasattr(ctx, 'org') and ctx.org is not None:
79
79
  org_user = ctx.org.organization_users.filter(user_id=self.pk)
80
- _permissions = (
81
- iam.ContextPermission.objects.get(
80
+ if org_user.exists():
81
+ try:
82
+ context_permission = iam.ContextPermission.objects.get(
82
83
  object_pk=org_user.first().pk,
83
84
  content_type=ContentType.objects.get_for_model(org_user.first()),
84
85
  )
85
- .groups.all()
86
- .values_list("name", flat=True)
87
- if org_user.exists()
88
- else []
89
- )
86
+ _permissions = list(context_permission.groups.all().values_list("name", flat=True))
87
+ except iam.ContextPermission.DoesNotExist:
88
+ pass
90
89
 
91
90
  if not any(_permissions):
92
- _permissions = self.groups.all().values_list("name", flat=True)
91
+ _permissions = list(self.groups.all().values_list("name", flat=True))
93
92
 
94
93
  if not any(_permissions) and self.is_superuser:
95
- return Group.objects.all().values_list("name", flat=True)
94
+ return list(Group.objects.all().values_list("name", flat=True))
96
95
 
97
96
  if not any(_permissions) and self.is_staff:
98
- return Group.objects.exclude(
97
+ return list(Group.objects.exclude(
99
98
  name__in=["manage_system", "manage_team", "manage_org_owner"]
100
- ).values_list("name", flat=True)
99
+ ).values_list("name", flat=True))
101
100
 
102
101
  return _permissions
103
102
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: karrio_server_core
3
- Version: 2025.5rc13
3
+ Version: 2025.5rc15
4
4
  Summary: Multi-carrier shipping API Core module
5
5
  Author-email: karrio <hello@karrio.io>
6
6
  License-Expression: Apache-2.0
@@ -17,7 +17,7 @@ karrio/server/core/oauth_validators.py,sha256=5JxDkXB_HX4a4xJltZcFGukO7o2cUl9h2t
17
17
  karrio/server/core/permissions.py,sha256=JY3_hTEnyDTWG-weAWPx8xMoaRZwpNL2HaSssBzjH7Y,1189
18
18
  karrio/server/core/renderers.py,sha256=IUEUhvvrk_CeqnmnYQgWKHiH3uQhNc0eqDxyO9CuUS4,290
19
19
  karrio/server/core/router.py,sha256=IBUR7rfBkdEHQzWxYOPcVSM8NBp3fte9G6Q5BVTUNNw,95
20
- karrio/server/core/serializers.py,sha256=-wm4uQjtbR5z7qtAxJ7O2ApwzXmfFEdJkspQiVXeCj4,60074
20
+ karrio/server/core/serializers.py,sha256=-FYHCuMk-XIFJjeyK6jDydytd3lcM0VmZszLZpVNcv0,60223
21
21
  karrio/server/core/signals.py,sha256=thHh4K4uP3smWuy9kWavFfdOAttH9xN3og_j4lDWdKM,1742
22
22
  karrio/server/core/tests.py,sha256=rmZoZfPBRoMO-U3HtDxeKofnzsfijYeDVQrnw5Mb_dU,3164
23
23
  karrio/server/core/urls.py,sha256=JQrN6dI7A7c_M498EcDKdjDqlp_d64Ov-RS4HHmssRk,337
@@ -49,7 +49,7 @@ karrio/server/iam/admin.py,sha256=suMo4x8I3JBxAFBVIdE-5qnqZ6JAZV0FESABHOSc-vg,63
49
49
  karrio/server/iam/apps.py,sha256=4nW48R38s1uHckn6smnDDyDBU39pTPMBUHjYFNmuRRo,620
50
50
  karrio/server/iam/models.py,sha256=A2IbnKtoXq3ocXhYBCRUpqXz5dVoSOBPM04SbuQf7gA,1536
51
51
  karrio/server/iam/permissions.py,sha256=7MmJmJt0o1SOjn0buBC6GR6hNYXERgA_4TWazi9klIE,4066
52
- karrio/server/iam/serializers.py,sha256=h5Xq2eTdorcfqvDbIYYr69MxyM4iub5-ZsHvoeFoKGs,1164
52
+ karrio/server/iam/serializers.py,sha256=-m7vle-BMwHsrLmv3Tg01Y1RcXpV63j8W_PRiD8xops,1573
53
53
  karrio/server/iam/signals.py,sha256=BaTIgdhDWUhvPrSUCyjHPL5J82JzG3rh9Ry_gK3TF1Q,603
54
54
  karrio/server/iam/tests.py,sha256=mrbGGRNg5jwbTJtWWa7zSKdDyeB4vmgZCRc2nk6VY-g,60
55
55
  karrio/server/iam/views.py,sha256=xc1IQHrsij7j33TUbo-_oewy3vs03pw_etpBWaMYJl0,63
@@ -62,50 +62,6 @@ karrio/server/providers/router.py,sha256=IBUR7rfBkdEHQzWxYOPcVSM8NBp3fte9G6Q5BVT
62
62
  karrio/server/providers/signals.py,sha256=4WXTVhPuI1z5MgVdqzHz0FdKXGHN_gdP9Fc13QQbuh8,748
63
63
  karrio/server/providers/tests.py,sha256=NLkDTvAQ0tDq6-kk3ZuipLpZXrk68pGCrWDeixiKQqQ,67
64
64
  karrio/server/providers/urls.py,sha256=5whUqyPA9q5tfowr2Z-ilvfMwFUOEXkd_HuoFNs4a2E,278
65
- karrio/server/providers/extension/__init__.py,sha256=iOEMwnlORWezdO8-2vxBIPSR37D7JGjluZ8f55vzxls,81
66
- karrio/server/providers/extension/models/__init__.py,sha256=bpT73UG7mZL_JjEqMwbYx6q69jA8J5Jcoul1LcDokhA,81
67
- karrio/server/providers/extension/models/allied_express.py,sha256=Fk0D4aDSOqyW5RPI4jcJ4CG6BTwDVr8r_oCzp28-uaQ,665
68
- karrio/server/providers/extension/models/allied_express_local.py,sha256=j-XsbsujEG1dN92s5u9f9_Ql_K0hJRmDAtegpipBU2w,699
69
- karrio/server/providers/extension/models/amazon_shipping.py,sha256=Y6AhO9xmkWdMiCJQieG-3RCaYdVCN5IzieNW792Xm2s,784
70
- karrio/server/providers/extension/models/aramex.py,sha256=NKOvuNd-WbUW1Fn03QJgomGgUy8SZU95KllbTXYtdhk,746
71
- karrio/server/providers/extension/models/asendia_us.py,sha256=4iV95aN4scmcQmT-g28LRTh5EDOEPwmA7h4gg9KGUMw,612
72
- karrio/server/providers/extension/models/australiapost.py,sha256=IDHSYBoD2xpmHo8L4PNKwaQgOKsC3Cq84wuYA6EmEIE,560
73
- karrio/server/providers/extension/models/boxknight.py,sha256=hihKJcxbDmxsihmYVTCAMzY2-MTehlM6o3XsyjUOjrc,493
74
- karrio/server/providers/extension/models/bpost.py,sha256=-PmkRYxXVqgEt68ZY7fu19eUBpf2U3ubhBCVH9SoiHQ,596
75
- karrio/server/providers/extension/models/canadapost.py,sha256=-YeC14u5KPR-OEamnVqtmh5HEubFl2kKVBtAGloCTAI,648
76
- karrio/server/providers/extension/models/canpar.py,sha256=iqyes3lWN2UEB2DEJUphJKnKCXEJDgpOTwB6rDAcOTc,462
77
- karrio/server/providers/extension/models/chronopost.py,sha256=5K162hrmU-9E4ZZ4ApqOy_BsDvoJ30jK6Kt_MtzbXc0,639
78
- karrio/server/providers/extension/models/colissimo.py,sha256=iL6a7kCa17d8cMcN_SJnHQeTqnvjEDf7-G7tWxjTK0o,668
79
- karrio/server/providers/extension/models/dhl_express.py,sha256=ZLhkl3NFWiK9srqV0rYW8rtxEpO3saWu672gXP25W9c,692
80
- karrio/server/providers/extension/models/dhl_parcel_de.py,sha256=CGxr7anMMkkXHRmxa5YbBYwQWTWVMIbtLW2tolYaRx4,894
81
- karrio/server/providers/extension/models/dhl_poland.py,sha256=iZsBmHpLqWekaytu0vEO6NXMJJuFAT_f9udsjcbu324,665
82
- karrio/server/providers/extension/models/dhl_universal.py,sha256=Zbpi2FWVNXZfdWP-GrzzOqEnEikwQg0YT09v572HHDA,531
83
- karrio/server/providers/extension/models/dicom.py,sha256=51F14KSa8FSq8Q-1XLcDKsB0KlWNU1C3lQOuUbNdfGg,531
84
- karrio/server/providers/extension/models/dpd.py,sha256=RzM5Y8wPsBPTW1s8YGtPSdpK8IPldyy21GV-bcuoBBM,1100
85
- karrio/server/providers/extension/models/dpdhl.py,sha256=TdvQxX-XT_k5h_UD_HvmRpzrfv2PNsNztALZHLMiun8,1010
86
- karrio/server/providers/extension/models/easypost.py,sha256=MR9Gh3WAQXyAm7MvVKsWzUrnyDmHx76ynVViBioSZHI,463
87
- karrio/server/providers/extension/models/eshipper.py,sha256=BXlgzCR_JUBnSDP_dvPaD06gY_EVC_lxDTAkTGLsWjM,522
88
- karrio/server/providers/extension/models/fedex.py,sha256=vwZIdHxIU-Kg0B7BhLEgF2z5Ala-2qBjBzUT6Fb5rkg,865
89
- karrio/server/providers/extension/models/fedex_ws.py,sha256=6Zk9Ep7GLzaAr9nBRTTkP4qp7E7rPeg2xgM3Uil-5AI,730
90
- karrio/server/providers/extension/models/freightcom.py,sha256=sv32d19ijmJGwqZrb8Bn16OGDcc2j8eLyhjO8dumLcM,524
91
- karrio/server/providers/extension/models/generic.py,sha256=sX8_R_BV13JtS9FOFq7mJLlOghnyxo3ZFHpdDKVaBI0,1254
92
- karrio/server/providers/extension/models/geodis.py,sha256=O4zKQtLfaffSrpb_5KQhEiLddSROHJzIqy78mM6u-xM,600
93
- karrio/server/providers/extension/models/hay_post.py,sha256=ep4Bdvk2kWYFp0mScJMOptogK4ANz-IcC-Am13lrsJc,592
94
- karrio/server/providers/extension/models/laposte.py,sha256=Incnqxs8tf_Ii3CEUrQwQ57DWTfDFH0UfM_HufRpspE,505
95
- karrio/server/providers/extension/models/locate2u.py,sha256=7hLIAuyjnX-FJOBr_4mh7HA4KHfSdsgaPJWaxJ2BGHM,619
96
- karrio/server/providers/extension/models/nationex.py,sha256=KdaDbYqkvu16rhRPH4dMYM3bviOg90Y2o3RirDdaxZA,640
97
- karrio/server/providers/extension/models/purolator.py,sha256=-PjcZFBRw4qRfbH5F0xnDqH3Eyf3_kskfGJ3VsWNsNk,595
98
- karrio/server/providers/extension/models/roadie.py,sha256=ULznpZ701H1p5ouO4mDIxoYcd8lz3NjYJfsTw2L8b_Q,428
99
- karrio/server/providers/extension/models/royalmail.py,sha256=MpyQL5VhaBWJNbOEcZQ76MvTvUIiOaEDpkh6yONpEa8,488
100
- karrio/server/providers/extension/models/sendle.py,sha256=4K3AATNFYnEvnkSuQEP202BE4RcH5qJGUMCBunr92gs,593
101
- karrio/server/providers/extension/models/tge.py,sha256=N_gUh9_vwe5Trs36pVadAsdyN0rLyZoLjgsJDR1ALpU,1958
102
- karrio/server/providers/extension/models/tnt.py,sha256=s_dg5hHv4So_yT_ZspfGQTxLqv_bjsFzDYuOKeLySiM,637
103
- karrio/server/providers/extension/models/ups.py,sha256=ruDfBCb0ZKb7g0rrP5DRIbROwOfymKx0bRH94jujqNA,658
104
- karrio/server/providers/extension/models/usps.py,sha256=LO-yYVg68wLvIlfesmH2EvOXCZV5fu4dT1fdHZq2Yh4,653
105
- karrio/server/providers/extension/models/usps_international.py,sha256=k3opE3W4svC5MNqp398xtSYpet2YFSOSbgjHT80r3L4,728
106
- karrio/server/providers/extension/models/usps_wt.py,sha256=6RkR8mnFT9AWMEtW7l-ZB1BY9TkEYnLKtIiLyhwIqw0,731
107
- karrio/server/providers/extension/models/usps_wt_international.py,sha256=5QJdeNeshl1KCbQ6ravoh3vrU94QEN89noYZEF9kAW0,825
108
- karrio/server/providers/extension/models/zoom2u.py,sha256=3RvkZkAYvpXDW9fCmViOJB5NrSPo2_d_qpjcsWuCVtQ,585
109
65
  karrio/server/providers/management/commands/migrate_rate_sheets.py,sha256=piRV1n0itHQR4HZiWXVSjJKzHZPnFGKlrCjWOcy723A,3814
110
66
  karrio/server/providers/migrations/0001_initial.py,sha256=DkKU91a1tMqRisLoarYndyKX3PJplT4Bor6tT53yETw,6772
111
67
  karrio/server/providers/migrations/0002_carrier_active.py,sha256=zW_6cFEKmsZIbiuLimcUlwzVvpckYroJmzkCwep-D2A,378
@@ -190,9 +146,10 @@ karrio/server/providers/migrations/0080_alter_aramexsettings_account_country_cod
190
146
  karrio/server/providers/migrations/0081_remove_alliedexpresssettings_carrier_ptr_and_more.py,sha256=Lb8w5LEnJgCd-a4suFAdZ3-gWHlIbLIJLahTGlUmi_U,9557
191
147
  karrio/server/providers/migrations/0082_add_zone_identifiers.py,sha256=0gRIFemNGNRkvV_pt0u3e-wL2LI89AKwaFWoqOqjAsA,1509
192
148
  karrio/server/providers/migrations/0083_add_optimized_rate_sheet_structure.py,sha256=K9jj1LGEs5WQvIUxWac1wbCI6YnrrzTIcD3PzjZZcHA,1057
149
+ karrio/server/providers/migrations/0084_alter_servicelevel_currency.py,sha256=o5_wiQ7dbqSG-OfLgJQPRj48Jmi573s5LweikF9oq5E,5726
193
150
  karrio/server/providers/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
194
- karrio/server/providers/models/__init__.py,sha256=7D-pgQDTDSfptHhWxfJlOzSQqvYB_71D22zmNqjuBqk,628
195
- karrio/server/providers/models/carrier.py,sha256=E3zPcypTAQi1ninAQjKbelGAV8cZI8g_voRJ2KETrxQ,9436
151
+ karrio/server/providers/models/__init__.py,sha256=yeFm9ZdtiEpMCZpY0dhP3TY9ndWut-BDxtN5qiL8VOQ,566
152
+ karrio/server/providers/models/carrier.py,sha256=1Dev8SI_vJL1EYShcAdMexx8l3HC4NlOnaeZnSvE2U4,9622
196
153
  karrio/server/providers/models/config.py,sha256=8zuDXFGXBrC4fj2dW1-NpLAtFYPunEJi8uK-PezD7eo,759
197
154
  karrio/server/providers/models/service.py,sha256=XTkZKyzE2g0I7HxGluty6Nk4El7iSyj2Ze0YXnrF7WQ,7038
198
155
  karrio/server/providers/models/sheet.py,sha256=Fuy8KIA719ZOeoqe-VfL6ZjLjhzdYS6Jp-hgE9680u4,9943
@@ -222,7 +179,7 @@ karrio/server/user/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
222
179
  karrio/server/user/admin.py,sha256=psRIcm1IjR6K_69cJJCDBUQT226I9gPvfFhHoAeA_3Q,2514
223
180
  karrio/server/user/apps.py,sha256=hCTQ-YXuDd7eW4ZMkVf6OcmmFCu5uVpFWCxfb1lzdCw,209
224
181
  karrio/server/user/forms.py,sha256=hgEbEs17Cwib5KsckVweapEmAQvE0fWpwxkJMDc__Y0,1049
225
- karrio/server/user/models.py,sha256=irfYyrSybgMRGj85JXV21WmgcCYUCWTY2L89c79PPNM,6232
182
+ karrio/server/user/models.py,sha256=j9Oh9MOGfnX2SKkWe72nxaVW8018tzUtSr2gw2dMQmM,6380
226
183
  karrio/server/user/serializers.py,sha256=tdTB0g4q3EIY2Uv7rrpWlkKEuHms-fTK6XXUr_Z6hBY,1557
227
184
  karrio/server/user/tests.py,sha256=mrbGGRNg5jwbTJtWWa7zSKdDyeB4vmgZCRc2nk6VY-g,60
228
185
  karrio/server/user/urls.py,sha256=3p-ZivD78caBDDeV63XJjMuILdr258JXED788OJ_hLQ,243
@@ -238,7 +195,7 @@ karrio/server/user/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5N
238
195
  karrio/server/user/templates/registration/login.html,sha256=3_tj-0rKfwkCk-fp_GT8xFQhLqjGcJs3uZzOAaI40Sw,3690
239
196
  karrio/server/user/templates/registration/registration_confirm_email.html,sha256=zFDkNN_BHMQyrBv_mU8aoqXxYxG91TGuf6pKwRa5jxE,247
240
197
  karrio/server/user/templates/registration/registration_confirm_email.txt,sha256=I_zN_pJTRigfyiYbyQK0wFfrI5Zq1JG8lf0TyLA9fN0,94
241
- karrio_server_core-2025.5rc13.dist-info/METADATA,sha256=U9GaWNyppHXD7rf279KJ33gn2l_Xv-fybNL9Im13L44,797
242
- karrio_server_core-2025.5rc13.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
243
- karrio_server_core-2025.5rc13.dist-info/top_level.txt,sha256=D1D7x8R3cTfjF_15mfiO7wCQ5QMtuM4x8GaPr7z5i78,12
244
- karrio_server_core-2025.5rc13.dist-info/RECORD,,
198
+ karrio_server_core-2025.5rc15.dist-info/METADATA,sha256=YUVTif7wZev8h5ivD124n2_RhT18ZTytwf2UIdjOVsg,797
199
+ karrio_server_core-2025.5rc15.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
200
+ karrio_server_core-2025.5rc15.dist-info/top_level.txt,sha256=D1D7x8R3cTfjF_15mfiO7wCQ5QMtuM4x8GaPr7z5i78,12
201
+ karrio_server_core-2025.5rc15.dist-info/RECORD,,
@@ -1 +0,0 @@
1
- __path__ = __import__('pkgutil').extend_path(__path__, __name__) # type: ignore
@@ -1 +0,0 @@
1
- __path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore
@@ -1,22 +0,0 @@
1
- import django.db.models as models
2
-
3
- import karrio.server.providers.models.carrier as providers
4
-
5
-
6
- class AlliedExpressSettings(providers.Carrier):
7
- class Meta:
8
- db_table = "allied-express-settings"
9
- verbose_name = "Allied Express Settings"
10
- verbose_name_plural = "Allied Express Settings"
11
-
12
- username = models.CharField(max_length=50)
13
- password = models.CharField(max_length=50)
14
- account = models.CharField(max_length=50, null=True, blank=True)
15
- service_type = models.CharField(max_length=50, null=True, blank=True)
16
-
17
- @property
18
- def carrier_name(self) -> str:
19
- return "allied_express"
20
-
21
-
22
- SETTINGS = AlliedExpressSettings
@@ -1,22 +0,0 @@
1
- import django.db.models as models
2
-
3
- import karrio.server.providers.models.carrier as providers
4
-
5
-
6
- class AlliedExpressLocalSettings(providers.Carrier):
7
- class Meta:
8
- db_table = "allied-express-local-settings"
9
- verbose_name = "Allied Express Local Settings"
10
- verbose_name_plural = "Allied Express Local Settings"
11
-
12
- username = models.CharField(max_length=50)
13
- password = models.CharField(max_length=50)
14
- account = models.CharField(max_length=50, null=True, blank=True)
15
- service_type = models.CharField(max_length=50, null=True, blank=True)
16
-
17
- @property
18
- def carrier_name(self) -> str:
19
- return "allied_express_local"
20
-
21
-
22
- SETTINGS = AlliedExpressLocalSettings
@@ -1,27 +0,0 @@
1
- from django.db import models
2
- from karrio.server.providers.models.carrier import Carrier
3
-
4
-
5
- class AmazonShippingSettings(Carrier):
6
- CARRIER_NAME = "amazon_shipping"
7
-
8
- class Meta:
9
- db_table = "amazon_shipping-settings"
10
- verbose_name = "Amazon Shipping Settings"
11
- verbose_name_plural = "Amazon Shipping Settings"
12
-
13
- seller_id = models.CharField(max_length=50)
14
- developer_id = models.CharField(max_length=50)
15
- mws_auth_token = models.CharField(max_length=50)
16
- aws_region = models.CharField(max_length=50, default="us-east-1")
17
-
18
- @property
19
- def carrier_name(self) -> str:
20
- return self.CARRIER_NAME
21
-
22
- @property
23
- def x_amz_access_token(self) -> str:
24
- return "" # Setup the access token here.
25
-
26
-
27
- SETTINGS = AmazonShippingSettings
@@ -1,25 +0,0 @@
1
- from django.db import models
2
- from karrio.server.providers.models.carrier import Carrier, COUNTRIES
3
-
4
-
5
- class AramexSettings(Carrier):
6
- class Meta:
7
- db_table = "aramex-settings"
8
- verbose_name = "Aramex Settings"
9
- verbose_name_plural = "Aramex Settings"
10
-
11
- username = models.CharField(max_length=200)
12
- password = models.CharField(max_length=200)
13
- account_pin = models.CharField(max_length=200)
14
- account_entity = models.CharField(max_length=200)
15
- account_number = models.CharField(max_length=200)
16
- account_country_code = models.CharField(
17
- max_length=3, blank=True, null=True, choices=COUNTRIES
18
- )
19
-
20
- @property
21
- def carrier_name(self) -> str:
22
- return "aramex"
23
-
24
-
25
- SETTINGS = AramexSettings
@@ -1,21 +0,0 @@
1
- import django.db.models as models
2
- import karrio.server.providers.models.carrier as providers
3
-
4
-
5
- class AsendiaUSSettings(providers.Carrier):
6
- class Meta:
7
- db_table = "asendia-us-settings"
8
- verbose_name = "Asendia US Settings"
9
- verbose_name_plural = "Asendia US Settings"
10
-
11
- username = models.CharField(max_length=100)
12
- password = models.CharField(max_length=100)
13
- api_key = models.CharField(max_length=100)
14
- account_number = models.CharField(max_length=100, blank=True)
15
-
16
- @property
17
- def carrier_name(self) -> str:
18
- return "asendia_us"
19
-
20
-
21
- SETTINGS = AsendiaUSSettings
@@ -1,20 +0,0 @@
1
- from django.db import models
2
- from karrio.server.providers.models.carrier import Carrier
3
-
4
-
5
- class AustraliaPostSettings(Carrier):
6
- class Meta:
7
- db_table = "australia-post-settings"
8
- verbose_name = "Australia Post Settings"
9
- verbose_name_plural = "Australia Post Settings"
10
-
11
- api_key = models.CharField(max_length=200)
12
- password = models.CharField(max_length=200)
13
- account_number = models.CharField(max_length=200)
14
-
15
- @property
16
- def carrier_name(self) -> str:
17
- return "australiapost"
18
-
19
-
20
- SETTINGS = AustraliaPostSettings
@@ -1,19 +0,0 @@
1
- import django.db.models as models
2
- import karrio.server.providers.models.carrier as providers
3
-
4
-
5
- class BoxKnightSettings(providers.Carrier):
6
- class Meta:
7
- db_table = "boxknight-settings"
8
- verbose_name = "BoxKnight Settings"
9
- verbose_name_plural = "BoxKnight Settings"
10
-
11
- username = models.CharField(max_length=50)
12
- password = models.CharField(max_length=50)
13
-
14
- @property
15
- def carrier_name(self) -> str:
16
- return "boxknight"
17
-
18
-
19
- SETTINGS = BoxKnightSettings
@@ -1,21 +0,0 @@
1
- import django.db.models as models
2
- import karrio.server.providers.models as providers
3
-
4
-
5
- # @providers.has_rate_sheet("bpost")
6
- class BelgianPostSettings(providers.Carrier):
7
- class Meta:
8
- db_table = "bpost-settings"
9
- verbose_name = "Belgian Post Settings"
10
- verbose_name_plural = "Belgian Post Settings"
11
-
12
- account_id = models.CharField(max_length=100)
13
- passphrase = models.CharField(max_length=100)
14
- services = models.ManyToManyField("ServiceLevel", blank=True)
15
-
16
- @property
17
- def carrier_name(self) -> str:
18
- return "bpost"
19
-
20
-
21
- SETTINGS = BelgianPostSettings
@@ -1,21 +0,0 @@
1
- import django.db.models as models
2
- import karrio.server.providers.models as providers
3
-
4
-
5
- class CanadaPostSettings(providers.Carrier):
6
- class Meta:
7
- db_table = "canada-post-settings"
8
- verbose_name = "Canada Post Settings"
9
- verbose_name_plural = "Canada Post Settings"
10
-
11
- username = models.CharField(max_length=200)
12
- password = models.CharField(max_length=200)
13
- customer_number = models.CharField(max_length=200, blank=True, null=True)
14
- contract_id = models.CharField(max_length=200, blank=True, null=True)
15
-
16
- @property
17
- def carrier_name(self) -> str:
18
- return "canadapost"
19
-
20
-
21
- SETTINGS = CanadaPostSettings
@@ -1,19 +0,0 @@
1
- from django.db import models
2
- from karrio.server.providers.models.carrier import Carrier
3
-
4
-
5
- class CanparSettings(Carrier):
6
- class Meta:
7
- db_table = "canpar-settings"
8
- verbose_name = "Canpar Settings"
9
- verbose_name_plural = "Canpar Settings"
10
-
11
- username = models.CharField(max_length=200)
12
- password = models.CharField(max_length=200)
13
-
14
- @property
15
- def carrier_name(self) -> str:
16
- return "canpar"
17
-
18
-
19
- SETTINGS = CanparSettings