karrio-server 2025.5rc30__py3-none-any.whl → 2025.5rc31__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/server/VERSION CHANGED
@@ -1 +1 @@
1
- 2025.5rc30
1
+ 2025.5rc31
@@ -5,6 +5,7 @@ import importlib.util
5
5
  from karrio.server.settings.base import *
6
6
  from karrio.server.settings.apm import *
7
7
  from karrio.server.settings.cache import *
8
+ from karrio.server.settings.workers import *
8
9
  from karrio.server.settings.debug import *
9
10
  from karrio.server.settings.email import *
10
11
  from karrio.server.settings.constance import *
@@ -261,62 +261,6 @@ OTP_APPS = [
261
261
  "two_factor.plugins.email",
262
262
  ]
263
263
 
264
- # Configure HUEY before djhuey/apps are loaded
265
- # This must be done here (not in workers.py) because task modules import djhuey
266
- # at module load time, which happens when Django loads apps from INSTALLED_APPS
267
- _REDIS_HOST = config("REDIS_HOST", default=None)
268
- _REDIS_PORT = config("REDIS_PORT", default=None)
269
- _REDIS_PASSWORD = config("REDIS_PASSWORD", default=None)
270
- _REDIS_USERNAME = config("REDIS_USERNAME", default="default")
271
- _WORKER_IMMEDIATE_MODE = config("WORKER_IMMEDIATE_MODE", default=False, cast=bool) and (
272
- _REDIS_HOST is None
273
- )
274
-
275
- HUEY = {
276
- "huey_class": "huey.RedisHuey" if _REDIS_HOST else "huey.SqliteHuey",
277
- "name": "default",
278
- "results": True,
279
- "store_none": False,
280
- "utc": True,
281
- **(
282
- {
283
- "blocking": True,
284
- "connection": {
285
- "host": _REDIS_HOST,
286
- "port": _REDIS_PORT or 6379,
287
- "db": 0,
288
- "connection_pool": None,
289
- "read_timeout": 1,
290
- "max_connections": 20,
291
- **(
292
- {
293
- "username": _REDIS_USERNAME,
294
- "password": _REDIS_PASSWORD,
295
- }
296
- if _REDIS_PASSWORD
297
- else {}
298
- ),
299
- },
300
- }
301
- if _REDIS_HOST
302
- else {}
303
- ),
304
- **(
305
- {
306
- "filename": os.path.join(WORK_DIR, "tasks.sqlite3"),
307
- "immediate": _WORKER_IMMEDIATE_MODE,
308
- }
309
- if not _REDIS_HOST
310
- else {}
311
- ),
312
- }
313
-
314
- # Karrio Server Background jobs interval config
315
- DEFAULT_SCHEDULER_RUN_INTERVAL = 3600 # value is seconds. so 3600 seconds = 1 Hour
316
- DEFAULT_TRACKERS_UPDATE_INTERVAL = config(
317
- "TRACKING_PULSE", default=7200, cast=int
318
- ) # value is seconds. so 10800 seconds = 3 Hours
319
-
320
264
  INSTALLED_APPS = [
321
265
  "constance",
322
266
  *KARRIO_APPS,
@@ -0,0 +1,53 @@
1
+ # type: ignore
2
+ import os
3
+ import huey
4
+ import redis
5
+ import decouple
6
+ from karrio.server.settings import base as settings
7
+
8
+
9
+ # Karrio Server Background jobs interval config
10
+ DEFAULT_SCHEDULER_RUN_INTERVAL = 3600 # value is seconds. so 3600 seconds = 1 Hour
11
+ DEFAULT_TRACKERS_UPDATE_INTERVAL = decouple.config(
12
+ "TRACKING_PULSE", default=7200, cast=int
13
+ ) # value is seconds. so 10800 seconds = 3 Hours
14
+
15
+ WORKER_IMMEDIATE_MODE = decouple.config(
16
+ "WORKER_IMMEDIATE_MODE", default=False, cast=bool
17
+ )
18
+
19
+ REDIS_HOST = decouple.config("REDIS_HOST", default=None)
20
+ REDIS_PORT = decouple.config("REDIS_PORT", default=None)
21
+ REDIS_PASSWORD = decouple.config("REDIS_PASSWORD", default=None)
22
+ REDIS_USERNAME = decouple.config("REDIS_USERNAME", default="default")
23
+
24
+
25
+ # Use redis if available
26
+ if REDIS_HOST is not None:
27
+ pool = redis.ConnectionPool(
28
+ host=REDIS_HOST,
29
+ port=REDIS_PORT or "6379",
30
+ max_connections=20,
31
+ **({"password": REDIS_PASSWORD} if REDIS_PASSWORD else {}),
32
+ **({"username": REDIS_USERNAME} if REDIS_USERNAME else {}),
33
+ )
34
+ HUEY = huey.RedisHuey(
35
+ "default",
36
+ connection_pool=pool,
37
+ **({"immediate": WORKER_IMMEDIATE_MODE} if WORKER_IMMEDIATE_MODE else {}),
38
+ )
39
+
40
+ else:
41
+ WORKER_DB_DIR = decouple.config("WORKER_DB_DIR", default=settings.WORK_DIR)
42
+ WORKER_DB_FILE_NAME = os.path.join(WORKER_DB_DIR, "tasks.sqlite3")
43
+
44
+ settings.DATABASES["workers"] = {
45
+ "NAME": WORKER_DB_FILE_NAME,
46
+ "ENGINE": "django.db.backends.sqlite3",
47
+ }
48
+
49
+ HUEY = huey.SqliteHuey(
50
+ name="default",
51
+ filename=WORKER_DB_FILE_NAME,
52
+ **({"immediate": WORKER_IMMEDIATE_MODE} if WORKER_IMMEDIATE_MODE else {}),
53
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: karrio_server
3
- Version: 2025.5rc30
3
+ Version: 2025.5rc31
4
4
  Summary: Multi-carrier shipping API
5
5
  Author-email: karrio <hello@karrio.io>
6
6
  License-Expression: Apache-2.0
@@ -1,17 +1,18 @@
1
- karrio/server/VERSION,sha256=TS1XH1yu99ZMb3FKrCfrLPcYQPR8kVZYdkjtKn54feQ,10
1
+ karrio/server/VERSION,sha256=mbeRK4sJZA26Mqme_nviTrhpkJlUXIywotpDUr5EmG8,10
2
2
  karrio/server/__init__.py,sha256=iOEMwnlORWezdO8-2vxBIPSR37D7JGjluZ8f55vzxls,81
3
3
  karrio/server/__main__.py,sha256=hy2-Zb2wSVe_Pu6zWZ-BhiM4rBaGZ3D16HSuhudygqg,632
4
4
  karrio/server/asgi.py,sha256=LsZYMWo8U9zURVPdHnvUsziOhMjdCdQoD2-gMJbS2U0,462
5
5
  karrio/server/workers.py,sha256=wOlWmXC7zRJV86IfbQnfUZsnCIvvWtXzFHH_EIkg1J0,179
6
6
  karrio/server/wsgi.py,sha256=SpWqkEYlMsj89_znZ8p8IjH3EgTVRWRq_9eS8t64dMw,403
7
7
  karrio/server/lib/otel_huey.py,sha256=6MP6vX6b6x6RPF2K1m8B8L8S9GK1Q3vANmLidsxh65k,5428
8
- karrio/server/settings/__init__.py,sha256=rpHZgzt7czC0ZUvlu7QWkFYuJokelp5yACtK8UQCaTk,821
8
+ karrio/server/settings/__init__.py,sha256=iw-NBcReOnDYpnvSEBdYDfV7jC0040jYdupnmSdElec,866
9
9
  karrio/server/settings/apm.py,sha256=PfILlN71p38pNHeV3AysAdnyErnsIvh_8buPVt6ASfw,7378
10
- karrio/server/settings/base.py,sha256=2cv8tMgjiX-kmgnZbZgoNDFTuQc4d_GxhsbzpSRRDoc,22552
10
+ karrio/server/settings/base.py,sha256=c_rNOlOsE5qFEHjIo1yE5FtPfQwkzUhs5e7T9h9cfoA,20752
11
11
  karrio/server/settings/cache.py,sha256=BCFIjbLKBgYs34i099Z_i8EC55lRF39oJfsPHoXq3vc,1112
12
12
  karrio/server/settings/constance.py,sha256=wKi7u-NORAPjIJMIbl3k5kPRkUA6jJJWe9kxsV3aoeA,7113
13
13
  karrio/server/settings/debug.py,sha256=fFyK2XX47UGeK0eRNSV-9ZLaComay5QvJW0692vaH98,527
14
14
  karrio/server/settings/email.py,sha256=bHBLKM_v3HTkmjrz_Msdj_Z7_kMzAb7i6pvJCZuzu1E,1403
15
+ karrio/server/settings/workers.py,sha256=s3km5UZcultq4O1adWZWso7jvRyfhc4jk3T1Jx0EoCA,1697
15
16
  karrio/server/static/extra/branding/android-chrome-192x192.png,sha256=qSwEKKBtk4udSHb0OWGC5-jfkP5cVpULDD1Cdkuk8PU,7005
16
17
  karrio/server/static/extra/branding/android-chrome-512x512.png,sha256=YFwVPnPChO30tTuyrwSc_z548H7C6OFXh4CCu2krvHA,21062
17
18
  karrio/server/static/extra/branding/favicon-16x16.png,sha256=wkELpij29bIvvKr5sDcjfNeYvj7i0yk-__bJbZckEK8,1085
@@ -72,8 +73,8 @@ karrio/server/templates/admin/base_site.html,sha256=kbcdvehXZ1EHaw07JL7fSZmjrnVM
72
73
  karrio/server/templates/openapi/openapi.html,sha256=3ApCZ5pE6Wjv7CJllVbqD2WiDQuLy-BFS-IIHurXhBY,1133
73
74
  karrio/server/urls/__init__.py,sha256=Ah-XqaqRsfecQgCGRHjxmXe8O7a0avq5ocU90tkVwQI,1998
74
75
  karrio/server/urls/jwt.py,sha256=QN2L-EpUEQCF2UGYPu_VVlA49Fc0BtcY7Ov3-xpp7_U,6772
75
- karrio_server-2025.5rc30.dist-info/METADATA,sha256=tifknyLMeuNQgaLGsQRT70r3T_7BxrhU-qS56CJhjQE,4283
76
- karrio_server-2025.5rc30.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
77
- karrio_server-2025.5rc30.dist-info/entry_points.txt,sha256=c2eftt6MpJjyp0OFv1OmO9nUYSDemt9fGq_RDdvpGLw,55
78
- karrio_server-2025.5rc30.dist-info/top_level.txt,sha256=D1D7x8R3cTfjF_15mfiO7wCQ5QMtuM4x8GaPr7z5i78,12
79
- karrio_server-2025.5rc30.dist-info/RECORD,,
76
+ karrio_server-2025.5rc31.dist-info/METADATA,sha256=QnPfGK8HPEUkpXjpugdxXmoydJNSTqLY3TcPT4vHR9Q,4283
77
+ karrio_server-2025.5rc31.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
78
+ karrio_server-2025.5rc31.dist-info/entry_points.txt,sha256=c2eftt6MpJjyp0OFv1OmO9nUYSDemt9fGq_RDdvpGLw,55
79
+ karrio_server-2025.5rc31.dist-info/top_level.txt,sha256=D1D7x8R3cTfjF_15mfiO7wCQ5QMtuM4x8GaPr7z5i78,12
80
+ karrio_server-2025.5rc31.dist-info/RECORD,,