orionis 0.650.0__tar.gz → 0.652.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 (418) hide show
  1. {orionis-0.650.0/orionis.egg-info → orionis-0.652.0}/PKG-INFO +1 -1
  2. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/commands/log_clear.py +1 -2
  3. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/commands/make_command.py +0 -3
  4. {orionis-0.650.0 → orionis-0.652.0}/orionis/container/container.py +340 -140
  5. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/application.py +1 -2
  6. {orionis-0.650.0 → orionis-0.652.0}/orionis/metadata/framework.py +1 -1
  7. {orionis-0.650.0 → orionis-0.652.0/orionis.egg-info}/PKG-INFO +1 -1
  8. {orionis-0.650.0 → orionis-0.652.0}/LICENCE +0 -0
  9. {orionis-0.650.0 → orionis-0.652.0}/MANIFEST.in +0 -0
  10. {orionis-0.650.0 → orionis-0.652.0}/README.md +0 -0
  11. {orionis-0.650.0 → orionis-0.652.0}/orionis/__init__.py +0 -0
  12. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/__init__.py +0 -0
  13. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/args/__init__.py +0 -0
  14. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/args/argument.py +0 -0
  15. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/base/__init__.py +0 -0
  16. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/base/command.py +0 -0
  17. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/base/scheduler.py +0 -0
  18. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/base/scheduler_event_listener.py +0 -0
  19. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/commands/__init__.py +0 -0
  20. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/commands/__publisher__.py +0 -0
  21. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/commands/__workflow__.py +0 -0
  22. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/commands/cache_clear.py +0 -0
  23. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/commands/help.py +0 -0
  24. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/commands/scheduler_list.py +0 -0
  25. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/commands/scheduler_work.py +0 -0
  26. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/commands/test.py +0 -0
  27. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/commands/version.py +0 -0
  28. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/contracts/__init__.py +0 -0
  29. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/contracts/base_command.py +0 -0
  30. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/contracts/base_scheduler.py +0 -0
  31. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/contracts/cli_request.py +0 -0
  32. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/contracts/command.py +0 -0
  33. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/contracts/console.py +0 -0
  34. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/contracts/dumper.py +0 -0
  35. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/contracts/event.py +0 -0
  36. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/contracts/executor.py +0 -0
  37. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/contracts/kernel.py +0 -0
  38. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/contracts/progress_bar.py +0 -0
  39. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/contracts/reactor.py +0 -0
  40. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/contracts/schedule.py +0 -0
  41. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/contracts/schedule_event_listener.py +0 -0
  42. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/core/__init__.py +0 -0
  43. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/core/reactor.py +0 -0
  44. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/debug/__init__.py +0 -0
  45. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/debug/dumper.py +0 -0
  46. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/dynamic/__init__.py +0 -0
  47. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/dynamic/progress_bar.py +0 -0
  48. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/entities/__init__.py +0 -0
  49. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/entities/command.py +0 -0
  50. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/entities/event.py +0 -0
  51. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/entities/event_job.py +0 -0
  52. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/entities/scheduler_error.py +0 -0
  53. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/entities/scheduler_event_data.py +0 -0
  54. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/entities/scheduler_paused.py +0 -0
  55. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/entities/scheduler_resumed.py +0 -0
  56. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/entities/scheduler_shutdown.py +0 -0
  57. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/entities/scheduler_started.py +0 -0
  58. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/enums/__init__.py +0 -0
  59. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/enums/actions.py +0 -0
  60. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/enums/listener.py +0 -0
  61. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/enums/styles.py +0 -0
  62. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/exceptions/__init__.py +0 -0
  63. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/exceptions/cli_exceptions.py +0 -0
  64. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/fluent/__init__.py +0 -0
  65. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/fluent/command.py +0 -0
  66. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/fluent/event.py +0 -0
  67. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/kernel.py +0 -0
  68. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/output/__init__.py +0 -0
  69. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/output/console.py +0 -0
  70. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/output/executor.py +0 -0
  71. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/request/__init__.py +0 -0
  72. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/request/cli_request.py +0 -0
  73. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/stubs/command.stub +0 -0
  74. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/stubs/listener.stub +0 -0
  75. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/tasks/__init__.py +0 -0
  76. {orionis-0.650.0 → orionis-0.652.0}/orionis/console/tasks/schedule.py +0 -0
  77. {orionis-0.650.0 → orionis-0.652.0}/orionis/container/__init__.py +0 -0
  78. {orionis-0.650.0 → orionis-0.652.0}/orionis/container/context/__init__.py +0 -0
  79. {orionis-0.650.0 → orionis-0.652.0}/orionis/container/context/manager.py +0 -0
  80. {orionis-0.650.0 → orionis-0.652.0}/orionis/container/context/scope.py +0 -0
  81. {orionis-0.650.0 → orionis-0.652.0}/orionis/container/contracts/__init__.py +0 -0
  82. {orionis-0.650.0 → orionis-0.652.0}/orionis/container/contracts/container.py +0 -0
  83. {orionis-0.650.0 → orionis-0.652.0}/orionis/container/contracts/service_provider.py +0 -0
  84. {orionis-0.650.0 → orionis-0.652.0}/orionis/container/entities/__init__.py +0 -0
  85. {orionis-0.650.0 → orionis-0.652.0}/orionis/container/entities/binding.py +0 -0
  86. {orionis-0.650.0 → orionis-0.652.0}/orionis/container/enums/__init__.py +0 -0
  87. {orionis-0.650.0 → orionis-0.652.0}/orionis/container/enums/lifetimes.py +0 -0
  88. {orionis-0.650.0 → orionis-0.652.0}/orionis/container/exceptions/__init__.py +0 -0
  89. {orionis-0.650.0 → orionis-0.652.0}/orionis/container/exceptions/container.py +0 -0
  90. {orionis-0.650.0 → orionis-0.652.0}/orionis/container/facades/__init__.py +0 -0
  91. {orionis-0.650.0 → orionis-0.652.0}/orionis/container/facades/facade.py +0 -0
  92. {orionis-0.650.0 → orionis-0.652.0}/orionis/container/providers/__init__.py +0 -0
  93. {orionis-0.650.0 → orionis-0.652.0}/orionis/container/providers/service_provider.py +0 -0
  94. {orionis-0.650.0 → orionis-0.652.0}/orionis/container/validators/__init__.py +0 -0
  95. {orionis-0.650.0 → orionis-0.652.0}/orionis/container/validators/implements.py +0 -0
  96. {orionis-0.650.0 → orionis-0.652.0}/orionis/container/validators/is_abstract_class.py +0 -0
  97. {orionis-0.650.0 → orionis-0.652.0}/orionis/container/validators/is_callable.py +0 -0
  98. {orionis-0.650.0 → orionis-0.652.0}/orionis/container/validators/is_concrete_class.py +0 -0
  99. {orionis-0.650.0 → orionis-0.652.0}/orionis/container/validators/is_instance.py +0 -0
  100. {orionis-0.650.0 → orionis-0.652.0}/orionis/container/validators/is_not_subclass.py +0 -0
  101. {orionis-0.650.0 → orionis-0.652.0}/orionis/container/validators/is_subclass.py +0 -0
  102. {orionis-0.650.0 → orionis-0.652.0}/orionis/container/validators/is_valid_alias.py +0 -0
  103. {orionis-0.650.0 → orionis-0.652.0}/orionis/container/validators/lifetime.py +0 -0
  104. {orionis-0.650.0 → orionis-0.652.0}/orionis/failure/__init__.py +0 -0
  105. {orionis-0.650.0 → orionis-0.652.0}/orionis/failure/base/__init__.py +0 -0
  106. {orionis-0.650.0 → orionis-0.652.0}/orionis/failure/base/handler.py +0 -0
  107. {orionis-0.650.0 → orionis-0.652.0}/orionis/failure/catch.py +0 -0
  108. {orionis-0.650.0 → orionis-0.652.0}/orionis/failure/contracts/__init__.py +0 -0
  109. {orionis-0.650.0 → orionis-0.652.0}/orionis/failure/contracts/catch.py +0 -0
  110. {orionis-0.650.0 → orionis-0.652.0}/orionis/failure/contracts/handler.py +0 -0
  111. {orionis-0.650.0 → orionis-0.652.0}/orionis/failure/entities/__init__.py +0 -0
  112. {orionis-0.650.0 → orionis-0.652.0}/orionis/failure/entities/throwable.py +0 -0
  113. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/__init__.py +0 -0
  114. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/__init__.py +0 -0
  115. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/app/__init__.py +0 -0
  116. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/app/entities/__init__.py +0 -0
  117. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/app/entities/app.py +0 -0
  118. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/app/enums/__init__.py +0 -0
  119. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/app/enums/ciphers.py +0 -0
  120. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/app/enums/environments.py +0 -0
  121. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/auth/__init__.py +0 -0
  122. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/auth/entities/__init__.py +0 -0
  123. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/auth/entities/auth.py +0 -0
  124. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/cache/__init__.py +0 -0
  125. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/cache/entities/__init__.py +0 -0
  126. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/cache/entities/cache.py +0 -0
  127. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/cache/entities/file.py +0 -0
  128. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/cache/entities/stores.py +0 -0
  129. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/cache/enums/__init__.py +0 -0
  130. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/cache/enums/drivers.py +0 -0
  131. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/cors/__init__.py +0 -0
  132. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/cors/entities/__init__.py +0 -0
  133. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/cors/entities/cors.py +0 -0
  134. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/database/__init__.py +0 -0
  135. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/database/entities/__init__.py +0 -0
  136. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/database/entities/connections.py +0 -0
  137. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/database/entities/database.py +0 -0
  138. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/database/entities/mysql.py +0 -0
  139. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/database/entities/oracle.py +0 -0
  140. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/database/entities/pgsql.py +0 -0
  141. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/database/entities/sqlite.py +0 -0
  142. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/database/enums/__init__.py +0 -0
  143. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/database/enums/mysql_charsets.py +0 -0
  144. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/database/enums/mysql_collations.py +0 -0
  145. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/database/enums/mysql_engine.py +0 -0
  146. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/database/enums/oracle_encoding.py +0 -0
  147. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/database/enums/oracle_nencoding.py +0 -0
  148. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/database/enums/pgsql_charsets.py +0 -0
  149. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/database/enums/pgsql_collations.py +0 -0
  150. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/database/enums/pgsql_mode.py +0 -0
  151. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/database/enums/sqlite_foreign_key.py +0 -0
  152. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/database/enums/sqlite_journal.py +0 -0
  153. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/database/enums/sqlite_synchronous.py +0 -0
  154. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/filesystems/__init__.py +0 -0
  155. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/filesystems/entitites/__init__.py +0 -0
  156. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/filesystems/entitites/aws.py +0 -0
  157. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/filesystems/entitites/disks.py +0 -0
  158. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/filesystems/entitites/filesystems.py +0 -0
  159. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/filesystems/entitites/local.py +0 -0
  160. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/filesystems/entitites/public.py +0 -0
  161. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/logging/__init__.py +0 -0
  162. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/logging/entities/__init__.py +0 -0
  163. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/logging/entities/channels.py +0 -0
  164. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/logging/entities/chunked.py +0 -0
  165. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/logging/entities/daily.py +0 -0
  166. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/logging/entities/hourly.py +0 -0
  167. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/logging/entities/logging.py +0 -0
  168. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/logging/entities/monthly.py +0 -0
  169. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/logging/entities/stack.py +0 -0
  170. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/logging/entities/weekly.py +0 -0
  171. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/logging/enums/__init__.py +0 -0
  172. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/logging/enums/levels.py +0 -0
  173. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/logging/validators/__init__.py +0 -0
  174. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/logging/validators/level.py +0 -0
  175. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/logging/validators/path.py +0 -0
  176. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/mail/__init__.py +0 -0
  177. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/mail/entities/__init__.py +0 -0
  178. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/mail/entities/file.py +0 -0
  179. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/mail/entities/mail.py +0 -0
  180. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/mail/entities/mailers.py +0 -0
  181. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/mail/entities/smtp.py +0 -0
  182. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/queue/__init__.py +0 -0
  183. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/queue/entities/__init__.py +0 -0
  184. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/queue/entities/brokers.py +0 -0
  185. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/queue/entities/database.py +0 -0
  186. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/queue/entities/queue.py +0 -0
  187. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/queue/enums/__init__.py +0 -0
  188. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/queue/enums/strategy.py +0 -0
  189. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/roots/__init__.py +0 -0
  190. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/roots/paths.py +0 -0
  191. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/session/__init__.py +0 -0
  192. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/session/entities/__init__.py +0 -0
  193. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/session/entities/session.py +0 -0
  194. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/session/enums/__init__.py +0 -0
  195. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/session/enums/same_site_policy.py +0 -0
  196. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/session/helpers/__init__.py +0 -0
  197. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/session/helpers/secret_key.py +0 -0
  198. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/startup.py +0 -0
  199. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/testing/__init__.py +0 -0
  200. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/testing/entities/__init__.py +0 -0
  201. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/testing/entities/testing.py +0 -0
  202. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/testing/enums/__init__.py +0 -0
  203. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/testing/enums/drivers.py +0 -0
  204. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/testing/enums/mode.py +0 -0
  205. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/config/testing/enums/verbosity.py +0 -0
  206. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/contracts/__init__.py +0 -0
  207. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/contracts/application.py +0 -0
  208. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/exceptions/__init__.py +0 -0
  209. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/exceptions/application.py +0 -0
  210. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/providers/__init__.py +0 -0
  211. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/providers/catch_provider.py +0 -0
  212. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/providers/cli_request_provider.py +0 -0
  213. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/providers/console_provider.py +0 -0
  214. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/providers/directory_provider.py +0 -0
  215. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/providers/dumper_provider.py +0 -0
  216. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/providers/executor_provider.py +0 -0
  217. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/providers/inspirational_provider.py +0 -0
  218. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/providers/logger_provider.py +0 -0
  219. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/providers/performance_counter_provider.py +0 -0
  220. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/providers/progress_bar_provider.py +0 -0
  221. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/providers/reactor_provider.py +0 -0
  222. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/providers/scheduler_provider.py +0 -0
  223. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/providers/testing_provider.py +0 -0
  224. {orionis-0.650.0 → orionis-0.652.0}/orionis/foundation/providers/workers_provider.py +0 -0
  225. {orionis-0.650.0 → orionis-0.652.0}/orionis/metadata/__init__.py +0 -0
  226. {orionis-0.650.0 → orionis-0.652.0}/orionis/metadata/package.py +0 -0
  227. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/__init__.py +0 -0
  228. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/asynchrony/__init__.py +0 -0
  229. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/asynchrony/contracts/__init__.py +0 -0
  230. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/asynchrony/contracts/coroutines.py +0 -0
  231. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/asynchrony/coroutines.py +0 -0
  232. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/asynchrony/exceptions/__init__.py +0 -0
  233. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/asynchrony/exceptions/asynchrony.py +0 -0
  234. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/encrypter/encrypter.py +0 -0
  235. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/environment/__init__.py +0 -0
  236. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/environment/contracts/__init__.py +0 -0
  237. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/environment/contracts/caster.py +0 -0
  238. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/environment/contracts/env.py +0 -0
  239. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/environment/core/__init__.py +0 -0
  240. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/environment/core/dot_env.py +0 -0
  241. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/environment/dynamic/__init__.py +0 -0
  242. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/environment/dynamic/caster.py +0 -0
  243. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/environment/enums/__init__.py +0 -0
  244. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/environment/enums/value_type.py +0 -0
  245. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/environment/env.py +0 -0
  246. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/environment/exceptions/__init__.py +0 -0
  247. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/environment/exceptions/environment.py +0 -0
  248. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/environment/helpers/__init__.py +0 -0
  249. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/environment/helpers/functions.py +0 -0
  250. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/environment/key/__init__.py +0 -0
  251. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/environment/key/key_generator.py +0 -0
  252. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/environment/validators/__init__.py +0 -0
  253. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/environment/validators/key_name.py +0 -0
  254. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/environment/validators/types.py +0 -0
  255. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/file/__init__.py +0 -0
  256. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/file/contracts/__init__.py +0 -0
  257. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/file/contracts/directory.py +0 -0
  258. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/file/directory.py +0 -0
  259. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/inspirational/__init__.py +0 -0
  260. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/inspirational/contracts/__init__.py +0 -0
  261. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/inspirational/contracts/inspire.py +0 -0
  262. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/inspirational/inspire.py +0 -0
  263. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/inspirational/quotes.py +0 -0
  264. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/introspection/__init__.py +0 -0
  265. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/introspection/abstract/__init__.py +0 -0
  266. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/introspection/abstract/contracts/__init__.py +0 -0
  267. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/introspection/abstract/contracts/reflection.py +0 -0
  268. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/introspection/abstract/reflection.py +0 -0
  269. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/introspection/callables/__init__.py +0 -0
  270. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/introspection/callables/contracts/__init__.py +0 -0
  271. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/introspection/callables/contracts/reflection.py +0 -0
  272. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/introspection/callables/reflection.py +0 -0
  273. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/introspection/concretes/__init__.py +0 -0
  274. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/introspection/concretes/contracts/__init__.py +0 -0
  275. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/introspection/concretes/contracts/reflection.py +0 -0
  276. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/introspection/concretes/reflection.py +0 -0
  277. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/introspection/dependencies/__init__.py +0 -0
  278. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/introspection/dependencies/contracts/__init__.py +0 -0
  279. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/introspection/dependencies/contracts/reflection.py +0 -0
  280. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/introspection/dependencies/entities/__init__.py +0 -0
  281. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/introspection/dependencies/entities/argument.py +0 -0
  282. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/introspection/dependencies/entities/resolve_argument.py +0 -0
  283. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/introspection/dependencies/reflection.py +0 -0
  284. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/introspection/exceptions/__init__.py +0 -0
  285. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/introspection/exceptions/introspection.py +0 -0
  286. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/introspection/instances/__init__.py +0 -0
  287. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/introspection/instances/contracts/__init__.py +0 -0
  288. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/introspection/instances/contracts/reflection.py +0 -0
  289. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/introspection/instances/reflection.py +0 -0
  290. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/introspection/modules/__init__.py +0 -0
  291. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/introspection/modules/contracts/__init__.py +0 -0
  292. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/introspection/modules/contracts/reflection.py +0 -0
  293. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/introspection/modules/reflection.py +0 -0
  294. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/introspection/objects/__init__.py +0 -0
  295. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/introspection/objects/types.py +0 -0
  296. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/introspection/reflection.py +0 -0
  297. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/log/__init__.py +0 -0
  298. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/log/contracts/__init__.py +0 -0
  299. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/log/contracts/log_service.py +0 -0
  300. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/log/exceptions/__init__.py +0 -0
  301. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/log/exceptions/log.py +0 -0
  302. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/log/handlers/__init__.py +0 -0
  303. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/log/handlers/filename.py +0 -0
  304. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/log/handlers/size_rotating.py +0 -0
  305. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/log/handlers/timed_rotating.py +0 -0
  306. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/log/log_service.py +0 -0
  307. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/system/__init__.py +0 -0
  308. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/system/contracts/__init__.py +0 -0
  309. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/system/contracts/imports.py +0 -0
  310. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/system/contracts/workers.py +0 -0
  311. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/system/imports.py +0 -0
  312. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/system/runtime/__init__.py +0 -0
  313. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/system/runtime/imports.py +0 -0
  314. {orionis-0.650.0 → orionis-0.652.0}/orionis/services/system/workers.py +0 -0
  315. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/__init__.py +0 -0
  316. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/entities/__init__.py +0 -0
  317. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/entities/base.py +0 -0
  318. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/facades/__init__.py +0 -0
  319. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/facades/application.py +0 -0
  320. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/facades/application.pyi +0 -0
  321. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/facades/console.py +0 -0
  322. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/facades/console.pyi +0 -0
  323. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/facades/directory.py +0 -0
  324. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/facades/directory.pyi +0 -0
  325. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/facades/dumper.py +0 -0
  326. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/facades/dumper.pyi +0 -0
  327. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/facades/executor.py +0 -0
  328. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/facades/executor.pyi +0 -0
  329. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/facades/inspire.py +0 -0
  330. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/facades/inspire.pyi +0 -0
  331. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/facades/logger.py +0 -0
  332. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/facades/logger.pyi +0 -0
  333. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/facades/performance_counter.py +0 -0
  334. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/facades/performance_counter.pyi +0 -0
  335. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/facades/progress_bar.py +0 -0
  336. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/facades/progress_bar.pyi +0 -0
  337. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/facades/reactor.py +0 -0
  338. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/facades/reactor.pyi +0 -0
  339. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/facades/testing.py +0 -0
  340. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/facades/testing.pyi +0 -0
  341. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/facades/workers.py +0 -0
  342. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/facades/workers.pyi +0 -0
  343. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/formatter/__init__.py +0 -0
  344. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/formatter/exceptions/__init__.py +0 -0
  345. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/formatter/exceptions/contracts/__init__.py +0 -0
  346. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/formatter/exceptions/contracts/parser.py +0 -0
  347. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/formatter/exceptions/parser.py +0 -0
  348. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/formatter/serializer.py +0 -0
  349. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/patterns/__init__.py +0 -0
  350. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/patterns/singleton/__init__.py +0 -0
  351. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/patterns/singleton/meta.py +0 -0
  352. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/performance/__init__.py +0 -0
  353. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/performance/contracts/__init__.py +0 -0
  354. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/performance/contracts/counter.py +0 -0
  355. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/performance/counter.py +0 -0
  356. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/standard/__init__.py +0 -0
  357. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/standard/contracts/__init__.py +0 -0
  358. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/standard/contracts/std.py +0 -0
  359. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/standard/exceptions/__init__.py +0 -0
  360. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/standard/exceptions/standard.py +0 -0
  361. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/standard/std.py +0 -0
  362. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/wrapper/__init__.py +0 -0
  363. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/wrapper/dataclass.py +0 -0
  364. {orionis-0.650.0 → orionis-0.652.0}/orionis/support/wrapper/dot_dict.py +0 -0
  365. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/__init__.py +0 -0
  366. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/cases/__init__.py +0 -0
  367. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/cases/asynchronous.py +0 -0
  368. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/cases/synchronous.py +0 -0
  369. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/contracts/__init__.py +0 -0
  370. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/contracts/dumper.py +0 -0
  371. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/contracts/kernel.py +0 -0
  372. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/contracts/logs.py +0 -0
  373. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/contracts/printer.py +0 -0
  374. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/contracts/render.py +0 -0
  375. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/contracts/test_result.py +0 -0
  376. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/contracts/unit_test.py +0 -0
  377. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/core/__init__.py +0 -0
  378. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/core/unit_test.py +0 -0
  379. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/entities/__init__.py +0 -0
  380. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/entities/result.py +0 -0
  381. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/enums/__init__.py +0 -0
  382. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/enums/status.py +0 -0
  383. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/exceptions/__init__.py +0 -0
  384. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/exceptions/config.py +0 -0
  385. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/exceptions/failure.py +0 -0
  386. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/exceptions/persistence.py +0 -0
  387. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/exceptions/runtime.py +0 -0
  388. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/exceptions/value.py +0 -0
  389. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/kernel.py +0 -0
  390. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/output/__init__.py +0 -0
  391. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/output/dumper.py +0 -0
  392. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/output/printer.py +0 -0
  393. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/records/__init__.py +0 -0
  394. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/records/logs.py +0 -0
  395. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/validators/__init__.py +0 -0
  396. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/validators/base_path.py +0 -0
  397. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/validators/execution_mode.py +0 -0
  398. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/validators/fail_fast.py +0 -0
  399. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/validators/folder_path.py +0 -0
  400. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/validators/module_name.py +0 -0
  401. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/validators/name_pattern.py +0 -0
  402. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/validators/pattern.py +0 -0
  403. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/validators/persistent.py +0 -0
  404. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/validators/persistent_driver.py +0 -0
  405. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/validators/throw_exception.py +0 -0
  406. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/validators/verbosity.py +0 -0
  407. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/validators/web_report.py +0 -0
  408. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/validators/workers.py +0 -0
  409. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/view/__init__.py +0 -0
  410. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/view/render.py +0 -0
  411. {orionis-0.650.0 → orionis-0.652.0}/orionis/test/view/report.stub +0 -0
  412. {orionis-0.650.0 → orionis-0.652.0}/orionis.egg-info/SOURCES.txt +0 -0
  413. {orionis-0.650.0 → orionis-0.652.0}/orionis.egg-info/dependency_links.txt +0 -0
  414. {orionis-0.650.0 → orionis-0.652.0}/orionis.egg-info/not-zip-safe +0 -0
  415. {orionis-0.650.0 → orionis-0.652.0}/orionis.egg-info/requires.txt +0 -0
  416. {orionis-0.650.0 → orionis-0.652.0}/orionis.egg-info/top_level.txt +0 -0
  417. {orionis-0.650.0 → orionis-0.652.0}/setup.cfg +0 -0
  418. {orionis-0.650.0 → orionis-0.652.0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: orionis
3
- Version: 0.650.0
3
+ Version: 0.652.0
4
4
  Summary: Orionis Framework – Elegant, Fast, and Powerful.
5
5
  Home-page: https://github.com/orionis-framework/framework
6
6
  Author: Raul Mauricio Uñate Castro
@@ -1,4 +1,3 @@
1
- import subprocess
2
1
  from orionis.console.base.command import BaseCommand
3
2
  from orionis.console.exceptions import CLIOrionisRuntimeError
4
3
  from orionis.foundation.contracts.application import IApplication
@@ -94,7 +93,7 @@ class LogClearCommand(BaseCommand):
94
93
  # Recursively remove subdirectories and their contents
95
94
  shutil.rmtree(entry)
96
95
 
97
- except Exception as e:
96
+ except Exception:
98
97
 
99
98
  # Ignore errors for individual entries to continue processing others
100
99
  pass
@@ -3,10 +3,7 @@ import re
3
3
  from typing import List
4
4
  from orionis.console.args.argument import CLIArgument
5
5
  from orionis.console.base.command import BaseCommand
6
- from orionis.console.contracts.reactor import IReactor
7
6
  from orionis.console.exceptions import CLIOrionisRuntimeError
8
- from rich.console import Console
9
- from rich.panel import Panel
10
7
 
11
8
  from orionis.foundation.contracts.application import IApplication
12
9
 
@@ -11,6 +11,7 @@ from orionis.container.contracts.container import IContainer
11
11
  from orionis.container.entities.binding import Binding
12
12
  from orionis.container.enums.lifetimes import Lifetime
13
13
  from orionis.container.exceptions import OrionisContainerException
14
+ from orionis.container.exceptions.container import OrionisContainerTypeError
14
15
  from orionis.container.validators import (
15
16
  ImplementsAbstractMethods,
16
17
  IsAbstractClass,
@@ -28,6 +29,8 @@ from orionis.services.introspection.concretes.reflection import ReflectionConcre
28
29
  from orionis.services.introspection.dependencies.entities.argument import Argument
29
30
  from orionis.services.introspection.dependencies.entities.resolve_argument import ResolveArguments
30
31
  from orionis.services.introspection.dependencies.reflection import ReflectDependencies
32
+ from orionis.services.introspection.instances.reflection import ReflectionInstance
33
+ from orionis.services.introspection.objects.types import Type
31
34
 
32
35
  class Container(IContainer):
33
36
 
@@ -178,6 +181,7 @@ class Container(IContainer):
178
181
  return future.result()
179
182
 
180
183
  else:
184
+
181
185
  # If loop exists but not running, we can run the coroutine
182
186
  return loop.run_until_complete(result)
183
187
 
@@ -225,12 +229,8 @@ class Container(IContainer):
225
229
  total_dependencies = len(dependencies.resolved) + len(dependencies.unresolved)
226
230
 
227
231
  # If the callable does not require any dependencies, invoke directly
228
- if total_dependencies == 0:
229
- result = fn(*args, **kwargs)
230
- return self.__handleSyncAsyncResult(result)
231
-
232
232
  # If enough arguments are provided, invoke directly
233
- if total_provided_args >= total_dependencies:
233
+ if (total_dependencies == 0) or (total_provided_args >= total_dependencies):
234
234
  result = fn(*args, **kwargs)
235
235
  return self.__handleSyncAsyncResult(result)
236
236
 
@@ -298,6 +298,184 @@ class Container(IContainer):
298
298
  f"Expected function signature: {function_name}{signature}"
299
299
  ) from e
300
300
 
301
+ def __decouplingCheck(
302
+ self,
303
+ abstract: Callable[..., Any],
304
+ concrete: Callable[..., Any],
305
+ enforce_decoupling: bool
306
+ ) -> None:
307
+ """
308
+ Validates the decoupling relationship between abstract and concrete classes.
309
+
310
+ Parameters
311
+ ----------
312
+ abstract : Callable[..., Any]
313
+ The abstract base class.
314
+ concrete : Callable[..., Any]
315
+ The concrete implementation class.
316
+ enforce_decoupling : bool
317
+ Whether to enforce that concrete does NOT inherit from abstract.
318
+
319
+ Raises
320
+ ------
321
+ OrionisContainerException
322
+ If the decoupling check fails.
323
+ """
324
+
325
+ if enforce_decoupling:
326
+ if issubclass(concrete, abstract):
327
+ raise OrionisContainerException(
328
+ "The concrete class must NOT inherit from the provided abstract class. "
329
+ "Please ensure that the concrete class is not a subclass of the specified abstract class."
330
+ )
331
+ else:
332
+ if not issubclass(concrete, abstract):
333
+ raise OrionisContainerException(
334
+ "The concrete class must inherit from the provided abstract class. "
335
+ "Please ensure that the concrete class is a subclass of the specified abstract class."
336
+ )
337
+
338
+ def __implementsAbstractMethods(
339
+ self,
340
+ *,
341
+ abstract: Callable[..., Any] = None,
342
+ concrete: Callable[..., Any] = None,
343
+ instance: Any = None
344
+ ) -> None:
345
+ """
346
+ Validates that a concrete class or instance implements all abstract methods defined in an abstract class.
347
+
348
+ Parameters
349
+ ----------
350
+ abstract : Callable[..., Any]
351
+ The abstract base class.
352
+ concrete : Callable[..., Any], optional
353
+ The class expected to implement the abstract methods.
354
+ instance : Any, optional
355
+ The instance expected to implement the abstract methods.
356
+
357
+ Raises
358
+ ------
359
+ OrionisContainerException
360
+ If any abstract method is not implemented.
361
+ """
362
+
363
+ # Validate that the abstract class is provided
364
+ if abstract is None:
365
+ raise OrionisContainerException("Abstract class must be provided for implementation check.")
366
+
367
+ # Instantiation of ReflectionAbstract for potential future use
368
+ rf_abstract = ReflectionAbstract(abstract)
369
+
370
+ # Check if the abstract class has abstract methods
371
+ abstract_methods = rf_abstract.getMethods()
372
+ if not abstract_methods:
373
+ raise OrionisContainerException(
374
+ f"The abstract class '{abstract.__name__}' does not define any abstract methods. "
375
+ "An abstract class must have at least one abstract method."
376
+ )
377
+
378
+ # Determine the target class or instance to check
379
+ target = concrete if concrete is not None else instance
380
+ if target is None:
381
+ raise OrionisContainerException("Either concrete class or instance must be provided for implementation check.")
382
+
383
+ # Validate that the target is a class or instance
384
+ target_class = target if Type(target).isClass() else target.__class__
385
+
386
+ # Instantiation of ReflectionConcrete for potential future use
387
+ rf_class = ReflectionConcrete(target_class)
388
+
389
+ # Extract class names for error messages
390
+ target_name = rf_class.getClassName()
391
+ abstract_name = rf_abstract.getClassName()
392
+
393
+ # Extract methods implemented by the target class
394
+ implemented_methods = rf_class.getMethods()
395
+
396
+ # Check if the target class implements all abstract methods
397
+ not_implemented = []
398
+ for method in abstract_methods:
399
+ if method not in implemented_methods:
400
+ not_implemented.append(method)
401
+
402
+ # If any abstract methods are not implemented, raise an exception
403
+ if not_implemented:
404
+ formatted = "\n • " + "\n • ".join(not_implemented)
405
+ raise OrionisContainerException(
406
+ f"'{target_name}' does not implement the following abstract methods defined in '{abstract_name}':{formatted}\n"
407
+ "Please ensure that all abstract methods are implemented."
408
+ )
409
+
410
+ def __makeAliasKey(
411
+ self,
412
+ abstract: Callable[..., Any],
413
+ alias: str = None
414
+ ) -> str:
415
+ """
416
+ Generates a unique and valid key for an alias based on the abstract class and optional alias.
417
+
418
+ This method ensures that the alias used for service registration is valid and unique.
419
+ If an explicit alias is provided, it validates the alias for type, emptiness, and
420
+ forbidden characters. If no alias is provided, it generates a default alias using
421
+ the abstract class's module and name.
422
+
423
+ Parameters
424
+ ----------
425
+ abstract : Callable[..., Any]
426
+ The abstract base class or interface for which the alias is being generated.
427
+ alias : str, optional
428
+ An optional custom alias to use instead of the default generated alias.
429
+
430
+ Returns
431
+ -------
432
+ str
433
+ The validated or generated alias key. If a valid alias is provided, it is returned
434
+ directly. Otherwise, the default alias in the format 'module.ClassName' is returned.
435
+
436
+ Raises
437
+ ------
438
+ OrionisContainerTypeError
439
+ If the provided alias is None, empty, whitespace only, not a string, or contains
440
+ invalid characters.
441
+
442
+ Notes
443
+ -----
444
+ - The alias must not contain whitespace or special symbols.
445
+ - If no alias is provided, the default alias is generated using the abstract's module
446
+ and class name.
447
+ """
448
+
449
+ # Set of characters that are not allowed in aliases
450
+ invalid_chars = set(' \t\n\r\x0b\x0c!@#$%^&*()[]{};:,/<>?\\|`~"\'')
451
+
452
+ # If an alias is provided, validate and use it directly
453
+ if alias:
454
+ # Check for None, empty string, or whitespace-only alias
455
+ if alias is None or alias == "" or str(alias).isspace():
456
+ raise OrionisContainerTypeError(
457
+ "Alias cannot be None, empty, or whitespace only."
458
+ )
459
+
460
+ # Ensure the alias is a string
461
+ if not isinstance(alias, str):
462
+ raise OrionisContainerTypeError(
463
+ f"Expected a string type for alias, but got {type(alias).__name__} instead."
464
+ )
465
+
466
+ # Check for invalid characters in the alias
467
+ if any(char in invalid_chars for char in alias):
468
+ raise OrionisContainerTypeError(
469
+ f"Alias '{alias}' contains invalid characters. "
470
+ "Aliases must not contain whitespace or special symbols."
471
+ )
472
+
473
+ # Return the validated alias
474
+ return alias
475
+
476
+ # If no alias is provided, generate a default alias using module and class name
477
+ return f"{abstract.__module__}.{abstract.__name__}"
478
+
301
479
  def transient(
302
480
  self,
303
481
  abstract: Callable[..., Any],
@@ -312,76 +490,187 @@ class Container(IContainer):
312
490
  Parameters
313
491
  ----------
314
492
  abstract : Callable[..., Any]
315
- The abstract base type or interface to be bound.
493
+ The abstract base type or interface to be bound. Must be an abstract class or interface.
316
494
  concrete : Callable[..., Any]
317
- The concrete implementation to associate with the abstract type.
495
+ The concrete implementation to associate with the abstract type. Must be a concrete class.
318
496
  alias : str, optional
319
- An alternative name to register the service under. If not provided, the abstract's class name is used.
497
+ An alternative name to register the service under. If not provided, a default alias is generated
498
+ using the abstract's module and class name.
499
+ enforce_decoupling : bool, optional
500
+ If True, enforces that the concrete class does NOT inherit from the abstract class. If False,
501
+ requires that the concrete class is a subclass of the abstract.
320
502
 
321
503
  Returns
322
504
  -------
323
- bool
324
- True if the service was registered successfully.
505
+ bool or None
506
+ Returns True if the service was registered successfully. Returns None if registration fails.
325
507
 
326
508
  Raises
327
509
  ------
328
510
  OrionisContainerTypeError
329
- If the abstract or concrete class checks fail.
511
+ If the abstract or concrete class validation fails.
330
512
  OrionisContainerException
331
- If the concrete class inherits from the abstract class.
513
+ If the decoupling check fails or if an unexpected error occurs during registration.
332
514
 
333
515
  Notes
334
516
  -----
335
- Registers the given concrete implementation to the abstract type with a transient lifetime,
336
- meaning a new instance will be created each time the service is requested. Optionally, an alias
337
- can be provided for registration.
517
+ This method registers the given concrete implementation to the abstract type with a transient lifetime,
518
+ meaning a new instance will be created each time the service is requested. The method validates the
519
+ abstract and concrete types, checks decoupling rules, ensures all abstract methods are implemented,
520
+ and manages service aliases. If a service is already registered under the same abstract or alias,
521
+ it is removed before registering the new binding.
338
522
  """
339
523
 
340
- # Ensure that abstract is an abstract class
341
- IsAbstractClass(abstract, Lifetime.TRANSIENT)
524
+ try:
342
525
 
343
- # Ensure that concrete is a concrete class
344
- IsConcreteClass(concrete, Lifetime.TRANSIENT)
526
+ # Ensure that abstract is an abstract class
527
+ ReflectionAbstract.ensureIsAbstractClass(abstract)
345
528
 
346
- # Ensure that concrete is NOT a subclass of abstract
347
- if enforce_decoupling:
348
- IsNotSubclass(abstract, concrete)
529
+ # Ensure that concrete is a concrete class
530
+ ReflectionConcrete.ensureIsConcreteClass(concrete)
531
+
532
+ # Ensure that concrete is NOT a subclass of abstract if decoupling is enforced,
533
+ # otherwise ensure it is a subclass
534
+ self.__decouplingCheck(abstract, concrete, enforce_decoupling)
535
+
536
+ # Ensure that all abstract methods are implemented by the concrete class
537
+ self.__implementsAbstractMethods(
538
+ abstract=abstract,
539
+ concrete=concrete
540
+ )
541
+
542
+ # Validate and generate the alias key (either provided or default)
543
+ alias = self.__makeAliasKey(abstract, alias)
544
+
545
+ # If the service is already registered, remove the existing binding
546
+ self.drop(abstract, alias)
547
+
548
+ # Register the service with transient lifetime
549
+ self.__bindings[abstract] = Binding(
550
+ contract = abstract,
551
+ concrete = concrete,
552
+ lifetime = Lifetime.TRANSIENT,
553
+ enforce_decoupling = enforce_decoupling,
554
+ alias = alias
555
+ )
556
+
557
+ # Register the alias for lookup
558
+ self.__aliases[alias] = self.__bindings[abstract]
559
+
560
+ # Return True to indicate successful registration
561
+ return True
562
+
563
+ except Exception as e:
564
+
565
+ # Raise a container exception with details if registration fails
566
+ raise OrionisContainerException(
567
+ f"Unexpected error registering {Lifetime.TRANSIENT} service: {e}"
568
+ ) from e
569
+
570
+ def instance(
571
+ self,
572
+ abstract: Callable[..., Any],
573
+ instance: Any,
574
+ *,
575
+ alias: str = None,
576
+ enforce_decoupling: bool = False
577
+ ) -> Optional[bool]:
578
+ """
579
+ Registers an instance of a class or interface in the container with singleton lifetime.
580
+
581
+ This method validates the abstract type, the instance, and the alias (if provided).
582
+ It ensures that the instance is a valid implementation of the abstract class or interface,
583
+ optionally enforces decoupling, and registers the instance in the container under both
584
+ the abstract type and the alias.
585
+
586
+ Parameters
587
+ ----------
588
+ abstract : Callable[..., Any]
589
+ The abstract class or interface to associate with the instance.
590
+ instance : Any
591
+ The concrete instance to register.
592
+ alias : str, optional
593
+ An optional alias to register the instance under. If not provided,
594
+ a default alias is generated from the abstract's module and class name.
595
+ enforce_decoupling : bool, optional
596
+ If True, enforces that the instance's class does NOT inherit from the abstract class.
597
+ If False, requires that the instance's class is a subclass of the abstract.
598
+
599
+ Returns
600
+ -------
601
+ bool or None
602
+ Returns True if the instance was successfully registered.
603
+ Returns None if registration fails due to an exception.
604
+
605
+ Raises
606
+ ------
607
+ OrionisContainerTypeError
608
+ If `abstract` is not an abstract class or if `alias` is not a valid string.
609
+ OrionisContainerException
610
+ If the instance is not a valid implementation, fails decoupling check,
611
+ or if registration fails for any other reason.
612
+
613
+ Notes
614
+ -----
615
+ - The instance is registered with singleton lifetime, meaning it will be shared
616
+ across all resolutions of the abstract type or alias.
617
+ - The method ensures that all abstract methods are implemented by the instance.
618
+ - If a service is already registered under the same abstract or alias, it is removed
619
+ before registering the new instance.
620
+ """
621
+
622
+ try:
623
+
624
+ # Ensure that the abstract is an abstract class
625
+ ReflectionAbstract.ensureIsAbstractClass(abstract)
626
+
627
+ # Ensure that the instance is a valid instance of the abstract
628
+ ReflectionInstance.ensureIsInstance(instance)
629
+
630
+ # Enforce decoupling or subclass relationship as specified
631
+ self.__decouplingCheck(abstract, instance.__class__, enforce_decoupling)
632
+
633
+ # Ensure all abstract methods are implemented by the instance
634
+ self.__implementsAbstractMethods(
635
+ abstract=abstract,
636
+ instance=instance
637
+ )
638
+
639
+ # Validate and generate the alias key (either provided or default)
640
+ alias = self.__makeAliasKey(abstract, alias)
641
+
642
+ # If the service is already registered, remove the existing binding
643
+ self.drop(abstract, alias)
644
+
645
+ # Register the instance with singleton lifetime
646
+ self.__bindings[abstract] = Binding(
647
+ contract = abstract,
648
+ instance = instance,
649
+ lifetime = Lifetime.SINGLETON,
650
+ enforce_decoupling = enforce_decoupling,
651
+ alias = alias
652
+ )
653
+
654
+ # Register the alias for lookup
655
+ self.__aliases[alias] = self.__bindings[abstract]
656
+
657
+ # Return True to indicate successful registration
658
+ return True
659
+
660
+ except Exception as e:
661
+
662
+ # Raise a container exception with details if registration fails
663
+ raise OrionisContainerException(
664
+ f"Unexpected error registering instance: {e}"
665
+ ) from e
349
666
 
350
- # Validate that concrete is a subclass of abstract
351
- else:
352
- IsSubclass(abstract, concrete)
353
667
 
354
- # Ensure implementation
355
- ImplementsAbstractMethods(
356
- abstract=abstract,
357
- concrete=concrete
358
- )
359
668
 
360
- # Ensure that the alias is a valid string if provided
361
- if alias:
362
- IsValidAlias(alias)
363
669
 
364
- # Cretate a default alias if none provided
365
- else:
366
- alias = f"{abstract.__module__}.{abstract.__name__}"
367
670
 
368
- # If the service is already registered, drop it
369
- self.drop(abstract, alias)
370
671
 
371
- # Register the service with transient lifetime
372
- self.__bindings[abstract] = Binding(
373
- contract = abstract,
374
- concrete = concrete,
375
- lifetime = Lifetime.TRANSIENT,
376
- enforce_decoupling = enforce_decoupling,
377
- alias = alias
378
- )
379
672
 
380
- # Register the alias
381
- self.__aliases[alias] = self.__bindings[abstract]
382
673
 
383
- # Return True to indicate successful registration
384
- return True
385
674
 
386
675
  def singleton(
387
676
  self,
@@ -641,96 +930,7 @@ class Container(IContainer):
641
930
  # Return True to indicate successful registration
642
931
  return True
643
932
 
644
- def instance(
645
- self,
646
- abstract: Callable[..., Any],
647
- instance: Any,
648
- *,
649
- alias: str = None,
650
- enforce_decoupling: bool = False
651
- ) -> Optional[bool]:
652
- """
653
- Registers an instance of a class or interface in the container.
654
- Parameters
655
- ----------
656
- abstract : Callable[..., Any]
657
- The abstract class or interface to associate with the instance.
658
- instance : Any
659
- The concrete instance to register.
660
- alias : str, optional
661
- An optional alias to register the instance under. If not provided,
662
- the abstract's `__name__` attribute will be used as the alias if available.
663
- Returns
664
- -------
665
- bool
666
- True if the instance was successfully registered.
667
- Raises
668
- ------
669
- TypeError
670
- If `abstract` is not an abstract class or if `alias` is not a valid string.
671
- ValueError
672
- If `instance` is not a valid instance of `abstract`.
673
- Notes
674
- -----
675
- This method ensures that the abstract is a valid abstract class, the instance
676
- is valid, and the alias (if provided) is a valid string. The instance is then
677
- registered in the container under both the abstract and the alias.
678
- """
679
-
680
- # Validate the enforce_decoupling parameter
681
- if isinstance(enforce_decoupling, bool):
682
-
683
- # Ensure that the abstract is an abstract class
684
- IsAbstractClass(abstract, f"Instance {Lifetime.SINGLETON}")
685
-
686
- # Ensure that the instance is a valid instance
687
- IsInstance(instance)
688
-
689
- # Ensure that instance is NOT a subclass of abstract
690
- if enforce_decoupling:
691
- IsNotSubclass(abstract, instance.__class__)
692
-
693
- # Validate that instance is a subclass of abstract
694
- else:
695
- IsSubclass(abstract, instance.__class__)
696
-
697
- # Ensure implementation
698
- ImplementsAbstractMethods(
699
- abstract=abstract,
700
- instance=instance
701
- )
702
-
703
- # Ensure that the alias is a valid string if provided
704
- if alias:
705
- IsValidAlias(alias)
706
- else:
707
- alias = f"{abstract.__module__}.{abstract.__name__}"
708
-
709
- # If the service is already registered, drop it
710
- self.drop(abstract, alias)
711
-
712
- else:
713
-
714
- # Drop the existing alias if it exists
715
- self.drop(alias=alias)
716
-
717
- # If enforce_decoupling is not a boolean, set it to False
718
- enforce_decoupling = False
719
-
720
- # Register the instance with the abstract type
721
- self.__bindings[abstract] = Binding(
722
- contract = abstract,
723
- instance = instance,
724
- lifetime = Lifetime.SINGLETON,
725
- enforce_decoupling = enforce_decoupling,
726
- alias = alias
727
- )
728
-
729
- # Register the alias
730
- self.__aliases[alias] = self.__bindings[abstract]
731
-
732
- # Return True to indicate successful registration
733
- return True
933
+
734
934
 
735
935
  def callable(
736
936
  self,
@@ -2201,8 +2201,7 @@ class Application(Container, IApplication):
2201
2201
  self.instance(
2202
2202
  IApplication,
2203
2203
  self,
2204
- alias="x-orionis.foundation.contracts.application.IApplication",
2205
- enforce_decoupling=None
2204
+ alias="x-orionis.foundation.contracts.application.IApplication"
2206
2205
  )
2207
2206
 
2208
2207
  # Load configuration if not already set
@@ -5,7 +5,7 @@
5
5
  NAME = "orionis"
6
6
 
7
7
  # Current version of the framework
8
- VERSION = "0.650.0"
8
+ VERSION = "0.652.0"
9
9
 
10
10
  # Full name of the author or maintainer of the project
11
11
  AUTHOR = "Raul Mauricio Uñate Castro"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: orionis
3
- Version: 0.650.0
3
+ Version: 0.652.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
File without changes
File without changes
File without changes
File without changes