orionis 0.90.0__tar.gz → 0.94.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 (177) hide show
  1. {orionis-0.90.0/orionis.egg-info → orionis-0.94.0}/PKG-INFO +1 -1
  2. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/console/i_task_manager.py +1 -1
  3. orionis-0.94.0/orionis/contracts/facades/commands/i_scheduler_facade.py +28 -0
  4. orionis-0.90.0/orionis/contracts/console/tasks/i_schedule.py → orionis-0.94.0/orionis/contracts/services/commands/i_schedule_service.py +1 -1
  5. {orionis-0.90.0 → orionis-0.94.0}/orionis/framework.py +1 -1
  6. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/app.py +6 -0
  7. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/console/commands/schedule_work.py +12 -6
  8. orionis-0.94.0/orionis/luminate/facades/commands/scheduler_facade.py +30 -0
  9. orionis-0.94.0/orionis/luminate/providers/commands/scheduler_provider.py +19 -0
  10. orionis-0.90.0/orionis/luminate/console/tasks/scheduler.py → orionis-0.94.0/orionis/luminate/services/commands/scheduler_service.py +5 -8
  11. {orionis-0.90.0 → orionis-0.94.0/orionis.egg-info}/PKG-INFO +1 -1
  12. {orionis-0.90.0 → orionis-0.94.0}/orionis.egg-info/SOURCES.txt +5 -4
  13. orionis-0.90.0/tests/__init__.py +0 -0
  14. orionis-0.90.0/tests/tools/__init__.py +0 -0
  15. {orionis-0.90.0 → orionis-0.94.0}/LICENCE +0 -0
  16. {orionis-0.90.0 → orionis-0.94.0}/MANIFEST.in +0 -0
  17. {orionis-0.90.0 → orionis-0.94.0}/README.md +0 -0
  18. {orionis-0.90.0 → orionis-0.94.0}/orionis/__init__.py +0 -0
  19. {orionis-0.90.0 → orionis-0.94.0}/orionis/cli_manager.py +0 -0
  20. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/__init__.py +0 -0
  21. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/bootstrap/i_command_bootstrapper.py +0 -0
  22. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/bootstrap/i_config_bootstrapper.py +0 -0
  23. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/bootstrap/i_environment_bootstrapper.py +0 -0
  24. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/config/__init__.py +0 -0
  25. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/config/i_config.py +0 -0
  26. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/console/__init__.py +0 -0
  27. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/console/base/__init__.py +0 -0
  28. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/console/base/i_command.py +0 -0
  29. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/console/i_command_filter.py +0 -0
  30. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/console/i_kernel.py +0 -0
  31. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/console/i_parser.py +0 -0
  32. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/console/output/__init__.py +0 -0
  33. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/console/output/i_console.py +0 -0
  34. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/console/output/i_executor.py +0 -0
  35. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/console/output/i_progress_bar.py +0 -0
  36. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/container/i_container.py +0 -0
  37. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/container/i_types.py +0 -0
  38. {orionis-0.90.0/orionis/contracts/console/tasks → orionis-0.94.0/orionis/contracts/facades}/__init__.py +0 -0
  39. {orionis-0.90.0/orionis/contracts/facades → orionis-0.94.0/orionis/contracts/facades/commands}/__init__.py +0 -0
  40. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/facades/commands/i_commands_facade.py +0 -0
  41. {orionis-0.90.0/orionis/contracts/facades/commands → orionis-0.94.0/orionis/contracts/facades/config}/__init__.py +0 -0
  42. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/facades/config/i_config_facade.py +0 -0
  43. {orionis-0.90.0/orionis/contracts/facades/config → orionis-0.94.0/orionis/contracts/facades/environment}/__init__.py +0 -0
  44. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/facades/environment/i_environment_facade.py +0 -0
  45. {orionis-0.90.0/orionis/contracts/facades/environment → orionis-0.94.0/orionis/contracts/facades/files}/__init__.py +0 -0
  46. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/facades/files/i_path_facade.py +0 -0
  47. {orionis-0.90.0/orionis/contracts/facades/files → orionis-0.94.0/orionis/contracts/facades/log}/__init__.py +0 -0
  48. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/facades/log/i_log_facade.py +0 -0
  49. {orionis-0.90.0/orionis/contracts/facades/log → orionis-0.94.0/orionis/contracts/facades/tests}/__init__.py +0 -0
  50. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/facades/tests/i_tests_facade.py +0 -0
  51. {orionis-0.90.0/orionis/contracts/facades/tests → orionis-0.94.0/orionis/contracts/installer}/__init__.py +0 -0
  52. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/installer/i_installer_manager.py +0 -0
  53. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/installer/i_installer_output.py +0 -0
  54. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/installer/i_installer_setup.py +0 -0
  55. {orionis-0.90.0/orionis/contracts/installer → orionis-0.94.0/orionis/contracts/providers}/__init__.py +0 -0
  56. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/providers/i_service_provider.py +0 -0
  57. {orionis-0.90.0/orionis/contracts/providers → orionis-0.94.0/orionis/contracts/services}/__init__.py +0 -0
  58. {orionis-0.90.0/orionis/contracts/services → orionis-0.94.0/orionis/contracts/services/commands}/__init__.py +0 -0
  59. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/services/commands/i_reactor_commands_service.py +0 -0
  60. {orionis-0.90.0/orionis/contracts/services/commands → orionis-0.94.0/orionis/contracts/services/config}/__init__.py +0 -0
  61. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/services/config/i_config_service.py +0 -0
  62. {orionis-0.90.0/orionis/contracts/services/config → orionis-0.94.0/orionis/contracts/services/environment}/__init__.py +0 -0
  63. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/services/environment/i_environment_service.py +0 -0
  64. {orionis-0.90.0/orionis/contracts/services/environment → orionis-0.94.0/orionis/contracts/services/files}/__init__.py +0 -0
  65. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/services/files/i_path_resolver_service.py +0 -0
  66. {orionis-0.90.0/orionis/contracts/services/files → orionis-0.94.0/orionis/contracts/services/log}/__init__.py +0 -0
  67. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/services/log/i_log_service.py +0 -0
  68. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/support/i_exception_to_dict.py +0 -0
  69. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/support/i_reflection.py +0 -0
  70. {orionis-0.90.0 → orionis-0.94.0}/orionis/contracts/support/i_std.py +0 -0
  71. {orionis-0.90.0/orionis/contracts/services/log → orionis-0.94.0/orionis/installer}/__init__.py +0 -0
  72. {orionis-0.90.0 → orionis-0.94.0}/orionis/installer/installer_manager.py +0 -0
  73. {orionis-0.90.0 → orionis-0.94.0}/orionis/installer/installer_output.py +0 -0
  74. {orionis-0.90.0 → orionis-0.94.0}/orionis/installer/installer_setup.py +0 -0
  75. {orionis-0.90.0/orionis/installer → orionis-0.94.0/orionis/luminate}/__init__.py +0 -0
  76. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/app_context.py +0 -0
  77. {orionis-0.90.0/orionis/luminate → orionis-0.94.0/orionis/luminate/bootstrap}/__init__.py +0 -0
  78. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/bootstrap/command_bootstrapper.py +0 -0
  79. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/bootstrap/config_bootstrapper.py +0 -0
  80. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/bootstrap/environment_bootstrapper.py +0 -0
  81. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/bootstrap/exception_bootstrapper.py +0 -0
  82. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/bootstrap/service_providers_bootstrapper.py +0 -0
  83. {orionis-0.90.0/orionis/luminate/bootstrap → orionis-0.94.0/orionis/luminate/config}/__init__.py +0 -0
  84. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/config/app.py +0 -0
  85. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/config/auth.py +0 -0
  86. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/config/cache.py +0 -0
  87. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/config/cors.py +0 -0
  88. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/config/database.py +0 -0
  89. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/config/filesystems.py +0 -0
  90. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/config/logging.py +0 -0
  91. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/config/mail.py +0 -0
  92. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/config/queue.py +0 -0
  93. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/config/session.py +0 -0
  94. {orionis-0.90.0/orionis/luminate/config → orionis-0.94.0/orionis/luminate/console}/__init__.py +0 -0
  95. {orionis-0.90.0/orionis/luminate/console → orionis-0.94.0/orionis/luminate/console/base}/__init__.py +0 -0
  96. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/console/base/command.py +0 -0
  97. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/console/command_filter.py +0 -0
  98. {orionis-0.90.0/orionis/luminate/console/base → orionis-0.94.0/orionis/luminate/console/commands}/__init__.py +0 -0
  99. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/console/commands/cache_clear.py +0 -0
  100. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/console/commands/help.py +0 -0
  101. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/console/commands/tests.py +0 -0
  102. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/console/commands/version.py +0 -0
  103. {orionis-0.90.0/orionis/luminate/console/commands → orionis-0.94.0/orionis/luminate/console/exceptions}/__init__.py +0 -0
  104. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/console/exceptions/cli_exception.py +0 -0
  105. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/console/kernel.py +0 -0
  106. {orionis-0.90.0/orionis/luminate/console/exceptions → orionis-0.94.0/orionis/luminate/console/output}/__init__.py +0 -0
  107. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/console/output/console.py +0 -0
  108. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/console/output/executor.py +0 -0
  109. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/console/output/progress_bar.py +0 -0
  110. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/console/output/styles.py +0 -0
  111. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/console/parser.py +0 -0
  112. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/container/container.py +0 -0
  113. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/container/exception.py +0 -0
  114. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/container/types.py +0 -0
  115. {orionis-0.90.0/orionis/luminate/console/output → orionis-0.94.0/orionis/luminate/facades}/__init__.py +0 -0
  116. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/facades/app.py +0 -0
  117. {orionis-0.90.0/orionis/luminate/console/tasks → orionis-0.94.0/orionis/luminate/facades/commands}/__init__.py +0 -0
  118. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/facades/commands/commands_facade.py +0 -0
  119. {orionis-0.90.0/orionis/luminate/facades → orionis-0.94.0/orionis/luminate/facades/config}/__init__.py +0 -0
  120. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/facades/config/config_facade.py +0 -0
  121. {orionis-0.90.0/orionis/luminate/facades/commands → orionis-0.94.0/orionis/luminate/facades/environment}/__init__.py +0 -0
  122. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/facades/environment/environment_facade.py +0 -0
  123. {orionis-0.90.0/orionis/luminate/facades/config → orionis-0.94.0/orionis/luminate/facades/files}/__init__.py +0 -0
  124. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/facades/files/path_facade.py +0 -0
  125. {orionis-0.90.0/orionis/luminate/facades/environment → orionis-0.94.0/orionis/luminate/facades/log}/__init__.py +0 -0
  126. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/facades/log/log_facade.py +0 -0
  127. {orionis-0.90.0/orionis/luminate/facades/files → orionis-0.94.0/orionis/luminate/facades/tests}/__init__.py +0 -0
  128. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/facades/tests/tests_facade.py +0 -0
  129. {orionis-0.90.0/orionis/luminate/facades/log → orionis-0.94.0/orionis/luminate/patterns}/__init__.py +0 -0
  130. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/patterns/singleton.py +0 -0
  131. {orionis-0.90.0/orionis/luminate/facades/tests → orionis-0.94.0/orionis/luminate/providers}/__init__.py +0 -0
  132. {orionis-0.90.0/orionis/luminate/patterns → orionis-0.94.0/orionis/luminate/providers/commands}/__init__.py +0 -0
  133. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/providers/commands/reactor_commands_service_provider.py +0 -0
  134. {orionis-0.90.0/orionis/luminate/providers → orionis-0.94.0/orionis/luminate/providers/config}/__init__.py +0 -0
  135. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/providers/config/config_service_provider.py +0 -0
  136. {orionis-0.90.0/orionis/luminate/providers/commands → orionis-0.94.0/orionis/luminate/providers/environment}/__init__.py +0 -0
  137. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/providers/environment/environment__service_provider.py +0 -0
  138. {orionis-0.90.0/orionis/luminate/providers/config → orionis-0.94.0/orionis/luminate/providers/log}/__init__.py +0 -0
  139. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/providers/log/log_service_provider.py +0 -0
  140. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/providers/service_provider.py +0 -0
  141. {orionis-0.90.0/orionis/luminate/providers/environment → orionis-0.94.0/orionis/luminate/services}/__init__.py +0 -0
  142. {orionis-0.90.0/orionis/luminate/providers/log → orionis-0.94.0/orionis/luminate/services/commands}/__init__.py +0 -0
  143. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/services/commands/reactor_commands_service.py +0 -0
  144. {orionis-0.90.0/orionis/luminate/services → orionis-0.94.0/orionis/luminate/services/config}/__init__.py +0 -0
  145. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/services/config/config_service.py +0 -0
  146. {orionis-0.90.0/orionis/luminate/services/commands → orionis-0.94.0/orionis/luminate/services/environment}/__init__.py +0 -0
  147. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/services/environment/environment_service.py +0 -0
  148. {orionis-0.90.0/orionis/luminate/services/config → orionis-0.94.0/orionis/luminate/services/files}/__init__.py +0 -0
  149. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/services/files/path_resolver_service.py +0 -0
  150. {orionis-0.90.0/orionis/luminate/services/environment → orionis-0.94.0/orionis/luminate/services/log}/__init__.py +0 -0
  151. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/services/log/log_service.py +0 -0
  152. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/support/dot_dict.py +0 -0
  153. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/support/exception_to_dict.py +0 -0
  154. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/support/reflection.py +0 -0
  155. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/support/std.py +0 -0
  156. {orionis-0.90.0/orionis/luminate/services/files → orionis-0.94.0/orionis/luminate/test}/__init__.py +0 -0
  157. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/test/exception.py +0 -0
  158. {orionis-0.90.0 → orionis-0.94.0}/orionis/luminate/test/unit_test.py +0 -0
  159. {orionis-0.90.0 → orionis-0.94.0}/orionis/static/ascii/icon.ascii +0 -0
  160. {orionis-0.90.0 → orionis-0.94.0}/orionis/static/ascii/info.ascii +0 -0
  161. {orionis-0.90.0 → orionis-0.94.0}/orionis/static/bg/galaxy.jpg +0 -0
  162. {orionis-0.90.0 → orionis-0.94.0}/orionis/static/favicon/OrionisFrameworkFavicon.png +0 -0
  163. {orionis-0.90.0 → orionis-0.94.0}/orionis/static/logos/OrionisFramework.jpg +0 -0
  164. {orionis-0.90.0 → orionis-0.94.0}/orionis/static/logos/OrionisFramework.png +0 -0
  165. {orionis-0.90.0 → orionis-0.94.0}/orionis/static/logos/OrionisFramework.psd +0 -0
  166. {orionis-0.90.0 → orionis-0.94.0}/orionis/static/logos/OrionisFramework2.png +0 -0
  167. {orionis-0.90.0 → orionis-0.94.0}/orionis/static/logos/OrionisFramework3.png +0 -0
  168. {orionis-0.90.0 → orionis-0.94.0}/orionis.egg-info/dependency_links.txt +0 -0
  169. {orionis-0.90.0 → orionis-0.94.0}/orionis.egg-info/entry_points.txt +0 -0
  170. {orionis-0.90.0 → orionis-0.94.0}/orionis.egg-info/requires.txt +0 -0
  171. {orionis-0.90.0 → orionis-0.94.0}/orionis.egg-info/top_level.txt +0 -0
  172. {orionis-0.90.0 → orionis-0.94.0}/setup.cfg +0 -0
  173. {orionis-0.90.0 → orionis-0.94.0}/setup.py +0 -0
  174. {orionis-0.90.0/orionis/luminate/services/log → orionis-0.94.0/tests}/__init__.py +0 -0
  175. {orionis-0.90.0/orionis/luminate/test → orionis-0.94.0/tests/tools}/__init__.py +0 -0
  176. {orionis-0.90.0 → orionis-0.94.0}/tests/tools/class_example.py +0 -0
  177. {orionis-0.90.0 → orionis-0.94.0}/tests/tools/test_reflection.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: orionis
3
- Version: 0.90.0
3
+ Version: 0.94.0
4
4
  Summary: Orionis Framework – Elegant, Fast, and Powerful.
5
5
  Home-page: https://github.com/orionis-framework/framework
6
6
  Author: Raul Mauricio Uñate Castro
@@ -1,5 +1,5 @@
1
1
  from abc import ABC, abstractmethod
2
- from orionis.luminate.console.tasks.scheduler import Schedule
2
+ from orionis.luminate.facades.commands.scheduler_facade import Schedule
3
3
 
4
4
  class ITaskManager(ABC):
5
5
  """
@@ -0,0 +1,28 @@
1
+ from abc import ABC, abstractmethod
2
+ from typing import Any
3
+ from orionis.luminate.services.commands.scheduler_service import ScheduleService
4
+
5
+ class ISchedule(ABC):
6
+
7
+ @abstractmethod
8
+ def command(signature: str, vars: dict[str, Any] = {}, *args: Any, **kwargs: Any) -> 'ScheduleService':
9
+ """
10
+ Defines a Orionis command to be executed.
11
+
12
+ Parameters
13
+ ----------
14
+ signature : str
15
+ The signature of the command to execute.
16
+ vars : dict, optional
17
+ A dictionary of variables to pass to the command, by default an empty dictionary.
18
+ *args : Any
19
+ Additional positional arguments to pass to the command.
20
+ **kwargs : Any
21
+ Additional keyword arguments to pass to the command.
22
+
23
+ Returns
24
+ -------
25
+ Schedule
26
+ Returns the Schedule instance itself, allowing method chaining.
27
+ """
28
+ pass
@@ -3,7 +3,7 @@ from typing import Any
3
3
  from datetime import datetime
4
4
  from abc import ABC, abstractmethod
5
5
 
6
- class ISchedule(ABC):
6
+ class IScheduleService(ABC):
7
7
  """
8
8
  A class that manages the scheduling of tasks using the APScheduler.
9
9
 
@@ -5,7 +5,7 @@
5
5
  NAME = "orionis"
6
6
 
7
7
  # Current version of the framework
8
- VERSION = "0.90.0"
8
+ VERSION = "0.94.0"
9
9
 
10
10
  # Full name of the author or maintainer of the project
11
11
  AUTHOR = "Raul Mauricio Uñate Castro"
@@ -5,6 +5,7 @@ from orionis.luminate.bootstrap.command_bootstrapper import CommandsBootstrapper
5
5
  from orionis.luminate.bootstrap.environment_bootstrapper import EnvironmentBootstrapper
6
6
  from orionis.luminate.patterns.singleton import SingletonMeta
7
7
  from orionis.luminate.providers.commands.reactor_commands_service_provider import ReactorCommandsServiceProvider
8
+ from orionis.luminate.providers.commands.scheduler_provider import ScheduleServiceProvider
8
9
  from orionis.luminate.providers.environment.environment__service_provider import EnvironmentServiceProvider
9
10
  from orionis.luminate.providers.config.config_service_provider import ConfigServiceProvider
10
11
  from orionis.luminate.providers.log.log_service_provider import LogServiceProvider
@@ -265,6 +266,11 @@ class Application(metaclass=SingletonMeta):
265
266
  _log_provider.register()
266
267
  _log_provider.boot()
267
268
 
269
+ # Load the scheduler provider, which is responsible for managing scheduled tasks.
270
+ _schedule_provider = ScheduleServiceProvider(app=self.container)
271
+ _schedule_provider.register()
272
+ _schedule_provider.boot()
273
+
268
274
  # Load the commands provider, which is responsible for executing and managing CLI commands.
269
275
  # Developers can interact with it through the facade "orionis.luminate.facades.commands.commands_facade.Commands".
270
276
  _commands_provider = ReactorCommandsServiceProvider(app=self.container)
@@ -1,8 +1,8 @@
1
1
  import importlib
2
2
  from orionis.luminate.console.base.command import BaseCommand
3
3
  from orionis.luminate.console.exceptions.cli_exception import CLIOrionisRuntimeError
4
- from orionis.luminate.console.tasks.scheduler import Schedule
5
4
  from orionis.contracts.console.i_task_manager import ITaskManager
5
+ from orionis.luminate.services.commands.scheduler_service import ScheduleService
6
6
 
7
7
  class ScheduleWorkCommand(BaseCommand):
8
8
  """
@@ -18,6 +18,15 @@ class ScheduleWorkCommand(BaseCommand):
18
18
  # A brief description of the command.
19
19
  description = "Starts the scheduled tasks."
20
20
 
21
+ def __init__(self, schedule:ScheduleService) -> None:
22
+ """
23
+ Initialize a new instance of the ScheduleWorkCommand class.
24
+
25
+ Args:
26
+ schedule (ScheduleService): The schedule instance to use for scheduling tasks.
27
+ """
28
+ self.schedule = schedule
29
+
21
30
  def handle(self) -> None:
22
31
  """
23
32
  Execute the scheduled tasks.
@@ -33,17 +42,14 @@ class ScheduleWorkCommand(BaseCommand):
33
42
  """
34
43
  try:
35
44
 
36
- # Initialize a new Schedule instance.
37
- schedule = Schedule()
38
-
39
45
  # Create an instance of the TaskManager to manage the scheduling.
40
46
  tasks_manager = importlib.import_module("app.console.tasks_manager")
41
47
  TaskManager = getattr(tasks_manager, "TaskManager")
42
48
  kernel: ITaskManager = TaskManager()
43
- kernel.schedule(schedule)
49
+ kernel.schedule(self.schedule)
44
50
 
45
51
  # Start running the scheduled tasks using the schedule runner.
46
- schedule.start()
52
+ self.schedule.start()
47
53
 
48
54
  except Exception as e:
49
55
 
@@ -0,0 +1,30 @@
1
+ from typing import Any
2
+ from orionis.contracts.facades.commands.i_scheduler_facade import ISchedule
3
+ from orionis.luminate.facades.app import app
4
+ from orionis.luminate.services.commands.scheduler_service import ScheduleService
5
+
6
+ class Schedule(ISchedule):
7
+
8
+ @staticmethod
9
+ def command(signature: str, vars: dict[str, Any] = {}, *args: Any, **kwargs: Any) -> 'ScheduleService':
10
+ """
11
+ Defines a Orionis command to be executed.
12
+
13
+ Parameters
14
+ ----------
15
+ signature : str
16
+ The signature of the command to execute.
17
+ vars : dict, optional
18
+ A dictionary of variables to pass to the command, by default an empty dictionary.
19
+ *args : Any
20
+ Additional positional arguments to pass to the command.
21
+ **kwargs : Any
22
+ Additional keyword arguments to pass to the command.
23
+
24
+ Returns
25
+ -------
26
+ Schedule
27
+ Returns the Schedule instance itself, allowing method chaining.
28
+ """
29
+ _scheduler_provider : ScheduleService = app(ScheduleService)
30
+ return _scheduler_provider.command(signature, vars, *args, **kwargs)
@@ -0,0 +1,19 @@
1
+ from orionis.luminate.providers.service_provider import ServiceProvider
2
+ from orionis.luminate.services.commands.scheduler_service import ScheduleService
3
+
4
+ class ScheduleServiceProvider(ServiceProvider):
5
+
6
+ def register(self) -> None:
7
+ """
8
+ Registers services or bindings into the given container.
9
+ """
10
+ self._container_id = self.app.bind(ScheduleService)
11
+
12
+ def boot(self,) -> None:
13
+ """
14
+ Boot the service provider.
15
+
16
+ This method is intended to be overridden by subclasses to perform
17
+ any necessary bootstrapping or initialization tasks.
18
+ """
19
+ self.app.make(self._container_id)
@@ -7,11 +7,11 @@ from typing import Any
7
7
  from apscheduler.schedulers.background import BackgroundScheduler
8
8
  from apscheduler.triggers.cron import CronTrigger
9
9
  from apscheduler.triggers.interval import IntervalTrigger
10
- from orionis.contracts.console.tasks.i_schedule import ISchedule
10
+ from orionis.contracts.services.commands.i_schedule_service import IScheduleService
11
11
  from orionis.luminate.console.exceptions.cli_exception import CLIOrionisScheduleException
12
12
  from orionis.luminate.facades.commands.commands_facade import Command
13
13
 
14
- class Schedule(ISchedule):
14
+ class ScheduleService(IScheduleService):
15
15
  """
16
16
  A class that manages the scheduling of tasks using the APScheduler.
17
17
 
@@ -28,7 +28,7 @@ class Schedule(ISchedule):
28
28
  Defines a command to execute.
29
29
  """
30
30
 
31
- def __init__(self, logger_level=logging.CRITICAL):
31
+ def __init__(self, apscheduler_background : BackgroundScheduler, logger_level=logging.CRITICAL):
32
32
  """
33
33
  Initializes the Schedule object.
34
34
 
@@ -40,12 +40,12 @@ class Schedule(ISchedule):
40
40
  The logging level for the APScheduler logger. Default is `logging.CRITICAL` to suppress most logs.
41
41
  """
42
42
  logging.getLogger("apscheduler").setLevel(logger_level)
43
- self.scheduler = BackgroundScheduler()
43
+ self.scheduler = apscheduler_background
44
44
  self.scheduler.start()
45
45
  self.callback = None
46
46
  self.wait = True
47
47
 
48
- def command(self, signature: str, vars: dict[str, Any] = {}, *args: Any, **kwargs: Any) -> 'Schedule':
48
+ def command(self, signature: str, vars: dict[str, Any] = {}, *args: Any, **kwargs: Any) -> 'ScheduleService':
49
49
  """
50
50
  Defines a Orionis command to be executed.
51
51
 
@@ -604,12 +604,9 @@ class Schedule(ISchedule):
604
604
  Starts the scheduler and stops automatically when there are no more jobs.
605
605
  """
606
606
  try:
607
- # Start the scheduler
608
607
  while self.wait:
609
608
  time.sleep(1)
610
609
  except (KeyboardInterrupt, SystemExit):
611
- # Stop the scheduler if it is running
612
610
  if self.scheduler.running:
613
611
  self.scheduler.shutdown()
614
- # Exit with status code 1 to indicate an error
615
612
  sys.exit(1)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: orionis
3
- Version: 0.90.0
3
+ Version: 0.94.0
4
4
  Summary: Orionis Framework – Elegant, Fast, and Powerful.
5
5
  Home-page: https://github.com/orionis-framework/framework
6
6
  Author: Raul Mauricio Uñate Castro
@@ -28,13 +28,12 @@ orionis/contracts/console/output/__init__.py
28
28
  orionis/contracts/console/output/i_console.py
29
29
  orionis/contracts/console/output/i_executor.py
30
30
  orionis/contracts/console/output/i_progress_bar.py
31
- orionis/contracts/console/tasks/__init__.py
32
- orionis/contracts/console/tasks/i_schedule.py
33
31
  orionis/contracts/container/i_container.py
34
32
  orionis/contracts/container/i_types.py
35
33
  orionis/contracts/facades/__init__.py
36
34
  orionis/contracts/facades/commands/__init__.py
37
35
  orionis/contracts/facades/commands/i_commands_facade.py
36
+ orionis/contracts/facades/commands/i_scheduler_facade.py
38
37
  orionis/contracts/facades/config/__init__.py
39
38
  orionis/contracts/facades/config/i_config_facade.py
40
39
  orionis/contracts/facades/environment/__init__.py
@@ -54,6 +53,7 @@ orionis/contracts/providers/i_service_provider.py
54
53
  orionis/contracts/services/__init__.py
55
54
  orionis/contracts/services/commands/__init__.py
56
55
  orionis/contracts/services/commands/i_reactor_commands_service.py
56
+ orionis/contracts/services/commands/i_schedule_service.py
57
57
  orionis/contracts/services/config/__init__.py
58
58
  orionis/contracts/services/config/i_config_service.py
59
59
  orionis/contracts/services/environment/__init__.py
@@ -108,8 +108,6 @@ orionis/luminate/console/output/console.py
108
108
  orionis/luminate/console/output/executor.py
109
109
  orionis/luminate/console/output/progress_bar.py
110
110
  orionis/luminate/console/output/styles.py
111
- orionis/luminate/console/tasks/__init__.py
112
- orionis/luminate/console/tasks/scheduler.py
113
111
  orionis/luminate/container/container.py
114
112
  orionis/luminate/container/exception.py
115
113
  orionis/luminate/container/types.py
@@ -117,6 +115,7 @@ orionis/luminate/facades/__init__.py
117
115
  orionis/luminate/facades/app.py
118
116
  orionis/luminate/facades/commands/__init__.py
119
117
  orionis/luminate/facades/commands/commands_facade.py
118
+ orionis/luminate/facades/commands/scheduler_facade.py
120
119
  orionis/luminate/facades/config/__init__.py
121
120
  orionis/luminate/facades/config/config_facade.py
122
121
  orionis/luminate/facades/environment/__init__.py
@@ -133,6 +132,7 @@ orionis/luminate/providers/__init__.py
133
132
  orionis/luminate/providers/service_provider.py
134
133
  orionis/luminate/providers/commands/__init__.py
135
134
  orionis/luminate/providers/commands/reactor_commands_service_provider.py
135
+ orionis/luminate/providers/commands/scheduler_provider.py
136
136
  orionis/luminate/providers/config/__init__.py
137
137
  orionis/luminate/providers/config/config_service_provider.py
138
138
  orionis/luminate/providers/environment/__init__.py
@@ -142,6 +142,7 @@ orionis/luminate/providers/log/log_service_provider.py
142
142
  orionis/luminate/services/__init__.py
143
143
  orionis/luminate/services/commands/__init__.py
144
144
  orionis/luminate/services/commands/reactor_commands_service.py
145
+ orionis/luminate/services/commands/scheduler_service.py
145
146
  orionis/luminate/services/config/__init__.py
146
147
  orionis/luminate/services/config/config_service.py
147
148
  orionis/luminate/services/environment/__init__.py
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes