orionis 0.613.0__tar.gz → 0.615.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 (446) hide show
  1. {orionis-0.613.0/orionis.egg-info → orionis-0.615.0}/PKG-INFO +1 -1
  2. orionis-0.615.0/orionis/container/providers/service_provider.py +72 -0
  3. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/application.py +100 -61
  4. orionis-0.615.0/orionis/foundation/exceptions/application.py +58 -0
  5. orionis-0.615.0/orionis/foundation/providers/catch_provider.py +28 -0
  6. orionis-0.615.0/orionis/foundation/providers/cli_request_provider.py +29 -0
  7. orionis-0.615.0/orionis/foundation/providers/console_provider.py +31 -0
  8. orionis-0.615.0/orionis/foundation/providers/directory_provider.py +29 -0
  9. orionis-0.615.0/orionis/foundation/providers/dumper_provider.py +29 -0
  10. orionis-0.615.0/orionis/foundation/providers/executor_provider.py +31 -0
  11. orionis-0.615.0/orionis/foundation/providers/inspirational_provider.py +28 -0
  12. orionis-0.615.0/orionis/foundation/providers/logger_provider.py +36 -0
  13. orionis-0.615.0/orionis/foundation/providers/performance_counter_provider.py +38 -0
  14. orionis-0.615.0/orionis/foundation/providers/progress_bar_provider.py +30 -0
  15. orionis-0.615.0/orionis/foundation/providers/reactor_provider.py +37 -0
  16. orionis-0.615.0/orionis/foundation/providers/scheduler_provider.py +29 -0
  17. orionis-0.615.0/orionis/foundation/providers/testing_provider.py +31 -0
  18. orionis-0.615.0/orionis/foundation/providers/workers_provider.py +39 -0
  19. {orionis-0.613.0 → orionis-0.615.0}/orionis/metadata/framework.py +1 -1
  20. orionis-0.615.0/orionis/support/facades/application.py +22 -0
  21. orionis-0.615.0/orionis/support/facades/console.py +23 -0
  22. orionis-0.615.0/orionis/support/facades/directory.py +23 -0
  23. orionis-0.615.0/orionis/support/facades/dumper.py +22 -0
  24. orionis-0.615.0/orionis/support/facades/executor.py +24 -0
  25. orionis-0.615.0/orionis/support/facades/inspire.py +23 -0
  26. orionis-0.615.0/orionis/support/facades/logger.py +24 -0
  27. orionis-0.615.0/orionis/support/facades/performance_counter.py +23 -0
  28. orionis-0.615.0/orionis/support/facades/progress_bar.py +24 -0
  29. orionis-0.615.0/orionis/support/facades/reactor.py +23 -0
  30. orionis-0.615.0/orionis/support/facades/testing.py +22 -0
  31. orionis-0.615.0/orionis/support/facades/workers.py +22 -0
  32. {orionis-0.613.0 → orionis-0.615.0/orionis.egg-info}/PKG-INFO +1 -1
  33. {orionis-0.613.0 → orionis-0.615.0}/orionis.egg-info/SOURCES.txt +0 -1
  34. orionis-0.613.0/orionis/container/providers/service_provider.py +0 -50
  35. orionis-0.613.0/orionis/foundation/contracts/config.py +0 -31
  36. orionis-0.613.0/orionis/foundation/exceptions/application.py +0 -11
  37. orionis-0.613.0/orionis/foundation/providers/catch_provider.py +0 -49
  38. orionis-0.613.0/orionis/foundation/providers/cli_request_provider.py +0 -44
  39. orionis-0.613.0/orionis/foundation/providers/console_provider.py +0 -65
  40. orionis-0.613.0/orionis/foundation/providers/directory_provider.py +0 -55
  41. orionis-0.613.0/orionis/foundation/providers/dumper_provider.py +0 -79
  42. orionis-0.613.0/orionis/foundation/providers/executor_provider.py +0 -80
  43. orionis-0.613.0/orionis/foundation/providers/inspirational_provider.py +0 -81
  44. orionis-0.613.0/orionis/foundation/providers/logger_provider.py +0 -79
  45. orionis-0.613.0/orionis/foundation/providers/performance_counter_provider.py +0 -64
  46. orionis-0.613.0/orionis/foundation/providers/progress_bar_provider.py +0 -85
  47. orionis-0.613.0/orionis/foundation/providers/reactor_provider.py +0 -88
  48. orionis-0.613.0/orionis/foundation/providers/scheduler_provider.py +0 -51
  49. orionis-0.613.0/orionis/foundation/providers/testing_provider.py +0 -77
  50. orionis-0.613.0/orionis/foundation/providers/workers_provider.py +0 -98
  51. orionis-0.613.0/orionis/support/facades/application.py +0 -24
  52. orionis-0.613.0/orionis/support/facades/console.py +0 -24
  53. orionis-0.613.0/orionis/support/facades/directory.py +0 -22
  54. orionis-0.613.0/orionis/support/facades/dumper.py +0 -23
  55. orionis-0.613.0/orionis/support/facades/executor.py +0 -25
  56. orionis-0.613.0/orionis/support/facades/inspire.py +0 -24
  57. orionis-0.613.0/orionis/support/facades/logger.py +0 -24
  58. orionis-0.613.0/orionis/support/facades/performance_counter.py +0 -22
  59. orionis-0.613.0/orionis/support/facades/progress_bar.py +0 -22
  60. orionis-0.613.0/orionis/support/facades/reactor.py +0 -23
  61. orionis-0.613.0/orionis/support/facades/testing.py +0 -23
  62. orionis-0.613.0/orionis/support/facades/workers.py +0 -22
  63. {orionis-0.613.0 → orionis-0.615.0}/LICENCE +0 -0
  64. {orionis-0.613.0 → orionis-0.615.0}/MANIFEST.in +0 -0
  65. {orionis-0.613.0 → orionis-0.615.0}/README.md +0 -0
  66. {orionis-0.613.0 → orionis-0.615.0}/orionis/__init__.py +0 -0
  67. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/__init__.py +0 -0
  68. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/args/__init__.py +0 -0
  69. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/args/argument.py +0 -0
  70. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/base/__init__.py +0 -0
  71. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/base/command.py +0 -0
  72. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/base/scheduler.py +0 -0
  73. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/base/scheduler_event_listener.py +0 -0
  74. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/commands/__init__.py +0 -0
  75. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/commands/cache.py +0 -0
  76. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/commands/help.py +0 -0
  77. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/commands/make_listener.py +0 -0
  78. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/commands/publisher.py +0 -0
  79. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/commands/scheduler_list.py +0 -0
  80. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/commands/scheduler_work.py +0 -0
  81. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/commands/test.py +0 -0
  82. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/commands/version.py +0 -0
  83. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/commands/workflow.py +0 -0
  84. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/contracts/__init__.py +0 -0
  85. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/contracts/base_command.py +0 -0
  86. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/contracts/base_scheduler.py +0 -0
  87. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/contracts/cli_request.py +0 -0
  88. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/contracts/command.py +0 -0
  89. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/contracts/console.py +0 -0
  90. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/contracts/debug.py +0 -0
  91. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/contracts/event.py +0 -0
  92. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/contracts/executor.py +0 -0
  93. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/contracts/kernel.py +0 -0
  94. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/contracts/progress_bar.py +0 -0
  95. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/contracts/reactor.py +0 -0
  96. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/contracts/schedule.py +0 -0
  97. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/contracts/schedule_event_listener.py +0 -0
  98. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/core/__init__.py +0 -0
  99. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/core/reactor.py +0 -0
  100. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/dumper/__init__.py +0 -0
  101. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/dumper/debug.py +0 -0
  102. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/dynamic/__init__.py +0 -0
  103. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/dynamic/progress_bar.py +0 -0
  104. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/entities/__init__.py +0 -0
  105. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/entities/command.py +0 -0
  106. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/entities/event.py +0 -0
  107. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/entities/event_job.py +0 -0
  108. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/entities/scheduler_error.py +0 -0
  109. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/entities/scheduler_event_data.py +0 -0
  110. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/entities/scheduler_paused.py +0 -0
  111. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/entities/scheduler_resumed.py +0 -0
  112. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/entities/scheduler_shutdown.py +0 -0
  113. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/entities/scheduler_started.py +0 -0
  114. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/enums/__init__.py +0 -0
  115. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/enums/actions.py +0 -0
  116. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/enums/listener.py +0 -0
  117. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/enums/styles.py +0 -0
  118. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/exceptions/__init__.py +0 -0
  119. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/exceptions/cli_exceptions.py +0 -0
  120. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/fluent/__init__.py +0 -0
  121. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/fluent/command.py +0 -0
  122. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/fluent/event.py +0 -0
  123. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/kernel.py +0 -0
  124. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/output/__init__.py +0 -0
  125. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/output/console.py +0 -0
  126. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/output/executor.py +0 -0
  127. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/request/__init__.py +0 -0
  128. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/request/cli_request.py +0 -0
  129. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/stub/command.stub +0 -0
  130. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/stub/listener.stub +0 -0
  131. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/tasks/__init__.py +0 -0
  132. {orionis-0.613.0 → orionis-0.615.0}/orionis/console/tasks/schedule.py +0 -0
  133. {orionis-0.613.0 → orionis-0.615.0}/orionis/container/__init__.py +0 -0
  134. {orionis-0.613.0 → orionis-0.615.0}/orionis/container/container.py +0 -0
  135. {orionis-0.613.0 → orionis-0.615.0}/orionis/container/context/__init__.py +0 -0
  136. {orionis-0.613.0 → orionis-0.615.0}/orionis/container/context/manager.py +0 -0
  137. {orionis-0.613.0 → orionis-0.615.0}/orionis/container/context/scope.py +0 -0
  138. {orionis-0.613.0 → orionis-0.615.0}/orionis/container/contracts/__init__.py +0 -0
  139. {orionis-0.613.0 → orionis-0.615.0}/orionis/container/contracts/container.py +0 -0
  140. {orionis-0.613.0 → orionis-0.615.0}/orionis/container/contracts/service_provider.py +0 -0
  141. {orionis-0.613.0 → orionis-0.615.0}/orionis/container/entities/__init__.py +0 -0
  142. {orionis-0.613.0 → orionis-0.615.0}/orionis/container/entities/binding.py +0 -0
  143. {orionis-0.613.0 → orionis-0.615.0}/orionis/container/enums/__init__.py +0 -0
  144. {orionis-0.613.0 → orionis-0.615.0}/orionis/container/enums/lifetimes.py +0 -0
  145. {orionis-0.613.0 → orionis-0.615.0}/orionis/container/exceptions/__init__.py +0 -0
  146. {orionis-0.613.0 → orionis-0.615.0}/orionis/container/exceptions/container.py +0 -0
  147. {orionis-0.613.0 → orionis-0.615.0}/orionis/container/facades/__init__.py +0 -0
  148. {orionis-0.613.0 → orionis-0.615.0}/orionis/container/facades/facade.py +0 -0
  149. {orionis-0.613.0 → orionis-0.615.0}/orionis/container/providers/__init__.py +0 -0
  150. {orionis-0.613.0 → orionis-0.615.0}/orionis/container/validators/__init__.py +0 -0
  151. {orionis-0.613.0 → orionis-0.615.0}/orionis/container/validators/implements.py +0 -0
  152. {orionis-0.613.0 → orionis-0.615.0}/orionis/container/validators/is_abstract_class.py +0 -0
  153. {orionis-0.613.0 → orionis-0.615.0}/orionis/container/validators/is_callable.py +0 -0
  154. {orionis-0.613.0 → orionis-0.615.0}/orionis/container/validators/is_concrete_class.py +0 -0
  155. {orionis-0.613.0 → orionis-0.615.0}/orionis/container/validators/is_instance.py +0 -0
  156. {orionis-0.613.0 → orionis-0.615.0}/orionis/container/validators/is_not_subclass.py +0 -0
  157. {orionis-0.613.0 → orionis-0.615.0}/orionis/container/validators/is_subclass.py +0 -0
  158. {orionis-0.613.0 → orionis-0.615.0}/orionis/container/validators/is_valid_alias.py +0 -0
  159. {orionis-0.613.0 → orionis-0.615.0}/orionis/container/validators/lifetime.py +0 -0
  160. {orionis-0.613.0 → orionis-0.615.0}/orionis/failure/__init__.py +0 -0
  161. {orionis-0.613.0 → orionis-0.615.0}/orionis/failure/base/__init__.py +0 -0
  162. {orionis-0.613.0 → orionis-0.615.0}/orionis/failure/base/handler.py +0 -0
  163. {orionis-0.613.0 → orionis-0.615.0}/orionis/failure/catch.py +0 -0
  164. {orionis-0.613.0 → orionis-0.615.0}/orionis/failure/contracts/__init__.py +0 -0
  165. {orionis-0.613.0 → orionis-0.615.0}/orionis/failure/contracts/catch.py +0 -0
  166. {orionis-0.613.0 → orionis-0.615.0}/orionis/failure/contracts/handler.py +0 -0
  167. {orionis-0.613.0 → orionis-0.615.0}/orionis/failure/entities/__init__.py +0 -0
  168. {orionis-0.613.0 → orionis-0.615.0}/orionis/failure/entities/throwable.py +0 -0
  169. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/__init__.py +0 -0
  170. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/__init__.py +0 -0
  171. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/app/__init__.py +0 -0
  172. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/app/entities/__init__.py +0 -0
  173. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/app/entities/app.py +0 -0
  174. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/app/enums/__init__.py +0 -0
  175. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/app/enums/ciphers.py +0 -0
  176. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/app/enums/environments.py +0 -0
  177. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/auth/__init__.py +0 -0
  178. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/auth/entities/__init__.py +0 -0
  179. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/auth/entities/auth.py +0 -0
  180. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/cache/__init__.py +0 -0
  181. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/cache/entities/__init__.py +0 -0
  182. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/cache/entities/cache.py +0 -0
  183. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/cache/entities/file.py +0 -0
  184. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/cache/entities/stores.py +0 -0
  185. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/cache/enums/__init__.py +0 -0
  186. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/cache/enums/drivers.py +0 -0
  187. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/cors/__init__.py +0 -0
  188. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/cors/entities/__init__.py +0 -0
  189. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/cors/entities/cors.py +0 -0
  190. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/database/__init__.py +0 -0
  191. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/database/entities/__init__.py +0 -0
  192. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/database/entities/connections.py +0 -0
  193. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/database/entities/database.py +0 -0
  194. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/database/entities/mysql.py +0 -0
  195. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/database/entities/oracle.py +0 -0
  196. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/database/entities/pgsql.py +0 -0
  197. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/database/entities/sqlite.py +0 -0
  198. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/database/enums/__init__.py +0 -0
  199. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/database/enums/mysql_charsets.py +0 -0
  200. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/database/enums/mysql_collations.py +0 -0
  201. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/database/enums/mysql_engine.py +0 -0
  202. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/database/enums/oracle_encoding.py +0 -0
  203. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/database/enums/oracle_nencoding.py +0 -0
  204. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/database/enums/pgsql_charsets.py +0 -0
  205. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/database/enums/pgsql_collations.py +0 -0
  206. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/database/enums/pgsql_mode.py +0 -0
  207. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/database/enums/sqlite_foreign_key.py +0 -0
  208. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/database/enums/sqlite_journal.py +0 -0
  209. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/database/enums/sqlite_synchronous.py +0 -0
  210. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/filesystems/__init__.py +0 -0
  211. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/filesystems/entitites/__init__.py +0 -0
  212. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/filesystems/entitites/aws.py +0 -0
  213. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/filesystems/entitites/disks.py +0 -0
  214. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/filesystems/entitites/filesystems.py +0 -0
  215. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/filesystems/entitites/local.py +0 -0
  216. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/filesystems/entitites/public.py +0 -0
  217. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/logging/__init__.py +0 -0
  218. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/logging/entities/__init__.py +0 -0
  219. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/logging/entities/channels.py +0 -0
  220. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/logging/entities/chunked.py +0 -0
  221. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/logging/entities/daily.py +0 -0
  222. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/logging/entities/hourly.py +0 -0
  223. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/logging/entities/logging.py +0 -0
  224. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/logging/entities/monthly.py +0 -0
  225. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/logging/entities/stack.py +0 -0
  226. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/logging/entities/weekly.py +0 -0
  227. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/logging/enums/__init__.py +0 -0
  228. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/logging/enums/levels.py +0 -0
  229. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/logging/validators/__init__.py +0 -0
  230. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/logging/validators/level.py +0 -0
  231. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/logging/validators/path.py +0 -0
  232. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/mail/__init__.py +0 -0
  233. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/mail/entities/__init__.py +0 -0
  234. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/mail/entities/file.py +0 -0
  235. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/mail/entities/mail.py +0 -0
  236. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/mail/entities/mailers.py +0 -0
  237. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/mail/entities/smtp.py +0 -0
  238. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/queue/__init__.py +0 -0
  239. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/queue/entities/__init__.py +0 -0
  240. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/queue/entities/brokers.py +0 -0
  241. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/queue/entities/database.py +0 -0
  242. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/queue/entities/queue.py +0 -0
  243. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/queue/enums/__init__.py +0 -0
  244. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/queue/enums/strategy.py +0 -0
  245. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/roots/__init__.py +0 -0
  246. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/roots/paths.py +0 -0
  247. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/session/__init__.py +0 -0
  248. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/session/entities/__init__.py +0 -0
  249. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/session/entities/session.py +0 -0
  250. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/session/enums/__init__.py +0 -0
  251. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/session/enums/same_site_policy.py +0 -0
  252. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/session/helpers/__init__.py +0 -0
  253. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/session/helpers/secret_key.py +0 -0
  254. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/startup.py +0 -0
  255. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/testing/__init__.py +0 -0
  256. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/testing/entities/__init__.py +0 -0
  257. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/testing/entities/testing.py +0 -0
  258. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/testing/enums/__init__.py +0 -0
  259. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/testing/enums/drivers.py +0 -0
  260. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/testing/enums/mode.py +0 -0
  261. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/config/testing/enums/verbosity.py +0 -0
  262. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/contracts/__init__.py +0 -0
  263. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/contracts/application.py +0 -0
  264. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/exceptions/__init__.py +0 -0
  265. {orionis-0.613.0 → orionis-0.615.0}/orionis/foundation/providers/__init__.py +0 -0
  266. {orionis-0.613.0 → orionis-0.615.0}/orionis/metadata/__init__.py +0 -0
  267. {orionis-0.613.0 → orionis-0.615.0}/orionis/metadata/package.py +0 -0
  268. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/__init__.py +0 -0
  269. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/asynchrony/__init__.py +0 -0
  270. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/asynchrony/contracts/__init__.py +0 -0
  271. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/asynchrony/contracts/coroutines.py +0 -0
  272. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/asynchrony/coroutines.py +0 -0
  273. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/asynchrony/exceptions/__init__.py +0 -0
  274. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/asynchrony/exceptions/asynchrony.py +0 -0
  275. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/encrypter/encrypter.py +0 -0
  276. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/environment/__init__.py +0 -0
  277. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/environment/contracts/__init__.py +0 -0
  278. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/environment/contracts/caster.py +0 -0
  279. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/environment/contracts/env.py +0 -0
  280. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/environment/core/__init__.py +0 -0
  281. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/environment/core/dot_env.py +0 -0
  282. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/environment/dynamic/__init__.py +0 -0
  283. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/environment/dynamic/caster.py +0 -0
  284. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/environment/enums/__init__.py +0 -0
  285. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/environment/enums/value_type.py +0 -0
  286. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/environment/env.py +0 -0
  287. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/environment/exceptions/__init__.py +0 -0
  288. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/environment/exceptions/environment.py +0 -0
  289. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/environment/helpers/__init__.py +0 -0
  290. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/environment/helpers/functions.py +0 -0
  291. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/environment/key/__init__.py +0 -0
  292. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/environment/key/key_generator.py +0 -0
  293. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/environment/validators/__init__.py +0 -0
  294. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/environment/validators/key_name.py +0 -0
  295. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/environment/validators/types.py +0 -0
  296. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/file/__init__.py +0 -0
  297. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/file/contracts/__init__.py +0 -0
  298. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/file/contracts/directory.py +0 -0
  299. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/file/directory.py +0 -0
  300. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/inspirational/__init__.py +0 -0
  301. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/inspirational/contracts/__init__.py +0 -0
  302. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/inspirational/contracts/inspire.py +0 -0
  303. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/inspirational/inspire.py +0 -0
  304. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/inspirational/quotes.py +0 -0
  305. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/introspection/__init__.py +0 -0
  306. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/introspection/abstract/__init__.py +0 -0
  307. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/introspection/abstract/contracts/__init__.py +0 -0
  308. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/introspection/abstract/contracts/reflection.py +0 -0
  309. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/introspection/abstract/reflection.py +0 -0
  310. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/introspection/callables/__init__.py +0 -0
  311. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/introspection/callables/contracts/__init__.py +0 -0
  312. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/introspection/callables/contracts/reflection.py +0 -0
  313. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/introspection/callables/reflection.py +0 -0
  314. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/introspection/concretes/__init__.py +0 -0
  315. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/introspection/concretes/contracts/__init__.py +0 -0
  316. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/introspection/concretes/contracts/reflection.py +0 -0
  317. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/introspection/concretes/reflection.py +0 -0
  318. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/introspection/dependencies/__init__.py +0 -0
  319. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/introspection/dependencies/contracts/__init__.py +0 -0
  320. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/introspection/dependencies/contracts/reflection.py +0 -0
  321. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/introspection/dependencies/entities/__init__.py +0 -0
  322. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/introspection/dependencies/entities/argument.py +0 -0
  323. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/introspection/dependencies/entities/resolve_argument.py +0 -0
  324. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/introspection/dependencies/reflection.py +0 -0
  325. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/introspection/exceptions/__init__.py +0 -0
  326. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/introspection/exceptions/introspection.py +0 -0
  327. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/introspection/instances/__init__.py +0 -0
  328. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/introspection/instances/contracts/__init__.py +0 -0
  329. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/introspection/instances/contracts/reflection.py +0 -0
  330. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/introspection/instances/reflection.py +0 -0
  331. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/introspection/modules/__init__.py +0 -0
  332. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/introspection/modules/contracts/__init__.py +0 -0
  333. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/introspection/modules/contracts/reflection.py +0 -0
  334. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/introspection/modules/reflection.py +0 -0
  335. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/introspection/objects/__init__.py +0 -0
  336. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/introspection/objects/types.py +0 -0
  337. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/introspection/reflection.py +0 -0
  338. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/log/__init__.py +0 -0
  339. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/log/contracts/__init__.py +0 -0
  340. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/log/contracts/log_service.py +0 -0
  341. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/log/exceptions/__init__.py +0 -0
  342. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/log/exceptions/log.py +0 -0
  343. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/log/handlers/__init__.py +0 -0
  344. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/log/handlers/filename.py +0 -0
  345. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/log/handlers/size_rotating.py +0 -0
  346. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/log/handlers/timed_rotating.py +0 -0
  347. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/log/log_service.py +0 -0
  348. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/system/__init__.py +0 -0
  349. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/system/contracts/__init__.py +0 -0
  350. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/system/contracts/imports.py +0 -0
  351. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/system/contracts/workers.py +0 -0
  352. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/system/imports.py +0 -0
  353. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/system/runtime/__init__.py +0 -0
  354. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/system/runtime/imports.py +0 -0
  355. {orionis-0.613.0 → orionis-0.615.0}/orionis/services/system/workers.py +0 -0
  356. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/__init__.py +0 -0
  357. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/entities/__init__.py +0 -0
  358. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/entities/base.py +0 -0
  359. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/facades/__init__.py +0 -0
  360. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/facades/application.pyi +0 -0
  361. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/facades/console.pyi +0 -0
  362. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/facades/directory.pyi +0 -0
  363. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/facades/dumper.pyi +0 -0
  364. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/facades/executor.pyi +0 -0
  365. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/facades/inspire.pyi +0 -0
  366. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/facades/logger.pyi +0 -0
  367. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/facades/performance_counter.pyi +0 -0
  368. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/facades/progress_bar.pyi +0 -0
  369. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/facades/reactor.pyi +0 -0
  370. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/facades/testing.pyi +0 -0
  371. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/facades/workers.pyi +0 -0
  372. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/formatter/__init__.py +0 -0
  373. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/formatter/exceptions/__init__.py +0 -0
  374. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/formatter/exceptions/contracts/__init__.py +0 -0
  375. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/formatter/exceptions/contracts/parser.py +0 -0
  376. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/formatter/exceptions/parser.py +0 -0
  377. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/formatter/serializer.py +0 -0
  378. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/patterns/__init__.py +0 -0
  379. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/patterns/singleton/__init__.py +0 -0
  380. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/patterns/singleton/meta.py +0 -0
  381. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/performance/__init__.py +0 -0
  382. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/performance/contracts/__init__.py +0 -0
  383. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/performance/contracts/counter.py +0 -0
  384. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/performance/counter.py +0 -0
  385. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/standard/__init__.py +0 -0
  386. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/standard/contracts/__init__.py +0 -0
  387. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/standard/contracts/std.py +0 -0
  388. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/standard/exceptions/__init__.py +0 -0
  389. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/standard/exceptions/standard.py +0 -0
  390. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/standard/std.py +0 -0
  391. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/wrapper/__init__.py +0 -0
  392. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/wrapper/dataclass.py +0 -0
  393. {orionis-0.613.0 → orionis-0.615.0}/orionis/support/wrapper/dot_dict.py +0 -0
  394. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/__init__.py +0 -0
  395. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/cases/__init__.py +0 -0
  396. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/cases/asynchronous.py +0 -0
  397. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/cases/synchronous.py +0 -0
  398. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/contracts/__init__.py +0 -0
  399. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/contracts/dumper.py +0 -0
  400. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/contracts/kernel.py +0 -0
  401. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/contracts/logs.py +0 -0
  402. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/contracts/printer.py +0 -0
  403. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/contracts/render.py +0 -0
  404. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/contracts/test_result.py +0 -0
  405. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/contracts/unit_test.py +0 -0
  406. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/core/__init__.py +0 -0
  407. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/core/unit_test.py +0 -0
  408. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/entities/__init__.py +0 -0
  409. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/entities/result.py +0 -0
  410. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/enums/__init__.py +0 -0
  411. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/enums/status.py +0 -0
  412. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/exceptions/__init__.py +0 -0
  413. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/exceptions/config.py +0 -0
  414. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/exceptions/failure.py +0 -0
  415. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/exceptions/persistence.py +0 -0
  416. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/exceptions/runtime.py +0 -0
  417. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/exceptions/value.py +0 -0
  418. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/kernel.py +0 -0
  419. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/output/__init__.py +0 -0
  420. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/output/dumper.py +0 -0
  421. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/output/printer.py +0 -0
  422. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/records/__init__.py +0 -0
  423. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/records/logs.py +0 -0
  424. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/validators/__init__.py +0 -0
  425. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/validators/base_path.py +0 -0
  426. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/validators/execution_mode.py +0 -0
  427. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/validators/fail_fast.py +0 -0
  428. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/validators/folder_path.py +0 -0
  429. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/validators/module_name.py +0 -0
  430. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/validators/name_pattern.py +0 -0
  431. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/validators/pattern.py +0 -0
  432. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/validators/persistent.py +0 -0
  433. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/validators/persistent_driver.py +0 -0
  434. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/validators/throw_exception.py +0 -0
  435. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/validators/verbosity.py +0 -0
  436. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/validators/web_report.py +0 -0
  437. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/validators/workers.py +0 -0
  438. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/view/__init__.py +0 -0
  439. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/view/render.py +0 -0
  440. {orionis-0.613.0 → orionis-0.615.0}/orionis/test/view/report.stub +0 -0
  441. {orionis-0.613.0 → orionis-0.615.0}/orionis.egg-info/dependency_links.txt +0 -0
  442. {orionis-0.613.0 → orionis-0.615.0}/orionis.egg-info/not-zip-safe +0 -0
  443. {orionis-0.613.0 → orionis-0.615.0}/orionis.egg-info/requires.txt +0 -0
  444. {orionis-0.613.0 → orionis-0.615.0}/orionis.egg-info/top_level.txt +0 -0
  445. {orionis-0.613.0 → orionis-0.615.0}/setup.cfg +0 -0
  446. {orionis-0.613.0 → orionis-0.615.0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: orionis
3
- Version: 0.613.0
3
+ Version: 0.615.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
@@ -0,0 +1,72 @@
1
+ from orionis.container.contracts.service_provider import IServiceProvider
2
+ from orionis.foundation.contracts.application import IApplication
3
+
4
+ class ServiceProvider(IServiceProvider):
5
+ """
6
+ Base class for service providers in the Orionis framework.
7
+
8
+ Service providers are responsible for registering and bootstrapping
9
+ services and components into the application container.
10
+
11
+ Parameters
12
+ ----------
13
+ app : IApplication
14
+ The application container instance to which services will be registered.
15
+ """
16
+
17
+ def __init__(self, app: IApplication) -> None:
18
+ """
19
+ Initialize a new ServiceProvider instance with the given application container.
20
+
21
+ Parameters
22
+ ----------
23
+ app : IApplication
24
+ The application container instance to which this service provider will be attached.
25
+
26
+ Returns
27
+ -------
28
+ None
29
+ This constructor does not return a value.
30
+ """
31
+
32
+ # Store the application container instance for use in service registration and bootstrapping
33
+ self.app = app
34
+
35
+ async def register(self) -> None:
36
+ """
37
+ Register services and components into the application container.
38
+
39
+ This asynchronous method should be implemented by subclasses to bind services,
40
+ configurations, or other components to the application container. It is called
41
+ during the application's service registration phase.
42
+
43
+ Returns
44
+ -------
45
+ None
46
+ This method does not return a value.
47
+
48
+ Raises
49
+ ------
50
+ NotImplementedError
51
+ If the method is not overridden in a subclass.
52
+ """
53
+
54
+ # Optionally overridden by subclasses to register services
55
+ pass
56
+
57
+ async def boot(self) -> None:
58
+ """
59
+ Perform post-registration initialization or bootstrapping tasks.
60
+
61
+ This asynchronous method is called after all services have been registered.
62
+ Subclasses may override this method to initialize services, set up event listeners,
63
+ or perform other operations required at application boot time.
64
+
65
+ Returns
66
+ -------
67
+ None
68
+ This method does not return a value.
69
+ """
70
+
71
+ # Optionally overridden by subclasses to perform boot-time operations
72
+ pass
@@ -23,30 +23,46 @@ from orionis.foundation.config.startup import Configuration
23
23
  from orionis.foundation.config.testing.entities.testing import Testing
24
24
  from orionis.foundation.contracts.application import IApplication
25
25
  from orionis.foundation.exceptions import OrionisTypeError, OrionisRuntimeError, OrionisValueError
26
- from orionis.services.asynchrony.coroutines import Coroutine
27
26
  from orionis.services.log.contracts.log_service import ILogger
28
27
  from orionis.support.wrapper.dataclass import DataClass
29
28
 
30
29
  class Application(Container, IApplication):
31
30
  """
32
- Main application container that manages the complete application lifecycle.
33
-
34
- This class extends the Container to provide comprehensive application-level
35
- functionality including service provider registration and bootstrapping, kernel
36
- management, configuration handling, and application initialization. It implements
37
- a fluent interface pattern to enable method chaining for configuration setup.
38
-
39
- The Application class serves as the central orchestrator for the Orionis framework,
40
- managing the loading and booting of service providers, framework kernels, and
41
- various configuration subsystems such as authentication, caching, database,
42
- logging, and more.
31
+ Application: Main container that manages the complete lifecycle of the Orionis application.
32
+
33
+ This class extends `Container` and acts as the central core of the Orionis framework,
34
+ orchestrating initialization, configuration, registration, and bootstrapping of all
35
+ application components and services. It follows a fluent interface pattern, enabling
36
+ method chaining for clear and concise configuration.
37
+
38
+ Key Responsibilities:
39
+ ---------------------
40
+ - Registers and boots both native and user-defined service providers, ensuring all
41
+ dependencies and services are available throughout the application lifecycle.
42
+ - Loads and manages essential framework kernels (CLI, testing, etc.), guaranteeing
43
+ that core components are properly initialized and accessible.
44
+ - Centralizes configuration management for all critical subsystems: authentication,
45
+ cache, database, logging, mail, queue, routing, storage, session, testing, and more.
46
+ - Provides methods for customizing and extending the application architecture,
47
+ supporting dynamic configurator loading and seamless integration of additional services.
48
+ - Implements mechanisms for custom exception handling and schedulers, enhancing
49
+ robustness and flexibility across the application lifecycle.
50
+ - Exposes utilities for accessing configuration and path settings using dot notation.
51
+
52
+ Typical Workflow:
53
+ -----------------
54
+ 1. Instantiate the Application class.
55
+ 2. Register providers and configurators via `withProviders` and `withConfigurators`.
56
+ 3. Optionally customize exception handlers and schedulers.
57
+ 4. Call `create()` to initialize and boot the application, loading kernels and providers.
58
+ 5. Access services, configuration, and paths through the Application instance.
43
59
 
44
60
  Attributes
45
61
  ----------
46
62
  isBooted : bool
47
- Read-only property indicating whether the application providers have been booted.
63
+ Read-only property indicating whether the application providers have been booted.
48
64
  startAt : int
49
- Read-only property containing the timestamp when the application was started.
65
+ Read-only property containing the timestamp (epoch) when the application was started.
50
66
  """
51
67
 
52
68
  @property
@@ -162,11 +178,7 @@ class Application(Container, IApplication):
162
178
 
163
179
  # Register each kernel instance
164
180
  for abstract, concrete in core_kernels.items():
165
- self.instance(
166
- abstract,
167
- concrete(self),
168
- alias=f"x-{abstract.__module__}.{abstract.__name__}"
169
- )
181
+ self.instance(abstract, concrete(self), alias=f"x-{abstract.__module__}.{abstract.__name__}")
170
182
 
171
183
  def __loadFrameworkProviders(
172
184
  self
@@ -324,75 +336,102 @@ class Application(Container, IApplication):
324
336
  """
325
337
  Instantiate and register all service providers in the container.
326
338
 
327
- This method iterates through all added provider classes, instantiates them
328
- with the current application instance, and calls their register() method
329
- to bind services into the dependency injection container. Supports both
330
- synchronous and asynchronous registration methods.
339
+ This private method iterates through all service provider classes previously added to the application,
340
+ instantiates each provider with the current application instance, and invokes their `register()` method
341
+ to bind services into the dependency injection container. Both synchronous and asynchronous `register()`
342
+ methods are supported and handled appropriately.
343
+
344
+ After registration, the internal providers list is updated to contain the instantiated provider objects
345
+ instead of class references. This ensures that subsequent booting operations are performed on the actual
346
+ provider instances.
331
347
 
332
348
  Notes
333
349
  -----
334
- This is a private method called during application bootstrapping. After
335
- registration, the providers list is updated to contain instantiated provider
336
- objects rather than class references. The method handles both coroutine
337
- and regular register methods using asyncio when necessary.
350
+ - This method is called automatically during application bootstrapping.
351
+ - Handles both coroutine and regular `register()` methods using `asyncio` when necessary.
352
+ - The providers list is updated in-place to hold provider instances.
353
+
354
+ Returns
355
+ -------
356
+ None
357
+ This method does not return any value. It updates the internal state of the application by
358
+ replacing the provider class references with their instantiated objects.
338
359
  """
339
360
 
340
- # Ensure providers list is empty before registration
361
+ # Prepare a list to hold initialized provider instances
341
362
  initialized_providers = []
342
363
 
343
- # Iterate over each provider and register it
344
- for provider in self.__providers:
364
+ # Iterate over each provider class in the providers list
365
+ for provider_cls in self.__providers:
345
366
 
346
- # Initialize the provider
347
- class_provider: IServiceProvider = provider(self)
367
+ # Instantiate the provider with the current application instance
368
+ provider_instance = provider_cls(self)
348
369
 
349
- # Register the provider in the container
350
- # Check if register is a coroutine function
351
- if asyncio.iscoroutinefunction(class_provider.register):
352
- Coroutine(class_provider.register).run()
353
- else:
354
- class_provider.register()
370
+ # Retrieve the 'register' method if it exists
371
+ register_method = getattr(provider_instance, 'register', None)
372
+
373
+ # If the register method exists, call it
374
+ if callable(register_method):
355
375
 
356
- # Add the initialized provider to the list
357
- initialized_providers.append(class_provider)
376
+ # If the register method is a coroutine, run it asynchronously
377
+ if asyncio.iscoroutinefunction(register_method):
378
+ asyncio.run(register_method())
358
379
 
359
- # Update the providers list with initialized providers
380
+ # Otherwise, call it synchronously
381
+ else:
382
+ register_method()
383
+
384
+ # Add the initialized provider instance to the list
385
+ initialized_providers.append(provider_instance)
386
+
387
+ # Replace the providers list with the list of initialized provider instances
360
388
  self.__providers = initialized_providers
361
389
 
362
390
  def __bootProviders(
363
391
  self
364
392
  ) -> None:
365
393
  """
366
- Execute the boot process for all registered service providers.
394
+ Boot all registered service providers after registration.
367
395
 
368
- This method calls the boot() method on each instantiated service provider
369
- to initialize services after all providers have been registered. This
370
- two-phase process ensures all dependencies are available before any
371
- provider attempts to use them. Supports both synchronous and asynchronous
372
- boot methods.
396
+ This private method iterates through all instantiated service providers and calls their
397
+ `boot()` method to perform any post-registration initialization. This two-phase approach
398
+ ensures that all dependencies are registered before any provider attempts to use them.
399
+ Both synchronous and asynchronous `boot()` methods are supported.
400
+
401
+ After all providers have been booted, the internal providers list is cleared to free memory,
402
+ as provider instances are no longer needed after initialization.
373
403
 
374
404
  Notes
375
405
  -----
376
- This is a private method called during application bootstrapping after
377
- provider registration is complete. After booting, the providers list is
378
- deleted to prevent memory leaks since providers are no longer needed
379
- after initialization.
406
+ - This method is called automatically during application bootstrapping, after all providers
407
+ have been registered.
408
+ - Supports both synchronous and asynchronous `boot()` methods on providers.
409
+ - The providers list is cleared after booting to prevent memory leaks.
410
+
411
+ Returns
412
+ -------
413
+ None
414
+ This method does not return any value.
380
415
  """
381
416
 
382
- # Iterate over each provider and boot it
417
+ # Iterate over each initialized provider and call its boot method if available
383
418
  for provider in self.__providers:
384
419
 
385
- # Ensure provider is initialized before calling boot
386
- if hasattr(provider, 'boot') and callable(getattr(provider, 'boot')):
387
- # Check if boot is a coroutine function
388
- if asyncio.iscoroutinefunction(provider.boot):
389
- Coroutine(provider.boot).run()
420
+ # Get the boot method if it exists
421
+ boot_method = getattr(provider, 'boot', None)
422
+
423
+ if callable(boot_method):
424
+
425
+ # If the boot method is a coroutine, run it asynchronously
426
+ if asyncio.iscoroutinefunction(boot_method):
427
+ asyncio.run(boot_method())
428
+
429
+ # Otherwise, call it synchronously
390
430
  else:
391
- provider.boot()
431
+ boot_method()
392
432
 
393
- # Remove the __providers attribute to prevent memory leaks
394
- if hasattr(self, '_Application__providers'):
395
- del self.__providers
433
+ # Clear the providers list to free memory after booting is complete
434
+ self.__providers.clear()
396
435
 
397
436
  # === Application Skeleton Configuration Methods ===
398
437
  # The Orionis framework provides methods to configure each component of the application,
@@ -0,0 +1,58 @@
1
+ class OrionisIntegrityException(Exception):
2
+ """
3
+ Exception raised for integrity-related errors in the Orionis framework.
4
+
5
+ This exception is intended to signal violations of data integrity or
6
+ consistency constraints within the application.
7
+
8
+ Returns
9
+ -------
10
+ OrionisIntegrityException
11
+ An instance of the exception.
12
+ """
13
+ pass # No additional logic; inherits from base Exception
14
+
15
+
16
+ class OrionisRuntimeError(RuntimeError):
17
+ """
18
+ Exception raised for runtime errors specific to the Orionis framework.
19
+
20
+ This exception should be used when an error occurs that is only detectable
21
+ during program execution.
22
+
23
+ Returns
24
+ -------
25
+ OrionisRuntimeError
26
+ An instance of the exception.
27
+ """
28
+ pass # Inherits from Python's built-in RuntimeError
29
+
30
+
31
+ class OrionisTypeError(TypeError):
32
+ """
33
+ Exception raised for type errors in the Orionis framework.
34
+
35
+ This exception is used when an operation or function receives an argument
36
+ of an inappropriate type.
37
+
38
+ Returns
39
+ -------
40
+ OrionisTypeError
41
+ An instance of the exception.
42
+ """
43
+ pass # Inherits from Python's built-in TypeError
44
+
45
+
46
+ class OrionisValueError(ValueError):
47
+ """
48
+ Exception raised for value errors in the Orionis framework.
49
+
50
+ This exception is used when an operation or function receives an argument
51
+ with the right type but an inappropriate value.
52
+
53
+ Returns
54
+ -------
55
+ OrionisValueError
56
+ An instance of the exception.
57
+ """
58
+ pass # Inherits from Python's built-in ValueError
@@ -0,0 +1,28 @@
1
+ from orionis.container.providers.service_provider import ServiceProvider
2
+ from orionis.failure.catch import Catch
3
+ from orionis.failure.contracts.catch import ICatch
4
+
5
+ class CathcProvider(ServiceProvider):
6
+
7
+ def register(self) -> None:
8
+ """
9
+ Registers the Catch service as a singleton in the application container.
10
+
11
+ This method binds the `ICatch` interface to the `Catch` implementation as a singleton,
12
+ using a specific alias. This ensures that only one instance of `Catch` is created and
13
+ shared throughout the application's lifecycle. The binding allows the application to
14
+ resolve dependencies on `ICatch` with the registered `Catch` instance.
15
+
16
+ Parameters
17
+ ----------
18
+ None
19
+
20
+ Returns
21
+ -------
22
+ None
23
+ This method does not return any value. It performs the registration as a side effect.
24
+ """
25
+
26
+ # Register the Catch implementation as a singleton for the ICatch interface
27
+ # The alias allows for explicit resolution by name if needed
28
+ self.app.singleton(ICatch, Catch, alias="x-orionis.failure.contracts.catch.ICatch")
@@ -0,0 +1,29 @@
1
+ from orionis.console.contracts.cli_request import ICLIRequest
2
+ from orionis.console.request.cli_request import CLIRequest
3
+ from orionis.container.providers.service_provider import ServiceProvider
4
+
5
+ class CLRequestProvider(ServiceProvider):
6
+
7
+ def register(self) -> None:
8
+ """
9
+ Registers the CLI request services in the application container.
10
+
11
+ This method binds the `ICLIRequest` interface to the `CLIRequest` implementation
12
+ as a transient service within the application's dependency injection container.
13
+ By registering this binding, any component that depends on `ICLIRequest` will
14
+ receive a new instance of `CLIRequest` each time it is resolved. The binding is
15
+ also associated with a specific alias for reference within the container.
16
+
17
+ Parameters
18
+ ----------
19
+ None
20
+
21
+ Returns
22
+ -------
23
+ None
24
+ This method does not return any value. It performs registration as a side effect.
25
+ """
26
+
27
+ # Bind the ICLIRequest interface to the CLIRequest implementation as a transient service.
28
+ # Each resolution of ICLIRequest will provide a new CLIRequest instance.
29
+ self.app.transient(ICLIRequest, CLIRequest, alias="x-orionis.console.contracts.cli_request.ICLIRequest")
@@ -0,0 +1,31 @@
1
+ from orionis.console.output.console import Console
2
+ from orionis.console.contracts.console import IConsole
3
+ from orionis.container.providers.service_provider import ServiceProvider
4
+
5
+ class ConsoleProvider(ServiceProvider):
6
+
7
+ def register(self) -> None:
8
+ """
9
+ Registers the console output service within the application's dependency injection container.
10
+
11
+ This method binds the `IConsole` interface to its concrete `Console` implementation,
12
+ enabling console output functionality to be injected wherever required in the application.
13
+ The service is registered as a transient dependency, ensuring that a new instance of
14
+ `Console` is created each time the service is resolved from the container. The registration
15
+ uses a predefined alias to maintain consistent service identification and facilitate
16
+ straightforward service resolution throughout the framework.
17
+
18
+ Parameters
19
+ ----------
20
+ None
21
+
22
+ Returns
23
+ -------
24
+ None
25
+ This method does not return any value. It performs side effects by
26
+ modifying the application's service container to register the console service.
27
+ """
28
+
29
+ # Register the IConsole interface to the Console implementation as a transient service.
30
+ # This ensures a new Console instance is provided on each resolution.
31
+ self.app.transient(IConsole, Console, alias="x-orionis.console.contracts.console.IConsole")
@@ -0,0 +1,29 @@
1
+ from orionis.container.providers.service_provider import ServiceProvider
2
+ from orionis.services.file.contracts.directory import IDirectory
3
+ from orionis.services.file.directory import Directory
4
+
5
+ class DirectoryProvider(ServiceProvider):
6
+
7
+ def register(self) -> None:
8
+ """
9
+ Registers the directory service as a singleton within the application container.
10
+
11
+ This method binds the `IDirectory` interface to its concrete implementation `Directory`
12
+ as a singleton. The binding is associated with a specific alias, ensuring that only one
13
+ instance of `Directory` is created and shared across the application's lifecycle. This
14
+ promotes efficient resource usage and consistent behavior when accessing directory-related
15
+ services.
16
+
17
+ Parameters
18
+ ----------
19
+ None
20
+
21
+ Returns
22
+ -------
23
+ None
24
+ This method does not return any value. It performs registration as a side effect.
25
+ """
26
+
27
+ # Bind the IDirectory interface to the Directory implementation as a singleton.
28
+ # The alias ensures unique identification within the container.
29
+ self.app.singleton(IDirectory, Directory, alias="x-orionis.services.file.contracts.directory.IDirectory")
@@ -0,0 +1,29 @@
1
+ from orionis.console.dumper.debug import Debug
2
+ from orionis.console.contracts.debug import IDebug
3
+ from orionis.container.providers.service_provider import ServiceProvider
4
+
5
+ class DumperProvider(ServiceProvider):
6
+
7
+ def register(self) -> None:
8
+ """
9
+ Registers the debug service in the application container.
10
+
11
+ This method binds the `IDebug` interface to its concrete implementation, the `Debug` class,
12
+ within the application's dependency injection container. The service is registered as
13
+ transient, ensuring that a new instance is created each time it is requested. Additionally,
14
+ an alias is assigned to the service for convenient retrieval throughout the application.
15
+
16
+ This registration enables the application to resolve dependencies related to debugging,
17
+ error reporting, and console diagnostics by referencing the interface or its alias.
18
+
19
+ Returns
20
+ -------
21
+ None
22
+ This method does not return any value. It performs side effects by modifying
23
+ the application's service registry.
24
+ """
25
+
26
+ # Register the Debug service as a transient binding for the IDebug interface.
27
+ # A new instance of Debug will be created each time it is requested.
28
+ # The alias allows for easy retrieval of the service elsewhere in the application.
29
+ self.app.transient(IDebug, Debug, alias=f"x-orionis.console.contracts.debug.IDebug")
@@ -0,0 +1,31 @@
1
+ from orionis.console.contracts.executor import IExecutor
2
+ from orionis.console.output.executor import Executor
3
+ from orionis.container.providers.service_provider import ServiceProvider
4
+
5
+ class ConsoleExecuteProvider(ServiceProvider):
6
+
7
+ def register(self) -> None:
8
+ """
9
+ Registers the console executor service within the application container.
10
+
11
+ This method binds the `IExecutor` interface to its concrete `Executor` implementation
12
+ as a transient service. Each time the service is requested from the container, a new
13
+ instance of `Executor` is created, ensuring isolated execution contexts for console
14
+ operations. The service is registered with the alias
15
+ `"x-orionis.console.contracts.executor.IExecutor"` for convenient retrieval and
16
+ identification within the dependency injection container.
17
+
18
+ Parameters
19
+ ----------
20
+ None
21
+
22
+ Returns
23
+ -------
24
+ None
25
+ This method does not return any value. It performs the side effect of
26
+ registering the executor service binding in the application container.
27
+ """
28
+
29
+ # Bind the IExecutor interface to the Executor implementation as a transient service.
30
+ # This ensures a new Executor instance is created on each request.
31
+ self.app.transient(IExecutor, Executor, alias="x-orionis.console.contracts.executor.IExecutor")
@@ -0,0 +1,28 @@
1
+ from orionis.container.providers.service_provider import ServiceProvider
2
+ from orionis.services.inspirational.contracts.inspire import IInspire
3
+ from orionis.services.inspirational.inspire import Inspire
4
+
5
+ class InspirationalProvider(ServiceProvider):
6
+
7
+ def register(self) -> None:
8
+ """
9
+ Registers the inspirational service as a transient binding in the application container.
10
+
11
+ This method binds the `IInspire` interface to its concrete implementation `Inspire`
12
+ as a transient service within the application's service container. Each time the
13
+ service is requested, a new instance of `Inspire` will be provided. The service is
14
+ also registered with a specific alias to facilitate convenient resolution and
15
+ identification throughout the application.
16
+
17
+ This registration enables dependency injection, allowing other components to
18
+ receive an instance of `Inspire` whenever the `IInspire` contract is requested.
19
+
20
+ Returns
21
+ -------
22
+ None
23
+ This method does not return any value. It performs service registration as a side effect.
24
+ """
25
+
26
+ # Register the IInspire contract to the Inspire implementation as a transient service.
27
+ # Each resolution from the container will provide a new instance.
28
+ self.app.transient(IInspire, Inspire, alias="x-orionis.services.inspirational.contracts.inspire.IInspire")
@@ -0,0 +1,36 @@
1
+ from orionis.container.providers.service_provider import ServiceProvider
2
+ from orionis.services.log.contracts.log_service import ILogger
3
+ from orionis.services.log.log_service import Logger
4
+
5
+ class LoggerProvider(ServiceProvider):
6
+
7
+ def register(self) -> None:
8
+ """
9
+ Registers the Logger service implementation in the application container.
10
+
11
+ This method binds the `Logger` class to the `ILogger` contract within the application's
12
+ dependency injection container. It retrieves the logging configuration from the application,
13
+ creates a `Logger` instance using this configuration, and registers it with an alias for
14
+ internal framework identification. This setup allows the logging service to be resolved
15
+ and used throughout the application via the container.
16
+
17
+ Parameters
18
+ ----------
19
+ None
20
+
21
+ Returns
22
+ -------
23
+ None
24
+ This method does not return any value. It performs service registration
25
+ as a side effect on the application container.
26
+ """
27
+
28
+ # Retrieve the logging configuration from the application
29
+ logging_config = self.app.config('logging')
30
+
31
+ # Instantiate the Logger with the retrieved configuration
32
+ logger_instance = Logger(logging_config)
33
+
34
+ # Register the Logger instance in the application container,
35
+ # binding it to the ILogger contract and assigning an alias
36
+ self.app.instance(ILogger, logger_instance, alias="x-orionis.services.log.contracts.log_service.ILogger")
@@ -0,0 +1,38 @@
1
+ from orionis.container.providers.service_provider import ServiceProvider
2
+ from orionis.support.performance.contracts.counter import IPerformanceCounter
3
+ from orionis.support.performance.counter import PerformanceCounter
4
+
5
+ class PerformanceCounterProvider(ServiceProvider):
6
+
7
+ def register(self) -> None:
8
+ """
9
+ Registers the performance counter service as a transient dependency in the application container.
10
+
11
+ This method binds the `IPerformanceCounter` interface to the `PerformanceCounter` implementation
12
+ within the application's dependency injection container. The binding uses a transient lifetime,
13
+ ensuring that each resolution of the service provides a new instance of `PerformanceCounter`.
14
+ This is useful for scenarios where independent timing or measurement operations are required
15
+ across different parts of the application.
16
+
17
+ An alias, `"x-orionis.support.performance.contracts.counter.IPerformanceCounter"`, is also
18
+ assigned to this binding, enabling alternative resolution or referencing of the service by name.
19
+
20
+ Parameters
21
+ ----------
22
+ None
23
+
24
+ Returns
25
+ -------
26
+ None
27
+ This method does not return any value. It performs service registration as a side effect.
28
+
29
+ Notes
30
+ -----
31
+ - The transient lifetime ensures that each consumer receives a separate instance of the service.
32
+ - The alias allows for flexible service resolution by a specific name.
33
+ """
34
+
35
+ # Register the IPerformanceCounter interface to the PerformanceCounter implementation
36
+ # with a transient lifetime. Each resolution yields a new instance.
37
+ # Assign an alias for alternative resolution by name.
38
+ self.app.transient(IPerformanceCounter, PerformanceCounter, alias="x-orionis.support.performance.contracts.counter.IPerformanceCounter")