orionis 0.406.0__tar.gz → 0.407.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 (583) hide show
  1. {orionis-0.406.0/orionis.egg-info → orionis-0.407.0}/PKG-INFO +1 -1
  2. {orionis-0.406.0 → orionis-0.407.0}/orionis/metadata/framework.py +1 -1
  3. orionis-0.407.0/orionis/services/asynchrony/contracts/coroutines.py +32 -0
  4. orionis-0.407.0/orionis/services/asynchrony/coroutines.py +83 -0
  5. orionis-0.407.0/orionis/services/asynchrony/exceptions/exception.py +27 -0
  6. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/environment/core/dot_env.py +46 -34
  7. orionis-0.407.0/orionis/services/environment/enums/cast_type.py +42 -0
  8. orionis-0.407.0/orionis/services/environment/serializer/values.py +21 -0
  9. orionis-0.407.0/orionis/services/environment/validators/key_name.py +46 -0
  10. orionis-0.407.0/orionis/services/environment/validators/types.py +45 -0
  11. orionis-0.407.0/orionis/services/system/contracts/imports.py +71 -0
  12. orionis-0.407.0/orionis/services/system/contracts/workers.py +52 -0
  13. orionis-0.407.0/orionis/services/system/imports.py +183 -0
  14. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/system/runtime/imports.py +18 -9
  15. orionis-0.407.0/orionis/services/system/workers.py +96 -0
  16. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/output/dumper.py +1 -0
  17. {orionis-0.406.0 → orionis-0.407.0/orionis.egg-info}/PKG-INFO +1 -1
  18. {orionis-0.406.0 → orionis-0.407.0}/orionis.egg-info/SOURCES.txt +7 -0
  19. {orionis-0.406.0 → orionis-0.407.0}/tests/example/test_example.py +2 -2
  20. {orionis-0.406.0 → orionis-0.407.0}/tests/metadata/test_metadata_framework.py +71 -6
  21. orionis-0.407.0/tests/metadata/test_metadata_package.py +139 -0
  22. orionis-0.407.0/tests/services/asynchrony/test_services_asynchrony_coroutine.py +85 -0
  23. orionis-0.407.0/tests/services/system/test_services_system_imports.py +204 -0
  24. orionis-0.407.0/tests/services/system/test_services_system_workers.py +131 -0
  25. orionis-0.407.0/tests/support/standard/__init__.py +0 -0
  26. orionis-0.407.0/tests/support/wrapper/__init__.py +0 -0
  27. orionis-0.407.0/tests/testing/__init__.py +0 -0
  28. orionis-0.406.0/orionis/services/asynchrony/contracts/coroutines.py +0 -24
  29. orionis-0.406.0/orionis/services/asynchrony/coroutines.py +0 -79
  30. orionis-0.406.0/orionis/services/asynchrony/exceptions/exception.py +0 -19
  31. orionis-0.406.0/orionis/services/system/contracts/imports.py +0 -51
  32. orionis-0.406.0/orionis/services/system/contracts/workers.py +0 -35
  33. orionis-0.406.0/orionis/services/system/imports.py +0 -143
  34. orionis-0.406.0/orionis/services/system/workers.py +0 -63
  35. orionis-0.406.0/tests/metadata/test_metadata_package.py +0 -94
  36. orionis-0.406.0/tests/services/asynchrony/test_services_asynchrony_coroutine.py +0 -40
  37. orionis-0.406.0/tests/services/system/test_services_system_imports.py +0 -101
  38. orionis-0.406.0/tests/services/system/test_services_system_workers.py +0 -90
  39. {orionis-0.406.0 → orionis-0.407.0}/LICENCE +0 -0
  40. {orionis-0.406.0 → orionis-0.407.0}/MANIFEST.in +0 -0
  41. {orionis-0.406.0 → orionis-0.407.0}/README.md +0 -0
  42. {orionis-0.406.0 → orionis-0.407.0}/orionis/__init__.py +0 -0
  43. {orionis-0.406.0 → orionis-0.407.0}/orionis/_console/__init__.py +0 -0
  44. {orionis-0.406.0 → orionis-0.407.0}/orionis/_console/base/__init__.py +0 -0
  45. {orionis-0.406.0 → orionis-0.407.0}/orionis/_console/base/command.py +0 -0
  46. {orionis-0.406.0 → orionis-0.407.0}/orionis/_console/command_filter.py +0 -0
  47. {orionis-0.406.0 → orionis-0.407.0}/orionis/_console/commands/__init__.py +0 -0
  48. {orionis-0.406.0 → orionis-0.407.0}/orionis/_console/commands/cache_clear.py +0 -0
  49. {orionis-0.406.0 → orionis-0.407.0}/orionis/_console/commands/help.py +0 -0
  50. {orionis-0.406.0 → orionis-0.407.0}/orionis/_console/commands/schedule_work.py +0 -0
  51. {orionis-0.406.0 → orionis-0.407.0}/orionis/_console/commands/version.py +0 -0
  52. {orionis-0.406.0 → orionis-0.407.0}/orionis/_console/dumper/__init__.py +0 -0
  53. {orionis-0.406.0 → orionis-0.407.0}/orionis/_console/dumper/dump_die.py +0 -0
  54. {orionis-0.406.0 → orionis-0.407.0}/orionis/_console/exceptions/__init__.py +0 -0
  55. {orionis-0.406.0 → orionis-0.407.0}/orionis/_console/exceptions/cli-orionis-value-error.py +0 -0
  56. {orionis-0.406.0 → orionis-0.407.0}/orionis/_console/exceptions/cli_exception.py +0 -0
  57. {orionis-0.406.0 → orionis-0.407.0}/orionis/_console/exceptions/cli_runtime_error.py +0 -0
  58. {orionis-0.406.0 → orionis-0.407.0}/orionis/_console/exceptions/cli_schedule_exception.py +0 -0
  59. {orionis-0.406.0 → orionis-0.407.0}/orionis/_console/kernel.py +0 -0
  60. {orionis-0.406.0 → orionis-0.407.0}/orionis/_console/output/__init__.py +0 -0
  61. {orionis-0.406.0 → orionis-0.407.0}/orionis/_console/output/console.py +0 -0
  62. {orionis-0.406.0 → orionis-0.407.0}/orionis/_console/output/executor.py +0 -0
  63. {orionis-0.406.0 → orionis-0.407.0}/orionis/_console/output/progress_bar.py +0 -0
  64. {orionis-0.406.0 → orionis-0.407.0}/orionis/_console/parser.py +0 -0
  65. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/__init__.py +0 -0
  66. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/application.py +0 -0
  67. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/config/__init__.py +0 -0
  68. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/config/config.py +0 -0
  69. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/console/__init__.py +0 -0
  70. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/console/base/__init__.py +0 -0
  71. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/console/base/command.py +0 -0
  72. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/console/command_filter.py +0 -0
  73. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/console/kernel.py +0 -0
  74. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/console/output/__init__.py +0 -0
  75. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/console/output/console.py +0 -0
  76. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/console/output/executor.py +0 -0
  77. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/console/parser.py +0 -0
  78. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/console/task_manager.py +0 -0
  79. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/facades/__init__.py +0 -0
  80. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/facades/commands/__init__.py +0 -0
  81. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/facades/commands/commands_facade.py +0 -0
  82. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/facades/commands/scheduler_facade.py +0 -0
  83. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/facades/config/__init__.py +0 -0
  84. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/facades/config/config_facade.py +0 -0
  85. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/facades/environment/__init__.py +0 -0
  86. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/facades/environment/environment_facade.py +0 -0
  87. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/facades/facade.py +0 -0
  88. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/facades/files/__init__.py +0 -0
  89. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/facades/files/path_facade.py +0 -0
  90. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/facades/log/__init__.py +0 -0
  91. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/facades/log/log_facade.py +0 -0
  92. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/facades/tests/__init__.py +0 -0
  93. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/facades/tests/tests_facade.py +0 -0
  94. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/foundation/__init__.py +0 -0
  95. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/foundation/bootstraper.py +0 -0
  96. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/foundation/config/__init__.py +0 -0
  97. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/foundation/config/config_bootstrapper.py +0 -0
  98. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/foundation/console/__init__.py +0 -0
  99. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/foundation/console/command_bootstrapper.py +0 -0
  100. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/foundation/environment/__init__.py +0 -0
  101. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/foundation/environment/environment_bootstrapper.py +0 -0
  102. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/foundation/providers/__init__.py +0 -0
  103. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/foundation/providers/service_providers_bootstrapper.py +0 -0
  104. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/providers/__init__.py +0 -0
  105. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/providers/service_provider.py +0 -0
  106. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/services/__init__.py +0 -0
  107. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/services/commands/__init__.py +0 -0
  108. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/services/commands/reactor_commands_service.py +0 -0
  109. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/services/commands/schedule_service.py +0 -0
  110. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/services/config/__init__.py +0 -0
  111. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/services/config/config_service.py +0 -0
  112. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/services/environment/__init__.py +0 -0
  113. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/services/environment/environment_service.py +0 -0
  114. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/services/files/__init__.py +0 -0
  115. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/services/files/path_resolver_service.py +0 -0
  116. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/services/log/__init__.py +0 -0
  117. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/services/log/log_service.py +0 -0
  118. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/support/exception_parse.py +0 -0
  119. {orionis-0.406.0 → orionis-0.407.0}/orionis/_contracts/support/reflection.py +0 -0
  120. {orionis-0.406.0 → orionis-0.407.0}/orionis/_foundation/__init__.py +0 -0
  121. {orionis-0.406.0 → orionis-0.407.0}/orionis/_foundation/console/__init__.py +0 -0
  122. {orionis-0.406.0 → orionis-0.407.0}/orionis/_foundation/console/command_bootstrapper.py +0 -0
  123. {orionis-0.406.0 → orionis-0.407.0}/orionis/_foundation/environment/__init__.py +0 -0
  124. {orionis-0.406.0 → orionis-0.407.0}/orionis/_foundation/environment/environment_bootstrapper.py +0 -0
  125. {orionis-0.406.0 → orionis-0.407.0}/orionis/_foundation/exceptions/__init__.py +0 -0
  126. {orionis-0.406.0 → orionis-0.407.0}/orionis/_foundation/exceptions/exception_bootstrapper.py +0 -0
  127. {orionis-0.406.0 → orionis-0.407.0}/orionis/_foundation/exceptions/exception_providers.py +0 -0
  128. {orionis-0.406.0 → orionis-0.407.0}/orionis/_foundation/foundation/config/__init__.py +0 -0
  129. {orionis-0.406.0 → orionis-0.407.0}/orionis/_foundation/foundation/config/config_bootstrapper.py +0 -0
  130. {orionis-0.406.0 → orionis-0.407.0}/orionis/_foundation/providers/__init__.py +0 -0
  131. {orionis-0.406.0 → orionis-0.407.0}/orionis/_foundation/providers/service_providers_bootstrapper.py +0 -0
  132. {orionis-0.406.0 → orionis-0.407.0}/orionis/_services/__init__.py +0 -0
  133. {orionis-0.406.0 → orionis-0.407.0}/orionis/_services/commands/__init__.py +0 -0
  134. {orionis-0.406.0 → orionis-0.407.0}/orionis/_services/commands/reactor_commands_service.py +0 -0
  135. {orionis-0.406.0 → orionis-0.407.0}/orionis/_services/commands/scheduler_service.py +0 -0
  136. {orionis-0.406.0 → orionis-0.407.0}/orionis/_services/config/__init__.py +0 -0
  137. {orionis-0.406.0 → orionis-0.407.0}/orionis/_services/config/config_service.py +0 -0
  138. {orionis-0.406.0 → orionis-0.407.0}/orionis/console/__init__.py +0 -0
  139. {orionis-0.406.0 → orionis-0.407.0}/orionis/console/base/__init__.py +0 -0
  140. {orionis-0.406.0 → orionis-0.407.0}/orionis/console/base/command.py +0 -0
  141. {orionis-0.406.0 → orionis-0.407.0}/orionis/console/base/contracts/__init__.py +0 -0
  142. {orionis-0.406.0 → orionis-0.407.0}/orionis/console/base/contracts/command.py +0 -0
  143. {orionis-0.406.0 → orionis-0.407.0}/orionis/console/dumper/__init__.py +0 -0
  144. {orionis-0.406.0 → orionis-0.407.0}/orionis/console/dumper/contracts/__init__.py +0 -0
  145. {orionis-0.406.0 → orionis-0.407.0}/orionis/console/dumper/contracts/dump.py +0 -0
  146. {orionis-0.406.0 → orionis-0.407.0}/orionis/console/dumper/dump.py +0 -0
  147. {orionis-0.406.0 → orionis-0.407.0}/orionis/console/dynamic/__init__.py +0 -0
  148. {orionis-0.406.0 → orionis-0.407.0}/orionis/console/dynamic/contracts/__init__.py +0 -0
  149. {orionis-0.406.0 → orionis-0.407.0}/orionis/console/dynamic/contracts/progress_bar.py +0 -0
  150. {orionis-0.406.0 → orionis-0.407.0}/orionis/console/dynamic/progress_bar.py +0 -0
  151. {orionis-0.406.0 → orionis-0.407.0}/orionis/console/output/__init__.py +0 -0
  152. {orionis-0.406.0 → orionis-0.407.0}/orionis/console/output/console.py +0 -0
  153. {orionis-0.406.0 → orionis-0.407.0}/orionis/console/output/contracts/__init__.py +0 -0
  154. {orionis-0.406.0 → orionis-0.407.0}/orionis/console/output/contracts/console.py +0 -0
  155. {orionis-0.406.0 → orionis-0.407.0}/orionis/console/output/enums/__init__.py +0 -0
  156. {orionis-0.406.0 → orionis-0.407.0}/orionis/console/output/enums/styles.py +0 -0
  157. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/__init__.py +0 -0
  158. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/container.py +0 -0
  159. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/context/__init__.py +0 -0
  160. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/context/manager.py +0 -0
  161. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/context/scope.py +0 -0
  162. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/contracts/__init__.py +0 -0
  163. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/contracts/container.py +0 -0
  164. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/contracts/resolver.py +0 -0
  165. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/contracts/service_provider.py +0 -0
  166. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/entities/__init__.py +0 -0
  167. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/entities/binding.py +0 -0
  168. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/enums/__init__.py +0 -0
  169. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/enums/lifetimes.py +0 -0
  170. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/exceptions/__init__.py +0 -0
  171. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/exceptions/attribute.py +0 -0
  172. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/exceptions/exception.py +0 -0
  173. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/exceptions/type.py +0 -0
  174. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/exceptions/value.py +0 -0
  175. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/facades/__init__.py +0 -0
  176. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/facades/facade.py +0 -0
  177. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/providers/__init__.py +0 -0
  178. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/providers/service_provider.py +0 -0
  179. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/resolver/__init__.py +0 -0
  180. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/resolver/resolver.py +0 -0
  181. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/validators/__init__.py +0 -0
  182. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/validators/implements.py +0 -0
  183. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/validators/is_abstract_class.py +0 -0
  184. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/validators/is_callable.py +0 -0
  185. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/validators/is_concrete_class.py +0 -0
  186. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/validators/is_instance.py +0 -0
  187. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/validators/is_not_subclass.py +0 -0
  188. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/validators/is_subclass.py +0 -0
  189. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/validators/is_valid_alias.py +0 -0
  190. {orionis-0.406.0 → orionis-0.407.0}/orionis/container/validators/lifetime.py +0 -0
  191. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/__init__.py +0 -0
  192. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/application.py +0 -0
  193. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/__init__.py +0 -0
  194. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/app/__init__.py +0 -0
  195. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/app/entities/__init__.py +0 -0
  196. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/app/entities/app.py +0 -0
  197. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/app/enums/__init__.py +0 -0
  198. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/app/enums/ciphers.py +0 -0
  199. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/app/enums/environments.py +0 -0
  200. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/auth/__init__.py +0 -0
  201. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/auth/entities/__init__.py +0 -0
  202. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/auth/entities/auth.py +0 -0
  203. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/cache/__init__.py +0 -0
  204. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/cache/entities/__init__.py +0 -0
  205. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/cache/entities/cache.py +0 -0
  206. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/cache/entities/file.py +0 -0
  207. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/cache/entities/stores.py +0 -0
  208. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/cache/enums/__init__.py +0 -0
  209. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/cache/enums/drivers.py +0 -0
  210. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/cors/__init__.py +0 -0
  211. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/cors/entities/__init__.py +0 -0
  212. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/cors/entities/cors.py +0 -0
  213. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/database/__init__.py +0 -0
  214. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/database/entities/__init__.py +0 -0
  215. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/database/entities/connections.py +0 -0
  216. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/database/entities/database.py +0 -0
  217. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/database/entities/mysql.py +0 -0
  218. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/database/entities/oracle.py +0 -0
  219. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/database/entities/pgsql.py +0 -0
  220. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/database/entities/sqlite.py +0 -0
  221. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/database/enums/__init__.py +0 -0
  222. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/database/enums/mysql_charsets.py +0 -0
  223. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/database/enums/mysql_collations.py +0 -0
  224. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/database/enums/mysql_engine.py +0 -0
  225. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/database/enums/oracle_encoding.py +0 -0
  226. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/database/enums/oracle_nencoding.py +0 -0
  227. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/database/enums/pgsql_charsets.py +0 -0
  228. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/database/enums/pgsql_collations.py +0 -0
  229. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/database/enums/pgsql_mode.py +0 -0
  230. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/database/enums/sqlite_foreign_key.py +0 -0
  231. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/database/enums/sqlite_journal.py +0 -0
  232. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/database/enums/sqlite_synchronous.py +0 -0
  233. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/filesystems/__init__.py +0 -0
  234. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/filesystems/entitites/__init__.py +0 -0
  235. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/filesystems/entitites/aws.py +0 -0
  236. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/filesystems/entitites/disks.py +0 -0
  237. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/filesystems/entitites/filesystems.py +0 -0
  238. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/filesystems/entitites/local.py +0 -0
  239. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/filesystems/entitites/public.py +0 -0
  240. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/logging/__init__.py +0 -0
  241. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/logging/entities/__init__.py +0 -0
  242. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/logging/entities/channels.py +0 -0
  243. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/logging/entities/chunked.py +0 -0
  244. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/logging/entities/daily.py +0 -0
  245. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/logging/entities/hourly.py +0 -0
  246. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/logging/entities/logging.py +0 -0
  247. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/logging/entities/monthly.py +0 -0
  248. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/logging/entities/stack.py +0 -0
  249. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/logging/entities/weekly.py +0 -0
  250. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/logging/enums/__init__.py +0 -0
  251. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/logging/enums/levels.py +0 -0
  252. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/logging/validators/__init__.py +0 -0
  253. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/logging/validators/level.py +0 -0
  254. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/logging/validators/path.py +0 -0
  255. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/mail/__init__.py +0 -0
  256. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/mail/entities/__init__.py +0 -0
  257. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/mail/entities/file.py +0 -0
  258. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/mail/entities/mail.py +0 -0
  259. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/mail/entities/mailers.py +0 -0
  260. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/mail/entities/smtp.py +0 -0
  261. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/queue/__init__.py +0 -0
  262. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/queue/entities/__init__.py +0 -0
  263. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/queue/entities/brokers.py +0 -0
  264. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/queue/entities/database.py +0 -0
  265. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/queue/entities/queue.py +0 -0
  266. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/queue/enums/__init__.py +0 -0
  267. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/queue/enums/strategy.py +0 -0
  268. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/roots/__init__.py +0 -0
  269. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/roots/paths.py +0 -0
  270. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/session/__init__.py +0 -0
  271. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/session/entities/__init__.py +0 -0
  272. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/session/entities/session.py +0 -0
  273. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/session/enums/__init__.py +0 -0
  274. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/session/enums/same_site_policy.py +0 -0
  275. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/session/helpers/__init__.py +0 -0
  276. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/session/helpers/secret_key.py +0 -0
  277. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/startup.py +0 -0
  278. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/testing/__init__.py +0 -0
  279. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/testing/entities/__init__.py +0 -0
  280. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/testing/entities/testing.py +0 -0
  281. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/testing/enums/__init__.py +0 -0
  282. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/testing/enums/drivers.py +0 -0
  283. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/testing/enums/mode.py +0 -0
  284. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/config/testing/enums/verbosity.py +0 -0
  285. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/contracts/__init__.py +0 -0
  286. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/contracts/application.py +0 -0
  287. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/contracts/config.py +0 -0
  288. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/exceptions/__init__.py +0 -0
  289. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/exceptions/integrity.py +0 -0
  290. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/exceptions/runtime.py +0 -0
  291. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/exceptions/type.py +0 -0
  292. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/exceptions/value.py +0 -0
  293. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/providers/__init__.py +0 -0
  294. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/providers/console_provider.py +0 -0
  295. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/providers/dumper_provider.py +0 -0
  296. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/providers/logger_provider.py +0 -0
  297. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/providers/path_resolver_provider.py +0 -0
  298. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/providers/progress_bar_provider.py +0 -0
  299. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/providers/testing_provider.py +0 -0
  300. {orionis-0.406.0 → orionis-0.407.0}/orionis/foundation/providers/workers_provider.py +0 -0
  301. {orionis-0.406.0 → orionis-0.407.0}/orionis/metadata/__init__.py +0 -0
  302. {orionis-0.406.0 → orionis-0.407.0}/orionis/metadata/package.py +0 -0
  303. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/__init__.py +0 -0
  304. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/asynchrony/__init__.py +0 -0
  305. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/asynchrony/contracts/__init__.py +0 -0
  306. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/asynchrony/exceptions/__init__.py +0 -0
  307. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/environment/__init__.py +0 -0
  308. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/environment/contracts/__init__.py +0 -0
  309. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/environment/contracts/env.py +0 -0
  310. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/environment/contracts/types.py +0 -0
  311. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/environment/core/__init__.py +0 -0
  312. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/environment/dynamic/__init__.py +0 -0
  313. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/environment/dynamic/types.py +0 -0
  314. {orionis-0.406.0/orionis/services/environment/helpers → orionis-0.407.0/orionis/services/environment/enums}/__init__.py +0 -0
  315. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/environment/env.py +0 -0
  316. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/environment/exceptions/__init__.py +0 -0
  317. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/environment/exceptions/exception.py +0 -0
  318. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/environment/exceptions/value.py +0 -0
  319. {orionis-0.406.0/orionis/services/environment/key → orionis-0.407.0/orionis/services/environment/helpers}/__init__.py +0 -0
  320. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/environment/helpers/functions.py +0 -0
  321. {orionis-0.406.0/orionis/services/introspection → orionis-0.407.0/orionis/services/environment/key}/__init__.py +0 -0
  322. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/environment/key/key_generator.py +0 -0
  323. {orionis-0.406.0/orionis/services/introspection/abstract → orionis-0.407.0/orionis/services/environment/serializer}/__init__.py +0 -0
  324. {orionis-0.406.0/orionis/services/introspection/abstract/contracts → orionis-0.407.0/orionis/services/environment/validators}/__init__.py +0 -0
  325. {orionis-0.406.0/orionis/services/introspection/callables → orionis-0.407.0/orionis/services/introspection}/__init__.py +0 -0
  326. {orionis-0.406.0/orionis/services/introspection/callables/contracts → orionis-0.407.0/orionis/services/introspection/abstract}/__init__.py +0 -0
  327. {orionis-0.406.0/orionis/services/introspection/concretes → orionis-0.407.0/orionis/services/introspection/abstract/contracts}/__init__.py +0 -0
  328. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/introspection/abstract/contracts/reflection.py +0 -0
  329. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/introspection/abstract/reflection.py +0 -0
  330. {orionis-0.406.0/orionis/services/introspection/concretes/contracts → orionis-0.407.0/orionis/services/introspection/callables}/__init__.py +0 -0
  331. {orionis-0.406.0/orionis/services/introspection/dependencies → orionis-0.407.0/orionis/services/introspection/callables/contracts}/__init__.py +0 -0
  332. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/introspection/callables/contracts/reflection.py +0 -0
  333. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/introspection/callables/reflection.py +0 -0
  334. {orionis-0.406.0/orionis/services/introspection/dependencies/contracts → orionis-0.407.0/orionis/services/introspection/concretes}/__init__.py +0 -0
  335. {orionis-0.406.0/orionis/services/introspection/dependencies/entities → orionis-0.407.0/orionis/services/introspection/concretes/contracts}/__init__.py +0 -0
  336. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/introspection/concretes/contracts/concrete.py +0 -0
  337. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/introspection/concretes/reflection.py +0 -0
  338. {orionis-0.406.0/orionis/services/introspection/instances → orionis-0.407.0/orionis/services/introspection/dependencies}/__init__.py +0 -0
  339. {orionis-0.406.0/orionis/services/introspection/instances → orionis-0.407.0/orionis/services/introspection/dependencies}/contracts/__init__.py +0 -0
  340. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/introspection/dependencies/contracts/reflection.py +0 -0
  341. {orionis-0.406.0/orionis/services/introspection/modules → orionis-0.407.0/orionis/services/introspection/dependencies/entities}/__init__.py +0 -0
  342. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/introspection/dependencies/entities/callable_dependencies.py +0 -0
  343. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/introspection/dependencies/entities/class_dependencies.py +0 -0
  344. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/introspection/dependencies/entities/known_dependencies.py +0 -0
  345. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/introspection/dependencies/entities/method_dependencies.py +0 -0
  346. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/introspection/dependencies/reflection.py +0 -0
  347. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/introspection/exceptions/__init__.py +0 -0
  348. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/introspection/exceptions/attribute.py +0 -0
  349. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/introspection/exceptions/type.py +0 -0
  350. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/introspection/exceptions/value.py +0 -0
  351. {orionis-0.406.0/orionis/services/introspection/modules/contracts → orionis-0.407.0/orionis/services/introspection/instances}/__init__.py +0 -0
  352. {orionis-0.406.0/orionis/services/introspection/objects → orionis-0.407.0/orionis/services/introspection/instances/contracts}/__init__.py +0 -0
  353. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/introspection/instances/contracts/reflection.py +0 -0
  354. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/introspection/instances/reflection.py +0 -0
  355. {orionis-0.406.0/orionis/services/log → orionis-0.407.0/orionis/services/introspection/modules}/__init__.py +0 -0
  356. {orionis-0.406.0/orionis/services/log → orionis-0.407.0/orionis/services/introspection/modules}/contracts/__init__.py +0 -0
  357. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/introspection/modules/contracts/reflection.py +0 -0
  358. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/introspection/modules/reflection.py +0 -0
  359. {orionis-0.406.0/orionis/services/log/handlers → orionis-0.407.0/orionis/services/introspection/objects}/__init__.py +0 -0
  360. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/introspection/objects/types.py +0 -0
  361. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/introspection/reflection.py +0 -0
  362. {orionis-0.406.0/orionis/services/paths → orionis-0.407.0/orionis/services/log}/__init__.py +0 -0
  363. {orionis-0.406.0/orionis/services/paths → orionis-0.407.0/orionis/services/log}/contracts/__init__.py +0 -0
  364. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/log/contracts/log_service.py +0 -0
  365. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/log/exceptions/__init__.py +0 -0
  366. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/log/exceptions/runtime.py +0 -0
  367. {orionis-0.406.0/orionis/services/system → orionis-0.407.0/orionis/services/log/handlers}/__init__.py +0 -0
  368. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/log/handlers/filename.py +0 -0
  369. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/log/handlers/size_rotating.py +0 -0
  370. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/log/handlers/timed_rotating.py +0 -0
  371. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/log/log_service.py +0 -0
  372. {orionis-0.406.0/orionis/services/system/contracts → orionis-0.407.0/orionis/services/paths}/__init__.py +0 -0
  373. {orionis-0.406.0/orionis/services/system/runtime → orionis-0.407.0/orionis/services/paths/contracts}/__init__.py +0 -0
  374. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/paths/contracts/resolver.py +0 -0
  375. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/paths/exceptions/__init__.py +0 -0
  376. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/paths/exceptions/exception.py +0 -0
  377. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/paths/exceptions/file.py +0 -0
  378. {orionis-0.406.0 → orionis-0.407.0}/orionis/services/paths/resolver.py +0 -0
  379. {orionis-0.406.0/orionis/support → orionis-0.407.0/orionis/services/system}/__init__.py +0 -0
  380. {orionis-0.406.0/orionis/support/entities → orionis-0.407.0/orionis/services/system/contracts}/__init__.py +0 -0
  381. {orionis-0.406.0/orionis/support/facades → orionis-0.407.0/orionis/services/system/runtime}/__init__.py +0 -0
  382. {orionis-0.406.0/orionis/support/formatter → orionis-0.407.0/orionis/support}/__init__.py +0 -0
  383. {orionis-0.406.0/orionis/support/formatter/exceptions → orionis-0.407.0/orionis/support/entities}/__init__.py +0 -0
  384. {orionis-0.406.0 → orionis-0.407.0}/orionis/support/entities/base.py +0 -0
  385. {orionis-0.406.0/orionis/support/formatter/exceptions/contracts → orionis-0.407.0/orionis/support/facades}/__init__.py +0 -0
  386. {orionis-0.406.0 → orionis-0.407.0}/orionis/support/facades/console.py +0 -0
  387. {orionis-0.406.0 → orionis-0.407.0}/orionis/support/facades/dumper.py +0 -0
  388. {orionis-0.406.0 → orionis-0.407.0}/orionis/support/facades/logger.py +0 -0
  389. {orionis-0.406.0 → orionis-0.407.0}/orionis/support/facades/path_resolver.py +0 -0
  390. {orionis-0.406.0 → orionis-0.407.0}/orionis/support/facades/progress_bar.py +0 -0
  391. {orionis-0.406.0 → orionis-0.407.0}/orionis/support/facades/testing.py +0 -0
  392. {orionis-0.406.0 → orionis-0.407.0}/orionis/support/facades/workers.py +0 -0
  393. {orionis-0.406.0/orionis/support/patterns → orionis-0.407.0/orionis/support/formatter}/__init__.py +0 -0
  394. {orionis-0.406.0/orionis/support/standard → orionis-0.407.0/orionis/support/formatter/exceptions}/__init__.py +0 -0
  395. {orionis-0.406.0/orionis/support/standard → orionis-0.407.0/orionis/support/formatter/exceptions}/contracts/__init__.py +0 -0
  396. {orionis-0.406.0 → orionis-0.407.0}/orionis/support/formatter/exceptions/contracts/parser.py +0 -0
  397. {orionis-0.406.0 → orionis-0.407.0}/orionis/support/formatter/exceptions/parser.py +0 -0
  398. {orionis-0.406.0 → orionis-0.407.0}/orionis/support/formatter/serializer.py +0 -0
  399. {orionis-0.406.0/orionis/test → orionis-0.407.0/orionis/support/patterns}/__init__.py +0 -0
  400. {orionis-0.406.0 → orionis-0.407.0}/orionis/support/patterns/singleton/__init__.py +0 -0
  401. {orionis-0.406.0 → orionis-0.407.0}/orionis/support/patterns/singleton/meta.py +0 -0
  402. {orionis-0.406.0/orionis/test/cases → orionis-0.407.0/orionis/support/standard}/__init__.py +0 -0
  403. {orionis-0.406.0/orionis/test → orionis-0.407.0/orionis/support/standard}/contracts/__init__.py +0 -0
  404. {orionis-0.406.0 → orionis-0.407.0}/orionis/support/standard/contracts/std.py +0 -0
  405. {orionis-0.406.0 → orionis-0.407.0}/orionis/support/standard/exceptions/__init__.py +0 -0
  406. {orionis-0.406.0 → orionis-0.407.0}/orionis/support/standard/exceptions/value.py +0 -0
  407. {orionis-0.406.0 → orionis-0.407.0}/orionis/support/standard/std.py +0 -0
  408. {orionis-0.406.0 → orionis-0.407.0}/orionis/support/wrapper/__init__.py +0 -0
  409. {orionis-0.406.0 → orionis-0.407.0}/orionis/support/wrapper/dot_dict.py +0 -0
  410. {orionis-0.406.0/orionis/test/core → orionis-0.407.0/orionis/test}/__init__.py +0 -0
  411. {orionis-0.406.0/orionis/test/entities → orionis-0.407.0/orionis/test/cases}/__init__.py +0 -0
  412. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/cases/asynchronous.py +0 -0
  413. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/cases/synchronous.py +0 -0
  414. {orionis-0.406.0/orionis/test/output → orionis-0.407.0/orionis/test/contracts}/__init__.py +0 -0
  415. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/contracts/dumper.py +0 -0
  416. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/contracts/kernel.py +0 -0
  417. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/contracts/logs.py +0 -0
  418. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/contracts/printer.py +0 -0
  419. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/contracts/render.py +0 -0
  420. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/contracts/test_result.py +0 -0
  421. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/contracts/unit_test.py +0 -0
  422. {orionis-0.406.0/orionis/test/records → orionis-0.407.0/orionis/test/core}/__init__.py +0 -0
  423. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/core/unit_test.py +0 -0
  424. {orionis-0.406.0/orionis/test/view → orionis-0.407.0/orionis/test/entities}/__init__.py +0 -0
  425. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/entities/result.py +0 -0
  426. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/enums/__init__.py +0 -0
  427. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/enums/status.py +0 -0
  428. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/exceptions/__init__.py +0 -0
  429. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/exceptions/config.py +0 -0
  430. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/exceptions/failure.py +0 -0
  431. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/exceptions/persistence.py +0 -0
  432. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/exceptions/runtime.py +0 -0
  433. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/exceptions/value.py +0 -0
  434. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/kernel.py +0 -0
  435. {orionis-0.406.0/tests → orionis-0.407.0/orionis/test/output}/__init__.py +0 -0
  436. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/output/printer.py +0 -0
  437. {orionis-0.406.0/tests/container → orionis-0.407.0/orionis/test/records}/__init__.py +0 -0
  438. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/records/logs.py +0 -0
  439. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/validators/__init__.py +0 -0
  440. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/validators/base_path.py +0 -0
  441. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/validators/execution_mode.py +0 -0
  442. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/validators/fail_fast.py +0 -0
  443. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/validators/folder_path.py +0 -0
  444. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/validators/module_name.py +0 -0
  445. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/validators/name_pattern.py +0 -0
  446. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/validators/pattern.py +0 -0
  447. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/validators/persistent.py +0 -0
  448. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/validators/persistent_driver.py +0 -0
  449. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/validators/print_result.py +0 -0
  450. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/validators/tags.py +0 -0
  451. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/validators/throw_exception.py +0 -0
  452. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/validators/verbosity.py +0 -0
  453. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/validators/web_report.py +0 -0
  454. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/validators/workers.py +0 -0
  455. {orionis-0.406.0/tests/container/context → orionis-0.407.0/orionis/test/view}/__init__.py +0 -0
  456. {orionis-0.406.0 → orionis-0.407.0}/orionis/test/view/render.py +0 -0
  457. {orionis-0.406.0 → orionis-0.407.0}/orionis.egg-info/dependency_links.txt +0 -0
  458. {orionis-0.406.0 → orionis-0.407.0}/orionis.egg-info/requires.txt +0 -0
  459. {orionis-0.406.0 → orionis-0.407.0}/orionis.egg-info/top_level.txt +0 -0
  460. {orionis-0.406.0 → orionis-0.407.0}/orionis.egg-info/zip-safe +0 -0
  461. {orionis-0.406.0 → orionis-0.407.0}/setup.cfg +0 -0
  462. {orionis-0.406.0 → orionis-0.407.0}/setup.py +0 -0
  463. {orionis-0.406.0/tests/container/entities → orionis-0.407.0/tests}/__init__.py +0 -0
  464. {orionis-0.406.0/tests/container/enums → orionis-0.407.0/tests/container}/__init__.py +0 -0
  465. {orionis-0.406.0/tests/container/facades → orionis-0.407.0/tests/container/context}/__init__.py +0 -0
  466. {orionis-0.406.0 → orionis-0.407.0}/tests/container/context/test_manager.py +0 -0
  467. {orionis-0.406.0 → orionis-0.407.0}/tests/container/context/test_scope.py +0 -0
  468. {orionis-0.406.0/tests/container/mocks → orionis-0.407.0/tests/container/entities}/__init__.py +0 -0
  469. {orionis-0.406.0 → orionis-0.407.0}/tests/container/entities/test_binding.py +0 -0
  470. {orionis-0.406.0/tests/container/providers → orionis-0.407.0/tests/container/enums}/__init__.py +0 -0
  471. {orionis-0.406.0 → orionis-0.407.0}/tests/container/enums/test_lifetimes.py +0 -0
  472. {orionis-0.406.0/tests/container/resolver → orionis-0.407.0/tests/container/facades}/__init__.py +0 -0
  473. {orionis-0.406.0 → orionis-0.407.0}/tests/container/facades/test_facade.py +0 -0
  474. {orionis-0.406.0/tests/container/validators → orionis-0.407.0/tests/container/mocks}/__init__.py +0 -0
  475. {orionis-0.406.0 → orionis-0.407.0}/tests/container/mocks/mock_complex_classes.py +0 -0
  476. {orionis-0.406.0 → orionis-0.407.0}/tests/container/mocks/mock_simple_classes.py +0 -0
  477. {orionis-0.406.0/tests/example → orionis-0.407.0/tests/container/providers}/__init__.py +0 -0
  478. {orionis-0.406.0 → orionis-0.407.0}/tests/container/providers/test_providers.py +0 -0
  479. {orionis-0.406.0/tests/foundation → orionis-0.407.0/tests/container/resolver}/__init__.py +0 -0
  480. {orionis-0.406.0 → orionis-0.407.0}/tests/container/resolver/test_resolver.py +0 -0
  481. {orionis-0.406.0 → orionis-0.407.0}/tests/container/test_container.py +0 -0
  482. {orionis-0.406.0 → orionis-0.407.0}/tests/container/test_singleton.py +0 -0
  483. {orionis-0.406.0 → orionis-0.407.0}/tests/container/test_thread_safety.py +0 -0
  484. {orionis-0.406.0/tests/foundation/config → orionis-0.407.0/tests/container/validators}/__init__.py +0 -0
  485. {orionis-0.406.0 → orionis-0.407.0}/tests/container/validators/test_implements.py +0 -0
  486. {orionis-0.406.0 → orionis-0.407.0}/tests/container/validators/test_is_abstract_class.py +0 -0
  487. {orionis-0.406.0 → orionis-0.407.0}/tests/container/validators/test_is_callable.py +0 -0
  488. {orionis-0.406.0 → orionis-0.407.0}/tests/container/validators/test_is_concrete_class.py +0 -0
  489. {orionis-0.406.0 → orionis-0.407.0}/tests/container/validators/test_is_instance.py +0 -0
  490. {orionis-0.406.0 → orionis-0.407.0}/tests/container/validators/test_is_not_subclass.py +0 -0
  491. {orionis-0.406.0 → orionis-0.407.0}/tests/container/validators/test_is_subclass.py +0 -0
  492. {orionis-0.406.0 → orionis-0.407.0}/tests/container/validators/test_is_valid_alias.py +0 -0
  493. {orionis-0.406.0 → orionis-0.407.0}/tests/container/validators/test_lifetime.py +0 -0
  494. {orionis-0.406.0/tests/foundation/config/app → orionis-0.407.0/tests/example}/__init__.py +0 -0
  495. {orionis-0.406.0/tests/foundation/config/auth → orionis-0.407.0/tests/foundation}/__init__.py +0 -0
  496. {orionis-0.406.0/tests/foundation/config/cache → orionis-0.407.0/tests/foundation/config}/__init__.py +0 -0
  497. {orionis-0.406.0/tests/foundation/config/cors → orionis-0.407.0/tests/foundation/config/app}/__init__.py +0 -0
  498. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/app/test_foundation_config_app.py +0 -0
  499. {orionis-0.406.0/tests/foundation/config/database → orionis-0.407.0/tests/foundation/config/auth}/__init__.py +0 -0
  500. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/auth/test_foundation_config_auth.py +0 -0
  501. {orionis-0.406.0/tests/foundation/config/filesystems → orionis-0.407.0/tests/foundation/config/cache}/__init__.py +0 -0
  502. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/cache/test_foundation_config_cache.py +0 -0
  503. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/cache/test_foundation_config_cache_file.py +0 -0
  504. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/cache/test_foundation_config_cache_stores.py +0 -0
  505. {orionis-0.406.0/tests/foundation/config/logging → orionis-0.407.0/tests/foundation/config/cors}/__init__.py +0 -0
  506. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/cors/test_foundation_config_cors.py +0 -0
  507. {orionis-0.406.0/tests/foundation/config/mail → orionis-0.407.0/tests/foundation/config/database}/__init__.py +0 -0
  508. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/database/test_foundation_config_database.py +0 -0
  509. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/database/test_foundation_config_database_connections.py +0 -0
  510. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/database/test_foundation_config_database_mysql.py +0 -0
  511. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/database/test_foundation_config_database_oracle.py +0 -0
  512. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/database/test_foundation_config_database_pgsql.py +0 -0
  513. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/database/test_foundation_config_database_sqlite.py +0 -0
  514. {orionis-0.406.0/tests/foundation/config/queue → orionis-0.407.0/tests/foundation/config/filesystems}/__init__.py +0 -0
  515. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems.py +0 -0
  516. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_aws.py +0 -0
  517. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_disks.py +0 -0
  518. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_local.py +0 -0
  519. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_public.py +0 -0
  520. {orionis-0.406.0/tests/foundation/config/root → orionis-0.407.0/tests/foundation/config/logging}/__init__.py +0 -0
  521. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/logging/test_foundation_config_logging.py +0 -0
  522. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/logging/test_foundation_config_logging_channels.py +0 -0
  523. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/logging/test_foundation_config_logging_chunked.py +0 -0
  524. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/logging/test_foundation_config_logging_daily.py +0 -0
  525. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/logging/test_foundation_config_logging_hourly.py +0 -0
  526. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/logging/test_foundation_config_logging_monthly.py +0 -0
  527. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/logging/test_foundation_config_logging_stack.py +0 -0
  528. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/logging/test_foundation_config_logging_weekly.py +0 -0
  529. {orionis-0.406.0/tests/foundation/config/session → orionis-0.407.0/tests/foundation/config/mail}/__init__.py +0 -0
  530. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/mail/test_foundation_config_mail.py +0 -0
  531. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/mail/test_foundation_config_mail_file.py +0 -0
  532. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/mail/test_foundation_config_mail_mailers.py +0 -0
  533. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/mail/test_foundation_config_mail_smtp.py +0 -0
  534. {orionis-0.406.0/tests/foundation/config/startup → orionis-0.407.0/tests/foundation/config/queue}/__init__.py +0 -0
  535. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/queue/test_foundation_config_queue.py +0 -0
  536. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/queue/test_foundation_config_queue_brokers.py +0 -0
  537. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/queue/test_foundation_config_queue_database.py +0 -0
  538. {orionis-0.406.0/tests/foundation/config/testing → orionis-0.407.0/tests/foundation/config/root}/__init__.py +0 -0
  539. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/root/test_foundation_config_root_paths.py +0 -0
  540. {orionis-0.406.0/tests/foundation/exceptions → orionis-0.407.0/tests/foundation/config/session}/__init__.py +0 -0
  541. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/session/test_foundation_config_session.py +0 -0
  542. {orionis-0.406.0/tests/metadata → orionis-0.407.0/tests/foundation/config/startup}/__init__.py +0 -0
  543. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/startup/test_foundation_config_startup.py +0 -0
  544. {orionis-0.406.0/tests/services → orionis-0.407.0/tests/foundation/config/testing}/__init__.py +0 -0
  545. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/config/testing/test_foundation_config_testing.py +0 -0
  546. {orionis-0.406.0/tests/services/asynchrony → orionis-0.407.0/tests/foundation/exceptions}/__init__.py +0 -0
  547. {orionis-0.406.0 → orionis-0.407.0}/tests/foundation/exceptions/test_foundation_config_exceptions.py +0 -0
  548. {orionis-0.406.0/tests/services/environment → orionis-0.407.0/tests/metadata}/__init__.py +0 -0
  549. {orionis-0.406.0/tests/services/inspection → orionis-0.407.0/tests/services}/__init__.py +0 -0
  550. {orionis-0.406.0/tests/services/inspection/dependencies → orionis-0.407.0/tests/services/asynchrony}/__init__.py +0 -0
  551. {orionis-0.406.0/tests/services/inspection/dependencies/mocks → orionis-0.407.0/tests/services/environment}/__init__.py +0 -0
  552. {orionis-0.406.0 → orionis-0.407.0}/tests/services/environment/test_services_environment.py +0 -0
  553. {orionis-0.406.0/tests/services/inspection/reflection → orionis-0.407.0/tests/services/inspection}/__init__.py +0 -0
  554. {orionis-0.406.0/tests/services/inspection/reflection/mock → orionis-0.407.0/tests/services/inspection/dependencies}/__init__.py +0 -0
  555. {orionis-0.406.0/tests/services/path → orionis-0.407.0/tests/services/inspection/dependencies/mocks}/__init__.py +0 -0
  556. {orionis-0.406.0 → orionis-0.407.0}/tests/services/inspection/dependencies/mocks/mock_user.py +0 -0
  557. {orionis-0.406.0 → orionis-0.407.0}/tests/services/inspection/dependencies/mocks/mock_user_controller.py +0 -0
  558. {orionis-0.406.0 → orionis-0.407.0}/tests/services/inspection/dependencies/mocks/mock_users_permissions.py +0 -0
  559. {orionis-0.406.0 → orionis-0.407.0}/tests/services/inspection/dependencies/test_reflect_dependencies.py +0 -0
  560. {orionis-0.406.0/tests/services/system → orionis-0.407.0/tests/services/inspection/reflection}/__init__.py +0 -0
  561. {orionis-0.406.0/tests/support → orionis-0.407.0/tests/services/inspection/reflection/mock}/__init__.py +0 -0
  562. {orionis-0.406.0 → orionis-0.407.0}/tests/services/inspection/reflection/mock/fake_reflect_instance.py +0 -0
  563. {orionis-0.406.0 → orionis-0.407.0}/tests/services/inspection/reflection/test_reflection_abstract.py +0 -0
  564. {orionis-0.406.0 → orionis-0.407.0}/tests/services/inspection/reflection/test_reflection_callable.py +0 -0
  565. {orionis-0.406.0 → orionis-0.407.0}/tests/services/inspection/reflection/test_reflection_concrete.py +0 -0
  566. {orionis-0.406.0 → orionis-0.407.0}/tests/services/inspection/reflection/test_reflection_instance.py +0 -0
  567. {orionis-0.406.0 → orionis-0.407.0}/tests/services/inspection/reflection/test_reflection_module.py +0 -0
  568. {orionis-0.406.0 → orionis-0.407.0}/tests/services/inspection/test_reflection.py +0 -0
  569. {orionis-0.406.0/tests/support/parsers → orionis-0.407.0/tests/services/path}/__init__.py +0 -0
  570. {orionis-0.406.0 → orionis-0.407.0}/tests/services/path/test_services_resolver.py +0 -0
  571. {orionis-0.406.0/tests/support/parsers/mocks → orionis-0.407.0/tests/services/system}/__init__.py +0 -0
  572. {orionis-0.406.0/tests/support/patterns → orionis-0.407.0/tests/support}/__init__.py +0 -0
  573. {orionis-0.406.0/tests/support/patterns/singleton → orionis-0.407.0/tests/support/parsers}/__init__.py +0 -0
  574. {orionis-0.406.0/tests/support/standard → orionis-0.407.0/tests/support/parsers/mocks}/__init__.py +0 -0
  575. {orionis-0.406.0 → orionis-0.407.0}/tests/support/parsers/mocks/mock_custom_error.py +0 -0
  576. {orionis-0.406.0 → orionis-0.407.0}/tests/support/parsers/test_services_parser_exceptions.py +0 -0
  577. {orionis-0.406.0/tests/support/wrapper → orionis-0.407.0/tests/support/patterns}/__init__.py +0 -0
  578. {orionis-0.406.0/tests/testing → orionis-0.407.0/tests/support/patterns/singleton}/__init__.py +0 -0
  579. {orionis-0.406.0 → orionis-0.407.0}/tests/support/patterns/singleton/test_patterns_singleton.py +0 -0
  580. {orionis-0.406.0 → orionis-0.407.0}/tests/support/standard/test_services_std.py +0 -0
  581. {orionis-0.406.0 → orionis-0.407.0}/tests/support/wrapper/test_services_wrapper_docdict.py +0 -0
  582. {orionis-0.406.0 → orionis-0.407.0}/tests/testing/test_testing_result.py +0 -0
  583. {orionis-0.406.0 → orionis-0.407.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.406.0
3
+ Version: 0.407.0
4
4
  Summary: Orionis Framework – Elegant, Fast, and Powerful.
5
5
  Home-page: https://github.com/orionis-framework/framework
6
6
  Author: Raul Mauricio Uñate Castro
@@ -5,7 +5,7 @@
5
5
  NAME = "orionis"
6
6
 
7
7
  # Current version of the framework
8
- VERSION = "0.406.0"
8
+ VERSION = "0.407.0"
9
9
 
10
10
  # Full name of the author or maintainer of the project
11
11
  AUTHOR = "Raul Mauricio Uñate Castro"
@@ -0,0 +1,32 @@
1
+ from abc import ABC, abstractmethod
2
+ import asyncio
3
+ from typing import TypeVar, Union
4
+
5
+ T = TypeVar("T")
6
+
7
+ class ICoroutine(ABC):
8
+
9
+ @abstractmethod
10
+ def run(self) -> Union[T, asyncio.Future]:
11
+ """
12
+ Executes the wrapped coroutine, either synchronously or asynchronously depending on the context.
13
+
14
+ Parameters
15
+ ----------
16
+ None
17
+
18
+ Returns
19
+ -------
20
+ T or asyncio.Future
21
+ If called outside an event loop, returns the result of the coroutine execution (type T).
22
+ If called within an event loop, returns an asyncio.Future representing the scheduled coroutine.
23
+
24
+ Notes
25
+ -----
26
+ - When invoked outside of an event loop, the coroutine is executed synchronously and its result is returned.
27
+ - When invoked inside an event loop, the coroutine is scheduled for asynchronous execution and a Future is returned.
28
+ - The caller is responsible for awaiting the Future if asynchronous execution is used.
29
+ """
30
+
31
+ # This method should be implemented by subclasses to handle coroutine execution.
32
+ pass
@@ -0,0 +1,83 @@
1
+ import asyncio
2
+ from typing import Any, Coroutine as TypingCoroutine, TypeVar, Union
3
+ from orionis.services.asynchrony.contracts.coroutines import ICoroutine
4
+ from orionis.services.asynchrony.exceptions import OrionisCoroutineException
5
+ from orionis.services.introspection.objects.types import Type
6
+
7
+ T = TypeVar("T")
8
+
9
+ class Coroutine(ICoroutine):
10
+
11
+ def __init__(self, func: TypingCoroutine[Any, Any, T]) -> None:
12
+ """
13
+ Initialize the Coroutine wrapper.
14
+
15
+ Parameters
16
+ ----------
17
+ func : Coroutine
18
+ The coroutine object to be wrapped. Must be an awaitable coroutine.
19
+
20
+ Raises
21
+ ------
22
+ OrionisCoroutineException
23
+ If the provided object is not a coroutine.
24
+
25
+ Returns
26
+ -------
27
+ None
28
+ This method does not return a value.
29
+
30
+ Notes
31
+ -----
32
+ This constructor validates that the provided object is a coroutine using the framework's type introspection.
33
+ If the validation fails, an exception is raised to prevent improper usage.
34
+ """
35
+ # Validate that the provided object is a coroutine
36
+ if not Type(func).isCoroutine():
37
+ raise OrionisCoroutineException(
38
+ f"Expected a coroutine object, but got {type(func).__name__}."
39
+ )
40
+
41
+ # Store the coroutine object for later execution
42
+ self.__func = func
43
+
44
+ def run(self) -> Union[T, asyncio.Future]:
45
+ """
46
+ Executes the wrapped coroutine, either synchronously or asynchronously depending on the context.
47
+
48
+ Parameters
49
+ ----------
50
+ None
51
+
52
+ Returns
53
+ -------
54
+ T or asyncio.Future
55
+ If called outside an event loop, returns the result of the coroutine after synchronous execution.
56
+ If called within an event loop, returns an asyncio.Future representing the scheduled coroutine.
57
+
58
+ Raises
59
+ ------
60
+ RuntimeError
61
+ If the coroutine cannot be executed due to event loop issues.
62
+
63
+ Notes
64
+ -----
65
+ - When invoked outside an active event loop, the coroutine is executed synchronously and its result is returned.
66
+ - When invoked inside an active event loop, the coroutine is scheduled for asynchronous execution and a Future is returned.
67
+ - This method automatically detects the execution context and chooses the appropriate execution strategy.
68
+ """
69
+ # Attempt to get the currently running event loop
70
+ try:
71
+ loop = asyncio.get_running_loop()
72
+
73
+ # No running event loop; execute the coroutine synchronously and return its result
74
+ except RuntimeError:
75
+ return asyncio.run(self.__func)
76
+
77
+ # If inside an active event loop, schedule the coroutine and return a Future
78
+ if loop.is_running():
79
+ return asyncio.ensure_future(self.__func)
80
+
81
+ # If no event loop is running, execute the coroutine synchronously using the loop
82
+ else:
83
+ return loop.run_until_complete(self.__func)
@@ -0,0 +1,27 @@
1
+ class OrionisCoroutineException(Exception):
2
+
3
+ def __init__(self, msg: str):
4
+ """
5
+ Initializes an OrionisCoroutineException with a descriptive error message.
6
+
7
+ Parameters
8
+ ----------
9
+ msg : str
10
+ Descriptive error message explaining the cause of the exception.
11
+ """
12
+
13
+ # Call the base Exception constructor with the provided message
14
+ super().__init__(msg)
15
+
16
+ def __str__(self) -> str:
17
+ """
18
+ Returns a formatted string representation of the exception message.
19
+
20
+ Returns
21
+ -------
22
+ str
23
+ The error message provided during exception initialization.
24
+ """
25
+
26
+ # Return the first argument passed to the Exception, which is the error message
27
+ return str(self.args[0])
@@ -5,6 +5,9 @@ import threading
5
5
  from pathlib import Path
6
6
  from typing import Any, Optional, Union
7
7
  from dotenv import dotenv_values, load_dotenv, set_key, unset_key
8
+ from orionis.services.environment.enums.cast_type import EnvCastType
9
+ from orionis.services.environment.validators.key_name import ValidateKeyName
10
+ from orionis.services.environment.validators.types import ValidateTypes
8
11
  from orionis.support.patterns.singleton import Singleton
9
12
  from orionis.services.environment.exceptions import OrionisEnvironmentValueException, OrionisEnvironmentValueError
10
13
  from orionis.services.environment.dynamic.types import EnvTypes
@@ -16,33 +19,56 @@ class DotEnv(metaclass=Singleton):
16
19
 
17
20
  def __init__(self, path: str = None) -> None:
18
21
  """
19
- Initialize the environment service by resolving the path to the `.env` file, ensuring its existence,
20
- and loading environment variables from it.
22
+ Initialize the DotEnv service by resolving and preparing the `.env` file.
23
+
24
+ This method determines the path to the `.env` file, ensures its existence,
25
+ and loads environment variables from it into the current process environment.
21
26
 
22
27
  Parameters
23
28
  ----------
24
29
  path : str, optional
25
- Path to the `.env` file. If not provided, defaults to a `.env` file
30
+ The path to the `.env` file. If not provided, defaults to a `.env` file
26
31
  in the current working directory.
27
32
 
33
+ Returns
34
+ -------
35
+ None
36
+ This method does not return any value.
37
+
28
38
  Raises
29
39
  ------
30
40
  OSError
31
- If the `.env` file cannot be created when it does not exist.
41
+ If the `.env` file cannot be created or accessed.
42
+
43
+ Notes
44
+ -----
45
+ - If the specified `.env` file does not exist, it will be created.
46
+ - Environment variables from the `.env` file are loaded into the process environment.
32
47
  """
48
+
33
49
  try:
50
+
51
+ # Use a thread-safe lock to ensure only one thread can execute this block at a time
34
52
  with self._lock:
53
+
54
+ # Defualt Environment file path
55
+ self.__resolved_path = Path(os.getcwd()) / ".env"
56
+
57
+ # If a path is provided, resolve it
35
58
  if path:
36
- self._resolved_path = Path(path).expanduser().resolve()
37
- else:
38
- self._resolved_path = Path(os.getcwd()) / ".env"
59
+ self.__resolved_path = Path(path).expanduser().resolve()
60
+
61
+ # Create the .env file if it does not exist
62
+ if not self.__resolved_path.exists():
63
+ self.__resolved_path.touch()
39
64
 
40
- if not self._resolved_path.exists():
41
- self._resolved_path.touch()
65
+ # Load environment variables from the .env file into the process environment
66
+ load_dotenv(self.__resolved_path)
42
67
 
43
- load_dotenv(self._resolved_path)
44
68
  except OSError as e:
45
- raise OSError(f"Failed to create or access the .env file at {self._resolved_path}: {e}")
69
+
70
+ # Raise an error if the .env file cannot be created or accessed
71
+ raise OSError(f"Failed to create or access the .env file at {self.__resolved_path}: {e}")
46
72
 
47
73
  def __parseValue(self, value: Any) -> Any:
48
74
  """
@@ -172,7 +198,7 @@ class DotEnv(metaclass=Singleton):
172
198
  )
173
199
 
174
200
  # Get the value from the .env file or the current environment.
175
- value = dotenv_values(self._resolved_path).get(key)
201
+ value = dotenv_values(self.__resolved_path).get(key)
176
202
 
177
203
  # If the value is not found in the .env file, check the current environment variables.
178
204
  if value is None:
@@ -181,7 +207,7 @@ class DotEnv(metaclass=Singleton):
181
207
  # Parse the value using the internal __parseValue method and return it
182
208
  return self.__parseValue(value) if value is not None else default
183
209
 
184
- def set(self, key: str, value: Union[str, int, float, bool, list, dict, tuple, set], type_hint: str = None) -> bool:
210
+ def set(self, key: str, value: Union[str, int, float, bool, list, dict, tuple, set], type_hint: str | EnvCastType = None) -> bool:
185
211
  """
186
212
  Set an environment variable with the specified key and value.
187
213
 
@@ -203,32 +229,18 @@ class DotEnv(metaclass=Singleton):
203
229
  """
204
230
  with self._lock:
205
231
 
206
- # Ensure the key is a string.
207
- if not isinstance(key, str) or not re.match(r'^[A-Z][A-Z0-9_]*$', key):
208
- raise OrionisEnvironmentValueError(
209
- f"The environment variable name '{key}' is not valid. It must be an uppercase string, may contain numbers and underscores, and must always start with a letter. Example of a valid name: 'MY_ENV_VAR'."
210
- )
211
-
212
- # Ensure the value is a valid type.
213
- if not isinstance(value, (str, int, float, bool, list, dict, tuple, set)):
214
- raise OrionisEnvironmentValueError(
215
- f"Unsupported value type: {type(value).__name__}. Allowed types are str, int, float, bool, list, dict, tuple, set."
216
- )
232
+ # Ensure name key is valid.
233
+ key = ValidateKeyName(key)
234
+ type = ValidateTypes(value, type_hint)
217
235
 
218
- # Dinamically determine the type hint if not provided.
219
- if isinstance(value, (int, float, bool, list, dict, tuple, set)) and not type_hint:
220
- type_hint = type(value).__name__.lower()
221
236
 
222
- # Validate the type hint if provided.
223
- options = EnvTypes.options()
224
- if type_hint and type_hint not in options:
225
- raise OrionisEnvironmentValueException(f"Invalid type hint: {type_hint}. Allowed types are {str(options)}.")
226
237
 
238
+
227
239
  # Serialize the value based on its type.
228
240
  serialized_value = self.__serializeValue(value, type_hint)
229
241
 
230
242
  # Set the environment variable in the .env file and the current process environment.
231
- set_key(str(self._resolved_path), key, serialized_value)
243
+ set_key(str(self.__resolved_path), key, serialized_value)
232
244
  os.environ[key] = str(value)
233
245
 
234
246
  # Return True to indicate success.
@@ -249,7 +261,7 @@ class DotEnv(metaclass=Singleton):
249
261
  True if the operation was successful.
250
262
  """
251
263
  with self._lock:
252
- unset_key(str(self._resolved_path), key)
264
+ unset_key(str(self.__resolved_path), key)
253
265
  os.environ.pop(key, None)
254
266
  return True
255
267
 
@@ -264,5 +276,5 @@ class DotEnv(metaclass=Singleton):
264
276
  with values parsed using the internal __parseValue method.
265
277
  """
266
278
  with self._lock:
267
- raw_values = dotenv_values(self._resolved_path)
279
+ raw_values = dotenv_values(self.__resolved_path)
268
280
  return {k: self.__parseValue(v) for k, v in raw_values.items()}
@@ -0,0 +1,42 @@
1
+ from enum import Enum
2
+
3
+ class EnvCastType(Enum):
4
+ """
5
+ Enum representing supported environment variable cast types.
6
+
7
+ Attributes
8
+ ----------
9
+ PATH : EnvCastType
10
+ Cast to a file system path.
11
+ STR : EnvCastType
12
+ Cast to a string.
13
+ INT : EnvCastType
14
+ Cast to an integer.
15
+ FLOAT : EnvCastType
16
+ Cast to a floating-point number.
17
+ BOOL : EnvCastType
18
+ Cast to a boolean value.
19
+ LIST : EnvCastType
20
+ Cast to a list.
21
+ DICT : EnvCastType
22
+ Cast to a dictionary.
23
+ TUPLE : EnvCastType
24
+ Cast to a tuple.
25
+ SET : EnvCastType
26
+ Cast to a set.
27
+
28
+ Returns
29
+ -------
30
+ EnvCastType
31
+ An enumeration member representing the desired cast type.
32
+ """
33
+
34
+ PATH = 'path' # Represents a file system path
35
+ STR = 'str' # Represents a string type
36
+ INT = 'int' # Represents an integer type
37
+ FLOAT = 'float' # Represents a floating-point type
38
+ BOOL = 'bool' # Represents a boolean type
39
+ LIST = 'list' # Represents a list type
40
+ DICT = 'dict' # Represents a dictionary type
41
+ TUPLE = 'tuple' # Represents a tuple type
42
+ SET = 'set' # Represents a set type
@@ -0,0 +1,21 @@
1
+ from orionis.services.environment.enums.cast_type import EnvCastType
2
+
3
+ class SerializerValue:
4
+
5
+ def __init__(self, value):
6
+ pass
7
+
8
+ def to(self, type_hint: str | EnvCastType = None):
9
+ pass
10
+
11
+ def get(self):
12
+ pass
13
+
14
+
15
+ class SerializerFrom:
16
+
17
+ def __init__(self, key: str):
18
+ pass
19
+
20
+ def get(self):
21
+ pass
@@ -0,0 +1,46 @@
1
+ import re
2
+ from orionis.services.environment.exceptions.value import OrionisEnvironmentValueError
3
+
4
+ class __ValidateKeyName:
5
+
6
+ # Regular expression pattern to match valid environment variable names
7
+ _pattern = re.compile(r'^[A-Z][A-Z0-9_]*$')
8
+
9
+ def __call__(self, key: object) -> str:
10
+ """
11
+ Validates that the provided environment variable name meets the required format.
12
+
13
+ Parameters
14
+ ----------
15
+ key : object
16
+ The environment variable name to validate.
17
+
18
+ Returns
19
+ -------
20
+ str
21
+ The validated environment variable name if it meets the format requirements.
22
+
23
+ Raises
24
+ ------
25
+ OrionisEnvironmentValueError
26
+ If the provided key is not a string or does not match the required format.
27
+ """
28
+
29
+ # Check if the key is a string
30
+ if not isinstance(key, str):
31
+ raise OrionisEnvironmentValueError(
32
+ f"Environment variable name must be a string, got {type(key).__name__}."
33
+ )
34
+
35
+ # Validate the key against the pattern
36
+ if not self._pattern.fullmatch(key):
37
+ raise OrionisEnvironmentValueError(
38
+ f"Invalid environment variable name '{key}'. It must start with an uppercase letter, "
39
+ "contain only uppercase letters, numbers, or underscores. Example: 'MY_ENV_VAR'."
40
+ )
41
+
42
+ # Return the validated key
43
+ return key
44
+
45
+ # Instance to be used for key name validation
46
+ ValidateKeyName = __ValidateKeyName()
@@ -0,0 +1,45 @@
1
+ import re
2
+ from typing import Any, Union
3
+ from orionis.services.environment.enums.cast_type import EnvCastType
4
+ from orionis.services.environment.exceptions.value import OrionisEnvironmentValueError
5
+
6
+ class __ValidateTypes:
7
+
8
+ def __call__(self, value: Union[str, int, float, bool, list, dict, tuple, set], type_hint: str | EnvCastType = None) -> str:
9
+
10
+ # Ensure the value is a valid type.
11
+ if not isinstance(value, (str, int, float, bool, list, dict, tuple, set)):
12
+ raise OrionisEnvironmentValueError(
13
+ f"Unsupported value type: {type(value).__name__}. Allowed types are str, int, float, bool, list, dict, tuple, set."
14
+ )
15
+
16
+ # If a type hint is provided, ensure it is valid.
17
+ if type_hint and not isinstance(type_hint, (str, EnvCastType)):
18
+ raise OrionisEnvironmentValueError(
19
+ f"Type hint must be a string or EnvCastType, got {type(type_hint).__name__}."
20
+ )
21
+
22
+ # If type_hint is provided, convert it to a string if it's an EnvCastType.
23
+ if type_hint:
24
+
25
+ # If type_hint is a string, convert it to EnvCastType if valid.
26
+ if isinstance(type_hint, str):
27
+ try:
28
+ type_hint = EnvCastType[type_hint.upper()].value
29
+ except KeyError:
30
+ raise OrionisEnvironmentValueError(
31
+ f"Invalid type hint: {type_hint}. Allowed types are {[e.value for e in EnvCastType]}"
32
+ )
33
+ elif isinstance(type_hint, EnvCastType):
34
+ type_hint = type_hint.value
35
+
36
+ # If no type hint is provided, use the type of the value.
37
+ else:
38
+ type_hint = type(value).__name__.lower()
39
+
40
+ # Return the type hint as a string.
41
+ return type_hint
42
+
43
+
44
+ # Instance to be used for key name validation
45
+ ValidateTypes = __ValidateTypes()
@@ -0,0 +1,71 @@
1
+ from abc import ABC, abstractmethod
2
+
3
+ class IImports(ABC):
4
+
5
+ @abstractmethod
6
+ def collect(self):
7
+ """
8
+ Collects information about user-defined Python modules currently loaded in `sys.modules`.
9
+
10
+ This method should scan the current Python runtime environment and gather details about
11
+ all user-defined modules that have been imported and are present in `sys.modules`. The
12
+ collected information may include module names, file paths, and other relevant metadata,
13
+ depending on the implementation.
14
+
15
+ Returns
16
+ -------
17
+ IImports
18
+ Returns the current instance (`self`) with its internal imports information updated
19
+ to reflect the latest state of loaded modules.
20
+
21
+ Notes
22
+ -----
23
+ This method does not modify the actual modules loaded in memory; it only updates the
24
+ internal collection maintained by the implementation. Subclasses should implement the
25
+ logic for identifying and storing relevant module information.
26
+ """
27
+
28
+ # Subclasses should implement logic to scan sys.modules and update internal imports collection.
29
+ pass
30
+
31
+ @abstractmethod
32
+ def display(self) -> None:
33
+ """
34
+ Displays a formatted table summarizing the collected import statements.
35
+
36
+ This method should present the information about the currently collected Python module imports
37
+ in a human-readable tabular format. The display may include details such as module names,
38
+ file paths, and other relevant metadata, depending on the implementation.
39
+
40
+ Returns
41
+ -------
42
+ None
43
+ This method does not return any value. Its sole purpose is to output the collected import
44
+ information for inspection or debugging.
45
+
46
+ Notes
47
+ -----
48
+ The actual formatting and output destination (e.g., console, log, GUI) are determined by the
49
+ implementing subclass.
50
+ """
51
+
52
+ # Subclasses should implement logic to format and output the collected imports.
53
+ pass
54
+
55
+ @abstractmethod
56
+ def clear(self) -> None:
57
+ """
58
+ Removes all entries from the collected imports list, resetting the internal state.
59
+
60
+ This method should be called when you want to discard all previously collected import
61
+ information and start fresh. It does not affect the actual Python modules loaded in memory,
62
+ only the internal collection maintained by the implementation.
63
+
64
+ Returns
65
+ -------
66
+ None
67
+ This method does not return any value.
68
+ """
69
+
70
+ # Subclasses should implement logic to clear their internal imports collection.
71
+ pass
@@ -0,0 +1,52 @@
1
+ from abc import ABC, abstractmethod
2
+
3
+ class IWorkers(ABC):
4
+
5
+ @abstractmethod
6
+ def setRamPerWorker(self, ram_per_worker: float) -> None:
7
+ """
8
+ Set the amount of RAM to allocate for each worker process.
9
+
10
+ Parameters
11
+ ----------
12
+ ram_per_worker : float
13
+ The amount of RAM, in gigabytes (GB), to allocate for each worker process.
14
+
15
+ Returns
16
+ -------
17
+ None
18
+ This method does not return any value.
19
+
20
+ Notes
21
+ -----
22
+ This method should be implemented by subclasses to configure the memory usage
23
+ per worker, which may affect the total number of workers that can be spawned
24
+ based on system resources.
25
+ """
26
+
27
+ # Implementation should assign the specified RAM per worker.
28
+ pass
29
+
30
+ @abstractmethod
31
+ def calculate(self) -> int:
32
+ """
33
+ Compute the recommended maximum number of worker processes for the current machine.
34
+
35
+ This method should consider both CPU and memory constraints to determine the optimal
36
+ number of worker processes that can be safely spawned without overloading system resources.
37
+
38
+ Returns
39
+ -------
40
+ int
41
+ The maximum number of worker processes that can be supported by the current machine,
42
+ based on available CPU cores and memory limits.
43
+
44
+ Notes
45
+ -----
46
+ Subclasses should implement this method to analyze system resources and return an integer
47
+ representing the recommended number of workers. The calculation should ensure that each
48
+ worker receives sufficient resources as configured (e.g., RAM per worker).
49
+ """
50
+
51
+ # Implementation should analyze system resources and return the recommended worker count.
52
+ pass