orionis 0.318.0__tar.gz → 0.319.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 (459) hide show
  1. {orionis-0.318.0/orionis.egg-info → orionis-0.319.0}/PKG-INFO +1 -1
  2. {orionis-0.318.0 → orionis-0.319.0}/orionis/container/container.py +397 -14
  3. orionis-0.319.0/orionis/container/contracts/container.py +202 -0
  4. {orionis-0.318.0 → orionis-0.319.0}/orionis/metadata/framework.py +1 -1
  5. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/introspection/callables/reflection_callable.py +14 -0
  6. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/introspection/concretes/reflection_concrete.py +11 -0
  7. {orionis-0.318.0 → orionis-0.319.0/orionis.egg-info}/PKG-INFO +1 -1
  8. {orionis-0.318.0 → orionis-0.319.0}/orionis.egg-info/SOURCES.txt +1 -0
  9. {orionis-0.318.0 → orionis-0.319.0}/LICENCE +0 -0
  10. {orionis-0.318.0 → orionis-0.319.0}/MANIFEST.in +0 -0
  11. {orionis-0.318.0 → orionis-0.319.0}/README.md +0 -0
  12. {orionis-0.318.0 → orionis-0.319.0}/orionis/__init__.py +0 -0
  13. {orionis-0.318.0 → orionis-0.319.0}/orionis/_application.py +0 -0
  14. {orionis-0.318.0 → orionis-0.319.0}/orionis/_container/__init__.py +0 -0
  15. {orionis-0.318.0 → orionis-0.319.0}/orionis/_container/container.py +0 -0
  16. {orionis-0.318.0 → orionis-0.319.0}/orionis/_container/container_integrity.py +0 -0
  17. {orionis-0.318.0 → orionis-0.319.0}/orionis/_container/exception.py +0 -0
  18. {orionis-0.318.0 → orionis-0.319.0}/orionis/_container/lifetimes.py +0 -0
  19. {orionis-0.318.0 → orionis-0.319.0}/orionis/_container/resolve.py +0 -0
  20. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/__init__.py +0 -0
  21. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/application.py +0 -0
  22. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/config/__init__.py +0 -0
  23. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/config/config.py +0 -0
  24. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/console/__init__.py +0 -0
  25. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/console/base/__init__.py +0 -0
  26. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/console/base/command.py +0 -0
  27. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/console/command_filter.py +0 -0
  28. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/console/kernel.py +0 -0
  29. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/console/output/__init__.py +0 -0
  30. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/console/output/console.py +0 -0
  31. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/console/output/executor.py +0 -0
  32. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/console/output/progress_bar.py +0 -0
  33. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/console/parser.py +0 -0
  34. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/console/task_manager.py +0 -0
  35. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/container/container.py +0 -0
  36. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/container/container_integrity.py +0 -0
  37. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/facades/__init__.py +0 -0
  38. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/facades/commands/__init__.py +0 -0
  39. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/facades/commands/commands_facade.py +0 -0
  40. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/facades/commands/scheduler_facade.py +0 -0
  41. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/facades/config/__init__.py +0 -0
  42. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/facades/config/config_facade.py +0 -0
  43. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/facades/environment/__init__.py +0 -0
  44. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/facades/environment/environment_facade.py +0 -0
  45. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/facades/facade.py +0 -0
  46. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/facades/files/__init__.py +0 -0
  47. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/facades/files/path_facade.py +0 -0
  48. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/facades/log/__init__.py +0 -0
  49. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/facades/log/log_facade.py +0 -0
  50. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/facades/tests/__init__.py +0 -0
  51. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/facades/tests/tests_facade.py +0 -0
  52. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/foundation/__init__.py +0 -0
  53. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/foundation/bootstraper.py +0 -0
  54. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/foundation/config/__init__.py +0 -0
  55. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/foundation/config/config_bootstrapper.py +0 -0
  56. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/foundation/console/__init__.py +0 -0
  57. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/foundation/console/command_bootstrapper.py +0 -0
  58. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/foundation/environment/__init__.py +0 -0
  59. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/foundation/environment/environment_bootstrapper.py +0 -0
  60. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/foundation/providers/__init__.py +0 -0
  61. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/foundation/providers/service_providers_bootstrapper.py +0 -0
  62. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/providers/__init__.py +0 -0
  63. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/providers/service_provider.py +0 -0
  64. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/services/__init__.py +0 -0
  65. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/services/commands/__init__.py +0 -0
  66. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/services/commands/reactor_commands_service.py +0 -0
  67. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/services/commands/schedule_service.py +0 -0
  68. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/services/config/__init__.py +0 -0
  69. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/services/config/config_service.py +0 -0
  70. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/services/environment/__init__.py +0 -0
  71. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/services/environment/environment_service.py +0 -0
  72. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/services/files/__init__.py +0 -0
  73. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/services/files/path_resolver_service.py +0 -0
  74. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/services/log/__init__.py +0 -0
  75. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/services/log/log_service.py +0 -0
  76. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/support/exception_parse.py +0 -0
  77. {orionis-0.318.0 → orionis-0.319.0}/orionis/_contracts/support/reflection.py +0 -0
  78. {orionis-0.318.0 → orionis-0.319.0}/orionis/_facades/__init__.py +0 -0
  79. {orionis-0.318.0 → orionis-0.319.0}/orionis/_facades/app_facade.py +0 -0
  80. {orionis-0.318.0 → orionis-0.319.0}/orionis/_facades/commands/__init__.py +0 -0
  81. {orionis-0.318.0 → orionis-0.319.0}/orionis/_facades/commands/commands_facade.py +0 -0
  82. {orionis-0.318.0 → orionis-0.319.0}/orionis/_facades/commands/scheduler_facade.py +0 -0
  83. {orionis-0.318.0 → orionis-0.319.0}/orionis/_facades/config/__init__.py +0 -0
  84. {orionis-0.318.0 → orionis-0.319.0}/orionis/_facades/config/config_facade.py +0 -0
  85. {orionis-0.318.0 → orionis-0.319.0}/orionis/_facades/environment/__init__.py +0 -0
  86. {orionis-0.318.0 → orionis-0.319.0}/orionis/_facades/environment/environment_facade.py +0 -0
  87. {orionis-0.318.0 → orionis-0.319.0}/orionis/_facades/files/__init__.py +0 -0
  88. {orionis-0.318.0 → orionis-0.319.0}/orionis/_facades/files/path_facade.py +0 -0
  89. {orionis-0.318.0 → orionis-0.319.0}/orionis/_facades/log/__init__.py +0 -0
  90. {orionis-0.318.0 → orionis-0.319.0}/orionis/_facades/log/log_facade.py +0 -0
  91. {orionis-0.318.0 → orionis-0.319.0}/orionis/_foundation/__init__.py +0 -0
  92. {orionis-0.318.0 → orionis-0.319.0}/orionis/_foundation/console/__init__.py +0 -0
  93. {orionis-0.318.0 → orionis-0.319.0}/orionis/_foundation/console/command_bootstrapper.py +0 -0
  94. {orionis-0.318.0 → orionis-0.319.0}/orionis/_foundation/environment/__init__.py +0 -0
  95. {orionis-0.318.0 → orionis-0.319.0}/orionis/_foundation/environment/environment_bootstrapper.py +0 -0
  96. {orionis-0.318.0 → orionis-0.319.0}/orionis/_foundation/exceptions/__init__.py +0 -0
  97. {orionis-0.318.0 → orionis-0.319.0}/orionis/_foundation/exceptions/exception_bootstrapper.py +0 -0
  98. {orionis-0.318.0 → orionis-0.319.0}/orionis/_foundation/exceptions/exception_providers.py +0 -0
  99. {orionis-0.318.0 → orionis-0.319.0}/orionis/_foundation/foundation/config/__init__.py +0 -0
  100. {orionis-0.318.0 → orionis-0.319.0}/orionis/_foundation/foundation/config/config_bootstrapper.py +0 -0
  101. {orionis-0.318.0 → orionis-0.319.0}/orionis/_foundation/providers/__init__.py +0 -0
  102. {orionis-0.318.0 → orionis-0.319.0}/orionis/_foundation/providers/service_providers_bootstrapper.py +0 -0
  103. {orionis-0.318.0 → orionis-0.319.0}/orionis/_providers/__init__.py +0 -0
  104. {orionis-0.318.0 → orionis-0.319.0}/orionis/_providers/commands/__init__.py +0 -0
  105. {orionis-0.318.0 → orionis-0.319.0}/orionis/_providers/commands/reactor_commands_service_provider.py +0 -0
  106. {orionis-0.318.0 → orionis-0.319.0}/orionis/_providers/commands/scheduler_provider.py +0 -0
  107. {orionis-0.318.0 → orionis-0.319.0}/orionis/_providers/config/__init__.py +0 -0
  108. {orionis-0.318.0 → orionis-0.319.0}/orionis/_providers/config/config_service_provider.py +0 -0
  109. {orionis-0.318.0 → orionis-0.319.0}/orionis/_providers/environment/__init__.py +0 -0
  110. {orionis-0.318.0 → orionis-0.319.0}/orionis/_providers/environment/environment__service_provider.py +0 -0
  111. {orionis-0.318.0 → orionis-0.319.0}/orionis/_providers/files/__init__.py +0 -0
  112. {orionis-0.318.0 → orionis-0.319.0}/orionis/_providers/files/paths_provider.py +0 -0
  113. {orionis-0.318.0 → orionis-0.319.0}/orionis/_providers/log/__init__.py +0 -0
  114. {orionis-0.318.0 → orionis-0.319.0}/orionis/_providers/log/log_service_provider.py +0 -0
  115. {orionis-0.318.0 → orionis-0.319.0}/orionis/_providers/service_provider.py +0 -0
  116. {orionis-0.318.0 → orionis-0.319.0}/orionis/_services/__init__.py +0 -0
  117. {orionis-0.318.0 → orionis-0.319.0}/orionis/_services/commands/__init__.py +0 -0
  118. {orionis-0.318.0 → orionis-0.319.0}/orionis/_services/commands/reactor_commands_service.py +0 -0
  119. {orionis-0.318.0 → orionis-0.319.0}/orionis/_services/commands/scheduler_service.py +0 -0
  120. {orionis-0.318.0 → orionis-0.319.0}/orionis/_services/config/__init__.py +0 -0
  121. {orionis-0.318.0 → orionis-0.319.0}/orionis/_services/config/config_service.py +0 -0
  122. {orionis-0.318.0 → orionis-0.319.0}/orionis/_services/log/__init__.py +0 -0
  123. {orionis-0.318.0 → orionis-0.319.0}/orionis/_services/log/log_service.py +0 -0
  124. {orionis-0.318.0 → orionis-0.319.0}/orionis/application.py +0 -0
  125. {orionis-0.318.0 → orionis-0.319.0}/orionis/console/__init__.py +0 -0
  126. {orionis-0.318.0 → orionis-0.319.0}/orionis/console/base/__init__.py +0 -0
  127. {orionis-0.318.0 → orionis-0.319.0}/orionis/console/base/command.py +0 -0
  128. {orionis-0.318.0 → orionis-0.319.0}/orionis/console/command_filter.py +0 -0
  129. {orionis-0.318.0 → orionis-0.319.0}/orionis/console/commands/__init__.py +0 -0
  130. {orionis-0.318.0 → orionis-0.319.0}/orionis/console/commands/cache_clear.py +0 -0
  131. {orionis-0.318.0 → orionis-0.319.0}/orionis/console/commands/help.py +0 -0
  132. {orionis-0.318.0 → orionis-0.319.0}/orionis/console/commands/schedule_work.py +0 -0
  133. {orionis-0.318.0 → orionis-0.319.0}/orionis/console/commands/version.py +0 -0
  134. {orionis-0.318.0 → orionis-0.319.0}/orionis/console/dumper/__init__.py +0 -0
  135. {orionis-0.318.0 → orionis-0.319.0}/orionis/console/dumper/dump_die.py +0 -0
  136. {orionis-0.318.0 → orionis-0.319.0}/orionis/console/exceptions/__init__.py +0 -0
  137. {orionis-0.318.0 → orionis-0.319.0}/orionis/console/exceptions/cli-orionis-value-error.py +0 -0
  138. {orionis-0.318.0 → orionis-0.319.0}/orionis/console/exceptions/cli_exception.py +0 -0
  139. {orionis-0.318.0 → orionis-0.319.0}/orionis/console/exceptions/cli_runtime_error.py +0 -0
  140. {orionis-0.318.0 → orionis-0.319.0}/orionis/console/exceptions/cli_schedule_exception.py +0 -0
  141. {orionis-0.318.0 → orionis-0.319.0}/orionis/console/kernel.py +0 -0
  142. {orionis-0.318.0 → orionis-0.319.0}/orionis/console/output/__init__.py +0 -0
  143. {orionis-0.318.0 → orionis-0.319.0}/orionis/console/output/console.py +0 -0
  144. {orionis-0.318.0 → orionis-0.319.0}/orionis/console/output/executor.py +0 -0
  145. {orionis-0.318.0 → orionis-0.319.0}/orionis/console/output/progress_bar.py +0 -0
  146. {orionis-0.318.0 → orionis-0.319.0}/orionis/console/output/styles.py +0 -0
  147. {orionis-0.318.0 → orionis-0.319.0}/orionis/console/parser.py +0 -0
  148. {orionis-0.318.0 → orionis-0.319.0}/orionis/container/entities/binding.py +0 -0
  149. {orionis-0.318.0 → orionis-0.319.0}/orionis/container/enums/lifetimes.py +0 -0
  150. {orionis-0.318.0 → orionis-0.319.0}/orionis/container/exceptions/container_exception.py +0 -0
  151. {orionis-0.318.0 → orionis-0.319.0}/orionis/container/exceptions/type_error_exception.py +0 -0
  152. {orionis-0.318.0 → orionis-0.319.0}/orionis/container/exceptions/value_exception.py +0 -0
  153. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/__init__.py +0 -0
  154. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/__init__.py +0 -0
  155. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/app/__init__.py +0 -0
  156. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/app/entities/__init__.py +0 -0
  157. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/app/entities/app.py +0 -0
  158. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/app/enums/__init__.py +0 -0
  159. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/app/enums/ciphers.py +0 -0
  160. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/app/enums/environments.py +0 -0
  161. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/auth/__init__.py +0 -0
  162. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/auth/entities/__init__.py +0 -0
  163. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/auth/entities/auth.py +0 -0
  164. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/cache/__init__.py +0 -0
  165. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/cache/entities/__init__.py +0 -0
  166. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/cache/entities/cache.py +0 -0
  167. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/cache/entities/file.py +0 -0
  168. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/cache/entities/stores.py +0 -0
  169. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/cache/enums/__init__.py +0 -0
  170. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/cache/enums/drivers.py +0 -0
  171. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/cors/__init__.py +0 -0
  172. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/cors/entities/__init__.py +0 -0
  173. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/cors/entities/cors.py +0 -0
  174. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/database/__init__.py +0 -0
  175. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/database/entities/__init__.py +0 -0
  176. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/database/entities/connections.py +0 -0
  177. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/database/entities/database.py +0 -0
  178. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/database/entities/mysql.py +0 -0
  179. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/database/entities/oracle.py +0 -0
  180. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/database/entities/pgsql.py +0 -0
  181. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/database/entities/sqlite.py +0 -0
  182. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/database/enums/__init__.py +0 -0
  183. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/database/enums/mysql_charsets.py +0 -0
  184. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/database/enums/mysql_collations.py +0 -0
  185. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/database/enums/mysql_engine.py +0 -0
  186. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/database/enums/oracle_encoding.py +0 -0
  187. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/database/enums/oracle_nencoding.py +0 -0
  188. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/database/enums/pgsql_charsets.py +0 -0
  189. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/database/enums/pgsql_collations.py +0 -0
  190. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/database/enums/pgsql_mode.py +0 -0
  191. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/database/enums/sqlite_foreign_key.py +0 -0
  192. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/database/enums/sqlite_journal.py +0 -0
  193. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/database/enums/sqlite_synchronous.py +0 -0
  194. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/filesystems/__init__.py +0 -0
  195. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/filesystems/entitites/__init__.py +0 -0
  196. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/filesystems/entitites/aws.py +0 -0
  197. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/filesystems/entitites/disks.py +0 -0
  198. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/filesystems/entitites/filesystems.py +0 -0
  199. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/filesystems/entitites/local.py +0 -0
  200. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/filesystems/entitites/public.py +0 -0
  201. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/logging/__init__.py +0 -0
  202. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/logging/entities/__init__.py +0 -0
  203. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/logging/entities/channels.py +0 -0
  204. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/logging/entities/chunked.py +0 -0
  205. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/logging/entities/daily.py +0 -0
  206. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/logging/entities/hourly.py +0 -0
  207. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/logging/entities/logging.py +0 -0
  208. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/logging/entities/monthly.py +0 -0
  209. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/logging/entities/stack.py +0 -0
  210. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/logging/entities/weekly.py +0 -0
  211. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/logging/enums/__init__.py +0 -0
  212. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/logging/enums/levels.py +0 -0
  213. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/mail/__init__.py +0 -0
  214. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/mail/entities/__init__.py +0 -0
  215. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/mail/entities/file.py +0 -0
  216. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/mail/entities/mail.py +0 -0
  217. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/mail/entities/mailers.py +0 -0
  218. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/mail/entities/smtp.py +0 -0
  219. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/queue/__init__.py +0 -0
  220. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/queue/entities/__init__.py +0 -0
  221. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/queue/entities/brokers.py +0 -0
  222. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/queue/entities/database.py +0 -0
  223. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/queue/entities/queue.py +0 -0
  224. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/queue/enums/strategy.py +0 -0
  225. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/roots/__init__.py +0 -0
  226. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/roots/paths.py +0 -0
  227. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/session/__init__.py +0 -0
  228. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/session/entities/__init__.py +0 -0
  229. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/session/entities/session.py +0 -0
  230. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/session/enums/__init__.py +0 -0
  231. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/session/enums/same_site_policy.py +0 -0
  232. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/session/helpers/secret_key.py +0 -0
  233. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/startup.py +0 -0
  234. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/testing/__init__.py +0 -0
  235. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/testing/entities/__init__.py +0 -0
  236. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/testing/entities/testing.py +0 -0
  237. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/testing/enums/__init__.py +0 -0
  238. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/config/testing/enums/test_mode.py +0 -0
  239. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/contracts/__init__.py +0 -0
  240. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/contracts/config.py +0 -0
  241. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/exceptions/__init__.py +0 -0
  242. {orionis-0.318.0 → orionis-0.319.0}/orionis/foundation/exceptions/integrity.py +0 -0
  243. {orionis-0.318.0 → orionis-0.319.0}/orionis/metadata/__init__.py +0 -0
  244. {orionis-0.318.0 → orionis-0.319.0}/orionis/metadata/package.py +0 -0
  245. {orionis-0.318.0 → orionis-0.319.0}/orionis/patterns/__init__.py +0 -0
  246. {orionis-0.318.0 → orionis-0.319.0}/orionis/patterns/singleton/__init__.py +0 -0
  247. {orionis-0.318.0 → orionis-0.319.0}/orionis/patterns/singleton/meta_class.py +0 -0
  248. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/__init__.py +0 -0
  249. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/asynchrony/__init__.py +0 -0
  250. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/asynchrony/contracts/__init__.py +0 -0
  251. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/asynchrony/contracts/coroutines.py +0 -0
  252. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/asynchrony/coroutines.py +0 -0
  253. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/asynchrony/exceptions/__init__.py +0 -0
  254. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/asynchrony/exceptions/coroutine_exception.py +0 -0
  255. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/environment/__init__.py +0 -0
  256. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/environment/contracts/__init__.py +0 -0
  257. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/environment/contracts/env.py +0 -0
  258. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/environment/contracts/types.py +0 -0
  259. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/environment/dot_env.py +0 -0
  260. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/environment/env.py +0 -0
  261. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/environment/exceptions/__init__.py +0 -0
  262. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/environment/exceptions/environment_value_error.py +0 -0
  263. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/environment/exceptions/environment_value_exception.py +0 -0
  264. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/environment/types.py +0 -0
  265. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/introspection/__init__.py +0 -0
  266. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/introspection/abstract/__init__.py +0 -0
  267. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/introspection/abstract/reflection_abstract.py +0 -0
  268. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/introspection/callables/__init__.py +0 -0
  269. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/introspection/concretes/__init__.py +0 -0
  270. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/introspection/contracts/__init__.py +0 -0
  271. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/introspection/contracts/reflect_dependencies.py +0 -0
  272. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/introspection/contracts/reflection_abstract.py +0 -0
  273. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/introspection/contracts/reflection_concrete.py +0 -0
  274. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/introspection/contracts/reflection_instance.py +0 -0
  275. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/introspection/contracts/reflection_module.py +0 -0
  276. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/introspection/dependencies/__init__.py +0 -0
  277. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/introspection/dependencies/entities/__init__.py +0 -0
  278. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/introspection/dependencies/entities/callable_dependencies.py +0 -0
  279. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/introspection/dependencies/entities/class_dependencies.py +0 -0
  280. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/introspection/dependencies/entities/method_dependencies.py +0 -0
  281. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/introspection/dependencies/entities/resolved_dependencies.py +0 -0
  282. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/introspection/dependencies/reflect_dependencies.py +0 -0
  283. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/introspection/exceptions/__init__.py +0 -0
  284. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/introspection/exceptions/reflection_attribute_error.py +0 -0
  285. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/introspection/exceptions/reflection_type_error.py +0 -0
  286. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/introspection/exceptions/reflection_value_error.py +0 -0
  287. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/introspection/instances/__init__.py +0 -0
  288. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/introspection/instances/reflection_instance.py +0 -0
  289. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/introspection/modules/__init__.py +0 -0
  290. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/introspection/modules/reflection_module.py +0 -0
  291. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/introspection/reflection.py +0 -0
  292. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/parsers/__init__.py +0 -0
  293. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/parsers/contracts/__init__.py +0 -0
  294. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/parsers/contracts/exception_parser.py +0 -0
  295. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/parsers/exceptions/__init__.py +0 -0
  296. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/parsers/exceptions/exception_parser.py +0 -0
  297. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/parsers/serializer.py +0 -0
  298. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/paths/__init__.py +0 -0
  299. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/paths/contracts/__init__.py +0 -0
  300. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/paths/contracts/resolver.py +0 -0
  301. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/paths/exceptions/__init__.py +0 -0
  302. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/paths/exceptions/not_found_exceptions.py +0 -0
  303. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/paths/exceptions/path_value_exceptions.py +0 -0
  304. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/paths/resolver.py +0 -0
  305. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/system/__init__.py +0 -0
  306. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/system/contracts/__init__.py +0 -0
  307. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/system/contracts/imports.py +0 -0
  308. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/system/contracts/workers.py +0 -0
  309. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/system/imports.py +0 -0
  310. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/system/runtime_imports.py +0 -0
  311. {orionis-0.318.0 → orionis-0.319.0}/orionis/services/system/workers.py +0 -0
  312. {orionis-0.318.0 → orionis-0.319.0}/orionis/support/__init__.py +0 -0
  313. {orionis-0.318.0 → orionis-0.319.0}/orionis/support/standard/__init__.py +0 -0
  314. {orionis-0.318.0 → orionis-0.319.0}/orionis/support/standard/contracts/__init__.py +0 -0
  315. {orionis-0.318.0 → orionis-0.319.0}/orionis/support/standard/contracts/std.py +0 -0
  316. {orionis-0.318.0 → orionis-0.319.0}/orionis/support/standard/exceptions/__init__.py +0 -0
  317. {orionis-0.318.0 → orionis-0.319.0}/orionis/support/standard/exceptions/std_value_exception.py +0 -0
  318. {orionis-0.318.0 → orionis-0.319.0}/orionis/support/standard/std.py +0 -0
  319. {orionis-0.318.0 → orionis-0.319.0}/orionis/support/wrapper/__init__.py +0 -0
  320. {orionis-0.318.0 → orionis-0.319.0}/orionis/support/wrapper/dicts/__init__.py +0 -0
  321. {orionis-0.318.0 → orionis-0.319.0}/orionis/support/wrapper/dicts/dot_dict.py +0 -0
  322. {orionis-0.318.0 → orionis-0.319.0}/orionis/test/__init__.py +0 -0
  323. {orionis-0.318.0 → orionis-0.319.0}/orionis/test/cases/__init__.py +0 -0
  324. {orionis-0.318.0 → orionis-0.319.0}/orionis/test/cases/test_async.py +0 -0
  325. {orionis-0.318.0 → orionis-0.319.0}/orionis/test/cases/test_case.py +0 -0
  326. {orionis-0.318.0 → orionis-0.319.0}/orionis/test/cases/test_sync.py +0 -0
  327. {orionis-0.318.0 → orionis-0.319.0}/orionis/test/contracts/__init__.py +0 -0
  328. {orionis-0.318.0 → orionis-0.319.0}/orionis/test/contracts/dumper.py +0 -0
  329. {orionis-0.318.0 → orionis-0.319.0}/orionis/test/contracts/history.py +0 -0
  330. {orionis-0.318.0 → orionis-0.319.0}/orionis/test/contracts/printer.py +0 -0
  331. {orionis-0.318.0 → orionis-0.319.0}/orionis/test/contracts/test_unit.py +0 -0
  332. {orionis-0.318.0 → orionis-0.319.0}/orionis/test/entities/__init__.py +0 -0
  333. {orionis-0.318.0 → orionis-0.319.0}/orionis/test/entities/test_result.py +0 -0
  334. {orionis-0.318.0 → orionis-0.319.0}/orionis/test/enums/__init__.py +0 -0
  335. {orionis-0.318.0 → orionis-0.319.0}/orionis/test/enums/test_mode.py +0 -0
  336. {orionis-0.318.0 → orionis-0.319.0}/orionis/test/enums/test_status.py +0 -0
  337. {orionis-0.318.0 → orionis-0.319.0}/orionis/test/exceptions/__init__.py +0 -0
  338. {orionis-0.318.0 → orionis-0.319.0}/orionis/test/exceptions/test_config_exception.py +0 -0
  339. {orionis-0.318.0 → orionis-0.319.0}/orionis/test/exceptions/test_failure_exception.py +0 -0
  340. {orionis-0.318.0 → orionis-0.319.0}/orionis/test/exceptions/test_persistence_error.py +0 -0
  341. {orionis-0.318.0 → orionis-0.319.0}/orionis/test/exceptions/test_runtime_error.py +0 -0
  342. {orionis-0.318.0 → orionis-0.319.0}/orionis/test/exceptions/test_value_error.py +0 -0
  343. {orionis-0.318.0 → orionis-0.319.0}/orionis/test/logs/__init__.py +0 -0
  344. {orionis-0.318.0 → orionis-0.319.0}/orionis/test/logs/history.py +0 -0
  345. {orionis-0.318.0 → orionis-0.319.0}/orionis/test/output/__init__.py +0 -0
  346. {orionis-0.318.0 → orionis-0.319.0}/orionis/test/output/dumper.py +0 -0
  347. {orionis-0.318.0 → orionis-0.319.0}/orionis/test/output/printer.py +0 -0
  348. {orionis-0.318.0 → orionis-0.319.0}/orionis/test/suite/__init__.py +0 -0
  349. {orionis-0.318.0 → orionis-0.319.0}/orionis/test/suite/test_unit.py +0 -0
  350. {orionis-0.318.0 → orionis-0.319.0}/orionis/test/test_suite.py +0 -0
  351. {orionis-0.318.0 → orionis-0.319.0}/orionis/test/view/__init__.py +0 -0
  352. {orionis-0.318.0 → orionis-0.319.0}/orionis/test/view/render.py +0 -0
  353. {orionis-0.318.0 → orionis-0.319.0}/orionis/unittesting.py +0 -0
  354. {orionis-0.318.0 → orionis-0.319.0}/orionis.egg-info/dependency_links.txt +0 -0
  355. {orionis-0.318.0 → orionis-0.319.0}/orionis.egg-info/requires.txt +0 -0
  356. {orionis-0.318.0 → orionis-0.319.0}/orionis.egg-info/top_level.txt +0 -0
  357. {orionis-0.318.0 → orionis-0.319.0}/orionis.egg-info/zip-safe +0 -0
  358. {orionis-0.318.0 → orionis-0.319.0}/setup.cfg +0 -0
  359. {orionis-0.318.0 → orionis-0.319.0}/setup.py +0 -0
  360. {orionis-0.318.0 → orionis-0.319.0}/tests/__init__.py +0 -0
  361. {orionis-0.318.0 → orionis-0.319.0}/tests/example/__init__.py +0 -0
  362. {orionis-0.318.0 → orionis-0.319.0}/tests/example/test_example.py +0 -0
  363. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/__init__.py +0 -0
  364. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/__init__.py +0 -0
  365. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/app/__init__.py +0 -0
  366. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/app/test_foundation_config_app.py +0 -0
  367. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/auth/__init__.py +0 -0
  368. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/auth/test_foundation_config_auth.py +0 -0
  369. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/cache/__init__.py +0 -0
  370. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/cache/test_foundation_config_cache.py +0 -0
  371. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/cache/test_foundation_config_cache_file.py +0 -0
  372. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/cache/test_foundation_config_cache_stores.py +0 -0
  373. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/cors/__init__.py +0 -0
  374. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/cors/test_foundation_config_cors.py +0 -0
  375. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/database/__init__.py +0 -0
  376. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/database/test_foundation_config_database.py +0 -0
  377. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/database/test_foundation_config_database_connections.py +0 -0
  378. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/database/test_foundation_config_database_mysql.py +0 -0
  379. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/database/test_foundation_config_database_oracle.py +0 -0
  380. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/database/test_foundation_config_database_pgsql.py +0 -0
  381. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/database/test_foundation_config_database_sqlite.py +0 -0
  382. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/filesystems/__init__.py +0 -0
  383. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems.py +0 -0
  384. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_aws.py +0 -0
  385. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_disks.py +0 -0
  386. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_local.py +0 -0
  387. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_public.py +0 -0
  388. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/logging/__init__.py +0 -0
  389. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/logging/test_foundation_config_logging.py +0 -0
  390. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/logging/test_foundation_config_logging_channels.py +0 -0
  391. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/logging/test_foundation_config_logging_chunked.py +0 -0
  392. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/logging/test_foundation_config_logging_daily.py +0 -0
  393. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/logging/test_foundation_config_logging_hourly.py +0 -0
  394. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/logging/test_foundation_config_logging_monthly.py +0 -0
  395. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/logging/test_foundation_config_logging_stack.py +0 -0
  396. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/logging/test_foundation_config_logging_weekly.py +0 -0
  397. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/mail/__init__.py +0 -0
  398. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/mail/test_foundation_config_mail.py +0 -0
  399. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/mail/test_foundation_config_mail_file.py +0 -0
  400. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/mail/test_foundation_config_mail_mailers.py +0 -0
  401. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/mail/test_foundation_config_mail_smtp.py +0 -0
  402. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/queue/__init__.py +0 -0
  403. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/queue/test_foundation_config_queue.py +0 -0
  404. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/queue/test_foundation_config_queue_brokers.py +0 -0
  405. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/queue/test_foundation_config_queue_database.py +0 -0
  406. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/root/__init__.py +0 -0
  407. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/root/test_foundation_config_root_paths.py +0 -0
  408. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/session/__init__.py +0 -0
  409. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/session/test_foundation_config_session.py +0 -0
  410. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/startup/__init__.py +0 -0
  411. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/startup/test_foundation_config_startup.py +0 -0
  412. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/testing/__init__.py +0 -0
  413. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/config/testing/test_foundation_config_testing.py +0 -0
  414. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/exceptions/__init__.py +0 -0
  415. {orionis-0.318.0 → orionis-0.319.0}/tests/foundation/exceptions/test_foundation_config_exceptions.py +0 -0
  416. {orionis-0.318.0 → orionis-0.319.0}/tests/metadata/__init__.py +0 -0
  417. {orionis-0.318.0 → orionis-0.319.0}/tests/metadata/test_metadata_framework.py +0 -0
  418. {orionis-0.318.0 → orionis-0.319.0}/tests/metadata/test_metadata_package.py +0 -0
  419. {orionis-0.318.0 → orionis-0.319.0}/tests/patterns/__init__.py +0 -0
  420. {orionis-0.318.0 → orionis-0.319.0}/tests/patterns/singleton/__init__.py +0 -0
  421. {orionis-0.318.0 → orionis-0.319.0}/tests/patterns/singleton/test_patterns_singleton.py +0 -0
  422. {orionis-0.318.0 → orionis-0.319.0}/tests/services/__init__.py +0 -0
  423. {orionis-0.318.0 → orionis-0.319.0}/tests/services/asynchrony/__init__.py +0 -0
  424. {orionis-0.318.0 → orionis-0.319.0}/tests/services/asynchrony/test_services_asynchrony_coroutine.py +0 -0
  425. {orionis-0.318.0 → orionis-0.319.0}/tests/services/environment/__init__.py +0 -0
  426. {orionis-0.318.0 → orionis-0.319.0}/tests/services/environment/test_services_environment.py +0 -0
  427. {orionis-0.318.0 → orionis-0.319.0}/tests/services/inspection/__init__.py +0 -0
  428. {orionis-0.318.0 → orionis-0.319.0}/tests/services/inspection/dependencies/__init__.py +0 -0
  429. {orionis-0.318.0 → orionis-0.319.0}/tests/services/inspection/dependencies/mocks/__init__.py +0 -0
  430. {orionis-0.318.0 → orionis-0.319.0}/tests/services/inspection/dependencies/mocks/mock_user.py +0 -0
  431. {orionis-0.318.0 → orionis-0.319.0}/tests/services/inspection/dependencies/mocks/mock_user_controller.py +0 -0
  432. {orionis-0.318.0 → orionis-0.319.0}/tests/services/inspection/dependencies/mocks/mock_users_permissions.py +0 -0
  433. {orionis-0.318.0 → orionis-0.319.0}/tests/services/inspection/dependencies/test_reflect_dependencies.py +0 -0
  434. {orionis-0.318.0 → orionis-0.319.0}/tests/services/inspection/reflection/__init__.py +0 -0
  435. {orionis-0.318.0 → orionis-0.319.0}/tests/services/inspection/reflection/mock/__init__.py +0 -0
  436. {orionis-0.318.0 → orionis-0.319.0}/tests/services/inspection/reflection/mock/fake_reflect_instance.py +0 -0
  437. {orionis-0.318.0 → orionis-0.319.0}/tests/services/inspection/reflection/test_reflection_abstract.py +0 -0
  438. {orionis-0.318.0 → orionis-0.319.0}/tests/services/inspection/reflection/test_reflection_callable.py +0 -0
  439. {orionis-0.318.0 → orionis-0.319.0}/tests/services/inspection/reflection/test_reflection_concrete.py +0 -0
  440. {orionis-0.318.0 → orionis-0.319.0}/tests/services/inspection/reflection/test_reflection_instance.py +0 -0
  441. {orionis-0.318.0 → orionis-0.319.0}/tests/services/inspection/reflection/test_reflection_module.py +0 -0
  442. {orionis-0.318.0 → orionis-0.319.0}/tests/services/inspection/test_reflection.py +0 -0
  443. {orionis-0.318.0 → orionis-0.319.0}/tests/services/parsers/__init__.py +0 -0
  444. {orionis-0.318.0 → orionis-0.319.0}/tests/services/parsers/mocks/__init__.py +0 -0
  445. {orionis-0.318.0 → orionis-0.319.0}/tests/services/parsers/mocks/mock_custom_error.py +0 -0
  446. {orionis-0.318.0 → orionis-0.319.0}/tests/services/parsers/test_services_parser_exceptions.py +0 -0
  447. {orionis-0.318.0 → orionis-0.319.0}/tests/services/path/__init__.py +0 -0
  448. {orionis-0.318.0 → orionis-0.319.0}/tests/services/path/test_services_resolver.py +0 -0
  449. {orionis-0.318.0 → orionis-0.319.0}/tests/services/system/__init__.py +0 -0
  450. {orionis-0.318.0 → orionis-0.319.0}/tests/services/system/test_services_system_imports.py +0 -0
  451. {orionis-0.318.0 → orionis-0.319.0}/tests/services/system/test_services_system_workers.py +0 -0
  452. {orionis-0.318.0 → orionis-0.319.0}/tests/support/__init__.py +0 -0
  453. {orionis-0.318.0 → orionis-0.319.0}/tests/support/standard/__init__.py +0 -0
  454. {orionis-0.318.0 → orionis-0.319.0}/tests/support/standard/test_services_std.py +0 -0
  455. {orionis-0.318.0 → orionis-0.319.0}/tests/support/wrapper/__init__.py +0 -0
  456. {orionis-0.318.0 → orionis-0.319.0}/tests/support/wrapper/test_services_wrapper_docdict.py +0 -0
  457. {orionis-0.318.0 → orionis-0.319.0}/tests/testing/__init__.py +0 -0
  458. {orionis-0.318.0 → orionis-0.319.0}/tests/testing/test_testing_result.py +0 -0
  459. {orionis-0.318.0 → orionis-0.319.0}/tests/testing/test_testing_unit.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: orionis
3
- Version: 0.318.0
3
+ Version: 0.319.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,6 @@
1
+ import threading
1
2
  from typing import Any, Callable
3
+ from orionis.container.contracts.container import IContainer
2
4
  from orionis.container.entities.binding import Binding
3
5
  from orionis.container.enums.lifetimes import Lifetime
4
6
  from orionis.container.exceptions.container_exception import OrionisContainerException
@@ -6,11 +8,11 @@ from orionis.container.exceptions.type_error_exception import OrionisContainerTy
6
8
  from orionis.services.introspection.abstract.reflection_abstract import ReflectionAbstract
7
9
  from orionis.services.introspection.callables.reflection_callable import ReflectionCallable
8
10
  from orionis.services.introspection.concretes.reflection_concrete import ReflectionConcrete
11
+ from orionis.services.introspection.dependencies.entities.resolved_dependencies import ResolvedDependency
9
12
  from orionis.services.introspection.instances.reflection_instance import ReflectionInstance
10
13
  from orionis.services.introspection.reflection import Reflection
11
- import threading
12
14
 
13
- class Container:
15
+ class Container(IContainer):
14
16
 
15
17
  # Singleton instance of the container.
16
18
  # This is a class variable that holds the single instance of the Container class.
@@ -26,7 +28,11 @@ class Container:
26
28
  # regardless of how many times the class is instantiated.
27
29
  _initialized = False
28
30
 
29
- def __new__(cls, *args, **kwargs):
31
+ def __new__(
32
+ cls,
33
+ *args,
34
+ **kwargs
35
+ ) -> 'Container':
30
36
  """
31
37
  Creates and returns a singleton instance of the class.
32
38
 
@@ -51,24 +57,29 @@ class Container:
51
57
  cls._instance = super(Container, cls).__new__(cls)
52
58
  return cls._instance
53
59
 
54
- def __init__(self):
60
+ def __init__(
61
+ self
62
+ ) -> None:
55
63
  """
56
64
  Initializes a new instance of the container.
57
65
 
58
66
  This constructor sets up the internal dictionaries for bindings and aliases,
59
67
  ensuring that these are only initialized once per class. The initialization
60
68
  is guarded by the `_initialized` class attribute to prevent redundant setup.
69
+ The container also registers itself as a service to allow for injection.
61
70
 
62
71
  Notes
63
72
  -----
64
73
  - The `__bindings` dictionary is used to store service bindings.
65
74
  - The `__aliasses` dictionary is used to store service aliases.
66
75
  - Initialization occurs only once per class, regardless of the number of instances.
76
+ - The container registers itself under the IContainer interface to allow for dependency injection.
67
77
  """
68
78
  if not self.__class__._initialized:
69
79
  self.__bindings = {}
70
80
  self.__aliasses = {}
71
81
  self.__class__._initialized = True
82
+ self.instance(IContainer, self)
72
83
 
73
84
  def __dropService(
74
85
  self,
@@ -379,6 +390,48 @@ class Container:
379
390
  "Please ensure that all abstract methods are implemented."
380
391
  )
381
392
 
393
+ def __getService(
394
+ self,
395
+ abstract_or_alias: Any
396
+ ) -> Binding:
397
+ """
398
+ Retrieves the binding for the requested abstract type or alias.
399
+
400
+ Parameters
401
+ ----------
402
+ abstract_or_alias : Any
403
+ The abstract class, interface, or alias (str) to retrieve.
404
+
405
+ Returns
406
+ -------
407
+ Binding
408
+ The binding associated with the requested abstract type or alias.
409
+ """
410
+ return self.__bindings.get(abstract_or_alias) or self.__aliasses.get(abstract_or_alias)
411
+
412
+ def __getFirstService(
413
+ self,
414
+ abstract_or_aliasses: list
415
+ ) -> Binding:
416
+ """
417
+ Retrieves the first binding from a list of abstract types or aliases.
418
+
419
+ Parameters
420
+ ----------
421
+ abstract_or_aliasses : list
422
+ A list of abstract classes, interfaces, or aliases (str) to retrieve.
423
+
424
+ Returns
425
+ -------
426
+ Binding
427
+ The first binding found in the container for the provided abstract types or aliases.
428
+ """
429
+ for item in abstract_or_aliasses:
430
+ binding = self.__getService(item)
431
+ if binding:
432
+ return binding
433
+ return None
434
+
382
435
  def transient(
383
436
  self,
384
437
  abstract: Callable[..., Any],
@@ -715,7 +768,7 @@ class Container:
715
768
  def function(
716
769
  self,
717
770
  alias: str,
718
- function: Callable[..., Any],
771
+ fn: Callable[..., Any],
719
772
  *,
720
773
  lifetime: Lifetime = Lifetime.TRANSIENT
721
774
  ) -> bool:
@@ -726,7 +779,7 @@ class Container:
726
779
  ----------
727
780
  alias : str
728
781
  The alias to register the function under.
729
- function : Callable[..., Any]
782
+ fn : Callable[..., Any]
730
783
  The function or factory to register.
731
784
  lifetime : Lifetime, optional
732
785
  The lifetime of the function registration (default is TRANSIENT).
@@ -763,10 +816,10 @@ class Container:
763
816
  self.__ensureAliasType(alias)
764
817
 
765
818
  # Validate that the function is callable
766
- self.__ensureIsCallable(function)
819
+ self.__ensureIsCallable(fn)
767
820
 
768
821
  # Inspect the function signature
769
- params = ReflectionCallable(function).getDependencies()
822
+ params = ReflectionCallable(fn).getDependencies()
770
823
 
771
824
  # If the function requires arguments, only allow TRANSIENT
772
825
  if (len(params.resolved) + len(params.unresolved)) > 0 and lifetime != Lifetime.TRANSIENT:
@@ -779,7 +832,7 @@ class Container:
779
832
 
780
833
  # Register the function with the specified alias and lifetime
781
834
  self.__bindings[alias] = Binding(
782
- function=function,
835
+ function=fn,
783
836
  lifetime=lifetime,
784
837
  alias=alias
785
838
  )
@@ -819,8 +872,8 @@ class Container:
819
872
  def make(
820
873
  self,
821
874
  abstract_or_alias: Any,
822
- *args,
823
- **kwargs
875
+ *args: tuple,
876
+ **kwargs: dict
824
877
  ) -> Any:
825
878
  """
826
879
  Resolves and returns an instance of the requested service.
@@ -844,11 +897,341 @@ class Container:
844
897
  OrionisContainerException
845
898
  If the requested service is not registered in the container.
846
899
  """
847
- if not self.bound(abstract_or_alias):
900
+ # Retrieve the binding for the requested abstract or alias
901
+ binding = self.__getService(abstract_or_alias)
902
+
903
+ # Check if the requested service is registered in the container
904
+ if not binding:
848
905
  raise OrionisContainerException(
849
906
  f"The requested service '{abstract_or_alias}' is not registered in the container."
850
907
  )
851
908
 
852
- binding = self.__bindings.get(abstract_or_alias) or self.__aliasses.get(abstract_or_alias)
909
+ # Handle based on binding type and lifetime
910
+ if binding.lifetime == Lifetime.TRANSIENT:
911
+ return self.__resolveTransient(binding, *args, **kwargs)
912
+ elif binding.lifetime == Lifetime.SINGLETON:
913
+ return self.__resolveSingleton(binding, *args, **kwargs)
914
+ elif binding.lifetime == Lifetime.SCOPED:
915
+ # TODO: Implement scoped lifetime resolution
916
+ raise OrionisContainerException(
917
+ "Scoped lifetime resolution is not yet implemented."
918
+ )
919
+
920
+ def __resolveTransient(self, binding: Binding, *args, **kwargs) -> Any:
921
+ """
922
+ Resolves a service with transient lifetime.
923
+
924
+ Parameters
925
+ ----------
926
+ binding : Binding
927
+ The binding to resolve.
928
+ *args : tuple
929
+ Positional arguments to pass to the constructor.
930
+ **kwargs : dict
931
+ Keyword arguments to pass to the constructor.
932
+
933
+ Returns
934
+ -------
935
+ Any
936
+ A new instance of the requested service.
937
+ """
938
+
939
+ # Check if the binding has a concrete class or function defined
940
+ if binding.concrete:
941
+ if args or kwargs:
942
+ return self.__instantiateConcreteWithArgs(binding.concrete, *args, **kwargs)
943
+ else:
944
+ return self.__instantiateConcreteReflective(binding.concrete)
945
+
946
+ # If the binding has a function defined
947
+ elif binding.function:
948
+ if args or kwargs:
949
+ return self.__instantiateCallableWithArgs(binding.function, *args, **kwargs)
950
+ else:
951
+ return self.__instantiateCallableReflective(binding.function)
952
+
953
+ # If neither concrete class nor function is defined
954
+ else:
955
+ raise OrionisContainerException(
956
+ "Cannot resolve transient binding: neither a concrete class nor a function is defined."
957
+ )
958
+
959
+ def __resolveSingleton(self, binding: Binding, *args, **kwargs) -> Any:
960
+ """
961
+ Resolves a service with singleton lifetime.
962
+
963
+ Parameters
964
+ ----------
965
+ binding : Binding
966
+ The binding to resolve.
967
+ *args : tuple
968
+ Positional arguments to pass to the constructor (only used if instance doesn't exist yet).
969
+ **kwargs : dict
970
+ Keyword arguments to pass to the constructor (only used if instance doesn't exist yet).
971
+
972
+ Returns
973
+ -------
974
+ Any
975
+ The singleton instance of the requested service.
976
+ """
977
+ # Return existing instance if available
978
+ if binding.instance:
979
+ return binding.instance
980
+
981
+ # Create instance if needed
982
+ if binding.concrete:
983
+ if args or kwargs:
984
+ binding.instance = self.__instantiateConcreteWithArgs(binding.concrete, *args, **kwargs)
985
+ else:
986
+ binding.instance = self.__instantiateConcreteReflective(binding.concrete)
987
+ return binding.instance
988
+
989
+ # If the binding has a function defined
990
+ elif binding.function:
991
+ if args or kwargs:
992
+ result = self.__instantiateCallableWithArgs(binding.function, *args, **kwargs)
993
+ else:
994
+ result = self.__instantiateCallableReflective(binding.function)
995
+
996
+ # Store the result directly as the singleton instance
997
+ # We don't automatically invoke factory function results anymore
998
+ binding.instance = result
999
+ return binding.instance
1000
+
1001
+ # If neither concrete class nor function is defined
1002
+ else:
1003
+ raise OrionisContainerException(
1004
+ "Cannot resolve singleton binding: neither a concrete class, instance, nor function is defined."
1005
+ )
1006
+
1007
+ def __instantiateConcreteWithArgs(self, concrete: Callable[..., Any], *args, **kwargs) -> Any:
1008
+ """
1009
+ Instantiates a concrete class with the provided arguments.
1010
+
1011
+ Parameters
1012
+ ----------
1013
+ concrete : Callable[..., Any]
1014
+ Class to instantiate.
1015
+ *args : tuple
1016
+ Positional arguments to pass to the constructor.
1017
+ **kwargs : dict
1018
+ Keyword arguments to pass to the constructor.
853
1019
 
854
- print(binding)
1020
+ Returns
1021
+ -------
1022
+ object
1023
+ A new instance of the specified concrete class.
1024
+ """
1025
+
1026
+ # try to instantiate the concrete class with the provided arguments
1027
+ try:
1028
+
1029
+ # If the concrete is a class, instantiate it directly
1030
+ return concrete(*args, **kwargs)
1031
+
1032
+ except TypeError as e:
1033
+
1034
+ # If instantiation fails, use ReflectionConcrete to get class name and constructor signature
1035
+ rf_concrete = ReflectionConcrete(concrete)
1036
+ class_name = rf_concrete.getClassName()
1037
+ signature = rf_concrete.getConstructorSignature()
1038
+
1039
+ # Raise an exception with detailed information about the failure
1040
+ raise OrionisContainerException(
1041
+ f"Failed to instantiate [{class_name}] with the provided arguments: {e}\n"
1042
+ f"Expected constructor signature: [{signature}]"
1043
+ ) from e
1044
+
1045
+ def __instantiateCallableWithArgs(self, fn: Callable[..., Any], *args, **kwargs) -> Any:
1046
+ """
1047
+ Invokes a callable with the provided arguments.
1048
+
1049
+ Parameters
1050
+ ----------
1051
+ fn : Callable[..., Any]
1052
+ The callable to invoke.
1053
+ *args : tuple
1054
+ Positional arguments to pass to the callable.
1055
+ **kwargs : dict
1056
+ Keyword arguments to pass to the callable.
1057
+
1058
+ Returns
1059
+ -------
1060
+ Any
1061
+ The result of the callable.
1062
+ """
1063
+
1064
+ # Try to invoke the callable with the provided arguments
1065
+ try:
1066
+
1067
+ # If the callable is a function, invoke it directly
1068
+ return fn(*args, **kwargs)
1069
+
1070
+ except TypeError as e:
1071
+
1072
+ # If invocation fails, use ReflectionCallable to get function name and signature
1073
+ rf_callable = ReflectionCallable(fn)
1074
+ function_name = rf_callable.getName()
1075
+ signature = rf_callable.getSignature()
1076
+
1077
+ # Raise an exception with detailed information about the failure
1078
+ raise OrionisContainerException(
1079
+ f"Failed to invoke function [{function_name}] with the provided arguments: {e}\n"
1080
+ f"Expected function signature: [{signature}]"
1081
+ ) from e
1082
+
1083
+ def __instantiateConcreteReflective(self, concrete: Callable[..., Any]) -> Any:
1084
+ """
1085
+ Instantiates a concrete class reflectively, resolving its dependencies from the container.
1086
+
1087
+ Parameters
1088
+ ----------
1089
+ concrete : Callable[..., Any]
1090
+ The concrete class to instantiate.
1091
+
1092
+ Returns
1093
+ -------
1094
+ Any
1095
+ A new instance of the concrete class.
1096
+ """
1097
+ # Resolve dependencies for the concrete class
1098
+ params = self.__resolveDependencies(concrete, is_class=True)
1099
+
1100
+ # Instantiate the concrete class with resolved dependencies
1101
+ return concrete(**params)
1102
+
1103
+ def __instantiateCallableReflective(self, fn: Callable[..., Any]) -> Any:
1104
+ """
1105
+ Invokes a callable reflectively, resolving its dependencies from the container.
1106
+
1107
+ Parameters
1108
+ ----------
1109
+ fn : Callable[..., Any]
1110
+ The callable to invoke.
1111
+
1112
+ Returns
1113
+ -------
1114
+ Any
1115
+ The result of the callable.
1116
+ """
1117
+
1118
+ # Resolve dependencies for the callable
1119
+ params = self.__resolveDependencies(fn, is_class=False)
1120
+
1121
+ # Invoke the callable with resolved dependencies
1122
+ return fn(**params)
1123
+
1124
+ def __resolveDependencies(
1125
+ self,
1126
+ target: Callable[..., Any],
1127
+ *,
1128
+ is_class: bool = False
1129
+ ) -> dict:
1130
+ """
1131
+ Resolves dependencies for a target callable or class.
1132
+
1133
+ Parameters
1134
+ ----------
1135
+ target : Callable[..., Any]
1136
+ The target callable or class whose dependencies to resolve.
1137
+ is_class : bool, optional
1138
+ Whether the target is a class (True) or a callable (False).
1139
+
1140
+ Returns
1141
+ -------
1142
+ dict
1143
+ A dictionary of resolved dependencies.
1144
+ """
1145
+ try:
1146
+
1147
+ # Use ReflectionConcrete for classes and ReflectionCallable for callables
1148
+ if is_class:
1149
+ reflection = ReflectionConcrete(target)
1150
+ dependencies = reflection.getConstructorDependencies()
1151
+ name = reflection.getClassName()
1152
+
1153
+ # If the target is a callable, use ReflectionCallable
1154
+ else:
1155
+ reflection = ReflectionCallable(target)
1156
+ dependencies = reflection.getDependencies()
1157
+ name = reflection.getName()
1158
+
1159
+ # Check for unresolved dependencies
1160
+ if dependencies.unresolved:
1161
+ unresolved_args = ', '.join(dependencies.unresolved)
1162
+ raise OrionisContainerException(
1163
+ f"Cannot resolve '{name}' because the following required arguments are missing: [{unresolved_args}]."
1164
+ )
1165
+
1166
+ # Resolve dependencies
1167
+ params = {}
1168
+ for param_name, dep in dependencies.resolved.items():
1169
+
1170
+ # If the dependency is a ResolvedDependency, resolve it
1171
+ if isinstance(dep, ResolvedDependency):
1172
+
1173
+ # If the dependency is a built-in type, raise an exception
1174
+ if dep.module_name == 'builtins':
1175
+ raise OrionisContainerException(
1176
+ f"Cannot resolve '{name}' because parameter '{param_name}' depends on built-in type '{dep.type.__name__}'."
1177
+ )
1178
+
1179
+ # Try to resolve from container
1180
+ service = self.__getFirstService([dep.type, dep.full_class_path])
1181
+ if service:
1182
+ params[param_name] = self.make(service.alias)
1183
+
1184
+ # Try to instantiate directly if it's a concrete class
1185
+ elif ReflectionConcrete.isConcreteClass(dep.type):
1186
+ params[param_name] = dep.type(**self.__resolveDependencies(dep.type, is_class=True))
1187
+
1188
+ # Try to call directly if it's a callable
1189
+ elif callable(dep.type) and not isinstance(dep.type, type):
1190
+ params[param_name] = dep.type(**self.__resolveDependencies(dep.type, is_class=False))
1191
+
1192
+ # If the dependency cannot be resolved, raise an exception
1193
+ else:
1194
+ raise OrionisContainerException(
1195
+ f"Cannot resolve dependency '{param_name}' of type '{dep.type.__name__}' for '{name}'."
1196
+ )
1197
+ else:
1198
+ # Use default value
1199
+ params[param_name] = dep
1200
+
1201
+ # Return the resolved parameters
1202
+ return params
1203
+
1204
+ except ImportError as e:
1205
+
1206
+ # Extract module name from the error message if possible
1207
+ import_msg = str(e)
1208
+ module_name = target.__module__ if hasattr(target, '__module__') else "unknown module"
1209
+
1210
+ # Check for potential circular import patterns
1211
+ if "circular import" in import_msg.lower() or "cannot import name" in import_msg.lower():
1212
+ raise OrionisContainerException(
1213
+ f"Circular import detected while resolving dependencies for '{target.__name__}' in module '{module_name}'.\n"
1214
+ f"This typically happens when two modules import each other. Consider:\n"
1215
+ f"1. Restructuring your code to avoid circular dependencies\n"
1216
+ f"2. Using delayed imports inside methods rather than at module level\n"
1217
+ f"3. Using dependency injection to break the cycle\n"
1218
+ f"Original error: {import_msg}"
1219
+ ) from e
1220
+ else:
1221
+ raise OrionisContainerException(
1222
+ f"Import error while resolving dependencies for '{target.__name__}' in module '{module_name}':\n"
1223
+ f"{import_msg}"
1224
+ ) from e
1225
+
1226
+ except Exception as e:
1227
+
1228
+ # Get more context about where the error occurred
1229
+ target_type = "class" if isinstance(target, type) else "function"
1230
+ target_name = target.__name__ if hasattr(target, '__name__') else str(target)
1231
+ module_name = target.__module__ if hasattr(target, '__module__') else "unknown module"
1232
+
1233
+ raise OrionisContainerException(
1234
+ f"Error resolving dependencies for {target_type} '{target_name}' in '{module_name}':\n"
1235
+ f"{str(e)}\n"
1236
+ f"Check that all dependencies are properly registered in the container."
1237
+ ) from e