django-qstash 0.1.0__tar.gz → 0.1.1__tar.gz

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 django-qstash might be problematic. Click here for more details.

Files changed (64) hide show
  1. {django_qstash-0.1.0 → django_qstash-0.1.1}/PKG-INFO +1 -1
  2. {django_qstash-0.1.0 → django_qstash-0.1.1}/pyproject.toml +1 -1
  3. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/__init__.py +1 -1
  4. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/results/services.py +25 -8
  5. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash.egg-info/PKG-INFO +1 -1
  6. {django_qstash-0.1.0 → django_qstash-0.1.1}/README.md +0 -0
  7. {django_qstash-0.1.0 → django_qstash-0.1.1}/setup.cfg +0 -0
  8. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/app/__init__.py +0 -0
  9. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/app/base.py +0 -0
  10. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/app/decorators.py +0 -0
  11. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/callbacks.py +0 -0
  12. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/client.py +0 -0
  13. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/cron.py +0 -0
  14. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/db/__init__.py +0 -0
  15. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/db/models.py +0 -0
  16. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/discovery/__init__.py +0 -0
  17. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/discovery/fields.py +0 -0
  18. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/discovery/models.py +0 -0
  19. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/discovery/utils.py +0 -0
  20. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/discovery/validators.py +0 -0
  21. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/exceptions.py +0 -0
  22. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/handlers.py +0 -0
  23. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/management/__init__.py +0 -0
  24. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/management/commands/__init__.py +0 -0
  25. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/management/commands/available_tasks.py +0 -0
  26. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/management/commands/clear_stale_results.py +0 -0
  27. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/management/commands/task_schedules.py +0 -0
  28. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/results/__init__.py +0 -0
  29. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/results/admin.py +0 -0
  30. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/results/apps.py +0 -0
  31. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/results/migrations/0001_initial.py +0 -0
  32. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/results/migrations/0002_taskresult_function_path_alter_taskresult_status_and_more.py +0 -0
  33. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/results/migrations/__init__.py +0 -0
  34. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/results/models.py +0 -0
  35. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/results/tasks.py +0 -0
  36. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/schedules/__init__.py +0 -0
  37. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/schedules/admin.py +0 -0
  38. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/schedules/apps.py +0 -0
  39. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/schedules/exceptions.py +0 -0
  40. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/schedules/formatters.py +0 -0
  41. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/schedules/forms.py +0 -0
  42. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/schedules/migrations/0001_initial.py +0 -0
  43. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/schedules/migrations/0002_taskschedule_updated_at.py +0 -0
  44. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/schedules/migrations/0003_alter_taskschedule_cron.py +0 -0
  45. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/schedules/migrations/__init__.py +0 -0
  46. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/schedules/models.py +0 -0
  47. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/schedules/services.py +0 -0
  48. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/schedules/signals.py +0 -0
  49. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/schedules/validators.py +0 -0
  50. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/settings.py +0 -0
  51. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/urls.py +0 -0
  52. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/utils.py +0 -0
  53. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash/views.py +0 -0
  54. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash.egg-info/SOURCES.txt +0 -0
  55. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash.egg-info/dependency_links.txt +0 -0
  56. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash.egg-info/requires.txt +0 -0
  57. {django_qstash-0.1.0 → django_qstash-0.1.1}/src/django_qstash.egg-info/top_level.txt +0 -0
  58. {django_qstash-0.1.0 → django_qstash-0.1.1}/tests/test_callbacks.py +0 -0
  59. {django_qstash-0.1.0 → django_qstash-0.1.1}/tests/test_exceptions.py +0 -0
  60. {django_qstash-0.1.0 → django_qstash-0.1.1}/tests/test_handlers.py +0 -0
  61. {django_qstash-0.1.0 → django_qstash-0.1.1}/tests/test_results_models.py +0 -0
  62. {django_qstash-0.1.0 → django_qstash-0.1.1}/tests/test_settings.py +0 -0
  63. {django_qstash-0.1.0 → django_qstash-0.1.1}/tests/test_utils.py +0 -0
  64. {django_qstash-0.1.0 → django_qstash-0.1.1}/tests/test_views.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: django-qstash
3
- Version: 0.1.0
3
+ Version: 0.1.1
4
4
  Summary: A drop-in replacement for Celery's shared_task with Upstash QStash.
5
5
  Author-email: Justin Mitchel <justin@codingforentrepreneurs.com>
6
6
  Project-URL: Changelog, https://github.com/jmitchel3/django-qstash
@@ -6,7 +6,7 @@ requires = [
6
6
 
7
7
  [project]
8
8
  name = "django-qstash"
9
- version = "0.1.0"
9
+ version = "0.1.1"
10
10
  description = "A drop-in replacement for Celery's shared_task with Upstash QStash."
11
11
  readme = "README.md"
12
12
  license = { file = "LICENSE" }
@@ -1,6 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
- __version__ = "0.1.0"
3
+ __version__ = "0.1.1"
4
4
 
5
5
  from django_qstash.app import shared_task
6
6
  from django_qstash.app import stashed_task
@@ -12,14 +12,31 @@ from django_qstash.db.models import TaskStatus
12
12
  logger = logging.getLogger(__name__)
13
13
 
14
14
 
15
- def function_result_to_json(result: Any) -> str:
16
- """Convert a function result to a JSON string"""
17
- try:
18
- data = {"result": result}
19
- return json.dumps(data)
20
- except Exception as e:
21
- logger.exception("Failed to convert function result to JSON: %s", str(e))
15
+ def function_result_to_dict(result: Any) -> dict | None:
16
+ """
17
+ Convert a task result to a Python dict for the result JSONField.
18
+
19
+ Args:
20
+ result: Any Python value to be converted
21
+
22
+ Returns:
23
+ dict: A dictionary representation of the result
24
+ None: If the input is None
25
+ """
26
+ if result is None:
22
27
  return None
28
+ elif isinstance(result, dict):
29
+ return result
30
+ elif isinstance(result, str):
31
+ try:
32
+ parsed = json.loads(result)
33
+ if isinstance(parsed, dict):
34
+ return parsed
35
+ return {"result": parsed}
36
+ except json.JSONDecodeError as e:
37
+ logger.info("Task result is not a JSON string: %s", str(e))
38
+ return {"result": result}
39
+ return {"result": result}
23
40
 
24
41
 
25
42
  def store_task_result(
@@ -44,7 +61,7 @@ def store_task_result(
44
61
  task_name=task_name,
45
62
  status=status,
46
63
  date_done=timezone.now(),
47
- result=function_result_to_json(result),
64
+ result=function_result_to_dict(result),
48
65
  traceback=traceback,
49
66
  args=args,
50
67
  kwargs=kwargs,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: django-qstash
3
- Version: 0.1.0
3
+ Version: 0.1.1
4
4
  Summary: A drop-in replacement for Celery's shared_task with Upstash QStash.
5
5
  Author-email: Justin Mitchel <justin@codingforentrepreneurs.com>
6
6
  Project-URL: Changelog, https://github.com/jmitchel3/django-qstash
File without changes
File without changes