orionis 0.536.0__tar.gz → 0.537.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 (580) hide show
  1. {orionis-0.536.0/orionis.egg-info → orionis-0.537.0}/PKG-INFO +1 -1
  2. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/contracts/event.py +20 -12
  3. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/enums/event.py +7 -1
  4. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/tasks/event.py +51 -1
  5. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/tasks/schedule.py +7 -18
  6. {orionis-0.536.0 → orionis-0.537.0}/orionis/container/container.py +144 -5
  7. {orionis-0.536.0 → orionis-0.537.0}/orionis/container/contracts/container.py +52 -0
  8. {orionis-0.536.0 → orionis-0.537.0}/orionis/failure/base/handler.py +9 -9
  9. orionis-0.537.0/orionis/failure/catch.py +82 -0
  10. {orionis-0.536.0 → orionis-0.537.0}/orionis/failure/entities/throwable.py +1 -1
  11. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/application.py +2 -2
  12. {orionis-0.536.0 → orionis-0.537.0}/orionis/metadata/framework.py +1 -1
  13. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/dependencies/entities/resolve_argument.py +10 -0
  14. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/dependencies/reflection.py +7 -1
  15. {orionis-0.536.0 → orionis-0.537.0/orionis.egg-info}/PKG-INFO +1 -1
  16. orionis-0.536.0/orionis/failure/catch.py +0 -164
  17. {orionis-0.536.0 → orionis-0.537.0}/LICENCE +0 -0
  18. {orionis-0.536.0 → orionis-0.537.0}/MANIFEST.in +0 -0
  19. {orionis-0.536.0 → orionis-0.537.0}/README.md +0 -0
  20. {orionis-0.536.0 → orionis-0.537.0}/orionis/__init__.py +0 -0
  21. {orionis-0.536.0 → orionis-0.537.0}/orionis/app.py +0 -0
  22. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/__init__.py +0 -0
  23. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/args/__init__.py +0 -0
  24. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/args/argument.py +0 -0
  25. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/args/enums/__init__.py +0 -0
  26. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/args/enums/actions.py +0 -0
  27. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/base/__init__.py +0 -0
  28. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/base/command.py +0 -0
  29. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/base/scheduler.py +0 -0
  30. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/base/scheduler_event_listener.py +0 -0
  31. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/commands/__init__.py +0 -0
  32. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/commands/cache.py +0 -0
  33. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/commands/help.py +0 -0
  34. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/commands/make_listener.py +0 -0
  35. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/commands/publisher.py +0 -0
  36. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/commands/scheduler_list.py +0 -0
  37. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/commands/scheduler_work.py +0 -0
  38. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/commands/test.py +0 -0
  39. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/commands/version.py +0 -0
  40. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/commands/workflow.py +0 -0
  41. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/contracts/__init__.py +0 -0
  42. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/contracts/command.py +0 -0
  43. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/contracts/kernel.py +0 -0
  44. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/contracts/reactor.py +0 -0
  45. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/contracts/schedule.py +0 -0
  46. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/contracts/schedule_event_listener.py +0 -0
  47. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/contracts/scheduler.py +0 -0
  48. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/core/__init__.py +0 -0
  49. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/core/reactor.py +0 -0
  50. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/dumper/__init__.py +0 -0
  51. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/dumper/contracts/__init__.py +0 -0
  52. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/dumper/contracts/dump.py +0 -0
  53. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/dumper/dump.py +0 -0
  54. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/dynamic/__init__.py +0 -0
  55. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/dynamic/contracts/__init__.py +0 -0
  56. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/dynamic/contracts/progress_bar.py +0 -0
  57. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/dynamic/progress_bar.py +0 -0
  58. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/entities/__init__.py +0 -0
  59. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/entities/all_jobs_removed.py +0 -0
  60. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/entities/event_job.py +0 -0
  61. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/entities/executor_added.py +0 -0
  62. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/entities/executor_removed.py +0 -0
  63. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/entities/job_added.py +0 -0
  64. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/entities/job_error.py +0 -0
  65. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/entities/job_event_data.py +0 -0
  66. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/entities/job_executed.py +0 -0
  67. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/entities/job_max_instances.py +0 -0
  68. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/entities/job_missed.py +0 -0
  69. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/entities/job_modified.py +0 -0
  70. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/entities/job_pause.py +0 -0
  71. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/entities/job_removed.py +0 -0
  72. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/entities/job_resume.py +0 -0
  73. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/entities/job_store_added.py +0 -0
  74. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/entities/job_store_removed.py +0 -0
  75. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/entities/job_submitted.py +0 -0
  76. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/entities/request.py +0 -0
  77. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/entities/scheduler_error.py +0 -0
  78. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/entities/scheduler_event_data.py +0 -0
  79. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/entities/scheduler_paused.py +0 -0
  80. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/entities/scheduler_resumed.py +0 -0
  81. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/entities/scheduler_shutdown.py +0 -0
  82. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/entities/scheduler_started.py +0 -0
  83. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/enums/__init__.py +0 -0
  84. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/enums/command.py +0 -0
  85. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/enums/listener.py +0 -0
  86. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/exceptions/__init__.py +0 -0
  87. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/exceptions/cli_exception.py +0 -0
  88. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/exceptions/cli_orionis_value_error.py +0 -0
  89. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/exceptions/cli_runtime_error.py +0 -0
  90. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/exceptions/cli_schedule_exception.py +0 -0
  91. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/kernel.py +0 -0
  92. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/output/__init__.py +0 -0
  93. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/output/console.py +0 -0
  94. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/output/contracts/__init__.py +0 -0
  95. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/output/contracts/console.py +0 -0
  96. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/output/contracts/executor.py +0 -0
  97. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/output/enums/__init__.py +0 -0
  98. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/output/enums/styles.py +0 -0
  99. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/output/executor.py +0 -0
  100. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/request/cli_request.py +0 -0
  101. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/tasks/__init__.py +0 -0
  102. {orionis-0.536.0 → orionis-0.537.0}/orionis/console/tasks/listener.py +0 -0
  103. {orionis-0.536.0 → orionis-0.537.0}/orionis/container/__init__.py +0 -0
  104. {orionis-0.536.0 → orionis-0.537.0}/orionis/container/context/__init__.py +0 -0
  105. {orionis-0.536.0 → orionis-0.537.0}/orionis/container/context/manager.py +0 -0
  106. {orionis-0.536.0 → orionis-0.537.0}/orionis/container/context/scope.py +0 -0
  107. {orionis-0.536.0 → orionis-0.537.0}/orionis/container/contracts/__init__.py +0 -0
  108. {orionis-0.536.0 → orionis-0.537.0}/orionis/container/contracts/service_provider.py +0 -0
  109. {orionis-0.536.0 → orionis-0.537.0}/orionis/container/entities/__init__.py +0 -0
  110. {orionis-0.536.0 → orionis-0.537.0}/orionis/container/entities/binding.py +0 -0
  111. {orionis-0.536.0 → orionis-0.537.0}/orionis/container/enums/__init__.py +0 -0
  112. {orionis-0.536.0 → orionis-0.537.0}/orionis/container/enums/lifetimes.py +0 -0
  113. {orionis-0.536.0 → orionis-0.537.0}/orionis/container/exceptions/__init__.py +0 -0
  114. {orionis-0.536.0 → orionis-0.537.0}/orionis/container/exceptions/attribute.py +0 -0
  115. {orionis-0.536.0 → orionis-0.537.0}/orionis/container/exceptions/exception.py +0 -0
  116. {orionis-0.536.0 → orionis-0.537.0}/orionis/container/exceptions/type.py +0 -0
  117. {orionis-0.536.0 → orionis-0.537.0}/orionis/container/exceptions/value.py +0 -0
  118. {orionis-0.536.0 → orionis-0.537.0}/orionis/container/facades/__init__.py +0 -0
  119. {orionis-0.536.0 → orionis-0.537.0}/orionis/container/facades/facade.py +0 -0
  120. {orionis-0.536.0 → orionis-0.537.0}/orionis/container/providers/__init__.py +0 -0
  121. {orionis-0.536.0 → orionis-0.537.0}/orionis/container/providers/service_provider.py +0 -0
  122. {orionis-0.536.0 → orionis-0.537.0}/orionis/container/validators/__init__.py +0 -0
  123. {orionis-0.536.0 → orionis-0.537.0}/orionis/container/validators/implements.py +0 -0
  124. {orionis-0.536.0 → orionis-0.537.0}/orionis/container/validators/is_abstract_class.py +0 -0
  125. {orionis-0.536.0 → orionis-0.537.0}/orionis/container/validators/is_callable.py +0 -0
  126. {orionis-0.536.0 → orionis-0.537.0}/orionis/container/validators/is_concrete_class.py +0 -0
  127. {orionis-0.536.0 → orionis-0.537.0}/orionis/container/validators/is_instance.py +0 -0
  128. {orionis-0.536.0 → orionis-0.537.0}/orionis/container/validators/is_not_subclass.py +0 -0
  129. {orionis-0.536.0 → orionis-0.537.0}/orionis/container/validators/is_subclass.py +0 -0
  130. {orionis-0.536.0 → orionis-0.537.0}/orionis/container/validators/is_valid_alias.py +0 -0
  131. {orionis-0.536.0 → orionis-0.537.0}/orionis/container/validators/lifetime.py +0 -0
  132. {orionis-0.536.0 → orionis-0.537.0}/orionis/failure/__init__.py +0 -0
  133. {orionis-0.536.0 → orionis-0.537.0}/orionis/failure/base/__init__.py +0 -0
  134. {orionis-0.536.0 → orionis-0.537.0}/orionis/failure/contracts/__init__.py +0 -0
  135. {orionis-0.536.0 → orionis-0.537.0}/orionis/failure/contracts/catch.py +0 -0
  136. {orionis-0.536.0 → orionis-0.537.0}/orionis/failure/contracts/handler.py +0 -0
  137. {orionis-0.536.0 → orionis-0.537.0}/orionis/failure/entities/__init__.py +0 -0
  138. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/__init__.py +0 -0
  139. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/__init__.py +0 -0
  140. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/app/__init__.py +0 -0
  141. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/app/entities/__init__.py +0 -0
  142. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/app/entities/app.py +0 -0
  143. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/app/enums/__init__.py +0 -0
  144. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/app/enums/ciphers.py +0 -0
  145. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/app/enums/environments.py +0 -0
  146. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/auth/__init__.py +0 -0
  147. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/auth/entities/__init__.py +0 -0
  148. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/auth/entities/auth.py +0 -0
  149. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/cache/__init__.py +0 -0
  150. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/cache/entities/__init__.py +0 -0
  151. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/cache/entities/cache.py +0 -0
  152. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/cache/entities/file.py +0 -0
  153. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/cache/entities/stores.py +0 -0
  154. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/cache/enums/__init__.py +0 -0
  155. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/cache/enums/drivers.py +0 -0
  156. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/cors/__init__.py +0 -0
  157. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/cors/entities/__init__.py +0 -0
  158. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/cors/entities/cors.py +0 -0
  159. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/database/__init__.py +0 -0
  160. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/database/entities/__init__.py +0 -0
  161. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/database/entities/connections.py +0 -0
  162. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/database/entities/database.py +0 -0
  163. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/database/entities/mysql.py +0 -0
  164. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/database/entities/oracle.py +0 -0
  165. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/database/entities/pgsql.py +0 -0
  166. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/database/entities/sqlite.py +0 -0
  167. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/database/enums/__init__.py +0 -0
  168. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/database/enums/mysql_charsets.py +0 -0
  169. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/database/enums/mysql_collations.py +0 -0
  170. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/database/enums/mysql_engine.py +0 -0
  171. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/database/enums/oracle_encoding.py +0 -0
  172. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/database/enums/oracle_nencoding.py +0 -0
  173. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/database/enums/pgsql_charsets.py +0 -0
  174. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/database/enums/pgsql_collations.py +0 -0
  175. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/database/enums/pgsql_mode.py +0 -0
  176. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/database/enums/sqlite_foreign_key.py +0 -0
  177. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/database/enums/sqlite_journal.py +0 -0
  178. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/database/enums/sqlite_synchronous.py +0 -0
  179. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/filesystems/__init__.py +0 -0
  180. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/filesystems/entitites/__init__.py +0 -0
  181. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/filesystems/entitites/aws.py +0 -0
  182. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/filesystems/entitites/disks.py +0 -0
  183. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/filesystems/entitites/filesystems.py +0 -0
  184. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/filesystems/entitites/local.py +0 -0
  185. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/filesystems/entitites/public.py +0 -0
  186. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/logging/__init__.py +0 -0
  187. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/logging/entities/__init__.py +0 -0
  188. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/logging/entities/channels.py +0 -0
  189. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/logging/entities/chunked.py +0 -0
  190. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/logging/entities/daily.py +0 -0
  191. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/logging/entities/hourly.py +0 -0
  192. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/logging/entities/logging.py +0 -0
  193. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/logging/entities/monthly.py +0 -0
  194. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/logging/entities/stack.py +0 -0
  195. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/logging/entities/weekly.py +0 -0
  196. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/logging/enums/__init__.py +0 -0
  197. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/logging/enums/levels.py +0 -0
  198. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/logging/validators/__init__.py +0 -0
  199. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/logging/validators/level.py +0 -0
  200. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/logging/validators/path.py +0 -0
  201. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/mail/__init__.py +0 -0
  202. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/mail/entities/__init__.py +0 -0
  203. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/mail/entities/file.py +0 -0
  204. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/mail/entities/mail.py +0 -0
  205. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/mail/entities/mailers.py +0 -0
  206. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/mail/entities/smtp.py +0 -0
  207. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/queue/__init__.py +0 -0
  208. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/queue/entities/__init__.py +0 -0
  209. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/queue/entities/brokers.py +0 -0
  210. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/queue/entities/database.py +0 -0
  211. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/queue/entities/queue.py +0 -0
  212. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/queue/enums/__init__.py +0 -0
  213. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/queue/enums/strategy.py +0 -0
  214. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/roots/__init__.py +0 -0
  215. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/roots/paths.py +0 -0
  216. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/session/__init__.py +0 -0
  217. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/session/entities/__init__.py +0 -0
  218. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/session/entities/session.py +0 -0
  219. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/session/enums/__init__.py +0 -0
  220. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/session/enums/same_site_policy.py +0 -0
  221. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/session/helpers/__init__.py +0 -0
  222. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/session/helpers/secret_key.py +0 -0
  223. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/startup.py +0 -0
  224. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/testing/__init__.py +0 -0
  225. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/testing/entities/__init__.py +0 -0
  226. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/testing/entities/testing.py +0 -0
  227. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/testing/enums/__init__.py +0 -0
  228. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/testing/enums/drivers.py +0 -0
  229. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/testing/enums/mode.py +0 -0
  230. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/config/testing/enums/verbosity.py +0 -0
  231. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/contracts/__init__.py +0 -0
  232. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/contracts/application.py +0 -0
  233. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/contracts/config.py +0 -0
  234. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/exceptions/__init__.py +0 -0
  235. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/exceptions/integrity.py +0 -0
  236. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/exceptions/runtime.py +0 -0
  237. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/exceptions/type.py +0 -0
  238. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/exceptions/value.py +0 -0
  239. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/providers/__init__.py +0 -0
  240. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/providers/catch_provider.py +0 -0
  241. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/providers/console_provider.py +0 -0
  242. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/providers/directory_provider.py +0 -0
  243. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/providers/dumper_provider.py +0 -0
  244. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/providers/executor_provider.py +0 -0
  245. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/providers/inspirational_provider.py +0 -0
  246. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/providers/logger_provider.py +0 -0
  247. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/providers/performance_counter_provider.py +0 -0
  248. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/providers/progress_bar_provider.py +0 -0
  249. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/providers/reactor_provider.py +0 -0
  250. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/providers/scheduler_provider.py +0 -0
  251. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/providers/testing_provider.py +0 -0
  252. {orionis-0.536.0 → orionis-0.537.0}/orionis/foundation/providers/workers_provider.py +0 -0
  253. {orionis-0.536.0 → orionis-0.537.0}/orionis/metadata/__init__.py +0 -0
  254. {orionis-0.536.0 → orionis-0.537.0}/orionis/metadata/package.py +0 -0
  255. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/__init__.py +0 -0
  256. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/asynchrony/__init__.py +0 -0
  257. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/asynchrony/contracts/__init__.py +0 -0
  258. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/asynchrony/contracts/coroutines.py +0 -0
  259. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/asynchrony/coroutines.py +0 -0
  260. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/asynchrony/exceptions/__init__.py +0 -0
  261. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/asynchrony/exceptions/exception.py +0 -0
  262. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/environment/__init__.py +0 -0
  263. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/environment/contracts/__init__.py +0 -0
  264. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/environment/contracts/caster.py +0 -0
  265. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/environment/contracts/env.py +0 -0
  266. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/environment/core/__init__.py +0 -0
  267. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/environment/core/dot_env.py +0 -0
  268. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/environment/dynamic/__init__.py +0 -0
  269. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/environment/dynamic/caster.py +0 -0
  270. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/environment/enums/__init__.py +0 -0
  271. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/environment/enums/value_type.py +0 -0
  272. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/environment/env.py +0 -0
  273. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/environment/exceptions/__init__.py +0 -0
  274. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/environment/exceptions/exception.py +0 -0
  275. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/environment/exceptions/value.py +0 -0
  276. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/environment/helpers/__init__.py +0 -0
  277. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/environment/helpers/functions.py +0 -0
  278. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/environment/key/__init__.py +0 -0
  279. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/environment/key/key_generator.py +0 -0
  280. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/environment/validators/__init__.py +0 -0
  281. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/environment/validators/key_name.py +0 -0
  282. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/environment/validators/types.py +0 -0
  283. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/file/__init__.py +0 -0
  284. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/file/contracts/__init__.py +0 -0
  285. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/file/contracts/directory.py +0 -0
  286. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/file/directory.py +0 -0
  287. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/inspirational/__init__.py +0 -0
  288. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/inspirational/contracts/__init__.py +0 -0
  289. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/inspirational/contracts/inspire.py +0 -0
  290. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/inspirational/inspire.py +0 -0
  291. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/inspirational/quotes.py +0 -0
  292. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/__init__.py +0 -0
  293. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/abstract/__init__.py +0 -0
  294. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/abstract/contracts/__init__.py +0 -0
  295. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/abstract/contracts/reflection.py +0 -0
  296. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/abstract/reflection.py +0 -0
  297. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/callables/__init__.py +0 -0
  298. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/callables/contracts/__init__.py +0 -0
  299. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/callables/contracts/reflection.py +0 -0
  300. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/callables/reflection.py +0 -0
  301. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/concretes/__init__.py +0 -0
  302. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/concretes/contracts/__init__.py +0 -0
  303. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/concretes/contracts/reflection.py +0 -0
  304. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/concretes/reflection.py +0 -0
  305. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/dataclass/__init__.py +0 -0
  306. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/dataclass/attributes.py +0 -0
  307. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/dependencies/__init__.py +0 -0
  308. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/dependencies/contracts/__init__.py +0 -0
  309. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/dependencies/contracts/reflection.py +0 -0
  310. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/dependencies/entities/__init__.py +0 -0
  311. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/dependencies/entities/argument.py +0 -0
  312. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/exceptions/__init__.py +0 -0
  313. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/exceptions/attribute.py +0 -0
  314. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/exceptions/type.py +0 -0
  315. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/exceptions/value.py +0 -0
  316. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/instances/__init__.py +0 -0
  317. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/instances/contracts/__init__.py +0 -0
  318. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/instances/contracts/reflection.py +0 -0
  319. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/instances/reflection.py +0 -0
  320. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/modules/__init__.py +0 -0
  321. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/modules/contracts/__init__.py +0 -0
  322. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/modules/contracts/reflection.py +0 -0
  323. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/modules/reflection.py +0 -0
  324. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/objects/__init__.py +0 -0
  325. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/objects/types.py +0 -0
  326. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/introspection/reflection.py +0 -0
  327. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/log/__init__.py +0 -0
  328. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/log/contracts/__init__.py +0 -0
  329. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/log/contracts/log_service.py +0 -0
  330. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/log/exceptions/__init__.py +0 -0
  331. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/log/exceptions/runtime.py +0 -0
  332. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/log/handlers/__init__.py +0 -0
  333. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/log/handlers/filename.py +0 -0
  334. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/log/handlers/size_rotating.py +0 -0
  335. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/log/handlers/timed_rotating.py +0 -0
  336. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/log/log_service.py +0 -0
  337. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/system/__init__.py +0 -0
  338. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/system/contracts/__init__.py +0 -0
  339. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/system/contracts/imports.py +0 -0
  340. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/system/contracts/workers.py +0 -0
  341. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/system/imports.py +0 -0
  342. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/system/runtime/__init__.py +0 -0
  343. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/system/runtime/imports.py +0 -0
  344. {orionis-0.536.0 → orionis-0.537.0}/orionis/services/system/workers.py +0 -0
  345. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/__init__.py +0 -0
  346. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/entities/__init__.py +0 -0
  347. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/entities/base.py +0 -0
  348. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/facades/__init__.py +0 -0
  349. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/facades/application.py +0 -0
  350. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/facades/console.py +0 -0
  351. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/facades/dumper.py +0 -0
  352. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/facades/executor.py +0 -0
  353. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/facades/inspire.py +0 -0
  354. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/facades/logger.py +0 -0
  355. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/facades/performance_counter.py +0 -0
  356. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/facades/progress_bar.py +0 -0
  357. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/facades/reactor.py +0 -0
  358. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/facades/testing.py +0 -0
  359. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/facades/workers.py +0 -0
  360. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/formatter/__init__.py +0 -0
  361. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/formatter/exceptions/__init__.py +0 -0
  362. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/formatter/exceptions/contracts/__init__.py +0 -0
  363. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/formatter/exceptions/contracts/parser.py +0 -0
  364. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/formatter/exceptions/parser.py +0 -0
  365. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/formatter/serializer.py +0 -0
  366. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/patterns/__init__.py +0 -0
  367. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/patterns/singleton/__init__.py +0 -0
  368. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/patterns/singleton/meta.py +0 -0
  369. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/performance/__init__.py +0 -0
  370. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/performance/contracts/__init__.py +0 -0
  371. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/performance/contracts/counter.py +0 -0
  372. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/performance/counter.py +0 -0
  373. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/standard/__init__.py +0 -0
  374. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/standard/contracts/__init__.py +0 -0
  375. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/standard/contracts/std.py +0 -0
  376. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/standard/exceptions/__init__.py +0 -0
  377. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/standard/exceptions/value.py +0 -0
  378. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/standard/std.py +0 -0
  379. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/wrapper/__init__.py +0 -0
  380. {orionis-0.536.0 → orionis-0.537.0}/orionis/support/wrapper/dot_dict.py +0 -0
  381. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/__init__.py +0 -0
  382. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/cases/__init__.py +0 -0
  383. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/cases/asynchronous.py +0 -0
  384. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/cases/synchronous.py +0 -0
  385. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/contracts/__init__.py +0 -0
  386. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/contracts/dumper.py +0 -0
  387. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/contracts/kernel.py +0 -0
  388. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/contracts/logs.py +0 -0
  389. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/contracts/printer.py +0 -0
  390. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/contracts/render.py +0 -0
  391. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/contracts/test_result.py +0 -0
  392. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/contracts/unit_test.py +0 -0
  393. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/core/__init__.py +0 -0
  394. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/core/unit_test.py +0 -0
  395. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/entities/__init__.py +0 -0
  396. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/entities/result.py +0 -0
  397. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/enums/__init__.py +0 -0
  398. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/enums/status.py +0 -0
  399. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/exceptions/__init__.py +0 -0
  400. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/exceptions/config.py +0 -0
  401. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/exceptions/failure.py +0 -0
  402. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/exceptions/persistence.py +0 -0
  403. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/exceptions/runtime.py +0 -0
  404. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/exceptions/value.py +0 -0
  405. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/kernel.py +0 -0
  406. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/output/__init__.py +0 -0
  407. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/output/dumper.py +0 -0
  408. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/output/printer.py +0 -0
  409. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/records/__init__.py +0 -0
  410. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/records/logs.py +0 -0
  411. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/validators/__init__.py +0 -0
  412. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/validators/base_path.py +0 -0
  413. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/validators/execution_mode.py +0 -0
  414. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/validators/fail_fast.py +0 -0
  415. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/validators/folder_path.py +0 -0
  416. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/validators/module_name.py +0 -0
  417. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/validators/name_pattern.py +0 -0
  418. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/validators/pattern.py +0 -0
  419. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/validators/persistent.py +0 -0
  420. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/validators/persistent_driver.py +0 -0
  421. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/validators/print_result.py +0 -0
  422. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/validators/tags.py +0 -0
  423. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/validators/throw_exception.py +0 -0
  424. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/validators/verbosity.py +0 -0
  425. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/validators/web_report.py +0 -0
  426. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/validators/workers.py +0 -0
  427. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/view/__init__.py +0 -0
  428. {orionis-0.536.0 → orionis-0.537.0}/orionis/test/view/render.py +0 -0
  429. {orionis-0.536.0 → orionis-0.537.0}/orionis.egg-info/SOURCES.txt +0 -0
  430. {orionis-0.536.0 → orionis-0.537.0}/orionis.egg-info/dependency_links.txt +0 -0
  431. {orionis-0.536.0 → orionis-0.537.0}/orionis.egg-info/requires.txt +0 -0
  432. {orionis-0.536.0 → orionis-0.537.0}/orionis.egg-info/top_level.txt +0 -0
  433. {orionis-0.536.0 → orionis-0.537.0}/orionis.egg-info/zip-safe +0 -0
  434. {orionis-0.536.0 → orionis-0.537.0}/setup.cfg +0 -0
  435. {orionis-0.536.0 → orionis-0.537.0}/setup.py +0 -0
  436. {orionis-0.536.0 → orionis-0.537.0}/tests/container/__init__.py +0 -0
  437. {orionis-0.536.0 → orionis-0.537.0}/tests/container/context/__init__.py +0 -0
  438. {orionis-0.536.0 → orionis-0.537.0}/tests/container/context/test_manager.py +0 -0
  439. {orionis-0.536.0 → orionis-0.537.0}/tests/container/context/test_scope.py +0 -0
  440. {orionis-0.536.0 → orionis-0.537.0}/tests/container/core/__init__.py +0 -0
  441. {orionis-0.536.0 → orionis-0.537.0}/tests/container/core/test_advanced_async.py +0 -0
  442. {orionis-0.536.0 → orionis-0.537.0}/tests/container/core/test_async_optimizations.py +0 -0
  443. {orionis-0.536.0 → orionis-0.537.0}/tests/container/core/test_container.py +0 -0
  444. {orionis-0.536.0 → orionis-0.537.0}/tests/container/core/test_singleton.py +0 -0
  445. {orionis-0.536.0 → orionis-0.537.0}/tests/container/core/test_thread_safety.py +0 -0
  446. {orionis-0.536.0 → orionis-0.537.0}/tests/container/entities/__init__.py +0 -0
  447. {orionis-0.536.0 → orionis-0.537.0}/tests/container/entities/test_binding.py +0 -0
  448. {orionis-0.536.0 → orionis-0.537.0}/tests/container/enums/__init__.py +0 -0
  449. {orionis-0.536.0 → orionis-0.537.0}/tests/container/enums/test_lifetimes.py +0 -0
  450. {orionis-0.536.0 → orionis-0.537.0}/tests/container/facades/__init__.py +0 -0
  451. {orionis-0.536.0 → orionis-0.537.0}/tests/container/facades/test_facade.py +0 -0
  452. {orionis-0.536.0 → orionis-0.537.0}/tests/container/mocks/__init__.py +0 -0
  453. {orionis-0.536.0 → orionis-0.537.0}/tests/container/mocks/mock_advanced_async.py +0 -0
  454. {orionis-0.536.0 → orionis-0.537.0}/tests/container/mocks/mock_async_optimizations.py +0 -0
  455. {orionis-0.536.0 → orionis-0.537.0}/tests/container/mocks/mock_auto_resolution.py +0 -0
  456. {orionis-0.536.0 → orionis-0.537.0}/tests/container/mocks/mock_complex_classes.py +0 -0
  457. {orionis-0.536.0 → orionis-0.537.0}/tests/container/mocks/mock_simple_classes.py +0 -0
  458. {orionis-0.536.0 → orionis-0.537.0}/tests/container/providers/__init__.py +0 -0
  459. {orionis-0.536.0 → orionis-0.537.0}/tests/container/providers/test_providers.py +0 -0
  460. {orionis-0.536.0 → orionis-0.537.0}/tests/container/validators/__init__.py +0 -0
  461. {orionis-0.536.0 → orionis-0.537.0}/tests/container/validators/test_implements.py +0 -0
  462. {orionis-0.536.0 → orionis-0.537.0}/tests/container/validators/test_is_abstract_class.py +0 -0
  463. {orionis-0.536.0 → orionis-0.537.0}/tests/container/validators/test_is_callable.py +0 -0
  464. {orionis-0.536.0 → orionis-0.537.0}/tests/container/validators/test_is_concrete_class.py +0 -0
  465. {orionis-0.536.0 → orionis-0.537.0}/tests/container/validators/test_is_instance.py +0 -0
  466. {orionis-0.536.0 → orionis-0.537.0}/tests/container/validators/test_is_not_subclass.py +0 -0
  467. {orionis-0.536.0 → orionis-0.537.0}/tests/container/validators/test_is_subclass.py +0 -0
  468. {orionis-0.536.0 → orionis-0.537.0}/tests/container/validators/test_is_valid_alias.py +0 -0
  469. {orionis-0.536.0 → orionis-0.537.0}/tests/container/validators/test_lifetime.py +0 -0
  470. {orionis-0.536.0 → orionis-0.537.0}/tests/example/__init__.py +0 -0
  471. {orionis-0.536.0 → orionis-0.537.0}/tests/example/test_example.py +0 -0
  472. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/__init__.py +0 -0
  473. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/__init__.py +0 -0
  474. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/app/__init__.py +0 -0
  475. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/app/test_foundation_config_app.py +0 -0
  476. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/auth/__init__.py +0 -0
  477. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/auth/test_foundation_config_auth.py +0 -0
  478. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/cache/__init__.py +0 -0
  479. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/cache/test_foundation_config_cache.py +0 -0
  480. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/cache/test_foundation_config_cache_file.py +0 -0
  481. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/cache/test_foundation_config_cache_stores.py +0 -0
  482. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/cors/__init__.py +0 -0
  483. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/cors/test_foundation_config_cors.py +0 -0
  484. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/database/__init__.py +0 -0
  485. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/database/test_foundation_config_database.py +0 -0
  486. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/database/test_foundation_config_database_connections.py +0 -0
  487. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/database/test_foundation_config_database_mysql.py +0 -0
  488. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/database/test_foundation_config_database_oracle.py +0 -0
  489. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/database/test_foundation_config_database_pgsql.py +0 -0
  490. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/database/test_foundation_config_database_sqlite.py +0 -0
  491. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/filesystems/__init__.py +0 -0
  492. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems.py +0 -0
  493. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_aws.py +0 -0
  494. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_disks.py +0 -0
  495. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_local.py +0 -0
  496. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_public.py +0 -0
  497. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/logging/__init__.py +0 -0
  498. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/logging/test_foundation_config_logging.py +0 -0
  499. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/logging/test_foundation_config_logging_channels.py +0 -0
  500. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/logging/test_foundation_config_logging_chunked.py +0 -0
  501. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/logging/test_foundation_config_logging_daily.py +0 -0
  502. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/logging/test_foundation_config_logging_hourly.py +0 -0
  503. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/logging/test_foundation_config_logging_monthly.py +0 -0
  504. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/logging/test_foundation_config_logging_stack.py +0 -0
  505. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/logging/test_foundation_config_logging_weekly.py +0 -0
  506. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/mail/__init__.py +0 -0
  507. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/mail/test_foundation_config_mail.py +0 -0
  508. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/mail/test_foundation_config_mail_file.py +0 -0
  509. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/mail/test_foundation_config_mail_mailers.py +0 -0
  510. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/mail/test_foundation_config_mail_smtp.py +0 -0
  511. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/queue/__init__.py +0 -0
  512. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/queue/test_foundation_config_queue.py +0 -0
  513. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/queue/test_foundation_config_queue_brokers.py +0 -0
  514. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/queue/test_foundation_config_queue_database.py +0 -0
  515. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/root/__init__.py +0 -0
  516. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/root/test_foundation_config_root_paths.py +0 -0
  517. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/session/__init__.py +0 -0
  518. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/session/test_foundation_config_session.py +0 -0
  519. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/startup/__init__.py +0 -0
  520. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/startup/test_foundation_config_startup.py +0 -0
  521. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/testing/__init__.py +0 -0
  522. {orionis-0.536.0 → orionis-0.537.0}/tests/foundation/config/testing/test_foundation_config_testing.py +0 -0
  523. {orionis-0.536.0 → orionis-0.537.0}/tests/metadata/__init__.py +0 -0
  524. {orionis-0.536.0 → orionis-0.537.0}/tests/metadata/test_metadata_framework.py +0 -0
  525. {orionis-0.536.0 → orionis-0.537.0}/tests/metadata/test_metadata_package.py +0 -0
  526. {orionis-0.536.0 → orionis-0.537.0}/tests/services/__init__.py +0 -0
  527. {orionis-0.536.0 → orionis-0.537.0}/tests/services/asynchrony/__init__.py +0 -0
  528. {orionis-0.536.0 → orionis-0.537.0}/tests/services/asynchrony/test_services_asynchrony_coroutine.py +0 -0
  529. {orionis-0.536.0 → orionis-0.537.0}/tests/services/environment/__init__.py +0 -0
  530. {orionis-0.536.0 → orionis-0.537.0}/tests/services/environment/test_services_environment.py +0 -0
  531. {orionis-0.536.0 → orionis-0.537.0}/tests/services/introspection/__init__.py +0 -0
  532. {orionis-0.536.0 → orionis-0.537.0}/tests/services/introspection/dependencies/__init__.py +0 -0
  533. {orionis-0.536.0 → orionis-0.537.0}/tests/services/introspection/dependencies/mocks/__init__.py +0 -0
  534. {orionis-0.536.0 → orionis-0.537.0}/tests/services/introspection/dependencies/mocks/mock_user.py +0 -0
  535. {orionis-0.536.0 → orionis-0.537.0}/tests/services/introspection/dependencies/mocks/mock_user_controller.py +0 -0
  536. {orionis-0.536.0 → orionis-0.537.0}/tests/services/introspection/dependencies/mocks/mock_users_permissions.py +0 -0
  537. {orionis-0.536.0 → orionis-0.537.0}/tests/services/introspection/dependencies/test_reflect_dependencies.py +0 -0
  538. {orionis-0.536.0 → orionis-0.537.0}/tests/services/introspection/reflection/__init__.py +0 -0
  539. {orionis-0.536.0 → orionis-0.537.0}/tests/services/introspection/reflection/mock/__init__.py +0 -0
  540. {orionis-0.536.0 → orionis-0.537.0}/tests/services/introspection/reflection/mock/fake_reflect_instance.py +0 -0
  541. {orionis-0.536.0 → orionis-0.537.0}/tests/services/introspection/reflection/test_reflection_abstract.py +0 -0
  542. {orionis-0.536.0 → orionis-0.537.0}/tests/services/introspection/reflection/test_reflection_callable.py +0 -0
  543. {orionis-0.536.0 → orionis-0.537.0}/tests/services/introspection/reflection/test_reflection_concrete.py +0 -0
  544. {orionis-0.536.0 → orionis-0.537.0}/tests/services/introspection/reflection/test_reflection_instance.py +0 -0
  545. {orionis-0.536.0 → orionis-0.537.0}/tests/services/introspection/reflection/test_reflection_module.py +0 -0
  546. {orionis-0.536.0 → orionis-0.537.0}/tests/services/introspection/test_reflection.py +0 -0
  547. {orionis-0.536.0 → orionis-0.537.0}/tests/services/log/__init__.py +0 -0
  548. {orionis-0.536.0 → orionis-0.537.0}/tests/services/log/test_log.py +0 -0
  549. {orionis-0.536.0 → orionis-0.537.0}/tests/services/system/__init__.py +0 -0
  550. {orionis-0.536.0 → orionis-0.537.0}/tests/services/system/test_services_system_imports.py +0 -0
  551. {orionis-0.536.0 → orionis-0.537.0}/tests/services/system/test_services_system_workers.py +0 -0
  552. {orionis-0.536.0 → orionis-0.537.0}/tests/support/__init__.py +0 -0
  553. {orionis-0.536.0 → orionis-0.537.0}/tests/support/entities/__init__.py +0 -0
  554. {orionis-0.536.0 → orionis-0.537.0}/tests/support/entities/mock_dataclass.py +0 -0
  555. {orionis-0.536.0 → orionis-0.537.0}/tests/support/entities/test_base.py +0 -0
  556. {orionis-0.536.0 → orionis-0.537.0}/tests/support/patterns/__init__.py +0 -0
  557. {orionis-0.536.0 → orionis-0.537.0}/tests/support/patterns/singleton/__init__.py +0 -0
  558. {orionis-0.536.0 → orionis-0.537.0}/tests/support/patterns/singleton/test_patterns_singleton.py +0 -0
  559. {orionis-0.536.0 → orionis-0.537.0}/tests/support/standard/__init__.py +0 -0
  560. {orionis-0.536.0 → orionis-0.537.0}/tests/support/standard/test_services_std.py +0 -0
  561. {orionis-0.536.0 → orionis-0.537.0}/tests/support/wrapper/__init__.py +0 -0
  562. {orionis-0.536.0 → orionis-0.537.0}/tests/support/wrapper/test_services_wrapper_docdict.py +0 -0
  563. {orionis-0.536.0 → orionis-0.537.0}/tests/testing/__init__.py +0 -0
  564. {orionis-0.536.0 → orionis-0.537.0}/tests/testing/cases/__init__.py +0 -0
  565. {orionis-0.536.0 → orionis-0.537.0}/tests/testing/cases/test_testing_asynchronous.py +0 -0
  566. {orionis-0.536.0 → orionis-0.537.0}/tests/testing/cases/test_testing_synchronous.py +0 -0
  567. {orionis-0.536.0 → orionis-0.537.0}/tests/testing/entities/__init__.py +0 -0
  568. {orionis-0.536.0 → orionis-0.537.0}/tests/testing/entities/test_testing_result.py +0 -0
  569. {orionis-0.536.0 → orionis-0.537.0}/tests/testing/enums/__init__.py +0 -0
  570. {orionis-0.536.0 → orionis-0.537.0}/tests/testing/enums/test_testing_status.py +0 -0
  571. {orionis-0.536.0 → orionis-0.537.0}/tests/testing/output/__init__.py +0 -0
  572. {orionis-0.536.0 → orionis-0.537.0}/tests/testing/output/test_testing_dumper.py +0 -0
  573. {orionis-0.536.0 → orionis-0.537.0}/tests/testing/output/test_testing_printer.py +0 -0
  574. {orionis-0.536.0 → orionis-0.537.0}/tests/testing/records/__init__.py +0 -0
  575. {orionis-0.536.0 → orionis-0.537.0}/tests/testing/records/test_testing_records.py +0 -0
  576. {orionis-0.536.0 → orionis-0.537.0}/tests/testing/test_testing_unit.py +0 -0
  577. {orionis-0.536.0 → orionis-0.537.0}/tests/testing/validators/__init__.py +0 -0
  578. {orionis-0.536.0 → orionis-0.537.0}/tests/testing/validators/test_testing_validators.py +0 -0
  579. {orionis-0.536.0 → orionis-0.537.0}/tests/testing/view/__init__.py +0 -0
  580. {orionis-0.536.0 → orionis-0.537.0}/tests/testing/view/test_render.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: orionis
3
- Version: 0.536.0
3
+ Version: 0.537.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
@@ -5,24 +5,32 @@ from orionis.console.enums.event import Event as EventEntity
5
5
 
6
6
  class IEvent(ABC):
7
7
 
8
- @abstractmethod
9
- def toEntity(
10
- self
11
- ) -> EventEntity:
8
+ def misfireGraceTime(
9
+ self,
10
+ seconds: int = 60
11
+ ) -> 'IEvent':
12
12
  """
13
- Retrieve the event details as an EventEntity instance.
13
+ Set the misfire grace time for the event.
14
14
 
15
- This method gathers all relevant attributes of the current Event object,
16
- such as its signature, arguments, purpose, random delay, start and end dates,
17
- and trigger, and returns them encapsulated in an EventEntity object.
15
+ This method allows you to specify a grace period (in seconds) during which
16
+ a missed execution of the event can still be executed. If the event is not
17
+ executed within this time frame after its scheduled time, it will be skipped.
18
+
19
+ Parameters
20
+ ----------
21
+ seconds : int
22
+ The number of seconds to allow for a misfire grace period. Must be a positive integer.
18
23
 
19
24
  Returns
20
25
  -------
21
- EventEntity
22
- An EventEntity instance containing the event's signature, arguments,
23
- purpose, random delay, start date, end date, and trigger.
26
+ Event
27
+ Returns the current instance of the Event to allow method chaining.
28
+
29
+ Raises
30
+ ------
31
+ CLIOrionisValueError
32
+ If the provided seconds is not a positive integer.
24
33
  """
25
- pass
26
34
 
27
35
  @abstractmethod
28
36
  def purpose(
@@ -60,4 +60,10 @@ class Event:
60
60
  details: Optional[str] = None
61
61
 
62
62
  # Optional listener that implements IScheduleEventListener
63
- listener: Optional[IScheduleEventListener] = None
63
+ listener: Optional[IScheduleEventListener] = None
64
+
65
+ # Maximum number of concurrent instances allowed for the event
66
+ max_instances: int = 1
67
+
68
+ # Grace time in seconds for misfired events
69
+ misfire_grace_time : Optional[int] = None
@@ -77,6 +77,9 @@ class Event(IEvent):
77
77
  # Initialize the maximum instances attribute as None
78
78
  self.__max_instances: Optional[int] = None
79
79
 
80
+ # Initialize the misfire grace time attribute as None
81
+ self.__misfire_grace_time: Optional[int] = None
82
+
80
83
  def toEntity(
81
84
  self
82
85
  ) -> EventEntity:
@@ -128,6 +131,14 @@ class Event(IEvent):
128
131
  if self.__listener is not None and not issubclass(self.__listener, IScheduleEventListener):
129
132
  raise CLIOrionisValueError("Listener must implement IScheduleEventListener interface or be None.")
130
133
 
134
+ # Validate that max_instances is a positive integer if it is set
135
+ if self.__max_instances is not None and (not isinstance(self.__max_instances, int) or self.__max_instances <= 0):
136
+ raise CLIOrionisValueError("Max instances must be a positive integer or None.")
137
+
138
+ # Validate that misfire_grace_time is a positive integer if it is set
139
+ if self.__misfire_grace_time is not None and (not isinstance(self.__misfire_grace_time, int) or self.__misfire_grace_time <= 0):
140
+ raise CLIOrionisValueError("Misfire grace time must be a positive integer or None.")
141
+
131
142
  # Construct and return an EventEntity with the current event's attributes
132
143
  return EventEntity(
133
144
  signature=self.__signature,
@@ -138,9 +149,48 @@ class Event(IEvent):
138
149
  end_date=self.__end_date,
139
150
  trigger=self.__trigger,
140
151
  details=self.__details,
141
- listener=self.__listener
152
+ listener=self.__listener,
153
+ max_instances=self.__max_instances,
154
+ misfire_grace_time=self.__misfire_grace_time
142
155
  )
143
156
 
157
+ def misfireGraceTime(
158
+ self,
159
+ seconds: int = 60
160
+ ) -> 'Event':
161
+ """
162
+ Set the misfire grace time for the event.
163
+
164
+ This method allows you to specify a grace period (in seconds) during which
165
+ a missed execution of the event can still be executed. If the event is not
166
+ executed within this time frame after its scheduled time, it will be skipped.
167
+
168
+ Parameters
169
+ ----------
170
+ seconds : int
171
+ The number of seconds to allow for a misfire grace period. Must be a positive integer.
172
+
173
+ Returns
174
+ -------
175
+ Event
176
+ Returns the current instance of the Event to allow method chaining.
177
+
178
+ Raises
179
+ ------
180
+ CLIOrionisValueError
181
+ If the provided seconds is not a positive integer.
182
+ """
183
+
184
+ # Validate that the seconds parameter is a positive integer
185
+ if not isinstance(seconds, int) or seconds <= 0:
186
+ raise CLIOrionisValueError("Misfire grace time must be a positive integer.")
187
+
188
+ # Set the internal misfire grace time attribute
189
+ self.__misfire_grace_time = seconds
190
+
191
+ # Return self to support method chaining
192
+ return self
193
+
144
194
  def purpose(
145
195
  self,
146
196
  purpose: str
@@ -482,8 +482,8 @@ class Schedule(ISchedule):
482
482
  # Invoke the listener, handling both coroutine and regular functions
483
483
  try:
484
484
 
485
- # Use Coroutine to handle both sync and async listeners
486
- Coroutine(listener).invoke(event_data, self)
485
+ # Execute coroutine listeners using container's invoke method
486
+ self.__app.invoke(listener, event_data, self)
487
487
 
488
488
  except BaseException as e:
489
489
 
@@ -550,26 +550,13 @@ class Schedule(ISchedule):
550
550
 
551
551
  # Initialize the listener if it's a class
552
552
  if isinstance(listener, type):
553
- listener = listener()
553
+ listener = self.__app.make(listener)
554
554
 
555
555
  # Check if the listener has a method corresponding to the event type
556
556
  if hasattr(listener, scheduler_event) and callable(getattr(listener, scheduler_event)):
557
557
 
558
- # Retrieve the method from the listener
559
- listener_method = getattr(listener, scheduler_event)
560
-
561
558
  # Invoke the listener method, handling both coroutine and regular functions
562
- try:
563
-
564
- # Use Coroutine to handle both sync and async listener methods
565
- Coroutine(listener_method).invoke(event_data, self)
566
-
567
- except Exception as e:
568
-
569
- # Construct and log error message
570
- error_msg = f"An error occurred while invoking the listener_method for event '{scheduler_event}': {str(e)}"
571
- self.__logger.error(error_msg)
572
- raise CLIOrionisRuntimeError(error_msg) from e
559
+ self.__app.call(listener, scheduler_event, event_data, self)
573
560
 
574
561
  else:
575
562
 
@@ -944,7 +931,9 @@ class Schedule(ISchedule):
944
931
  trigger=entity.trigger,
945
932
  id=signature,
946
933
  name=signature,
947
- replace_existing=True
934
+ replace_existing=True,
935
+ max_instances=entity.max_instances,
936
+ misfire_grace_time=entity.misfire_grace_time
948
937
  )
949
938
 
950
939
  # If a listener is associated with the event, register it
@@ -17,6 +17,8 @@ from orionis.services.introspection.callables.reflection import ReflectionCallab
17
17
  from orionis.services.introspection.concretes.reflection import ReflectionConcrete
18
18
  from orionis.services.introspection.dependencies.entities.argument import Argument
19
19
  from orionis.services.introspection.dependencies.entities.resolve_argument import ResolveArguments
20
+ from orionis.services.introspection.dependencies.reflection import ReflectDependencies
21
+ from orionis.services.introspection.instances.reflection import ReflectionInstance
20
22
 
21
23
  class Container(IContainer):
22
24
 
@@ -206,9 +208,72 @@ class Container(IContainer):
206
208
 
207
209
  try:
208
210
 
209
- # Check if the callable is a coroutine function
210
- result = fn(*args, **kwargs)
211
- return self.__handleSyncAsyncResult(result)
211
+ # Count the total number of provided arguments
212
+ total_provided_args = len(args) + len(kwargs)
213
+
214
+ # Inspect the callable to determine its signature and parameters
215
+ dependencies = ReflectDependencies(fn).getCallableDependencies()
216
+ total_dependencies = len(dependencies.resolved) + len(dependencies.unresolved)
217
+
218
+ # If the callable does not require any dependencies, invoke directly
219
+ if total_dependencies == 0:
220
+ result = fn(*args, **kwargs)
221
+ return self.__handleSyncAsyncResult(result)
222
+
223
+ # If enough arguments are provided, invoke directly
224
+ if total_provided_args >= total_dependencies:
225
+ result = fn(*args, **kwargs)
226
+ return self.__handleSyncAsyncResult(result)
227
+
228
+ # If not enough arguments are provided, attempt to resolve missing dependencies
229
+ if total_provided_args < total_dependencies:
230
+
231
+ # New lists to hold the final arguments to pass to the callable
232
+ n_args = []
233
+ n_kwargs = {}
234
+
235
+ # Iterate through the function's required arguments in order
236
+ args_index = 0
237
+
238
+ # Iterate over all dependencies in the order they were defined
239
+ for name, dep in dependencies.ordered.items():
240
+
241
+ # Check if the argument was provided positionally and hasn't been used yet
242
+ if args_index < len(args) and name not in kwargs:
243
+
244
+ # Add the positional argument to the new list
245
+ n_args.append(args[args_index])
246
+
247
+ # Move to the next positional argument
248
+ args_index += 1
249
+
250
+ # Check if the argument was provided as a keyword argument
251
+ elif name in kwargs:
252
+
253
+ # Add the keyword argument to the new dictionary
254
+ n_kwargs[name] = kwargs[name]
255
+
256
+ # Remove the argument from the original kwargs to avoid duplication
257
+ del kwargs[name]
258
+
259
+ # If not provided, attempt to resolve it from the container
260
+ else:
261
+
262
+ n_kwargs[name] = self.__resolveSingleDependency(
263
+ getattr(fn, '__name__', str(fn)),
264
+ name,
265
+ dep
266
+ )
267
+
268
+ # Add any remaining positional arguments that weren't mapped to specific parameters
269
+ n_args.extend(args[args_index:])
270
+
271
+ # Add any remaining keyword arguments that weren't processed
272
+ n_kwargs.update(kwargs)
273
+
274
+ # Invoke the function with the resolved arguments
275
+ result = fn(*n_args, **n_kwargs)
276
+ return self.__handleSyncAsyncResult(result)
212
277
 
213
278
  except TypeError as e:
214
279
 
@@ -219,8 +284,9 @@ class Container(IContainer):
219
284
 
220
285
  # Raise a more informative exception with the function name and signature
221
286
  raise OrionisContainerException(
222
- f"Failed to invoke function [{function_name}] with the provided arguments: {e}\n"
223
- f"Expected function signature: [{signature}]"
287
+ f"Failed to invoke function [{function_name}] with the provided arguments: {e}. "
288
+ f"Note that this may include a reference to the same 'self' object.\n"
289
+ f"Expected function signature: {function_name}{signature}"
224
290
  ) from e
225
291
 
226
292
  def transient(
@@ -2360,6 +2426,79 @@ class Container(IContainer):
2360
2426
  f"Method '{method_name}' not found or not callable on instance '{type(instance).__name__}'."
2361
2427
  )
2362
2428
 
2429
+ def invoke(
2430
+ self,
2431
+ fn: Callable,
2432
+ *args,
2433
+ **kwargs
2434
+ ) -> Any:
2435
+ """
2436
+ Invokes a callable with automatic dependency injection and sync/async handling.
2437
+
2438
+ Parameters
2439
+ ----------
2440
+ fn : Callable
2441
+ The callable to invoke.
2442
+ *args : tuple
2443
+ Positional arguments to pass to the callable.
2444
+ **kwargs : dict
2445
+ Keyword arguments to pass to the callable.
2446
+
2447
+ Returns
2448
+ -------
2449
+ Any
2450
+ The result of the callable invocation.
2451
+ """
2452
+
2453
+ # Validate that fn is indeed callable
2454
+ if not callable(fn):
2455
+ raise OrionisContainerException(
2456
+ f"Provided fn '{getattr(fn, '__name__', str(fn))}' is not callable."
2457
+ )
2458
+
2459
+ # Execute the callable with appropriate handling
2460
+ return self.__executeMethod(fn, *args, **kwargs)
2461
+
2462
+ async def invokeAsync(
2463
+ self,
2464
+ fn: Callable,
2465
+ *args,
2466
+ **kwargs
2467
+ ) -> Any:
2468
+ """
2469
+ Async version of invoke for when you're in an async context and need to await the result.
2470
+
2471
+ Parameters
2472
+ ----------
2473
+ fn : Callable
2474
+ The callable to invoke.
2475
+ *args : tuple
2476
+ Positional arguments to pass to the callable.
2477
+ **kwargs : dict
2478
+ Keyword arguments to pass to the callable.
2479
+
2480
+ Returns
2481
+ -------
2482
+ Any
2483
+ The result of the callable invocation, properly awaited if async.
2484
+ """
2485
+
2486
+ # Validate that fn is indeed callable
2487
+ if not callable(fn):
2488
+ raise OrionisContainerException(
2489
+ f"Provided fn '{getattr(fn, '__name__', str(fn))}' is not callable."
2490
+ )
2491
+
2492
+ # Execute the callable with appropriate handling
2493
+ result = self.__executeMethod(fn, *args, **kwargs)
2494
+
2495
+ # If the result is a coroutine, await it
2496
+ if asyncio.iscoroutine(result):
2497
+ return await result
2498
+
2499
+ # Otherwise, return the result directly
2500
+ return result
2501
+
2363
2502
  def __executeMethod(
2364
2503
  self,
2365
2504
  method: Callable,
@@ -449,3 +449,55 @@ class IContainer(ABC):
449
449
  The result of the method call, properly awaited if async.
450
450
  """
451
451
  pass
452
+
453
+ @abstractmethod
454
+ def invoke(
455
+ self,
456
+ fn: Callable,
457
+ *args,
458
+ **kwargs
459
+ ) -> Any:
460
+ """
461
+ Invokes a callable with automatic dependency injection and sync/async handling.
462
+
463
+ Parameters
464
+ ----------
465
+ fn : Callable
466
+ The callable to invoke.
467
+ *args : tuple
468
+ Positional arguments to pass to the callable.
469
+ **kwargs : dict
470
+ Keyword arguments to pass to the callable.
471
+
472
+ Returns
473
+ -------
474
+ Any
475
+ The result of the callable invocation.
476
+ """
477
+ pass
478
+
479
+ @abstractmethod
480
+ async def invokeAsync(
481
+ self,
482
+ fn: Callable,
483
+ *args,
484
+ **kwargs
485
+ ) -> Any:
486
+ """
487
+ Async version of invoke for when you're in an async context and need to await the result.
488
+
489
+ Parameters
490
+ ----------
491
+ fn : Callable
492
+ The callable to invoke.
493
+ *args : tuple
494
+ Positional arguments to pass to the callable.
495
+ **kwargs : dict
496
+ Keyword arguments to pass to the callable.
497
+
498
+ Returns
499
+ -------
500
+ Any
501
+ The result of the callable invocation, properly awaited if async.
502
+ """
503
+ pass
@@ -13,7 +13,7 @@ class BaseExceptionHandler(IBaseExceptionHandler):
13
13
  # Example: OrionisContainerException
14
14
  ]
15
15
 
16
- async def destructureException(self, e: BaseException) -> Throwable:
16
+ async def destructureException(self, exception: BaseException) -> Throwable:
17
17
  """
18
18
  Converts an exception into a structured `Throwable` object containing detailed information.
19
19
 
@@ -35,13 +35,13 @@ class BaseExceptionHandler(IBaseExceptionHandler):
35
35
 
36
36
  # Create and return a Throwable object with detailed exception information
37
37
  return Throwable(
38
- classtype=type(e), # The class/type of the exception
39
- message=str(e), # The exception message as a string
40
- args=e.args, # The arguments passed to the exception
41
- traceback=getattr(e, '__traceback__', None) # The traceback object, if available
38
+ classtype=type(exception), # The class/type of the exception
39
+ message=str(exception), # The exception message as a string
40
+ args=exception.args, # The arguments passed to the exception
41
+ traceback=getattr(exception, '__traceback__', None) # The traceback object, if available
42
42
  )
43
43
 
44
- async def shouldIgnoreException(self, e: BaseException) -> bool:
44
+ async def shouldIgnoreException(self, exception: BaseException) -> bool:
45
45
  """
46
46
  Determines if the exception should be ignored (not handled) by the handler.
47
47
 
@@ -57,11 +57,11 @@ class BaseExceptionHandler(IBaseExceptionHandler):
57
57
  """
58
58
 
59
59
  # Ensure the provided object is an exception
60
- if not isinstance(e, BaseException):
61
- raise TypeError(f"Expected BaseException, got {type(e).__name__}")
60
+ if not isinstance(exception, BaseException):
61
+ raise TypeError(f"Expected BaseException, got {type(exception).__name__}")
62
62
 
63
63
  # Convert the exception into a structured Throwable object
64
- throwable = await self.destructureException(e)
64
+ throwable = await self.destructureException(exception)
65
65
 
66
66
  # Check if the exception type is in the list of exceptions to ignore
67
67
  return hasattr(self, 'dont_catch') and throwable.classtype in self.dont_catch
@@ -0,0 +1,82 @@
1
+ from typing import Any
2
+ from orionis.console.kernel import KernelCLI
3
+ from orionis.console.tasks.schedule import Schedule
4
+ from orionis.failure.contracts.catch import ICatch
5
+ from orionis.failure.contracts.handler import IBaseExceptionHandler
6
+ from orionis.foundation.contracts.application import IApplication
7
+
8
+ class Catch(ICatch):
9
+
10
+ def __init__(self, app: IApplication) -> None:
11
+ """
12
+ Initializes the Catch handler with application services for console output and logging.
13
+
14
+ Parameters
15
+ ----------
16
+ app : IApplication
17
+ The application instance used to resolve required services.
18
+
19
+ Attributes
20
+ ----------
21
+ console : IConsole
22
+ Console output service obtained from the application for displaying messages and exceptions.
23
+ logger : ILogger
24
+ Logger service obtained from the application for logging errors and exceptions.
25
+
26
+ Returns
27
+ -------
28
+ None
29
+ This constructor does not return any value.
30
+
31
+ Notes
32
+ -----
33
+ The constructor retrieves the console and logger services from the application container
34
+ using their respective service keys. These services are used throughout the class for
35
+ error reporting and output.
36
+ """
37
+
38
+ # Store the application instance
39
+ self.__app: IApplication = app
40
+
41
+ # Retrieve the console output service from the application container
42
+ self.__exception_handler: IBaseExceptionHandler = app.getExceptionHandler()
43
+
44
+ def exception(self, kernel: Any, request: Any, e: BaseException) -> None:
45
+ """
46
+ Handles and reports exceptions that occur during CLI execution.
47
+
48
+ This method reports the provided exception using the application's exception handler and logger.
49
+ If a kernel instance is provided, it also renders the exception details to the CLI for user visibility.
50
+
51
+ Parameters
52
+ ----------
53
+ kernel : Any
54
+ The kernel instance associated with the CLI, or None if not available.
55
+ request : Any
56
+ The request or arguments associated with the CLI command.
57
+ e : BaseException
58
+ The exception instance to be handled.
59
+
60
+ Returns
61
+ -------
62
+ None
63
+ This method does not return any value. It performs side effects such as logging and output.
64
+
65
+ Notes
66
+ -----
67
+ The exception is always reported using the exception handler and logger.
68
+ If a valid kernel is provided, the exception details are rendered to the CLI.
69
+ """
70
+
71
+ # If there is no exception handler, return early
72
+ if self.__app.call(self.__exception_handler, 'shouldIgnoreException', exception=e):
73
+ return
74
+
75
+ # Report the exception using the exception handler and logger
76
+ self.__app.call(self.__exception_handler, 'report', exception=e)
77
+
78
+ # Check if the kernel is of type `KernelCLI` or `Any`
79
+ if isinstance(kernel, KernelCLI) or isinstance(kernel, Schedule):
80
+
81
+ # Render the exception details to the CLI using the exception handler
82
+ self.__app.call(self.__exception_handler, 'renderCLI', request=request, exception=e)
@@ -1,6 +1,6 @@
1
1
  from dataclasses import dataclass
2
2
 
3
- @dataclass(kw_only=True)
3
+ @dataclass(kw_only=True, frozen=True)
4
4
  class Throwable:
5
5
  """
6
6
  Represents a throwable entity (such as an exception or error) within the framework.
@@ -469,10 +469,10 @@ class Application(Container, IApplication):
469
469
  if self.__exception_handler is None:
470
470
 
471
471
  # Return the default exception handler instance
472
- return BaseExceptionHandler()
472
+ return self.make(BaseExceptionHandler)
473
473
 
474
474
  # Instantiate and return the registered exception handler
475
- return self.__exception_handler()
475
+ return self.make(self.__exception_handler)
476
476
 
477
477
  def setScheduler(
478
478
  self,
@@ -5,7 +5,7 @@
5
5
  NAME = "orionis"
6
6
 
7
7
  # Current version of the framework
8
- VERSION = "0.536.0"
8
+ VERSION = "0.537.0"
9
9
 
10
10
  # Full name of the author or maintainer of the project
11
11
  AUTHOR = "Raul Mauricio Uñate Castro"
@@ -43,6 +43,9 @@ class ResolveArguments(BaseEntity):
43
43
  # Unresolved dependencies as a dictionary of names to Argument instances
44
44
  unresolved: Dict[str, Argument]
45
45
 
46
+ # All dependencies in the order they were defined
47
+ ordered: Dict[str, Argument]
48
+
46
49
  def __post_init__(self):
47
50
  """
48
51
  Validates the types and contents of the resolved and unresolved attributes.
@@ -79,4 +82,11 @@ class ResolveArguments(BaseEntity):
79
82
  if not isinstance(self.unresolved, dict):
80
83
  raise ReflectionTypeError(
81
84
  f"'unresolved' must be a dict, got {type(self.unresolved).__name__}"
85
+ )
86
+
87
+ # Validate that the 'ordered' attribute is a dictionary type
88
+ # This ensures that all dependencies maintain the same structure as resolved ones
89
+ if not isinstance(self.ordered, dict):
90
+ raise ReflectionTypeError(
91
+ f"'ordered' must be a dict, got {type(self.ordered).__name__}"
82
92
  )
@@ -121,6 +121,7 @@ class ReflectDependencies(IReflectDependencies):
121
121
  # Initialize dictionaries to store categorized dependencies
122
122
  resolved_dependencies: Dict[str, Argument] = {}
123
123
  unresolved_dependencies: Dict[str, Argument] = {}
124
+ ordered_dependencies: Dict[str, Argument] = {}
124
125
 
125
126
  # Iterate through all parameters in the signature
126
127
  for param_name, param in signature.parameters.items():
@@ -140,6 +141,7 @@ class ReflectDependencies(IReflectDependencies):
140
141
  type=Any,
141
142
  full_class_path=None,
142
143
  )
144
+ ordered_dependencies[param_name] = unresolved_dependencies[param_name]
143
145
  continue
144
146
 
145
147
  # Case 2: Parameters with default values
@@ -153,6 +155,7 @@ class ReflectDependencies(IReflectDependencies):
153
155
  full_class_path=f"{type(param.default).__module__}.{type(param.default).__name__}",
154
156
  default=param.default
155
157
  )
158
+ ordered_dependencies[param_name] = resolved_dependencies[param_name]
156
159
  continue
157
160
 
158
161
  # Case 3: Parameters with type annotations
@@ -168,6 +171,7 @@ class ReflectDependencies(IReflectDependencies):
168
171
  type=param.annotation,
169
172
  full_class_path=f"{param.annotation.__module__}.{param.annotation.__name__}"
170
173
  )
174
+ ordered_dependencies[param_name] = unresolved_dependencies[param_name]
171
175
  else:
172
176
  # Non-builtin types with annotations are considered resolved
173
177
  # as they can be instantiated by the dependency injection system
@@ -178,12 +182,14 @@ class ReflectDependencies(IReflectDependencies):
178
182
  type=param.annotation,
179
183
  full_class_path=f"{param.annotation.__module__}.{param.annotation.__name__}"
180
184
  )
185
+ ordered_dependencies[param_name] = resolved_dependencies[param_name]
181
186
  continue
182
187
 
183
188
  # Return the categorized dependencies
184
189
  return ResolveArguments(
185
190
  resolved=resolved_dependencies,
186
- unresolved=unresolved_dependencies
191
+ unresolved=unresolved_dependencies,
192
+ ordered=ordered_dependencies
187
193
  )
188
194
 
189
195
  def getConstructorDependencies(self) -> ResolveArguments:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: orionis
3
- Version: 0.536.0
3
+ Version: 0.537.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