orionis 0.286.0__tar.gz → 0.287.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 (472) hide show
  1. {orionis-0.286.0/orionis.egg-info → orionis-0.287.0}/PKG-INFO +1 -1
  2. {orionis-0.286.0 → orionis-0.287.0}/orionis/metadata/framework.py +1 -1
  3. orionis-0.287.0/orionis/services/environment/contracts/env.py +77 -0
  4. orionis-0.287.0/orionis/services/environment/dot_env.py +271 -0
  5. orionis-0.287.0/orionis/services/environment/env.py +97 -0
  6. orionis-0.287.0/orionis/services/environment/exceptions/environment_value_error.py +18 -0
  7. orionis-0.287.0/orionis/services/environment/exceptions/environment_value_exception.py +23 -0
  8. orionis-0.287.0/orionis/services/environment/type_hint.py +559 -0
  9. {orionis-0.286.0 → orionis-0.287.0}/orionis/test/logs/history.py +3 -5
  10. {orionis-0.286.0 → orionis-0.287.0/orionis.egg-info}/PKG-INFO +1 -1
  11. {orionis-0.286.0 → orionis-0.287.0}/orionis.egg-info/SOURCES.txt +3 -1
  12. {orionis-0.286.0 → orionis-0.287.0}/tests/example/test_example.py +5 -2
  13. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/app/test_app.py +13 -3
  14. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/auth/test_auth.py +9 -4
  15. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/cache/test_cache.py +60 -15
  16. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/cache/test_cache_file.py +62 -14
  17. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/cache/test_cache_stores.py +74 -14
  18. orionis-0.287.0/tests/foundation/config/cors/test_cors.py +190 -0
  19. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/database/test_database.py +38 -14
  20. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/database/test_database_connections.py +79 -5
  21. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/database/test_database_mysql.py +138 -15
  22. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/database/test_database_oracle.py +110 -26
  23. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/database/test_database_pgsql.py +96 -26
  24. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/database/test_database_sqlite.py +56 -2
  25. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/exceptions/test_exceptions_integrity.py +44 -10
  26. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/filesystems/test_filesystems.py +64 -14
  27. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/filesystems/test_filesystems_aws.py +45 -7
  28. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/filesystems/test_filesystems_disks.py +78 -8
  29. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/filesystems/test_filesystems_local.py +66 -18
  30. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/filesystems/test_filesystems_public.py +37 -0
  31. orionis-0.287.0/tests/foundation/config/logging/test_logging.py +112 -0
  32. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/logging/test_logging_channels.py +79 -2
  33. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/logging/test_logging_chunked.py +85 -12
  34. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/logging/test_logging_daily.py +79 -12
  35. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/logging/test_logging_hourly.py +68 -2
  36. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/logging/test_logging_monthly.py +48 -2
  37. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/logging/test_logging_stack.py +49 -14
  38. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/logging/test_logging_weekly.py +92 -2
  39. orionis-0.287.0/tests/foundation/config/mail/test_mail.py +145 -0
  40. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/mail/test_mail_file.py +40 -4
  41. orionis-0.287.0/tests/foundation/config/mail/test_mail_mailers.py +106 -0
  42. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/mail/test_mail_smtp.py +58 -14
  43. orionis-0.287.0/tests/foundation/config/queue/test_queue.py +111 -0
  44. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/queue/test_queue_brokers.py +27 -10
  45. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/queue/test_queue_database.py +53 -15
  46. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/root/test_root_paths.py +69 -2
  47. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/session/test_session.py +30 -1
  48. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/startup/test_config_startup.py +77 -7
  49. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/testing/test_testing.py +68 -0
  50. orionis-0.287.0/tests/patterns/singleton/test_singleton.py +27 -0
  51. {orionis-0.286.0 → orionis-0.287.0}/tests/services/environment/test_env.py +3 -4
  52. orionis-0.287.0/tests/testing/test_testing_result.py +129 -0
  53. {orionis-0.286.0 → orionis-0.287.0}/tests/testing/test_testing_unit.py +93 -24
  54. orionis-0.286.0/orionis/services/environment/contracts/env.py +0 -82
  55. orionis-0.286.0/orionis/services/environment/dot_env.py +0 -247
  56. orionis-0.286.0/orionis/services/environment/env.py +0 -114
  57. orionis-0.286.0/orionis/services/environment/exceptions/value_exception.py +0 -27
  58. orionis-0.286.0/tests/foundation/config/cors/test_cors.py +0 -121
  59. orionis-0.286.0/tests/foundation/config/logging/test_logging.py +0 -48
  60. orionis-0.286.0/tests/foundation/config/mail/test_mail.py +0 -73
  61. orionis-0.286.0/tests/foundation/config/mail/test_mail_mailers.py +0 -58
  62. orionis-0.286.0/tests/foundation/config/queue/test_queue.py +0 -58
  63. orionis-0.286.0/tests/patterns/singleton/test_singleton.py +0 -18
  64. orionis-0.286.0/tests/testing/test_testing_result.py +0 -92
  65. {orionis-0.286.0 → orionis-0.287.0}/LICENCE +0 -0
  66. {orionis-0.286.0 → orionis-0.287.0}/MANIFEST.in +0 -0
  67. {orionis-0.286.0 → orionis-0.287.0}/README.md +0 -0
  68. {orionis-0.286.0 → orionis-0.287.0}/orionis/__init__.py +0 -0
  69. {orionis-0.286.0 → orionis-0.287.0}/orionis/_application.py +0 -0
  70. {orionis-0.286.0 → orionis-0.287.0}/orionis/_container/__init__.py +0 -0
  71. {orionis-0.286.0 → orionis-0.287.0}/orionis/_container/container.py +0 -0
  72. {orionis-0.286.0 → orionis-0.287.0}/orionis/_container/container_integrity.py +0 -0
  73. {orionis-0.286.0 → orionis-0.287.0}/orionis/_container/exception.py +0 -0
  74. {orionis-0.286.0 → orionis-0.287.0}/orionis/_container/lifetimes.py +0 -0
  75. {orionis-0.286.0 → orionis-0.287.0}/orionis/_container/resolve.py +0 -0
  76. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/__init__.py +0 -0
  77. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/application.py +0 -0
  78. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/config/__init__.py +0 -0
  79. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/config/config.py +0 -0
  80. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/console/__init__.py +0 -0
  81. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/console/base/__init__.py +0 -0
  82. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/console/base/command.py +0 -0
  83. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/console/command_filter.py +0 -0
  84. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/console/kernel.py +0 -0
  85. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/console/output/__init__.py +0 -0
  86. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/console/output/console.py +0 -0
  87. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/console/output/executor.py +0 -0
  88. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/console/output/progress_bar.py +0 -0
  89. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/console/parser.py +0 -0
  90. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/console/task_manager.py +0 -0
  91. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/container/container.py +0 -0
  92. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/container/container_integrity.py +0 -0
  93. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/facades/__init__.py +0 -0
  94. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/facades/commands/__init__.py +0 -0
  95. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/facades/commands/commands_facade.py +0 -0
  96. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/facades/commands/scheduler_facade.py +0 -0
  97. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/facades/config/__init__.py +0 -0
  98. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/facades/config/config_facade.py +0 -0
  99. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/facades/environment/__init__.py +0 -0
  100. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/facades/environment/environment_facade.py +0 -0
  101. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/facades/facade.py +0 -0
  102. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/facades/files/__init__.py +0 -0
  103. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/facades/files/path_facade.py +0 -0
  104. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/facades/log/__init__.py +0 -0
  105. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/facades/log/log_facade.py +0 -0
  106. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/facades/tests/__init__.py +0 -0
  107. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/facades/tests/tests_facade.py +0 -0
  108. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/foundation/__init__.py +0 -0
  109. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/foundation/bootstraper.py +0 -0
  110. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/foundation/config/__init__.py +0 -0
  111. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/foundation/config/config_bootstrapper.py +0 -0
  112. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/foundation/console/__init__.py +0 -0
  113. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/foundation/console/command_bootstrapper.py +0 -0
  114. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/foundation/environment/__init__.py +0 -0
  115. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/foundation/environment/environment_bootstrapper.py +0 -0
  116. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/foundation/providers/__init__.py +0 -0
  117. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/foundation/providers/service_providers_bootstrapper.py +0 -0
  118. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/providers/__init__.py +0 -0
  119. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/providers/service_provider.py +0 -0
  120. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/services/__init__.py +0 -0
  121. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/services/commands/__init__.py +0 -0
  122. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/services/commands/reactor_commands_service.py +0 -0
  123. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/services/commands/schedule_service.py +0 -0
  124. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/services/config/__init__.py +0 -0
  125. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/services/config/config_service.py +0 -0
  126. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/services/environment/__init__.py +0 -0
  127. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/services/environment/environment_service.py +0 -0
  128. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/services/files/__init__.py +0 -0
  129. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/services/files/path_resolver_service.py +0 -0
  130. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/services/log/__init__.py +0 -0
  131. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/services/log/log_service.py +0 -0
  132. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/support/exception_parse.py +0 -0
  133. {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/support/reflection.py +0 -0
  134. {orionis-0.286.0 → orionis-0.287.0}/orionis/_facades/__init__.py +0 -0
  135. {orionis-0.286.0 → orionis-0.287.0}/orionis/_facades/app_facade.py +0 -0
  136. {orionis-0.286.0 → orionis-0.287.0}/orionis/_facades/commands/__init__.py +0 -0
  137. {orionis-0.286.0 → orionis-0.287.0}/orionis/_facades/commands/commands_facade.py +0 -0
  138. {orionis-0.286.0 → orionis-0.287.0}/orionis/_facades/commands/scheduler_facade.py +0 -0
  139. {orionis-0.286.0 → orionis-0.287.0}/orionis/_facades/config/__init__.py +0 -0
  140. {orionis-0.286.0 → orionis-0.287.0}/orionis/_facades/config/config_facade.py +0 -0
  141. {orionis-0.286.0 → orionis-0.287.0}/orionis/_facades/environment/__init__.py +0 -0
  142. {orionis-0.286.0 → orionis-0.287.0}/orionis/_facades/environment/environment_facade.py +0 -0
  143. {orionis-0.286.0 → orionis-0.287.0}/orionis/_facades/files/__init__.py +0 -0
  144. {orionis-0.286.0 → orionis-0.287.0}/orionis/_facades/files/path_facade.py +0 -0
  145. {orionis-0.286.0 → orionis-0.287.0}/orionis/_facades/log/__init__.py +0 -0
  146. {orionis-0.286.0 → orionis-0.287.0}/orionis/_facades/log/log_facade.py +0 -0
  147. {orionis-0.286.0 → orionis-0.287.0}/orionis/_foundation/__init__.py +0 -0
  148. {orionis-0.286.0 → orionis-0.287.0}/orionis/_foundation/console/__init__.py +0 -0
  149. {orionis-0.286.0 → orionis-0.287.0}/orionis/_foundation/console/command_bootstrapper.py +0 -0
  150. {orionis-0.286.0 → orionis-0.287.0}/orionis/_foundation/environment/__init__.py +0 -0
  151. {orionis-0.286.0 → orionis-0.287.0}/orionis/_foundation/environment/environment_bootstrapper.py +0 -0
  152. {orionis-0.286.0 → orionis-0.287.0}/orionis/_foundation/exceptions/__init__.py +0 -0
  153. {orionis-0.286.0 → orionis-0.287.0}/orionis/_foundation/exceptions/exception_bootstrapper.py +0 -0
  154. {orionis-0.286.0 → orionis-0.287.0}/orionis/_foundation/exceptions/exception_providers.py +0 -0
  155. {orionis-0.286.0 → orionis-0.287.0}/orionis/_foundation/foundation/config/__init__.py +0 -0
  156. {orionis-0.286.0 → orionis-0.287.0}/orionis/_foundation/foundation/config/config_bootstrapper.py +0 -0
  157. {orionis-0.286.0 → orionis-0.287.0}/orionis/_foundation/providers/__init__.py +0 -0
  158. {orionis-0.286.0 → orionis-0.287.0}/orionis/_foundation/providers/service_providers_bootstrapper.py +0 -0
  159. {orionis-0.286.0 → orionis-0.287.0}/orionis/_providers/__init__.py +0 -0
  160. {orionis-0.286.0 → orionis-0.287.0}/orionis/_providers/commands/__init__.py +0 -0
  161. {orionis-0.286.0 → orionis-0.287.0}/orionis/_providers/commands/reactor_commands_service_provider.py +0 -0
  162. {orionis-0.286.0 → orionis-0.287.0}/orionis/_providers/commands/scheduler_provider.py +0 -0
  163. {orionis-0.286.0 → orionis-0.287.0}/orionis/_providers/config/__init__.py +0 -0
  164. {orionis-0.286.0 → orionis-0.287.0}/orionis/_providers/config/config_service_provider.py +0 -0
  165. {orionis-0.286.0 → orionis-0.287.0}/orionis/_providers/environment/__init__.py +0 -0
  166. {orionis-0.286.0 → orionis-0.287.0}/orionis/_providers/environment/environment__service_provider.py +0 -0
  167. {orionis-0.286.0 → orionis-0.287.0}/orionis/_providers/files/__init__.py +0 -0
  168. {orionis-0.286.0 → orionis-0.287.0}/orionis/_providers/files/paths_provider.py +0 -0
  169. {orionis-0.286.0 → orionis-0.287.0}/orionis/_providers/log/__init__.py +0 -0
  170. {orionis-0.286.0 → orionis-0.287.0}/orionis/_providers/log/log_service_provider.py +0 -0
  171. {orionis-0.286.0 → orionis-0.287.0}/orionis/_providers/service_provider.py +0 -0
  172. {orionis-0.286.0 → orionis-0.287.0}/orionis/_services/__init__.py +0 -0
  173. {orionis-0.286.0 → orionis-0.287.0}/orionis/_services/commands/__init__.py +0 -0
  174. {orionis-0.286.0 → orionis-0.287.0}/orionis/_services/commands/reactor_commands_service.py +0 -0
  175. {orionis-0.286.0 → orionis-0.287.0}/orionis/_services/commands/scheduler_service.py +0 -0
  176. {orionis-0.286.0 → orionis-0.287.0}/orionis/_services/config/__init__.py +0 -0
  177. {orionis-0.286.0 → orionis-0.287.0}/orionis/_services/config/config_service.py +0 -0
  178. {orionis-0.286.0 → orionis-0.287.0}/orionis/_services/log/__init__.py +0 -0
  179. {orionis-0.286.0 → orionis-0.287.0}/orionis/_services/log/log_service.py +0 -0
  180. {orionis-0.286.0 → orionis-0.287.0}/orionis/application.py +0 -0
  181. {orionis-0.286.0 → orionis-0.287.0}/orionis/console/__init__.py +0 -0
  182. {orionis-0.286.0 → orionis-0.287.0}/orionis/console/base/__init__.py +0 -0
  183. {orionis-0.286.0 → orionis-0.287.0}/orionis/console/base/command.py +0 -0
  184. {orionis-0.286.0 → orionis-0.287.0}/orionis/console/command_filter.py +0 -0
  185. {orionis-0.286.0 → orionis-0.287.0}/orionis/console/commands/__init__.py +0 -0
  186. {orionis-0.286.0 → orionis-0.287.0}/orionis/console/commands/cache_clear.py +0 -0
  187. {orionis-0.286.0 → orionis-0.287.0}/orionis/console/commands/help.py +0 -0
  188. {orionis-0.286.0 → orionis-0.287.0}/orionis/console/commands/schedule_work.py +0 -0
  189. {orionis-0.286.0 → orionis-0.287.0}/orionis/console/commands/version.py +0 -0
  190. {orionis-0.286.0 → orionis-0.287.0}/orionis/console/dumper/__init__.py +0 -0
  191. {orionis-0.286.0 → orionis-0.287.0}/orionis/console/dumper/dump_die.py +0 -0
  192. {orionis-0.286.0 → orionis-0.287.0}/orionis/console/exceptions/__init__.py +0 -0
  193. {orionis-0.286.0 → orionis-0.287.0}/orionis/console/exceptions/cli-orionis-value-error.py +0 -0
  194. {orionis-0.286.0 → orionis-0.287.0}/orionis/console/exceptions/cli_exception.py +0 -0
  195. {orionis-0.286.0 → orionis-0.287.0}/orionis/console/exceptions/cli_runtime_error.py +0 -0
  196. {orionis-0.286.0 → orionis-0.287.0}/orionis/console/exceptions/cli_schedule_exception.py +0 -0
  197. {orionis-0.286.0 → orionis-0.287.0}/orionis/console/kernel.py +0 -0
  198. {orionis-0.286.0 → orionis-0.287.0}/orionis/console/output/__init__.py +0 -0
  199. {orionis-0.286.0 → orionis-0.287.0}/orionis/console/output/console.py +0 -0
  200. {orionis-0.286.0 → orionis-0.287.0}/orionis/console/output/executor.py +0 -0
  201. {orionis-0.286.0 → orionis-0.287.0}/orionis/console/output/progress_bar.py +0 -0
  202. {orionis-0.286.0 → orionis-0.287.0}/orionis/console/output/styles.py +0 -0
  203. {orionis-0.286.0 → orionis-0.287.0}/orionis/console/parser.py +0 -0
  204. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/__init__.py +0 -0
  205. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/__init__.py +0 -0
  206. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/app/__init__.py +0 -0
  207. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/app/entities/__init__.py +0 -0
  208. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/app/entities/app.py +0 -0
  209. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/app/enums/__init__.py +0 -0
  210. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/app/enums/ciphers.py +0 -0
  211. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/app/enums/environments.py +0 -0
  212. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/auth/__init__.py +0 -0
  213. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/auth/entities/__init__.py +0 -0
  214. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/auth/entities/auth.py +0 -0
  215. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/cache/__init__.py +0 -0
  216. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/cache/entities/__init__.py +0 -0
  217. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/cache/entities/cache.py +0 -0
  218. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/cache/entities/file.py +0 -0
  219. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/cache/entities/stores.py +0 -0
  220. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/cache/enums/__init__.py +0 -0
  221. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/cache/enums/drivers.py +0 -0
  222. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/contracts/__init__.py +0 -0
  223. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/contracts/config.py +0 -0
  224. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/cors/__init__.py +0 -0
  225. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/cors/entities/__init__.py +0 -0
  226. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/cors/entities/cors.py +0 -0
  227. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/__init__.py +0 -0
  228. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/entities/__init__.py +0 -0
  229. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/entities/connections.py +0 -0
  230. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/entities/database.py +0 -0
  231. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/entities/mysql.py +0 -0
  232. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/entities/oracle.py +0 -0
  233. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/entities/pgsql.py +0 -0
  234. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/entities/sqlite.py +0 -0
  235. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/enums/__init__.py +0 -0
  236. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/enums/mysql_charsets.py +0 -0
  237. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/enums/mysql_collations.py +0 -0
  238. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/enums/mysql_engine.py +0 -0
  239. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/enums/oracle_encoding.py +0 -0
  240. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/enums/oracle_nencoding.py +0 -0
  241. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/enums/pgsql_charsets.py +0 -0
  242. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/enums/pgsql_collations.py +0 -0
  243. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/enums/pgsql_mode.py +0 -0
  244. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/enums/sqlite_foreign_key.py +0 -0
  245. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/enums/sqlite_journal.py +0 -0
  246. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/enums/sqlite_synchronous.py +0 -0
  247. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/exceptions/__init__.py +0 -0
  248. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/exceptions/integrity.py +0 -0
  249. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/filesystems/__init__.py +0 -0
  250. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/filesystems/entitites/__init__.py +0 -0
  251. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/filesystems/entitites/aws.py +0 -0
  252. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/filesystems/entitites/disks.py +0 -0
  253. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/filesystems/entitites/filesystems.py +0 -0
  254. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/filesystems/entitites/local.py +0 -0
  255. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/filesystems/entitites/public.py +0 -0
  256. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/logging/__init__.py +0 -0
  257. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/logging/entities/__init__.py +0 -0
  258. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/logging/entities/channels.py +0 -0
  259. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/logging/entities/chunked.py +0 -0
  260. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/logging/entities/daily.py +0 -0
  261. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/logging/entities/hourly.py +0 -0
  262. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/logging/entities/logging.py +0 -0
  263. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/logging/entities/monthly.py +0 -0
  264. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/logging/entities/stack.py +0 -0
  265. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/logging/entities/weekly.py +0 -0
  266. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/logging/enums/__init__.py +0 -0
  267. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/logging/enums/levels.py +0 -0
  268. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/mail/__init__.py +0 -0
  269. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/mail/entities/__init__.py +0 -0
  270. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/mail/entities/file.py +0 -0
  271. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/mail/entities/mail.py +0 -0
  272. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/mail/entities/mailers.py +0 -0
  273. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/mail/entities/smtp.py +0 -0
  274. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/queue/__init__.py +0 -0
  275. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/queue/entities/__init__.py +0 -0
  276. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/queue/entities/brokers.py +0 -0
  277. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/queue/entities/database.py +0 -0
  278. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/queue/entities/queue.py +0 -0
  279. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/queue/enums/strategy.py +0 -0
  280. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/roots/__init__.py +0 -0
  281. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/roots/paths.py +0 -0
  282. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/session/__init__.py +0 -0
  283. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/session/entities/__init__.py +0 -0
  284. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/session/entities/session.py +0 -0
  285. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/session/enums/__init__.py +0 -0
  286. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/session/enums/same_site_policy.py +0 -0
  287. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/session/helpers/secret_key.py +0 -0
  288. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/startup.py +0 -0
  289. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/testing/__init__.py +0 -0
  290. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/testing/entities/__init__.py +0 -0
  291. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/testing/entities/testing.py +0 -0
  292. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/testing/enums/__init__.py +0 -0
  293. {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/testing/enums/test_mode.py +0 -0
  294. {orionis-0.286.0 → orionis-0.287.0}/orionis/metadata/__init__.py +0 -0
  295. {orionis-0.286.0 → orionis-0.287.0}/orionis/metadata/package.py +0 -0
  296. {orionis-0.286.0 → orionis-0.287.0}/orionis/patterns/__init__.py +0 -0
  297. {orionis-0.286.0 → orionis-0.287.0}/orionis/patterns/singleton/__init__.py +0 -0
  298. {orionis-0.286.0 → orionis-0.287.0}/orionis/patterns/singleton/meta_class.py +0 -0
  299. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/__init__.py +0 -0
  300. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/asynchrony/__init__.py +0 -0
  301. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/asynchrony/contracts/__init__.py +0 -0
  302. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/asynchrony/contracts/coroutines.py +0 -0
  303. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/asynchrony/coroutines.py +0 -0
  304. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/asynchrony/exceptions/__init__.py +0 -0
  305. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/asynchrony/exceptions/coroutine_exception.py +0 -0
  306. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/environment/__init__.py +0 -0
  307. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/environment/contracts/__init__.py +0 -0
  308. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/environment/exceptions/__init__.py +0 -0
  309. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/__init__.py +0 -0
  310. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/abstracts/__init__.py +0 -0
  311. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/abstracts/entities/__init__.py +0 -0
  312. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/abstracts/entities/abstract_class_attributes.py +0 -0
  313. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/abstracts/reflect_abstract.py +0 -0
  314. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/dependencies/__init__.py +0 -0
  315. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/dependencies/contracts/__init__.py +0 -0
  316. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/dependencies/contracts/reflect_dependencies.py +0 -0
  317. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/dependencies/entities/__init__.py +0 -0
  318. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/dependencies/entities/class_dependencies.py +0 -0
  319. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/dependencies/entities/method_dependencies.py +0 -0
  320. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/dependencies/entities/resolved_dependencies.py +0 -0
  321. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/dependencies/reflect_dependencies.py +0 -0
  322. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/exceptions/__init__.py +0 -0
  323. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/exceptions/types.py +0 -0
  324. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/helpers/__init__.py +0 -0
  325. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/helpers/functions.py +0 -0
  326. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/reflection.py +0 -0
  327. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/parsers/__init__.py +0 -0
  328. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/parsers/contracts/__init__.py +0 -0
  329. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/parsers/contracts/exception_parser.py +0 -0
  330. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/parsers/exceptions/__init__.py +0 -0
  331. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/parsers/exceptions/exception_parser.py +0 -0
  332. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/parsers/serializer.py +0 -0
  333. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/paths/__init__.py +0 -0
  334. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/paths/contracts/__init__.py +0 -0
  335. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/paths/contracts/resolver.py +0 -0
  336. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/paths/exceptions/__init__.py +0 -0
  337. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/paths/exceptions/not_found_exceptions.py +0 -0
  338. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/paths/exceptions/path_value_exceptions.py +0 -0
  339. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/paths/resolver.py +0 -0
  340. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/standard/__init__.py +0 -0
  341. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/standard/contracts/__init__.py +0 -0
  342. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/standard/contracts/std.py +0 -0
  343. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/standard/exceptions/__init__.py +0 -0
  344. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/standard/exceptions/path_value_exceptions.py +0 -0
  345. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/standard/std.py +0 -0
  346. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/system/__init__.py +0 -0
  347. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/system/contracts/__init__.py +0 -0
  348. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/system/contracts/imports.py +0 -0
  349. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/system/contracts/workers.py +0 -0
  350. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/system/imports.py +0 -0
  351. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/system/runtime_imports.py +0 -0
  352. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/system/workers.py +0 -0
  353. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/wrapper/__init__.py +0 -0
  354. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/wrapper/dicts/__init__.py +0 -0
  355. {orionis-0.286.0 → orionis-0.287.0}/orionis/services/wrapper/dicts/dot_dict.py +0 -0
  356. {orionis-0.286.0 → orionis-0.287.0}/orionis/support/__init__.py +0 -0
  357. {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/__init__.py +0 -0
  358. {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/container_integrity.py +0 -0
  359. {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/contracts/__init__.py +0 -0
  360. {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/contracts/reflection.py +0 -0
  361. {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/contracts/reflexion_abstract.py +0 -0
  362. {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/helpers/__init__.py +0 -0
  363. {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/helpers/functions.py +0 -0
  364. {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/instances/__init__.py +0 -0
  365. {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/instances/contracts/__init__.py +0 -0
  366. {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/instances/contracts/reflection_instance.py +0 -0
  367. {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/instances/entities/__init__.py +0 -0
  368. {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/instances/entities/class_attributes.py +0 -0
  369. {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/instances/entities/class_method.py +0 -0
  370. {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/instances/entities/class_parsed.py +0 -0
  371. {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/instances/entities/class_property.py +0 -0
  372. {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/instances/reflection_instance.py +0 -0
  373. {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/reflect_decorators.py +0 -0
  374. {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/reflection.py +0 -0
  375. {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/reflexion_concrete.py +0 -0
  376. {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/reflexion_concrete_with_abstract.py +0 -0
  377. {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/reflexion_instance_with_abstract.py +0 -0
  378. {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/reflexion_module.py +0 -0
  379. {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/reflexion_module_with_classname.py +0 -0
  380. {orionis-0.286.0 → orionis-0.287.0}/orionis/test/__init__.py +0 -0
  381. {orionis-0.286.0 → orionis-0.287.0}/orionis/test/cases/__init__.py +0 -0
  382. {orionis-0.286.0 → orionis-0.287.0}/orionis/test/cases/test_async.py +0 -0
  383. {orionis-0.286.0 → orionis-0.287.0}/orionis/test/cases/test_case.py +0 -0
  384. {orionis-0.286.0 → orionis-0.287.0}/orionis/test/cases/test_sync.py +0 -0
  385. {orionis-0.286.0 → orionis-0.287.0}/orionis/test/entities/__init__.py +0 -0
  386. {orionis-0.286.0 → orionis-0.287.0}/orionis/test/entities/test_result.py +0 -0
  387. {orionis-0.286.0 → orionis-0.287.0}/orionis/test/enums/__init__.py +0 -0
  388. {orionis-0.286.0 → orionis-0.287.0}/orionis/test/enums/test_mode.py +0 -0
  389. {orionis-0.286.0 → orionis-0.287.0}/orionis/test/enums/test_status.py +0 -0
  390. {orionis-0.286.0 → orionis-0.287.0}/orionis/test/exceptions/__init__.py +0 -0
  391. {orionis-0.286.0 → orionis-0.287.0}/orionis/test/exceptions/test_config_exception.py +0 -0
  392. {orionis-0.286.0 → orionis-0.287.0}/orionis/test/exceptions/test_failure_exception.py +0 -0
  393. {orionis-0.286.0 → orionis-0.287.0}/orionis/test/exceptions/test_persistence_error.py +0 -0
  394. {orionis-0.286.0 → orionis-0.287.0}/orionis/test/exceptions/test_runtime_error.py +0 -0
  395. {orionis-0.286.0 → orionis-0.287.0}/orionis/test/exceptions/test_value_error.py +0 -0
  396. {orionis-0.286.0 → orionis-0.287.0}/orionis/test/logs/__init__.py +0 -0
  397. {orionis-0.286.0 → orionis-0.287.0}/orionis/test/logs/contracts/__init__.py +0 -0
  398. {orionis-0.286.0 → orionis-0.287.0}/orionis/test/logs/contracts/history.py +0 -0
  399. {orionis-0.286.0 → orionis-0.287.0}/orionis/test/output/__init__.py +0 -0
  400. {orionis-0.286.0 → orionis-0.287.0}/orionis/test/output/contracts/__init__.py +0 -0
  401. {orionis-0.286.0 → orionis-0.287.0}/orionis/test/output/contracts/dumper.py +0 -0
  402. {orionis-0.286.0 → orionis-0.287.0}/orionis/test/output/dumper.py +0 -0
  403. {orionis-0.286.0 → orionis-0.287.0}/orionis/test/suites/__init__.py +0 -0
  404. {orionis-0.286.0 → orionis-0.287.0}/orionis/test/suites/contracts/__init__.py +0 -0
  405. {orionis-0.286.0 → orionis-0.287.0}/orionis/test/suites/contracts/test_suite.py +0 -0
  406. {orionis-0.286.0 → orionis-0.287.0}/orionis/test/suites/contracts/test_unit.py +0 -0
  407. {orionis-0.286.0 → orionis-0.287.0}/orionis/test/suites/test_suite.py +0 -0
  408. {orionis-0.286.0 → orionis-0.287.0}/orionis/test/suites/test_unit.py +0 -0
  409. {orionis-0.286.0 → orionis-0.287.0}/orionis/test/view/__init__.py +0 -0
  410. {orionis-0.286.0 → orionis-0.287.0}/orionis/test/view/index.html +0 -0
  411. {orionis-0.286.0 → orionis-0.287.0}/orionis/unittesting.py +0 -0
  412. {orionis-0.286.0 → orionis-0.287.0}/orionis.egg-info/dependency_links.txt +0 -0
  413. {orionis-0.286.0 → orionis-0.287.0}/orionis.egg-info/requires.txt +0 -0
  414. {orionis-0.286.0 → orionis-0.287.0}/orionis.egg-info/top_level.txt +0 -0
  415. {orionis-0.286.0 → orionis-0.287.0}/orionis.egg-info/zip-safe +0 -0
  416. {orionis-0.286.0 → orionis-0.287.0}/setup.cfg +0 -0
  417. {orionis-0.286.0 → orionis-0.287.0}/setup.py +0 -0
  418. {orionis-0.286.0 → orionis-0.287.0}/tests/__init__.py +0 -0
  419. {orionis-0.286.0 → orionis-0.287.0}/tests/example/__init__.py +0 -0
  420. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/__init__.py +0 -0
  421. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/__init__.py +0 -0
  422. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/app/__init__.py +0 -0
  423. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/auth/__init__.py +0 -0
  424. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/cache/__init__.py +0 -0
  425. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/cors/__init__.py +0 -0
  426. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/database/__init__.py +0 -0
  427. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/exceptions/__init__.py +0 -0
  428. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/filesystems/__init__.py +0 -0
  429. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/logging/__init__.py +0 -0
  430. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/mail/__init__.py +0 -0
  431. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/queue/__init__.py +0 -0
  432. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/root/__init__.py +0 -0
  433. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/session/__init__.py +0 -0
  434. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/startup/__init__.py +0 -0
  435. {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/testing/__init__.py +0 -0
  436. {orionis-0.286.0 → orionis-0.287.0}/tests/patterns/__init__.py +0 -0
  437. {orionis-0.286.0 → orionis-0.287.0}/tests/patterns/singleton/__init__.py +0 -0
  438. {orionis-0.286.0 → orionis-0.287.0}/tests/services/__init__.py +0 -0
  439. {orionis-0.286.0 → orionis-0.287.0}/tests/services/asynchrony/__init__.py +0 -0
  440. {orionis-0.286.0 → orionis-0.287.0}/tests/services/asynchrony/test_async_io.py +0 -0
  441. {orionis-0.286.0 → orionis-0.287.0}/tests/services/environment/__init__.py +0 -0
  442. {orionis-0.286.0 → orionis-0.287.0}/tests/services/inspection/__init__.py +0 -0
  443. {orionis-0.286.0 → orionis-0.287.0}/tests/services/inspection/dependencies/__init__.py +0 -0
  444. {orionis-0.286.0 → orionis-0.287.0}/tests/services/inspection/dependencies/mocks/__init__.py +0 -0
  445. {orionis-0.286.0 → orionis-0.287.0}/tests/services/inspection/dependencies/mocks/mock_user.py +0 -0
  446. {orionis-0.286.0 → orionis-0.287.0}/tests/services/inspection/dependencies/mocks/mock_user_controller.py +0 -0
  447. {orionis-0.286.0 → orionis-0.287.0}/tests/services/inspection/dependencies/mocks/mock_users_permissions.py +0 -0
  448. {orionis-0.286.0 → orionis-0.287.0}/tests/services/inspection/dependencies/test_reflect_dependencies.py +0 -0
  449. {orionis-0.286.0 → orionis-0.287.0}/tests/services/parsers/__init__.py +0 -0
  450. {orionis-0.286.0 → orionis-0.287.0}/tests/services/parsers/mocks/__init__.py +0 -0
  451. {orionis-0.286.0 → orionis-0.287.0}/tests/services/parsers/mocks/mock_custom_error.py +0 -0
  452. {orionis-0.286.0 → orionis-0.287.0}/tests/services/parsers/test_exception_parser.py +0 -0
  453. {orionis-0.286.0 → orionis-0.287.0}/tests/services/path/__init__.py +0 -0
  454. {orionis-0.286.0 → orionis-0.287.0}/tests/services/path/test_resolver.py +0 -0
  455. {orionis-0.286.0 → orionis-0.287.0}/tests/services/standard/__init__.py +0 -0
  456. {orionis-0.286.0 → orionis-0.287.0}/tests/services/standard/test_std.py +0 -0
  457. {orionis-0.286.0 → orionis-0.287.0}/tests/services/wrapper/__init__.py +0 -0
  458. {orionis-0.286.0 → orionis-0.287.0}/tests/services/wrapper/test_wrapper_doc_dict.py +0 -0
  459. {orionis-0.286.0 → orionis-0.287.0}/tests/support/__init__.py +0 -0
  460. {orionis-0.286.0 → orionis-0.287.0}/tests/support/inspection/__init__.py +0 -0
  461. {orionis-0.286.0 → orionis-0.287.0}/tests/support/inspection/fakes/__init__.py +0 -0
  462. {orionis-0.286.0 → orionis-0.287.0}/tests/support/inspection/fakes/fake_reflect_abstract.py +0 -0
  463. {orionis-0.286.0 → orionis-0.287.0}/tests/support/inspection/fakes/fake_reflect_instance.py +0 -0
  464. {orionis-0.286.0 → orionis-0.287.0}/tests/support/inspection/fakes/fake_reflection_concrete.py +0 -0
  465. {orionis-0.286.0 → orionis-0.287.0}/tests/support/inspection/fakes/fake_reflection_concrete_with_abstract.py +0 -0
  466. {orionis-0.286.0 → orionis-0.287.0}/tests/support/inspection/fakes/fake_reflection_instance_with_abstract.py +0 -0
  467. {orionis-0.286.0 → orionis-0.287.0}/tests/support/inspection/test_reflect_abstract.py +0 -0
  468. {orionis-0.286.0 → orionis-0.287.0}/tests/support/inspection/test_reflect_instance.py +0 -0
  469. {orionis-0.286.0 → orionis-0.287.0}/tests/support/inspection/test_reflection_concrete.py +0 -0
  470. {orionis-0.286.0 → orionis-0.287.0}/tests/support/inspection/test_reflection_concrete_with_abstract.py +0 -0
  471. {orionis-0.286.0 → orionis-0.287.0}/tests/support/inspection/test_reflection_instance_with_abstract.py +0 -0
  472. {orionis-0.286.0 → orionis-0.287.0}/tests/testing/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: orionis
3
- Version: 0.286.0
3
+ Version: 0.287.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.286.0"
8
+ VERSION = "0.287.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,77 @@
1
+ from typing import Any, Dict
2
+ from abc import ABC, abstractmethod
3
+
4
+ class IEnv(ABC):
5
+
6
+ @staticmethod
7
+ @abstractmethod
8
+ def get(key: str, default: Any = None) -> Any:
9
+ """
10
+ Retrieve the value of an environment variable by key.
11
+
12
+ Parameters
13
+ ----------
14
+ key : str
15
+ The name of the environment variable to retrieve.
16
+ default : Any, optional
17
+ The value to return if the key is not found. Default is None.
18
+
19
+ Returns
20
+ -------
21
+ Any
22
+ The value of the environment variable if found, otherwise the default value.
23
+ """
24
+ pass
25
+
26
+ @staticmethod
27
+ @abstractmethod
28
+ def set(key: str, value: str, type: str = None) -> bool:
29
+ """
30
+ Set an environment variable in the .env file.
31
+
32
+ Parameters
33
+ ----------
34
+ key : str
35
+ The name of the environment variable to set.
36
+ value : str
37
+ The value to assign to the environment variable.
38
+ type : str, optional
39
+ The type of the environment variable (e.g., 'str', 'int'). Default is None.
40
+
41
+ Returns
42
+ -------
43
+ bool
44
+ True if the variable was set successfully, False otherwise.
45
+ """
46
+ pass
47
+
48
+ @staticmethod
49
+ @abstractmethod
50
+ def unset(key: str) -> bool:
51
+ """
52
+ Remove the specified environment variable from the .env file.
53
+
54
+ Parameters
55
+ ----------
56
+ key : str
57
+ The name of the environment variable to remove.
58
+
59
+ Returns
60
+ -------
61
+ bool
62
+ True if the variable was successfully removed, False otherwise.
63
+ """
64
+ pass
65
+
66
+ @staticmethod
67
+ @abstractmethod
68
+ def all() -> Dict[str, Any]:
69
+ """
70
+ Retrieve all environment variables as a dictionary.
71
+
72
+ Returns
73
+ -------
74
+ dict of str to Any
75
+ A dictionary containing all environment variables loaded by DotEnv.
76
+ """
77
+ pass
@@ -0,0 +1,271 @@
1
+ import os
2
+ import ast
3
+ import threading
4
+ from pathlib import Path
5
+ from typing import Any, Optional, Union
6
+ from dotenv import dotenv_values, load_dotenv, set_key, unset_key
7
+ from orionis.patterns.singleton.meta_class import Singleton
8
+ from orionis.services.environment.exceptions.environment_value_exception import OrionisEnvironmentValueException
9
+ from orionis.services.environment.exceptions.environment_value_error import OrionisEnvironmentValueError
10
+ from orionis.services.environment.type_hint import EnvTypes
11
+
12
+ class DotEnv(metaclass=Singleton):
13
+
14
+ # Thread-safe singleton instance lock
15
+ _lock = threading.RLock()
16
+
17
+ def __init__(self, path: str = None) -> None:
18
+ """
19
+ Initialize the environment service by resolving the path to the `.env` file, ensuring its existence,
20
+ and loading environment variables from it.
21
+
22
+ Parameters
23
+ ----------
24
+ path : str, optional
25
+ Path to the `.env` file. If not provided, defaults to a `.env` file
26
+ in the current working directory.
27
+
28
+ Raises
29
+ ------
30
+ OSError
31
+ If the `.env` file cannot be created when it does not exist.
32
+ """
33
+ try:
34
+ with self._lock:
35
+ if path:
36
+ self._resolved_path = Path(path).expanduser().resolve()
37
+ else:
38
+ self._resolved_path = Path(os.getcwd()) / ".env"
39
+
40
+ if not self._resolved_path.exists():
41
+ self._resolved_path.touch()
42
+
43
+ load_dotenv(self._resolved_path)
44
+ except OSError as e:
45
+ raise OSError(f"Failed to create or access the .env file at {self._resolved_path}: {e}")
46
+
47
+ def get(self, key: str, default: Optional[Any] = None) -> Any:
48
+ """
49
+ Get the value of an environment variable.
50
+
51
+ Parameters
52
+ ----------
53
+ key : str
54
+ Name of the environment variable to retrieve.
55
+ default : Any, optional
56
+ Value to return if the key is not found. Default is None.
57
+
58
+ Returns
59
+ -------
60
+ Any
61
+ Parsed value of the environment variable, or `default` if not found.
62
+
63
+ Raises
64
+ ------
65
+ OrionisEnvironmentValueError
66
+ If `key` is not a string.
67
+ """
68
+ with self._lock:
69
+
70
+ # Ensure the key is a string.
71
+ if not isinstance(key, str):
72
+ raise OrionisEnvironmentValueError(
73
+ f"Key must be a string, got {type(key).__name__}."
74
+ )
75
+
76
+ # Get the value from the .env file or the current environment.
77
+ value = dotenv_values(self._resolved_path).get(key)
78
+
79
+ # If the value is not found in the .env file, check the current environment variables.
80
+ if value is None:
81
+ value = os.getenv(key)
82
+
83
+ # Parse the value using the internal __parseValue method and return it
84
+ return self.__parseValue(value) if value is not None else default
85
+
86
+ def __parseValue(self, value: Any) -> Any:
87
+ """
88
+ Parse and convert the input value to an appropriate Python data type with enhanced features.
89
+
90
+ Parameters
91
+ ----------
92
+ value : Any
93
+ The value to parse and convert.
94
+
95
+ Returns
96
+ -------
97
+ Any
98
+ The parsed value, which may be of type None, bool, int, float, list, dict, or str.
99
+ - Returns None for None, empty strings, or strings like 'none', 'null', 'nan' (case-insensitive).
100
+ - Returns a boolean for 'true'/'false' strings (case-insensitive) or 1/0.
101
+ - Returns an int if the string represents an integer.
102
+ - Returns a float if the string represents a float.
103
+ - Attempts to evaluate the string as a Python literal (e.g., list, dict, tuple).
104
+ - Handles type hints via 'type:' prefix (e.g., 'int:42', 'bool:true').
105
+ - Returns the original string if no conversion is possible.
106
+
107
+ Raises
108
+ ------
109
+ OrionisEnvironmentValueException
110
+ If type conversion fails for explicitly typed values (e.g., 'abc::int').
111
+ """
112
+ # Early return for None
113
+ if value is None:
114
+ return None
115
+
116
+ # Return immediately if already a basic type
117
+ if isinstance(value, (bool, int, float, dict, list, tuple)):
118
+ return value
119
+
120
+ # Convert to string and clean
121
+ value_str = str(value).strip()
122
+
123
+ # Handle empty strings and common null representations
124
+ # This includes 'none', 'null', 'nan', 'nil' (case-insensitive)
125
+ if not value_str or value_str.lower() in {'none', 'null', 'nan', 'nil'}:
126
+ return None
127
+
128
+ # Boolean detection (without type hint)
129
+ lower_val = value_str.lower()
130
+ if lower_val in ('true', 'false', 'yes', 'no', 'on', 'off', '1', '0'):
131
+ return lower_val in ('true', 'yes', 'on', '1')
132
+
133
+ # Handle type hints using the Type class
134
+ hints = EnvTypes(value_str)
135
+ if hints.hasValidTypeHint():
136
+ return hints.get()
137
+
138
+ # Try parseing to literal types, if failed, return the original value
139
+ try:
140
+ return ast.literal_eval(value_str)
141
+ except (ValueError, SyntaxError):
142
+ return value_str
143
+
144
+ def set(self, key: str, value: Union[str, int, float, bool, list, dict, tuple, set], type_hint: str = None) -> bool:
145
+ """
146
+ Set an environment variable with the specified key and value.
147
+
148
+ Serializes the given value and updates both the .env file and the current process's environment variables.
149
+
150
+ Parameters
151
+ ----------
152
+ key : str
153
+ The name of the environment variable to set.
154
+ value : Union[str, int, float, bool, list, dict]
155
+ The value to assign to the environment variable. Supported types include string, integer, float, boolean, list, and dictionary.
156
+ type_hint : str, optional
157
+ The type of the value being set. If provided, it can be (path, str, int, float, bool, list, dict, tuple, set).
158
+
159
+ Returns
160
+ -------
161
+ bool
162
+ True if the environment variable was successfully set.
163
+ """
164
+ with self._lock:
165
+
166
+
167
+ # Ensure the value is a valid type.
168
+ if not isinstance(value, (str, int, float, bool, list, dict, tuple, set)):
169
+ raise OrionisEnvironmentValueError(
170
+ f"Unsupported value type: {type(value).__name__}. Allowed types are str, int, float, bool, list, dict, tuple, set."
171
+ )
172
+
173
+ # Ensure the type is a string.
174
+ if not isinstance(type_hint, str):
175
+ raise OrionisEnvironmentValueError(
176
+ f"Type hint must be a string, got {type(value).__name__}."
177
+ )
178
+
179
+ # Ensure the key is a string.
180
+ if not isinstance(key, str):
181
+ raise OrionisEnvironmentValueError(
182
+ f"Key must be a string, got {type(key).__name__}."
183
+ )
184
+
185
+ # Validate the type hint if provided.
186
+ options = EnvTypes.options()
187
+ if type_hint and type_hint not in options:
188
+ raise OrionisEnvironmentValueException(f"Invalid type hint: {type_hint}. Allowed types are {str(options)}.")
189
+
190
+ # Serialize the value based on its type.
191
+ serialized_value = self.__serializeValue(value, type_hint)
192
+
193
+ # Set the environment variable in the .env file and the current process environment.
194
+ set_key(str(self._resolved_path), key, serialized_value)
195
+ os.environ[key] = str(value)
196
+
197
+ # Return True to indicate success.
198
+ return True
199
+
200
+ def __serializeValue(self, value: Any, type_hint: str = None) -> str:
201
+ """
202
+ Parameters
203
+ ----------
204
+ value : Any
205
+ The value to serialize.
206
+ type_hint : str, optional
207
+ An optional type hint to guide serialization.
208
+ Returns
209
+ -------
210
+ str
211
+ The serialized string representation of the value.
212
+ Notes
213
+ -----
214
+ - If `value` is None, returns "null".
215
+ - If `type_hint` is provided, uses `EnvTypes` to serialize.
216
+ - Uses `repr()` for lists, dicts, tuples, and sets.
217
+ - Falls back to `str()` for other types.
218
+ """
219
+
220
+ if value is None:
221
+ return "null"
222
+
223
+ if type_hint:
224
+ return EnvTypes(value).to(type_hint)
225
+
226
+ if isinstance(value, str):
227
+ return value.strip()
228
+
229
+ if isinstance(value, bool):
230
+ return str(value).lower()
231
+
232
+ if isinstance(value, int, float):
233
+ return str(value)
234
+
235
+ if isinstance(value, (list, dict, tuple, set)):
236
+ return repr(value)
237
+
238
+ return str(value)
239
+
240
+ def unset(self, key: str) -> bool:
241
+ """
242
+ Remove the specified environment variable from both the .env file and the current process environment.
243
+
244
+ Parameters
245
+ ----------
246
+ key : str
247
+ The name of the environment variable to unset.
248
+
249
+ Returns
250
+ -------
251
+ bool
252
+ True if the operation was successful.
253
+ """
254
+ with self._lock:
255
+ unset_key(str(self._resolved_path), key)
256
+ os.environ.pop(key, None)
257
+ return True
258
+
259
+ def all(self) -> dict:
260
+ """
261
+ Retrieve all environment variables from the resolved .env file.
262
+
263
+ Returns
264
+ -------
265
+ dict
266
+ Dictionary containing all environment variable key-value pairs,
267
+ with values parsed using the internal __parseValue method.
268
+ """
269
+ with self._lock:
270
+ raw_values = dotenv_values(self._resolved_path)
271
+ return {k: self.__parseValue(v) for k, v in raw_values.items()}
@@ -0,0 +1,97 @@
1
+ from orionis.services.environment.contracts.env import IEnv
2
+ from orionis.services.environment.dot_env import DotEnv
3
+ from typing import Any, Dict
4
+
5
+ def env(key: str, default: Any = None) -> Any:
6
+ """
7
+ Retrieve the value of an environment variable.
8
+
9
+ Parameters
10
+ ----------
11
+ key : str
12
+ The name of the environment variable to retrieve.
13
+ default : Any, optional
14
+ The value to return if the environment variable is not found. Default is None.
15
+
16
+ Returns
17
+ -------
18
+ Any
19
+ The value of the environment variable if it exists, otherwise the default value.
20
+ """
21
+ dotenv = DotEnv()
22
+ return dotenv.get(key, default)
23
+
24
+ class Env(IEnv):
25
+
26
+ @staticmethod
27
+ def get(key: str, default: Any = None) -> Any:
28
+ """
29
+ Retrieve the value of an environment variable by key.
30
+
31
+ Parameters
32
+ ----------
33
+ key : str
34
+ The name of the environment variable to retrieve.
35
+ default : Any, optional
36
+ The value to return if the key is not found. Default is None.
37
+
38
+ Returns
39
+ -------
40
+ Any
41
+ The value of the environment variable if found, otherwise the default value.
42
+ """
43
+ dotenv = DotEnv()
44
+ return dotenv.get(key, default)
45
+
46
+ @staticmethod
47
+ def set(key: str, value: str, type_hint: str = None) -> bool:
48
+ """
49
+ Set an environment variable in the .env file.
50
+
51
+ Parameters
52
+ ----------
53
+ key : str
54
+ The name of the environment variable to set.
55
+ value : str
56
+ The value to assign to the environment variable.
57
+ type_hint : str, optional
58
+ The type of the environment variable (e.g., 'str', 'int'). Default is None.
59
+
60
+ Returns
61
+ -------
62
+ bool
63
+ True if the variable was set successfully, False otherwise.
64
+ """
65
+ dotenv = DotEnv()
66
+ return dotenv.set(key, value, type_hint)
67
+
68
+ @staticmethod
69
+ def unset(key: str) -> bool:
70
+ """
71
+ Remove the specified environment variable from the .env file.
72
+
73
+ Parameters
74
+ ----------
75
+ key : str
76
+ The name of the environment variable to remove.
77
+
78
+ Returns
79
+ -------
80
+ bool
81
+ True if the variable was successfully removed, False otherwise.
82
+ """
83
+ dotenv = DotEnv()
84
+ return dotenv.unset(key)
85
+
86
+ @staticmethod
87
+ def all() -> Dict[str, Any]:
88
+ """
89
+ Retrieve all environment variables as a dictionary.
90
+
91
+ Returns
92
+ -------
93
+ dict of str to Any
94
+ A dictionary containing all environment variables loaded by DotEnv.
95
+ """
96
+ dotenv = DotEnv()
97
+ return dotenv.all()
@@ -0,0 +1,18 @@
1
+ class OrionisEnvironmentValueError(Exception):
2
+
3
+ def __init__(self, msg: str):
4
+ """
5
+ Initializes the exception with a custom error message.
6
+ Args:
7
+ msg (str): The error message describing the exception.
8
+ """
9
+ super().__init__(msg)
10
+
11
+ def __str__(self) -> str:
12
+ """
13
+ Return a string representation of the exception, including the class name and the first argument.
14
+
15
+ Returns:
16
+ str: A formatted string with the exception class name and its first argument.
17
+ """
18
+ return f"{self.__class__.__name__}: {self.args[0]}"
@@ -0,0 +1,23 @@
1
+ class OrionisEnvironmentValueException(Exception):
2
+
3
+ def __init__(self, msg: str):
4
+ """
5
+ Exception raised for errors related to environment values.
6
+
7
+ Parameters
8
+ ----------
9
+ msg : str
10
+ The error message describing the exception.
11
+ """
12
+ super().__init__(msg)
13
+
14
+ def __str__(self) -> str:
15
+ """
16
+ Returns a string representation of the exception.
17
+
18
+ Returns
19
+ -------
20
+ str
21
+ A formatted string with the exception class name and its first argument.
22
+ """
23
+ return f"{self.__class__.__name__}: {self.args[0]}"