python-saga-orchestrator 0.4.0__tar.gz → 0.5.0__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.
Files changed (89) hide show
  1. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/PKG-INFO +1 -1
  2. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/python_saga_orchestrator.egg-info/PKG-INFO +1 -1
  3. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/_version.py +2 -2
  4. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/domain/mixins/saga_step_histrory.py +11 -1
  5. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/.github/workflows/ci.yml +0 -0
  6. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/.github/workflows/publish.yml +0 -0
  7. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/.gitignore +0 -0
  8. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/Dockerfile +0 -0
  9. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/LICENSE +0 -0
  10. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/Makefile +0 -0
  11. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/README.md +0 -0
  12. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/docker-compose.yaml +0 -0
  13. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/examples/admin_skip.py +0 -0
  14. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/examples/common.py +0 -0
  15. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/examples/compensation_flow.py +0 -0
  16. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/examples/http_and_queue.py +0 -0
  17. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/examples/llm_deploy.py +0 -0
  18. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/examples/retry_recovery.py +0 -0
  19. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/pyproject.toml +0 -0
  20. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/python_saga_orchestrator.egg-info/SOURCES.txt +0 -0
  21. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/python_saga_orchestrator.egg-info/dependency_links.txt +0 -0
  22. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/python_saga_orchestrator.egg-info/requires.txt +0 -0
  23. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/python_saga_orchestrator.egg-info/top_level.txt +0 -0
  24. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/__init__.py +0 -0
  25. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/admin/__init__.py +0 -0
  26. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/admin/api.py +0 -0
  27. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/core/__init__.py +0 -0
  28. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/core/builder.py +0 -0
  29. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/core/engine.py +0 -0
  30. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/core/orchestrator.py +0 -0
  31. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/core/repository.py +0 -0
  32. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/domain/__init__.py +0 -0
  33. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/domain/exceptions/__init__.py +0 -0
  34. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/domain/exceptions/saga.py +0 -0
  35. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/domain/mixins/__init__.py +0 -0
  36. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/domain/mixins/saga_state.py +0 -0
  37. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/domain/mixins/types.py +0 -0
  38. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/domain/models/__init__.py +0 -0
  39. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/domain/models/builder.py +0 -0
  40. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/domain/models/context.py +0 -0
  41. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/domain/models/enums/__init__.py +0 -0
  42. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/domain/models/enums/base_str_enum.py +0 -0
  43. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/domain/models/enums/saga_status.py +0 -0
  44. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/domain/models/enums/saga_step_phase.py +0 -0
  45. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/domain/models/enums/saga_step_status.py +0 -0
  46. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/domain/models/notify.py +0 -0
  47. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/domain/models/retry.py +0 -0
  48. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/domain/models/saga_snapshot.py +0 -0
  49. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/domain/models/step.py +0 -0
  50. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/inbox/__init__.py +0 -0
  51. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/inbox/contracts.py +0 -0
  52. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/inbox/dispatcher.py +0 -0
  53. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/inbox/models.py +0 -0
  54. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/inbox/repository.py +0 -0
  55. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/inbox/retry.py +0 -0
  56. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/outbox/__init__.py +0 -0
  57. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/outbox/contracts.py +0 -0
  58. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/outbox/dispatcher.py +0 -0
  59. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/outbox/event.py +0 -0
  60. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/outbox/factory.py +0 -0
  61. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/outbox/models.py +0 -0
  62. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/outbox/repository.py +0 -0
  63. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/outbox/retry.py +0 -0
  64. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/saga_orchestrator/outbox/serialization.py +0 -0
  65. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/setup.cfg +0 -0
  66. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/task.md +0 -0
  67. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/tests/__init__.py +0 -0
  68. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/tests/conftest.py +0 -0
  69. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/tests/integration/__init__.py +0 -0
  70. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/tests/integration/conftest.py +0 -0
  71. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/tests/integration/helpers.py +0 -0
  72. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/tests/integration/models.py +0 -0
  73. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/tests/integration/test_admin_api.py +0 -0
  74. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/tests/integration/test_compensation_flow.py +0 -0
  75. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/tests/integration/test_context_persistence.py +0 -0
  76. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/tests/integration/test_core_flow.py +0 -0
  77. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/tests/integration/test_inbox_flow.py +0 -0
  78. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/tests/integration/test_lifecycle_hooks.py +0 -0
  79. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/tests/integration/test_notification_flow.py +0 -0
  80. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/tests/integration/test_outbox_flow.py +0 -0
  81. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/tests/integration/test_repository.py +0 -0
  82. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/tests/unit/__init__.py +0 -0
  83. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/tests/unit/test_builder.py +0 -0
  84. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/tests/unit/test_inbox_extensibility.py +0 -0
  85. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/tests/unit/test_input_context.py +0 -0
  86. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/tests/unit/test_orchestrator_helpers.py +0 -0
  87. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/tests/unit/test_outbox_extensibility.py +0 -0
  88. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/tests/unit/test_retry.py +0 -0
  89. {python_saga_orchestrator-0.4.0 → python_saga_orchestrator-0.5.0}/tests/unit/test_step_type_resolution.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-saga-orchestrator
3
- Version: 0.4.0
3
+ Version: 0.5.0
4
4
  Summary: Lightweight embedded saga orchestrator for asyncio Python services
5
5
  Author-email: Maxim Vasilyev <mayxis@inbox.ru>
6
6
  License-Expression: MIT
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-saga-orchestrator
3
- Version: 0.4.0
3
+ Version: 0.5.0
4
4
  Summary: Lightweight embedded saga orchestrator for asyncio Python services
5
5
  Author-email: Maxim Vasilyev <mayxis@inbox.ru>
6
6
  License-Expression: MIT
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '0.4.0'
22
- __version_tuple__ = version_tuple = (0, 4, 0)
21
+ __version__ = version = '0.5.0'
22
+ __version_tuple__ = version_tuple = (0, 5, 0)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -4,7 +4,7 @@ import uuid
4
4
  from datetime import datetime
5
5
  from typing import Any
6
6
 
7
- from sqlalchemy import Boolean, DateTime, Enum, Integer, String, Text
7
+ from sqlalchemy import Boolean, DateTime, Enum, Integer, String, Text, func
8
8
  from sqlalchemy.dialects.postgresql import UUID
9
9
  from sqlalchemy.orm import Mapped, declarative_mixin, declared_attr, mapped_column
10
10
 
@@ -43,3 +43,13 @@ class SagaStepHistoryMixin:
43
43
 
44
44
  error: Mapped[str | None] = mapped_column(Text, nullable=True)
45
45
  skipped: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False)
46
+
47
+ created_at: Mapped[datetime] = mapped_column(
48
+ DateTime(timezone=True), nullable=False, server_default=func.now()
49
+ )
50
+ updated_at: Mapped[datetime] = mapped_column(
51
+ DateTime(timezone=True),
52
+ nullable=False,
53
+ server_default=func.now(),
54
+ onupdate=func.now(),
55
+ )