orionis 0.317.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.317.0/orionis.egg-info → orionis-0.319.0}/PKG-INFO +1 -1
  2. {orionis-0.317.0 → orionis-0.319.0}/orionis/container/container.py +397 -15
  3. orionis-0.319.0/orionis/container/contracts/container.py +202 -0
  4. {orionis-0.317.0 → orionis-0.319.0}/orionis/metadata/framework.py +1 -1
  5. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/introspection/callables/reflection_callable.py +15 -2
  6. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/introspection/concretes/reflection_concrete.py +11 -0
  7. orionis-0.319.0/orionis/services/introspection/dependencies/entities/callable_dependencies.py +55 -0
  8. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/introspection/dependencies/reflect_dependencies.py +3 -2
  9. {orionis-0.317.0 → orionis-0.319.0/orionis.egg-info}/PKG-INFO +1 -1
  10. {orionis-0.317.0 → orionis-0.319.0}/orionis.egg-info/SOURCES.txt +2 -0
  11. {orionis-0.317.0 → orionis-0.319.0}/tests/services/inspection/dependencies/test_reflect_dependencies.py +2 -1
  12. {orionis-0.317.0 → orionis-0.319.0}/tests/services/inspection/reflection/test_reflection_callable.py +2 -3
  13. {orionis-0.317.0 → orionis-0.319.0}/LICENCE +0 -0
  14. {orionis-0.317.0 → orionis-0.319.0}/MANIFEST.in +0 -0
  15. {orionis-0.317.0 → orionis-0.319.0}/README.md +0 -0
  16. {orionis-0.317.0 → orionis-0.319.0}/orionis/__init__.py +0 -0
  17. {orionis-0.317.0 → orionis-0.319.0}/orionis/_application.py +0 -0
  18. {orionis-0.317.0 → orionis-0.319.0}/orionis/_container/__init__.py +0 -0
  19. {orionis-0.317.0 → orionis-0.319.0}/orionis/_container/container.py +0 -0
  20. {orionis-0.317.0 → orionis-0.319.0}/orionis/_container/container_integrity.py +0 -0
  21. {orionis-0.317.0 → orionis-0.319.0}/orionis/_container/exception.py +0 -0
  22. {orionis-0.317.0 → orionis-0.319.0}/orionis/_container/lifetimes.py +0 -0
  23. {orionis-0.317.0 → orionis-0.319.0}/orionis/_container/resolve.py +0 -0
  24. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/__init__.py +0 -0
  25. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/application.py +0 -0
  26. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/config/__init__.py +0 -0
  27. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/config/config.py +0 -0
  28. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/console/__init__.py +0 -0
  29. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/console/base/__init__.py +0 -0
  30. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/console/base/command.py +0 -0
  31. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/console/command_filter.py +0 -0
  32. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/console/kernel.py +0 -0
  33. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/console/output/__init__.py +0 -0
  34. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/console/output/console.py +0 -0
  35. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/console/output/executor.py +0 -0
  36. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/console/output/progress_bar.py +0 -0
  37. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/console/parser.py +0 -0
  38. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/console/task_manager.py +0 -0
  39. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/container/container.py +0 -0
  40. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/container/container_integrity.py +0 -0
  41. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/facades/__init__.py +0 -0
  42. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/facades/commands/__init__.py +0 -0
  43. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/facades/commands/commands_facade.py +0 -0
  44. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/facades/commands/scheduler_facade.py +0 -0
  45. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/facades/config/__init__.py +0 -0
  46. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/facades/config/config_facade.py +0 -0
  47. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/facades/environment/__init__.py +0 -0
  48. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/facades/environment/environment_facade.py +0 -0
  49. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/facades/facade.py +0 -0
  50. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/facades/files/__init__.py +0 -0
  51. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/facades/files/path_facade.py +0 -0
  52. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/facades/log/__init__.py +0 -0
  53. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/facades/log/log_facade.py +0 -0
  54. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/facades/tests/__init__.py +0 -0
  55. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/facades/tests/tests_facade.py +0 -0
  56. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/foundation/__init__.py +0 -0
  57. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/foundation/bootstraper.py +0 -0
  58. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/foundation/config/__init__.py +0 -0
  59. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/foundation/config/config_bootstrapper.py +0 -0
  60. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/foundation/console/__init__.py +0 -0
  61. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/foundation/console/command_bootstrapper.py +0 -0
  62. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/foundation/environment/__init__.py +0 -0
  63. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/foundation/environment/environment_bootstrapper.py +0 -0
  64. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/foundation/providers/__init__.py +0 -0
  65. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/foundation/providers/service_providers_bootstrapper.py +0 -0
  66. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/providers/__init__.py +0 -0
  67. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/providers/service_provider.py +0 -0
  68. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/services/__init__.py +0 -0
  69. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/services/commands/__init__.py +0 -0
  70. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/services/commands/reactor_commands_service.py +0 -0
  71. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/services/commands/schedule_service.py +0 -0
  72. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/services/config/__init__.py +0 -0
  73. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/services/config/config_service.py +0 -0
  74. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/services/environment/__init__.py +0 -0
  75. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/services/environment/environment_service.py +0 -0
  76. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/services/files/__init__.py +0 -0
  77. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/services/files/path_resolver_service.py +0 -0
  78. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/services/log/__init__.py +0 -0
  79. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/services/log/log_service.py +0 -0
  80. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/support/exception_parse.py +0 -0
  81. {orionis-0.317.0 → orionis-0.319.0}/orionis/_contracts/support/reflection.py +0 -0
  82. {orionis-0.317.0 → orionis-0.319.0}/orionis/_facades/__init__.py +0 -0
  83. {orionis-0.317.0 → orionis-0.319.0}/orionis/_facades/app_facade.py +0 -0
  84. {orionis-0.317.0 → orionis-0.319.0}/orionis/_facades/commands/__init__.py +0 -0
  85. {orionis-0.317.0 → orionis-0.319.0}/orionis/_facades/commands/commands_facade.py +0 -0
  86. {orionis-0.317.0 → orionis-0.319.0}/orionis/_facades/commands/scheduler_facade.py +0 -0
  87. {orionis-0.317.0 → orionis-0.319.0}/orionis/_facades/config/__init__.py +0 -0
  88. {orionis-0.317.0 → orionis-0.319.0}/orionis/_facades/config/config_facade.py +0 -0
  89. {orionis-0.317.0 → orionis-0.319.0}/orionis/_facades/environment/__init__.py +0 -0
  90. {orionis-0.317.0 → orionis-0.319.0}/orionis/_facades/environment/environment_facade.py +0 -0
  91. {orionis-0.317.0 → orionis-0.319.0}/orionis/_facades/files/__init__.py +0 -0
  92. {orionis-0.317.0 → orionis-0.319.0}/orionis/_facades/files/path_facade.py +0 -0
  93. {orionis-0.317.0 → orionis-0.319.0}/orionis/_facades/log/__init__.py +0 -0
  94. {orionis-0.317.0 → orionis-0.319.0}/orionis/_facades/log/log_facade.py +0 -0
  95. {orionis-0.317.0 → orionis-0.319.0}/orionis/_foundation/__init__.py +0 -0
  96. {orionis-0.317.0 → orionis-0.319.0}/orionis/_foundation/console/__init__.py +0 -0
  97. {orionis-0.317.0 → orionis-0.319.0}/orionis/_foundation/console/command_bootstrapper.py +0 -0
  98. {orionis-0.317.0 → orionis-0.319.0}/orionis/_foundation/environment/__init__.py +0 -0
  99. {orionis-0.317.0 → orionis-0.319.0}/orionis/_foundation/environment/environment_bootstrapper.py +0 -0
  100. {orionis-0.317.0 → orionis-0.319.0}/orionis/_foundation/exceptions/__init__.py +0 -0
  101. {orionis-0.317.0 → orionis-0.319.0}/orionis/_foundation/exceptions/exception_bootstrapper.py +0 -0
  102. {orionis-0.317.0 → orionis-0.319.0}/orionis/_foundation/exceptions/exception_providers.py +0 -0
  103. {orionis-0.317.0 → orionis-0.319.0}/orionis/_foundation/foundation/config/__init__.py +0 -0
  104. {orionis-0.317.0 → orionis-0.319.0}/orionis/_foundation/foundation/config/config_bootstrapper.py +0 -0
  105. {orionis-0.317.0 → orionis-0.319.0}/orionis/_foundation/providers/__init__.py +0 -0
  106. {orionis-0.317.0 → orionis-0.319.0}/orionis/_foundation/providers/service_providers_bootstrapper.py +0 -0
  107. {orionis-0.317.0 → orionis-0.319.0}/orionis/_providers/__init__.py +0 -0
  108. {orionis-0.317.0 → orionis-0.319.0}/orionis/_providers/commands/__init__.py +0 -0
  109. {orionis-0.317.0 → orionis-0.319.0}/orionis/_providers/commands/reactor_commands_service_provider.py +0 -0
  110. {orionis-0.317.0 → orionis-0.319.0}/orionis/_providers/commands/scheduler_provider.py +0 -0
  111. {orionis-0.317.0 → orionis-0.319.0}/orionis/_providers/config/__init__.py +0 -0
  112. {orionis-0.317.0 → orionis-0.319.0}/orionis/_providers/config/config_service_provider.py +0 -0
  113. {orionis-0.317.0 → orionis-0.319.0}/orionis/_providers/environment/__init__.py +0 -0
  114. {orionis-0.317.0 → orionis-0.319.0}/orionis/_providers/environment/environment__service_provider.py +0 -0
  115. {orionis-0.317.0 → orionis-0.319.0}/orionis/_providers/files/__init__.py +0 -0
  116. {orionis-0.317.0 → orionis-0.319.0}/orionis/_providers/files/paths_provider.py +0 -0
  117. {orionis-0.317.0 → orionis-0.319.0}/orionis/_providers/log/__init__.py +0 -0
  118. {orionis-0.317.0 → orionis-0.319.0}/orionis/_providers/log/log_service_provider.py +0 -0
  119. {orionis-0.317.0 → orionis-0.319.0}/orionis/_providers/service_provider.py +0 -0
  120. {orionis-0.317.0 → orionis-0.319.0}/orionis/_services/__init__.py +0 -0
  121. {orionis-0.317.0 → orionis-0.319.0}/orionis/_services/commands/__init__.py +0 -0
  122. {orionis-0.317.0 → orionis-0.319.0}/orionis/_services/commands/reactor_commands_service.py +0 -0
  123. {orionis-0.317.0 → orionis-0.319.0}/orionis/_services/commands/scheduler_service.py +0 -0
  124. {orionis-0.317.0 → orionis-0.319.0}/orionis/_services/config/__init__.py +0 -0
  125. {orionis-0.317.0 → orionis-0.319.0}/orionis/_services/config/config_service.py +0 -0
  126. {orionis-0.317.0 → orionis-0.319.0}/orionis/_services/log/__init__.py +0 -0
  127. {orionis-0.317.0 → orionis-0.319.0}/orionis/_services/log/log_service.py +0 -0
  128. {orionis-0.317.0 → orionis-0.319.0}/orionis/application.py +0 -0
  129. {orionis-0.317.0 → orionis-0.319.0}/orionis/console/__init__.py +0 -0
  130. {orionis-0.317.0 → orionis-0.319.0}/orionis/console/base/__init__.py +0 -0
  131. {orionis-0.317.0 → orionis-0.319.0}/orionis/console/base/command.py +0 -0
  132. {orionis-0.317.0 → orionis-0.319.0}/orionis/console/command_filter.py +0 -0
  133. {orionis-0.317.0 → orionis-0.319.0}/orionis/console/commands/__init__.py +0 -0
  134. {orionis-0.317.0 → orionis-0.319.0}/orionis/console/commands/cache_clear.py +0 -0
  135. {orionis-0.317.0 → orionis-0.319.0}/orionis/console/commands/help.py +0 -0
  136. {orionis-0.317.0 → orionis-0.319.0}/orionis/console/commands/schedule_work.py +0 -0
  137. {orionis-0.317.0 → orionis-0.319.0}/orionis/console/commands/version.py +0 -0
  138. {orionis-0.317.0 → orionis-0.319.0}/orionis/console/dumper/__init__.py +0 -0
  139. {orionis-0.317.0 → orionis-0.319.0}/orionis/console/dumper/dump_die.py +0 -0
  140. {orionis-0.317.0 → orionis-0.319.0}/orionis/console/exceptions/__init__.py +0 -0
  141. {orionis-0.317.0 → orionis-0.319.0}/orionis/console/exceptions/cli-orionis-value-error.py +0 -0
  142. {orionis-0.317.0 → orionis-0.319.0}/orionis/console/exceptions/cli_exception.py +0 -0
  143. {orionis-0.317.0 → orionis-0.319.0}/orionis/console/exceptions/cli_runtime_error.py +0 -0
  144. {orionis-0.317.0 → orionis-0.319.0}/orionis/console/exceptions/cli_schedule_exception.py +0 -0
  145. {orionis-0.317.0 → orionis-0.319.0}/orionis/console/kernel.py +0 -0
  146. {orionis-0.317.0 → orionis-0.319.0}/orionis/console/output/__init__.py +0 -0
  147. {orionis-0.317.0 → orionis-0.319.0}/orionis/console/output/console.py +0 -0
  148. {orionis-0.317.0 → orionis-0.319.0}/orionis/console/output/executor.py +0 -0
  149. {orionis-0.317.0 → orionis-0.319.0}/orionis/console/output/progress_bar.py +0 -0
  150. {orionis-0.317.0 → orionis-0.319.0}/orionis/console/output/styles.py +0 -0
  151. {orionis-0.317.0 → orionis-0.319.0}/orionis/console/parser.py +0 -0
  152. {orionis-0.317.0 → orionis-0.319.0}/orionis/container/entities/binding.py +0 -0
  153. {orionis-0.317.0 → orionis-0.319.0}/orionis/container/enums/lifetimes.py +0 -0
  154. {orionis-0.317.0 → orionis-0.319.0}/orionis/container/exceptions/container_exception.py +0 -0
  155. {orionis-0.317.0 → orionis-0.319.0}/orionis/container/exceptions/type_error_exception.py +0 -0
  156. {orionis-0.317.0 → orionis-0.319.0}/orionis/container/exceptions/value_exception.py +0 -0
  157. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/__init__.py +0 -0
  158. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/__init__.py +0 -0
  159. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/app/__init__.py +0 -0
  160. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/app/entities/__init__.py +0 -0
  161. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/app/entities/app.py +0 -0
  162. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/app/enums/__init__.py +0 -0
  163. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/app/enums/ciphers.py +0 -0
  164. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/app/enums/environments.py +0 -0
  165. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/auth/__init__.py +0 -0
  166. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/auth/entities/__init__.py +0 -0
  167. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/auth/entities/auth.py +0 -0
  168. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/cache/__init__.py +0 -0
  169. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/cache/entities/__init__.py +0 -0
  170. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/cache/entities/cache.py +0 -0
  171. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/cache/entities/file.py +0 -0
  172. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/cache/entities/stores.py +0 -0
  173. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/cache/enums/__init__.py +0 -0
  174. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/cache/enums/drivers.py +0 -0
  175. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/cors/__init__.py +0 -0
  176. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/cors/entities/__init__.py +0 -0
  177. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/cors/entities/cors.py +0 -0
  178. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/database/__init__.py +0 -0
  179. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/database/entities/__init__.py +0 -0
  180. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/database/entities/connections.py +0 -0
  181. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/database/entities/database.py +0 -0
  182. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/database/entities/mysql.py +0 -0
  183. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/database/entities/oracle.py +0 -0
  184. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/database/entities/pgsql.py +0 -0
  185. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/database/entities/sqlite.py +0 -0
  186. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/database/enums/__init__.py +0 -0
  187. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/database/enums/mysql_charsets.py +0 -0
  188. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/database/enums/mysql_collations.py +0 -0
  189. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/database/enums/mysql_engine.py +0 -0
  190. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/database/enums/oracle_encoding.py +0 -0
  191. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/database/enums/oracle_nencoding.py +0 -0
  192. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/database/enums/pgsql_charsets.py +0 -0
  193. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/database/enums/pgsql_collations.py +0 -0
  194. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/database/enums/pgsql_mode.py +0 -0
  195. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/database/enums/sqlite_foreign_key.py +0 -0
  196. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/database/enums/sqlite_journal.py +0 -0
  197. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/database/enums/sqlite_synchronous.py +0 -0
  198. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/filesystems/__init__.py +0 -0
  199. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/filesystems/entitites/__init__.py +0 -0
  200. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/filesystems/entitites/aws.py +0 -0
  201. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/filesystems/entitites/disks.py +0 -0
  202. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/filesystems/entitites/filesystems.py +0 -0
  203. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/filesystems/entitites/local.py +0 -0
  204. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/filesystems/entitites/public.py +0 -0
  205. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/logging/__init__.py +0 -0
  206. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/logging/entities/__init__.py +0 -0
  207. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/logging/entities/channels.py +0 -0
  208. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/logging/entities/chunked.py +0 -0
  209. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/logging/entities/daily.py +0 -0
  210. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/logging/entities/hourly.py +0 -0
  211. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/logging/entities/logging.py +0 -0
  212. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/logging/entities/monthly.py +0 -0
  213. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/logging/entities/stack.py +0 -0
  214. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/logging/entities/weekly.py +0 -0
  215. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/logging/enums/__init__.py +0 -0
  216. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/logging/enums/levels.py +0 -0
  217. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/mail/__init__.py +0 -0
  218. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/mail/entities/__init__.py +0 -0
  219. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/mail/entities/file.py +0 -0
  220. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/mail/entities/mail.py +0 -0
  221. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/mail/entities/mailers.py +0 -0
  222. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/mail/entities/smtp.py +0 -0
  223. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/queue/__init__.py +0 -0
  224. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/queue/entities/__init__.py +0 -0
  225. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/queue/entities/brokers.py +0 -0
  226. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/queue/entities/database.py +0 -0
  227. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/queue/entities/queue.py +0 -0
  228. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/queue/enums/strategy.py +0 -0
  229. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/roots/__init__.py +0 -0
  230. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/roots/paths.py +0 -0
  231. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/session/__init__.py +0 -0
  232. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/session/entities/__init__.py +0 -0
  233. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/session/entities/session.py +0 -0
  234. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/session/enums/__init__.py +0 -0
  235. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/session/enums/same_site_policy.py +0 -0
  236. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/session/helpers/secret_key.py +0 -0
  237. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/startup.py +0 -0
  238. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/testing/__init__.py +0 -0
  239. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/testing/entities/__init__.py +0 -0
  240. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/testing/entities/testing.py +0 -0
  241. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/testing/enums/__init__.py +0 -0
  242. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/config/testing/enums/test_mode.py +0 -0
  243. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/contracts/__init__.py +0 -0
  244. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/contracts/config.py +0 -0
  245. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/exceptions/__init__.py +0 -0
  246. {orionis-0.317.0 → orionis-0.319.0}/orionis/foundation/exceptions/integrity.py +0 -0
  247. {orionis-0.317.0 → orionis-0.319.0}/orionis/metadata/__init__.py +0 -0
  248. {orionis-0.317.0 → orionis-0.319.0}/orionis/metadata/package.py +0 -0
  249. {orionis-0.317.0 → orionis-0.319.0}/orionis/patterns/__init__.py +0 -0
  250. {orionis-0.317.0 → orionis-0.319.0}/orionis/patterns/singleton/__init__.py +0 -0
  251. {orionis-0.317.0 → orionis-0.319.0}/orionis/patterns/singleton/meta_class.py +0 -0
  252. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/__init__.py +0 -0
  253. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/asynchrony/__init__.py +0 -0
  254. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/asynchrony/contracts/__init__.py +0 -0
  255. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/asynchrony/contracts/coroutines.py +0 -0
  256. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/asynchrony/coroutines.py +0 -0
  257. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/asynchrony/exceptions/__init__.py +0 -0
  258. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/asynchrony/exceptions/coroutine_exception.py +0 -0
  259. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/environment/__init__.py +0 -0
  260. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/environment/contracts/__init__.py +0 -0
  261. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/environment/contracts/env.py +0 -0
  262. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/environment/contracts/types.py +0 -0
  263. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/environment/dot_env.py +0 -0
  264. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/environment/env.py +0 -0
  265. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/environment/exceptions/__init__.py +0 -0
  266. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/environment/exceptions/environment_value_error.py +0 -0
  267. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/environment/exceptions/environment_value_exception.py +0 -0
  268. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/environment/types.py +0 -0
  269. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/introspection/__init__.py +0 -0
  270. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/introspection/abstract/__init__.py +0 -0
  271. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/introspection/abstract/reflection_abstract.py +0 -0
  272. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/introspection/callables/__init__.py +0 -0
  273. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/introspection/concretes/__init__.py +0 -0
  274. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/introspection/contracts/__init__.py +0 -0
  275. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/introspection/contracts/reflect_dependencies.py +0 -0
  276. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/introspection/contracts/reflection_abstract.py +0 -0
  277. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/introspection/contracts/reflection_concrete.py +0 -0
  278. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/introspection/contracts/reflection_instance.py +0 -0
  279. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/introspection/contracts/reflection_module.py +0 -0
  280. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/introspection/dependencies/__init__.py +0 -0
  281. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/introspection/dependencies/entities/__init__.py +0 -0
  282. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/introspection/dependencies/entities/class_dependencies.py +0 -0
  283. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/introspection/dependencies/entities/method_dependencies.py +0 -0
  284. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/introspection/dependencies/entities/resolved_dependencies.py +0 -0
  285. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/introspection/exceptions/__init__.py +0 -0
  286. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/introspection/exceptions/reflection_attribute_error.py +0 -0
  287. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/introspection/exceptions/reflection_type_error.py +0 -0
  288. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/introspection/exceptions/reflection_value_error.py +0 -0
  289. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/introspection/instances/__init__.py +0 -0
  290. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/introspection/instances/reflection_instance.py +0 -0
  291. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/introspection/modules/__init__.py +0 -0
  292. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/introspection/modules/reflection_module.py +0 -0
  293. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/introspection/reflection.py +0 -0
  294. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/parsers/__init__.py +0 -0
  295. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/parsers/contracts/__init__.py +0 -0
  296. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/parsers/contracts/exception_parser.py +0 -0
  297. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/parsers/exceptions/__init__.py +0 -0
  298. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/parsers/exceptions/exception_parser.py +0 -0
  299. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/parsers/serializer.py +0 -0
  300. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/paths/__init__.py +0 -0
  301. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/paths/contracts/__init__.py +0 -0
  302. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/paths/contracts/resolver.py +0 -0
  303. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/paths/exceptions/__init__.py +0 -0
  304. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/paths/exceptions/not_found_exceptions.py +0 -0
  305. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/paths/exceptions/path_value_exceptions.py +0 -0
  306. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/paths/resolver.py +0 -0
  307. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/system/__init__.py +0 -0
  308. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/system/contracts/__init__.py +0 -0
  309. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/system/contracts/imports.py +0 -0
  310. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/system/contracts/workers.py +0 -0
  311. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/system/imports.py +0 -0
  312. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/system/runtime_imports.py +0 -0
  313. {orionis-0.317.0 → orionis-0.319.0}/orionis/services/system/workers.py +0 -0
  314. {orionis-0.317.0 → orionis-0.319.0}/orionis/support/__init__.py +0 -0
  315. {orionis-0.317.0 → orionis-0.319.0}/orionis/support/standard/__init__.py +0 -0
  316. {orionis-0.317.0 → orionis-0.319.0}/orionis/support/standard/contracts/__init__.py +0 -0
  317. {orionis-0.317.0 → orionis-0.319.0}/orionis/support/standard/contracts/std.py +0 -0
  318. {orionis-0.317.0 → orionis-0.319.0}/orionis/support/standard/exceptions/__init__.py +0 -0
  319. {orionis-0.317.0 → orionis-0.319.0}/orionis/support/standard/exceptions/std_value_exception.py +0 -0
  320. {orionis-0.317.0 → orionis-0.319.0}/orionis/support/standard/std.py +0 -0
  321. {orionis-0.317.0 → orionis-0.319.0}/orionis/support/wrapper/__init__.py +0 -0
  322. {orionis-0.317.0 → orionis-0.319.0}/orionis/support/wrapper/dicts/__init__.py +0 -0
  323. {orionis-0.317.0 → orionis-0.319.0}/orionis/support/wrapper/dicts/dot_dict.py +0 -0
  324. {orionis-0.317.0 → orionis-0.319.0}/orionis/test/__init__.py +0 -0
  325. {orionis-0.317.0 → orionis-0.319.0}/orionis/test/cases/__init__.py +0 -0
  326. {orionis-0.317.0 → orionis-0.319.0}/orionis/test/cases/test_async.py +0 -0
  327. {orionis-0.317.0 → orionis-0.319.0}/orionis/test/cases/test_case.py +0 -0
  328. {orionis-0.317.0 → orionis-0.319.0}/orionis/test/cases/test_sync.py +0 -0
  329. {orionis-0.317.0 → orionis-0.319.0}/orionis/test/contracts/__init__.py +0 -0
  330. {orionis-0.317.0 → orionis-0.319.0}/orionis/test/contracts/dumper.py +0 -0
  331. {orionis-0.317.0 → orionis-0.319.0}/orionis/test/contracts/history.py +0 -0
  332. {orionis-0.317.0 → orionis-0.319.0}/orionis/test/contracts/printer.py +0 -0
  333. {orionis-0.317.0 → orionis-0.319.0}/orionis/test/contracts/test_unit.py +0 -0
  334. {orionis-0.317.0 → orionis-0.319.0}/orionis/test/entities/__init__.py +0 -0
  335. {orionis-0.317.0 → orionis-0.319.0}/orionis/test/entities/test_result.py +0 -0
  336. {orionis-0.317.0 → orionis-0.319.0}/orionis/test/enums/__init__.py +0 -0
  337. {orionis-0.317.0 → orionis-0.319.0}/orionis/test/enums/test_mode.py +0 -0
  338. {orionis-0.317.0 → orionis-0.319.0}/orionis/test/enums/test_status.py +0 -0
  339. {orionis-0.317.0 → orionis-0.319.0}/orionis/test/exceptions/__init__.py +0 -0
  340. {orionis-0.317.0 → orionis-0.319.0}/orionis/test/exceptions/test_config_exception.py +0 -0
  341. {orionis-0.317.0 → orionis-0.319.0}/orionis/test/exceptions/test_failure_exception.py +0 -0
  342. {orionis-0.317.0 → orionis-0.319.0}/orionis/test/exceptions/test_persistence_error.py +0 -0
  343. {orionis-0.317.0 → orionis-0.319.0}/orionis/test/exceptions/test_runtime_error.py +0 -0
  344. {orionis-0.317.0 → orionis-0.319.0}/orionis/test/exceptions/test_value_error.py +0 -0
  345. {orionis-0.317.0 → orionis-0.319.0}/orionis/test/logs/__init__.py +0 -0
  346. {orionis-0.317.0 → orionis-0.319.0}/orionis/test/logs/history.py +0 -0
  347. {orionis-0.317.0 → orionis-0.319.0}/orionis/test/output/__init__.py +0 -0
  348. {orionis-0.317.0 → orionis-0.319.0}/orionis/test/output/dumper.py +0 -0
  349. {orionis-0.317.0 → orionis-0.319.0}/orionis/test/output/printer.py +0 -0
  350. {orionis-0.317.0 → orionis-0.319.0}/orionis/test/suite/__init__.py +0 -0
  351. {orionis-0.317.0 → orionis-0.319.0}/orionis/test/suite/test_unit.py +0 -0
  352. {orionis-0.317.0 → orionis-0.319.0}/orionis/test/test_suite.py +0 -0
  353. {orionis-0.317.0 → orionis-0.319.0}/orionis/test/view/__init__.py +0 -0
  354. {orionis-0.317.0 → orionis-0.319.0}/orionis/test/view/render.py +0 -0
  355. {orionis-0.317.0 → orionis-0.319.0}/orionis/unittesting.py +0 -0
  356. {orionis-0.317.0 → orionis-0.319.0}/orionis.egg-info/dependency_links.txt +0 -0
  357. {orionis-0.317.0 → orionis-0.319.0}/orionis.egg-info/requires.txt +0 -0
  358. {orionis-0.317.0 → orionis-0.319.0}/orionis.egg-info/top_level.txt +0 -0
  359. {orionis-0.317.0 → orionis-0.319.0}/orionis.egg-info/zip-safe +0 -0
  360. {orionis-0.317.0 → orionis-0.319.0}/setup.cfg +0 -0
  361. {orionis-0.317.0 → orionis-0.319.0}/setup.py +0 -0
  362. {orionis-0.317.0 → orionis-0.319.0}/tests/__init__.py +0 -0
  363. {orionis-0.317.0 → orionis-0.319.0}/tests/example/__init__.py +0 -0
  364. {orionis-0.317.0 → orionis-0.319.0}/tests/example/test_example.py +0 -0
  365. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/__init__.py +0 -0
  366. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/__init__.py +0 -0
  367. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/app/__init__.py +0 -0
  368. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/app/test_foundation_config_app.py +0 -0
  369. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/auth/__init__.py +0 -0
  370. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/auth/test_foundation_config_auth.py +0 -0
  371. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/cache/__init__.py +0 -0
  372. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/cache/test_foundation_config_cache.py +0 -0
  373. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/cache/test_foundation_config_cache_file.py +0 -0
  374. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/cache/test_foundation_config_cache_stores.py +0 -0
  375. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/cors/__init__.py +0 -0
  376. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/cors/test_foundation_config_cors.py +0 -0
  377. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/database/__init__.py +0 -0
  378. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/database/test_foundation_config_database.py +0 -0
  379. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/database/test_foundation_config_database_connections.py +0 -0
  380. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/database/test_foundation_config_database_mysql.py +0 -0
  381. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/database/test_foundation_config_database_oracle.py +0 -0
  382. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/database/test_foundation_config_database_pgsql.py +0 -0
  383. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/database/test_foundation_config_database_sqlite.py +0 -0
  384. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/filesystems/__init__.py +0 -0
  385. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems.py +0 -0
  386. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_aws.py +0 -0
  387. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_disks.py +0 -0
  388. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_local.py +0 -0
  389. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_public.py +0 -0
  390. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/logging/__init__.py +0 -0
  391. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/logging/test_foundation_config_logging.py +0 -0
  392. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/logging/test_foundation_config_logging_channels.py +0 -0
  393. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/logging/test_foundation_config_logging_chunked.py +0 -0
  394. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/logging/test_foundation_config_logging_daily.py +0 -0
  395. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/logging/test_foundation_config_logging_hourly.py +0 -0
  396. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/logging/test_foundation_config_logging_monthly.py +0 -0
  397. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/logging/test_foundation_config_logging_stack.py +0 -0
  398. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/logging/test_foundation_config_logging_weekly.py +0 -0
  399. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/mail/__init__.py +0 -0
  400. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/mail/test_foundation_config_mail.py +0 -0
  401. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/mail/test_foundation_config_mail_file.py +0 -0
  402. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/mail/test_foundation_config_mail_mailers.py +0 -0
  403. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/mail/test_foundation_config_mail_smtp.py +0 -0
  404. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/queue/__init__.py +0 -0
  405. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/queue/test_foundation_config_queue.py +0 -0
  406. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/queue/test_foundation_config_queue_brokers.py +0 -0
  407. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/queue/test_foundation_config_queue_database.py +0 -0
  408. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/root/__init__.py +0 -0
  409. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/root/test_foundation_config_root_paths.py +0 -0
  410. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/session/__init__.py +0 -0
  411. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/session/test_foundation_config_session.py +0 -0
  412. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/startup/__init__.py +0 -0
  413. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/startup/test_foundation_config_startup.py +0 -0
  414. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/testing/__init__.py +0 -0
  415. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/config/testing/test_foundation_config_testing.py +0 -0
  416. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/exceptions/__init__.py +0 -0
  417. {orionis-0.317.0 → orionis-0.319.0}/tests/foundation/exceptions/test_foundation_config_exceptions.py +0 -0
  418. {orionis-0.317.0 → orionis-0.319.0}/tests/metadata/__init__.py +0 -0
  419. {orionis-0.317.0 → orionis-0.319.0}/tests/metadata/test_metadata_framework.py +0 -0
  420. {orionis-0.317.0 → orionis-0.319.0}/tests/metadata/test_metadata_package.py +0 -0
  421. {orionis-0.317.0 → orionis-0.319.0}/tests/patterns/__init__.py +0 -0
  422. {orionis-0.317.0 → orionis-0.319.0}/tests/patterns/singleton/__init__.py +0 -0
  423. {orionis-0.317.0 → orionis-0.319.0}/tests/patterns/singleton/test_patterns_singleton.py +0 -0
  424. {orionis-0.317.0 → orionis-0.319.0}/tests/services/__init__.py +0 -0
  425. {orionis-0.317.0 → orionis-0.319.0}/tests/services/asynchrony/__init__.py +0 -0
  426. {orionis-0.317.0 → orionis-0.319.0}/tests/services/asynchrony/test_services_asynchrony_coroutine.py +0 -0
  427. {orionis-0.317.0 → orionis-0.319.0}/tests/services/environment/__init__.py +0 -0
  428. {orionis-0.317.0 → orionis-0.319.0}/tests/services/environment/test_services_environment.py +0 -0
  429. {orionis-0.317.0 → orionis-0.319.0}/tests/services/inspection/__init__.py +0 -0
  430. {orionis-0.317.0 → orionis-0.319.0}/tests/services/inspection/dependencies/__init__.py +0 -0
  431. {orionis-0.317.0 → orionis-0.319.0}/tests/services/inspection/dependencies/mocks/__init__.py +0 -0
  432. {orionis-0.317.0 → orionis-0.319.0}/tests/services/inspection/dependencies/mocks/mock_user.py +0 -0
  433. {orionis-0.317.0 → orionis-0.319.0}/tests/services/inspection/dependencies/mocks/mock_user_controller.py +0 -0
  434. {orionis-0.317.0 → orionis-0.319.0}/tests/services/inspection/dependencies/mocks/mock_users_permissions.py +0 -0
  435. {orionis-0.317.0 → orionis-0.319.0}/tests/services/inspection/reflection/__init__.py +0 -0
  436. {orionis-0.317.0 → orionis-0.319.0}/tests/services/inspection/reflection/mock/__init__.py +0 -0
  437. {orionis-0.317.0 → orionis-0.319.0}/tests/services/inspection/reflection/mock/fake_reflect_instance.py +0 -0
  438. {orionis-0.317.0 → orionis-0.319.0}/tests/services/inspection/reflection/test_reflection_abstract.py +0 -0
  439. {orionis-0.317.0 → orionis-0.319.0}/tests/services/inspection/reflection/test_reflection_concrete.py +0 -0
  440. {orionis-0.317.0 → orionis-0.319.0}/tests/services/inspection/reflection/test_reflection_instance.py +0 -0
  441. {orionis-0.317.0 → orionis-0.319.0}/tests/services/inspection/reflection/test_reflection_module.py +0 -0
  442. {orionis-0.317.0 → orionis-0.319.0}/tests/services/inspection/test_reflection.py +0 -0
  443. {orionis-0.317.0 → orionis-0.319.0}/tests/services/parsers/__init__.py +0 -0
  444. {orionis-0.317.0 → orionis-0.319.0}/tests/services/parsers/mocks/__init__.py +0 -0
  445. {orionis-0.317.0 → orionis-0.319.0}/tests/services/parsers/mocks/mock_custom_error.py +0 -0
  446. {orionis-0.317.0 → orionis-0.319.0}/tests/services/parsers/test_services_parser_exceptions.py +0 -0
  447. {orionis-0.317.0 → orionis-0.319.0}/tests/services/path/__init__.py +0 -0
  448. {orionis-0.317.0 → orionis-0.319.0}/tests/services/path/test_services_resolver.py +0 -0
  449. {orionis-0.317.0 → orionis-0.319.0}/tests/services/system/__init__.py +0 -0
  450. {orionis-0.317.0 → orionis-0.319.0}/tests/services/system/test_services_system_imports.py +0 -0
  451. {orionis-0.317.0 → orionis-0.319.0}/tests/services/system/test_services_system_workers.py +0 -0
  452. {orionis-0.317.0 → orionis-0.319.0}/tests/support/__init__.py +0 -0
  453. {orionis-0.317.0 → orionis-0.319.0}/tests/support/standard/__init__.py +0 -0
  454. {orionis-0.317.0 → orionis-0.319.0}/tests/support/standard/test_services_std.py +0 -0
  455. {orionis-0.317.0 → orionis-0.319.0}/tests/support/wrapper/__init__.py +0 -0
  456. {orionis-0.317.0 → orionis-0.319.0}/tests/support/wrapper/test_services_wrapper_docdict.py +0 -0
  457. {orionis-0.317.0 → orionis-0.319.0}/tests/testing/__init__.py +0 -0
  458. {orionis-0.317.0 → orionis-0.319.0}/tests/testing/test_testing_result.py +0 -0
  459. {orionis-0.317.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.317.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,12 +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 inspect
12
- import threading
13
14
 
14
- class Container:
15
+ class Container(IContainer):
15
16
 
16
17
  # Singleton instance of the container.
17
18
  # This is a class variable that holds the single instance of the Container class.
@@ -27,7 +28,11 @@ class Container:
27
28
  # regardless of how many times the class is instantiated.
28
29
  _initialized = False
29
30
 
30
- def __new__(cls, *args, **kwargs):
31
+ def __new__(
32
+ cls,
33
+ *args,
34
+ **kwargs
35
+ ) -> 'Container':
31
36
  """
32
37
  Creates and returns a singleton instance of the class.
33
38
 
@@ -52,24 +57,29 @@ class Container:
52
57
  cls._instance = super(Container, cls).__new__(cls)
53
58
  return cls._instance
54
59
 
55
- def __init__(self):
60
+ def __init__(
61
+ self
62
+ ) -> None:
56
63
  """
57
64
  Initializes a new instance of the container.
58
65
 
59
66
  This constructor sets up the internal dictionaries for bindings and aliases,
60
67
  ensuring that these are only initialized once per class. The initialization
61
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.
62
70
 
63
71
  Notes
64
72
  -----
65
73
  - The `__bindings` dictionary is used to store service bindings.
66
74
  - The `__aliasses` dictionary is used to store service aliases.
67
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.
68
77
  """
69
78
  if not self.__class__._initialized:
70
79
  self.__bindings = {}
71
80
  self.__aliasses = {}
72
81
  self.__class__._initialized = True
82
+ self.instance(IContainer, self)
73
83
 
74
84
  def __dropService(
75
85
  self,
@@ -380,6 +390,48 @@ class Container:
380
390
  "Please ensure that all abstract methods are implemented."
381
391
  )
382
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
+
383
435
  def transient(
384
436
  self,
385
437
  abstract: Callable[..., Any],
@@ -716,7 +768,7 @@ class Container:
716
768
  def function(
717
769
  self,
718
770
  alias: str,
719
- function: Callable[..., Any],
771
+ fn: Callable[..., Any],
720
772
  *,
721
773
  lifetime: Lifetime = Lifetime.TRANSIENT
722
774
  ) -> bool:
@@ -727,7 +779,7 @@ class Container:
727
779
  ----------
728
780
  alias : str
729
781
  The alias to register the function under.
730
- function : Callable[..., Any]
782
+ fn : Callable[..., Any]
731
783
  The function or factory to register.
732
784
  lifetime : Lifetime, optional
733
785
  The lifetime of the function registration (default is TRANSIENT).
@@ -764,10 +816,10 @@ class Container:
764
816
  self.__ensureAliasType(alias)
765
817
 
766
818
  # Validate that the function is callable
767
- self.__ensureIsCallable(function)
819
+ self.__ensureIsCallable(fn)
768
820
 
769
821
  # Inspect the function signature
770
- params = ReflectionCallable(function).getDependencies()
822
+ params = ReflectionCallable(fn).getDependencies()
771
823
 
772
824
  # If the function requires arguments, only allow TRANSIENT
773
825
  if (len(params.resolved) + len(params.unresolved)) > 0 and lifetime != Lifetime.TRANSIENT:
@@ -780,7 +832,7 @@ class Container:
780
832
 
781
833
  # Register the function with the specified alias and lifetime
782
834
  self.__bindings[alias] = Binding(
783
- function=function,
835
+ function=fn,
784
836
  lifetime=lifetime,
785
837
  alias=alias
786
838
  )
@@ -820,8 +872,8 @@ class Container:
820
872
  def make(
821
873
  self,
822
874
  abstract_or_alias: Any,
823
- *args,
824
- **kwargs
875
+ *args: tuple,
876
+ **kwargs: dict
825
877
  ) -> Any:
826
878
  """
827
879
  Resolves and returns an instance of the requested service.
@@ -845,11 +897,341 @@ class Container:
845
897
  OrionisContainerException
846
898
  If the requested service is not registered in the container.
847
899
  """
848
- 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:
849
905
  raise OrionisContainerException(
850
906
  f"The requested service '{abstract_or_alias}' is not registered in the container."
851
907
  )
852
908
 
853
- 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.
854
1019
 
855
- 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