orionis 0.692.0__tar.gz → 0.694.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 (410) hide show
  1. {orionis-0.692.0/orionis.egg-info → orionis-0.694.0}/PKG-INFO +1 -1
  2. {orionis-0.692.0 → orionis-0.694.0}/orionis/metadata/framework.py +1 -1
  3. orionis-0.694.0/orionis/services/environment/contracts/env.py +110 -0
  4. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/environment/core/dot_env.py +42 -0
  5. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/environment/dynamic/caster.py +73 -24
  6. orionis-0.694.0/orionis/services/environment/env.py +189 -0
  7. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/environment/helpers/functions.py +4 -4
  8. {orionis-0.692.0 → orionis-0.694.0/orionis.egg-info}/PKG-INFO +1 -1
  9. orionis-0.692.0/orionis/services/environment/contracts/env.py +0 -77
  10. orionis-0.692.0/orionis/services/environment/env.py +0 -133
  11. {orionis-0.692.0 → orionis-0.694.0}/LICENCE +0 -0
  12. {orionis-0.692.0 → orionis-0.694.0}/MANIFEST.in +0 -0
  13. {orionis-0.692.0 → orionis-0.694.0}/README.md +0 -0
  14. {orionis-0.692.0 → orionis-0.694.0}/orionis/__init__.py +0 -0
  15. {orionis-0.692.0 → orionis-0.694.0}/orionis/app.py +0 -0
  16. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/__init__.py +0 -0
  17. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/args/__init__.py +0 -0
  18. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/args/argument.py +0 -0
  19. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/base/__init__.py +0 -0
  20. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/base/command.py +0 -0
  21. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/base/scheduler.py +0 -0
  22. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/base/scheduler_event_listener.py +0 -0
  23. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/commands/__init__.py +0 -0
  24. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/commands/__publisher__.py +0 -0
  25. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/commands/cache_clear.py +0 -0
  26. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/commands/help.py +0 -0
  27. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/commands/log_clear.py +0 -0
  28. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/commands/make_command.py +0 -0
  29. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/commands/scheduler_list.py +0 -0
  30. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/commands/scheduler_work.py +0 -0
  31. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/commands/test.py +0 -0
  32. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/commands/version.py +0 -0
  33. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/contracts/__init__.py +0 -0
  34. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/contracts/base_command.py +0 -0
  35. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/contracts/base_scheduler.py +0 -0
  36. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/contracts/cli_request.py +0 -0
  37. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/contracts/command.py +0 -0
  38. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/contracts/console.py +0 -0
  39. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/contracts/dumper.py +0 -0
  40. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/contracts/event.py +0 -0
  41. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/contracts/executor.py +0 -0
  42. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/contracts/kernel.py +0 -0
  43. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/contracts/progress_bar.py +0 -0
  44. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/contracts/reactor.py +0 -0
  45. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/contracts/schedule.py +0 -0
  46. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/contracts/schedule_event_listener.py +0 -0
  47. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/core/__init__.py +0 -0
  48. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/core/reactor.py +0 -0
  49. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/debug/__init__.py +0 -0
  50. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/debug/dumper.py +0 -0
  51. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/dynamic/__init__.py +0 -0
  52. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/dynamic/progress_bar.py +0 -0
  53. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/entities/__init__.py +0 -0
  54. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/entities/command.py +0 -0
  55. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/entities/event.py +0 -0
  56. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/entities/event_job.py +0 -0
  57. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/entities/scheduler_error.py +0 -0
  58. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/entities/scheduler_event_data.py +0 -0
  59. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/entities/scheduler_paused.py +0 -0
  60. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/entities/scheduler_resumed.py +0 -0
  61. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/entities/scheduler_shutdown.py +0 -0
  62. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/entities/scheduler_started.py +0 -0
  63. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/enums/__init__.py +0 -0
  64. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/enums/actions.py +0 -0
  65. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/enums/listener.py +0 -0
  66. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/enums/styles.py +0 -0
  67. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/exceptions/__init__.py +0 -0
  68. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/exceptions/cli_exceptions.py +0 -0
  69. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/fluent/__init__.py +0 -0
  70. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/fluent/command.py +0 -0
  71. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/fluent/event.py +0 -0
  72. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/kernel.py +0 -0
  73. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/output/__init__.py +0 -0
  74. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/output/console.py +0 -0
  75. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/output/executor.py +0 -0
  76. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/request/__init__.py +0 -0
  77. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/request/cli_request.py +0 -0
  78. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/stubs/command.stub +0 -0
  79. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/stubs/listener.stub +0 -0
  80. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/tasks/__init__.py +0 -0
  81. {orionis-0.692.0 → orionis-0.694.0}/orionis/console/tasks/schedule.py +0 -0
  82. {orionis-0.692.0 → orionis-0.694.0}/orionis/container/__init__.py +0 -0
  83. {orionis-0.692.0 → orionis-0.694.0}/orionis/container/container.py +0 -0
  84. {orionis-0.692.0 → orionis-0.694.0}/orionis/container/context/__init__.py +0 -0
  85. {orionis-0.692.0 → orionis-0.694.0}/orionis/container/context/manager.py +0 -0
  86. {orionis-0.692.0 → orionis-0.694.0}/orionis/container/context/scope.py +0 -0
  87. {orionis-0.692.0 → orionis-0.694.0}/orionis/container/contracts/__init__.py +0 -0
  88. {orionis-0.692.0 → orionis-0.694.0}/orionis/container/contracts/container.py +0 -0
  89. {orionis-0.692.0 → orionis-0.694.0}/orionis/container/contracts/service_provider.py +0 -0
  90. {orionis-0.692.0 → orionis-0.694.0}/orionis/container/entities/__init__.py +0 -0
  91. {orionis-0.692.0 → orionis-0.694.0}/orionis/container/entities/binding.py +0 -0
  92. {orionis-0.692.0 → orionis-0.694.0}/orionis/container/enums/__init__.py +0 -0
  93. {orionis-0.692.0 → orionis-0.694.0}/orionis/container/enums/lifetimes.py +0 -0
  94. {orionis-0.692.0 → orionis-0.694.0}/orionis/container/exceptions/__init__.py +0 -0
  95. {orionis-0.692.0 → orionis-0.694.0}/orionis/container/exceptions/container.py +0 -0
  96. {orionis-0.692.0 → orionis-0.694.0}/orionis/container/facades/__init__.py +0 -0
  97. {orionis-0.692.0 → orionis-0.694.0}/orionis/container/facades/facade.py +0 -0
  98. {orionis-0.692.0 → orionis-0.694.0}/orionis/container/providers/__init__.py +0 -0
  99. {orionis-0.692.0 → orionis-0.694.0}/orionis/container/providers/service_provider.py +0 -0
  100. {orionis-0.692.0 → orionis-0.694.0}/orionis/failure/__init__.py +0 -0
  101. {orionis-0.692.0 → orionis-0.694.0}/orionis/failure/base/__init__.py +0 -0
  102. {orionis-0.692.0 → orionis-0.694.0}/orionis/failure/base/handler.py +0 -0
  103. {orionis-0.692.0 → orionis-0.694.0}/orionis/failure/catch.py +0 -0
  104. {orionis-0.692.0 → orionis-0.694.0}/orionis/failure/contracts/__init__.py +0 -0
  105. {orionis-0.692.0 → orionis-0.694.0}/orionis/failure/contracts/catch.py +0 -0
  106. {orionis-0.692.0 → orionis-0.694.0}/orionis/failure/contracts/handler.py +0 -0
  107. {orionis-0.692.0 → orionis-0.694.0}/orionis/failure/entities/__init__.py +0 -0
  108. {orionis-0.692.0 → orionis-0.694.0}/orionis/failure/entities/throwable.py +0 -0
  109. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/__init__.py +0 -0
  110. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/application.py +0 -0
  111. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/__init__.py +0 -0
  112. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/app/__init__.py +0 -0
  113. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/app/entities/__init__.py +0 -0
  114. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/app/entities/app.py +0 -0
  115. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/app/enums/__init__.py +0 -0
  116. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/app/enums/ciphers.py +0 -0
  117. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/app/enums/environments.py +0 -0
  118. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/auth/__init__.py +0 -0
  119. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/auth/entities/__init__.py +0 -0
  120. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/auth/entities/auth.py +0 -0
  121. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/cache/__init__.py +0 -0
  122. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/cache/entities/__init__.py +0 -0
  123. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/cache/entities/cache.py +0 -0
  124. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/cache/entities/file.py +0 -0
  125. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/cache/entities/stores.py +0 -0
  126. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/cache/enums/__init__.py +0 -0
  127. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/cache/enums/drivers.py +0 -0
  128. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/cors/__init__.py +0 -0
  129. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/cors/entities/__init__.py +0 -0
  130. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/cors/entities/cors.py +0 -0
  131. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/database/__init__.py +0 -0
  132. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/database/entities/__init__.py +0 -0
  133. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/database/entities/connections.py +0 -0
  134. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/database/entities/database.py +0 -0
  135. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/database/entities/mysql.py +0 -0
  136. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/database/entities/oracle.py +0 -0
  137. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/database/entities/pgsql.py +0 -0
  138. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/database/entities/sqlite.py +0 -0
  139. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/database/enums/__init__.py +0 -0
  140. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/database/enums/mysql_charsets.py +0 -0
  141. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/database/enums/mysql_collations.py +0 -0
  142. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/database/enums/mysql_engine.py +0 -0
  143. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/database/enums/oracle_encoding.py +0 -0
  144. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/database/enums/oracle_nencoding.py +0 -0
  145. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/database/enums/pgsql_charsets.py +0 -0
  146. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/database/enums/pgsql_collations.py +0 -0
  147. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/database/enums/pgsql_mode.py +0 -0
  148. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/database/enums/sqlite_foreign_key.py +0 -0
  149. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/database/enums/sqlite_journal.py +0 -0
  150. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/database/enums/sqlite_synchronous.py +0 -0
  151. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/filesystems/__init__.py +0 -0
  152. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/filesystems/entitites/__init__.py +0 -0
  153. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/filesystems/entitites/aws.py +0 -0
  154. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/filesystems/entitites/disks.py +0 -0
  155. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/filesystems/entitites/filesystems.py +0 -0
  156. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/filesystems/entitites/local.py +0 -0
  157. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/filesystems/entitites/public.py +0 -0
  158. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/logging/__init__.py +0 -0
  159. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/logging/entities/__init__.py +0 -0
  160. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/logging/entities/channels.py +0 -0
  161. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/logging/entities/chunked.py +0 -0
  162. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/logging/entities/daily.py +0 -0
  163. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/logging/entities/hourly.py +0 -0
  164. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/logging/entities/logging.py +0 -0
  165. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/logging/entities/monthly.py +0 -0
  166. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/logging/entities/stack.py +0 -0
  167. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/logging/entities/weekly.py +0 -0
  168. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/logging/enums/__init__.py +0 -0
  169. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/logging/enums/levels.py +0 -0
  170. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/logging/validators/__init__.py +0 -0
  171. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/logging/validators/level.py +0 -0
  172. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/logging/validators/path.py +0 -0
  173. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/mail/__init__.py +0 -0
  174. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/mail/entities/__init__.py +0 -0
  175. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/mail/entities/file.py +0 -0
  176. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/mail/entities/mail.py +0 -0
  177. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/mail/entities/mailers.py +0 -0
  178. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/mail/entities/smtp.py +0 -0
  179. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/queue/__init__.py +0 -0
  180. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/queue/entities/__init__.py +0 -0
  181. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/queue/entities/brokers.py +0 -0
  182. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/queue/entities/database.py +0 -0
  183. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/queue/entities/queue.py +0 -0
  184. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/queue/enums/__init__.py +0 -0
  185. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/queue/enums/strategy.py +0 -0
  186. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/roots/__init__.py +0 -0
  187. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/roots/paths.py +0 -0
  188. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/session/__init__.py +0 -0
  189. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/session/entities/__init__.py +0 -0
  190. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/session/entities/session.py +0 -0
  191. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/session/enums/__init__.py +0 -0
  192. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/session/enums/same_site_policy.py +0 -0
  193. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/session/helpers/__init__.py +0 -0
  194. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/session/helpers/secret_key.py +0 -0
  195. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/startup.py +0 -0
  196. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/testing/__init__.py +0 -0
  197. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/testing/entities/__init__.py +0 -0
  198. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/testing/entities/testing.py +0 -0
  199. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/testing/enums/__init__.py +0 -0
  200. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/testing/enums/drivers.py +0 -0
  201. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/testing/enums/mode.py +0 -0
  202. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/config/testing/enums/verbosity.py +0 -0
  203. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/contracts/__init__.py +0 -0
  204. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/contracts/application.py +0 -0
  205. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/exceptions/__init__.py +0 -0
  206. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/exceptions/application.py +0 -0
  207. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/providers/__init__.py +0 -0
  208. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/providers/catch_provider.py +0 -0
  209. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/providers/cli_request_provider.py +0 -0
  210. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/providers/console_provider.py +0 -0
  211. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/providers/directory_provider.py +0 -0
  212. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/providers/dumper_provider.py +0 -0
  213. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/providers/executor_provider.py +0 -0
  214. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/providers/inspirational_provider.py +0 -0
  215. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/providers/logger_provider.py +0 -0
  216. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/providers/performance_counter_provider.py +0 -0
  217. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/providers/progress_bar_provider.py +0 -0
  218. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/providers/reactor_provider.py +0 -0
  219. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/providers/scheduler_provider.py +0 -0
  220. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/providers/testing_provider.py +0 -0
  221. {orionis-0.692.0 → orionis-0.694.0}/orionis/foundation/providers/workers_provider.py +0 -0
  222. {orionis-0.692.0 → orionis-0.694.0}/orionis/metadata/__init__.py +0 -0
  223. {orionis-0.692.0 → orionis-0.694.0}/orionis/metadata/package.py +0 -0
  224. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/__init__.py +0 -0
  225. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/asynchrony/__init__.py +0 -0
  226. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/asynchrony/contracts/__init__.py +0 -0
  227. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/asynchrony/contracts/coroutines.py +0 -0
  228. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/asynchrony/coroutines.py +0 -0
  229. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/asynchrony/exceptions/__init__.py +0 -0
  230. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/asynchrony/exceptions/asynchrony.py +0 -0
  231. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/encrypter/encrypter.py +0 -0
  232. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/environment/__init__.py +0 -0
  233. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/environment/contracts/__init__.py +0 -0
  234. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/environment/contracts/caster.py +0 -0
  235. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/environment/core/__init__.py +0 -0
  236. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/environment/dynamic/__init__.py +0 -0
  237. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/environment/enums/__init__.py +0 -0
  238. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/environment/enums/value_type.py +0 -0
  239. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/environment/exceptions/__init__.py +0 -0
  240. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/environment/exceptions/environment.py +0 -0
  241. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/environment/helpers/__init__.py +0 -0
  242. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/environment/key/__init__.py +0 -0
  243. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/environment/key/key_generator.py +0 -0
  244. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/environment/validators/__init__.py +0 -0
  245. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/environment/validators/key_name.py +0 -0
  246. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/environment/validators/types.py +0 -0
  247. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/file/__init__.py +0 -0
  248. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/file/contracts/__init__.py +0 -0
  249. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/file/contracts/directory.py +0 -0
  250. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/file/directory.py +0 -0
  251. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/inspirational/__init__.py +0 -0
  252. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/inspirational/contracts/__init__.py +0 -0
  253. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/inspirational/contracts/inspire.py +0 -0
  254. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/inspirational/inspire.py +0 -0
  255. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/inspirational/quotes.py +0 -0
  256. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/introspection/__init__.py +0 -0
  257. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/introspection/abstract/__init__.py +0 -0
  258. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/introspection/abstract/contracts/__init__.py +0 -0
  259. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/introspection/abstract/contracts/reflection.py +0 -0
  260. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/introspection/abstract/reflection.py +0 -0
  261. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/introspection/callables/__init__.py +0 -0
  262. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/introspection/callables/contracts/__init__.py +0 -0
  263. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/introspection/callables/contracts/reflection.py +0 -0
  264. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/introspection/callables/reflection.py +0 -0
  265. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/introspection/concretes/__init__.py +0 -0
  266. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/introspection/concretes/contracts/__init__.py +0 -0
  267. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/introspection/concretes/contracts/reflection.py +0 -0
  268. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/introspection/concretes/reflection.py +0 -0
  269. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/introspection/dependencies/__init__.py +0 -0
  270. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/introspection/dependencies/contracts/__init__.py +0 -0
  271. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/introspection/dependencies/contracts/reflection.py +0 -0
  272. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/introspection/dependencies/entities/__init__.py +0 -0
  273. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/introspection/dependencies/entities/argument.py +0 -0
  274. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/introspection/dependencies/entities/resolve_argument.py +0 -0
  275. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/introspection/dependencies/reflection.py +0 -0
  276. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/introspection/exceptions/__init__.py +0 -0
  277. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/introspection/exceptions/introspection.py +0 -0
  278. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/introspection/instances/__init__.py +0 -0
  279. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/introspection/instances/contracts/__init__.py +0 -0
  280. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/introspection/instances/contracts/reflection.py +0 -0
  281. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/introspection/instances/reflection.py +0 -0
  282. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/introspection/modules/__init__.py +0 -0
  283. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/introspection/modules/contracts/__init__.py +0 -0
  284. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/introspection/modules/contracts/reflection.py +0 -0
  285. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/introspection/modules/reflection.py +0 -0
  286. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/introspection/objects/__init__.py +0 -0
  287. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/introspection/objects/types.py +0 -0
  288. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/introspection/reflection.py +0 -0
  289. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/log/__init__.py +0 -0
  290. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/log/contracts/__init__.py +0 -0
  291. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/log/contracts/log_service.py +0 -0
  292. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/log/exceptions/__init__.py +0 -0
  293. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/log/exceptions/log.py +0 -0
  294. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/log/handlers/__init__.py +0 -0
  295. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/log/handlers/filename.py +0 -0
  296. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/log/handlers/size_rotating.py +0 -0
  297. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/log/handlers/timed_rotating.py +0 -0
  298. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/log/log_service.py +0 -0
  299. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/system/__init__.py +0 -0
  300. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/system/contracts/__init__.py +0 -0
  301. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/system/contracts/imports.py +0 -0
  302. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/system/contracts/workers.py +0 -0
  303. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/system/imports.py +0 -0
  304. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/system/runtime/__init__.py +0 -0
  305. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/system/runtime/imports.py +0 -0
  306. {orionis-0.692.0 → orionis-0.694.0}/orionis/services/system/workers.py +0 -0
  307. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/__init__.py +0 -0
  308. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/entities/__init__.py +0 -0
  309. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/entities/base.py +0 -0
  310. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/facades/__init__.py +0 -0
  311. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/facades/application.py +0 -0
  312. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/facades/application.pyi +0 -0
  313. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/facades/console.py +0 -0
  314. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/facades/console.pyi +0 -0
  315. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/facades/directory.py +0 -0
  316. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/facades/directory.pyi +0 -0
  317. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/facades/dumper.py +0 -0
  318. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/facades/dumper.pyi +0 -0
  319. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/facades/executor.py +0 -0
  320. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/facades/executor.pyi +0 -0
  321. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/facades/inspire.py +0 -0
  322. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/facades/inspire.pyi +0 -0
  323. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/facades/logger.py +0 -0
  324. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/facades/logger.pyi +0 -0
  325. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/facades/performance_counter.py +0 -0
  326. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/facades/performance_counter.pyi +0 -0
  327. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/facades/progress_bar.py +0 -0
  328. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/facades/progress_bar.pyi +0 -0
  329. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/facades/reactor.py +0 -0
  330. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/facades/reactor.pyi +0 -0
  331. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/facades/testing.py +0 -0
  332. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/facades/testing.pyi +0 -0
  333. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/facades/workers.py +0 -0
  334. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/facades/workers.pyi +0 -0
  335. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/formatter/__init__.py +0 -0
  336. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/formatter/exceptions/__init__.py +0 -0
  337. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/formatter/exceptions/contracts/__init__.py +0 -0
  338. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/formatter/exceptions/contracts/parser.py +0 -0
  339. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/formatter/exceptions/parser.py +0 -0
  340. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/formatter/serializer.py +0 -0
  341. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/patterns/__init__.py +0 -0
  342. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/patterns/singleton/__init__.py +0 -0
  343. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/patterns/singleton/meta.py +0 -0
  344. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/performance/__init__.py +0 -0
  345. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/performance/contracts/__init__.py +0 -0
  346. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/performance/contracts/counter.py +0 -0
  347. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/performance/counter.py +0 -0
  348. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/standard/__init__.py +0 -0
  349. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/standard/contracts/__init__.py +0 -0
  350. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/standard/contracts/std.py +0 -0
  351. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/standard/exceptions/__init__.py +0 -0
  352. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/standard/exceptions/standard.py +0 -0
  353. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/standard/std.py +0 -0
  354. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/wrapper/__init__.py +0 -0
  355. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/wrapper/dataclass.py +0 -0
  356. {orionis-0.692.0 → orionis-0.694.0}/orionis/support/wrapper/dot_dict.py +0 -0
  357. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/__init__.py +0 -0
  358. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/cases/__init__.py +0 -0
  359. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/cases/asynchronous.py +0 -0
  360. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/cases/synchronous.py +0 -0
  361. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/contracts/__init__.py +0 -0
  362. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/contracts/dumper.py +0 -0
  363. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/contracts/kernel.py +0 -0
  364. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/contracts/logs.py +0 -0
  365. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/contracts/printer.py +0 -0
  366. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/contracts/render.py +0 -0
  367. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/contracts/test_result.py +0 -0
  368. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/contracts/unit_test.py +0 -0
  369. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/core/__init__.py +0 -0
  370. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/core/unit_test.py +0 -0
  371. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/entities/__init__.py +0 -0
  372. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/entities/result.py +0 -0
  373. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/enums/__init__.py +0 -0
  374. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/enums/status.py +0 -0
  375. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/exceptions/__init__.py +0 -0
  376. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/exceptions/config.py +0 -0
  377. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/exceptions/failure.py +0 -0
  378. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/exceptions/persistence.py +0 -0
  379. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/exceptions/runtime.py +0 -0
  380. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/exceptions/value.py +0 -0
  381. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/kernel.py +0 -0
  382. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/output/__init__.py +0 -0
  383. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/output/dumper.py +0 -0
  384. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/output/printer.py +0 -0
  385. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/records/__init__.py +0 -0
  386. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/records/logs.py +0 -0
  387. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/validators/__init__.py +0 -0
  388. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/validators/base_path.py +0 -0
  389. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/validators/execution_mode.py +0 -0
  390. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/validators/fail_fast.py +0 -0
  391. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/validators/folder_path.py +0 -0
  392. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/validators/module_name.py +0 -0
  393. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/validators/name_pattern.py +0 -0
  394. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/validators/pattern.py +0 -0
  395. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/validators/persistent.py +0 -0
  396. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/validators/persistent_driver.py +0 -0
  397. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/validators/throw_exception.py +0 -0
  398. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/validators/verbosity.py +0 -0
  399. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/validators/web_report.py +0 -0
  400. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/validators/workers.py +0 -0
  401. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/view/__init__.py +0 -0
  402. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/view/render.py +0 -0
  403. {orionis-0.692.0 → orionis-0.694.0}/orionis/test/view/report.stub +0 -0
  404. {orionis-0.692.0 → orionis-0.694.0}/orionis.egg-info/SOURCES.txt +0 -0
  405. {orionis-0.692.0 → orionis-0.694.0}/orionis.egg-info/dependency_links.txt +0 -0
  406. {orionis-0.692.0 → orionis-0.694.0}/orionis.egg-info/not-zip-safe +0 -0
  407. {orionis-0.692.0 → orionis-0.694.0}/orionis.egg-info/requires.txt +0 -0
  408. {orionis-0.692.0 → orionis-0.694.0}/orionis.egg-info/top_level.txt +0 -0
  409. {orionis-0.692.0 → orionis-0.694.0}/setup.cfg +0 -0
  410. {orionis-0.692.0 → orionis-0.694.0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: orionis
3
- Version: 0.692.0
3
+ Version: 0.694.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
@@ -6,7 +6,7 @@
6
6
  NAME = "orionis"
7
7
 
8
8
  # Current version of the framework
9
- VERSION = "0.692.0"
9
+ VERSION = "0.694.0"
10
10
 
11
11
  # Full name of the author or maintainer of the project
12
12
  AUTHOR = "Raul Mauricio Uñate Castro"
@@ -0,0 +1,110 @@
1
+ from typing import Any, Dict
2
+ from abc import ABC, abstractmethod
3
+
4
+ class IEnv(ABC):
5
+
6
+ @classmethod
7
+ @abstractmethod
8
+ def get(cls, key: str, default: Any = None) -> Any:
9
+ """
10
+ Retrieves the value of the specified environment variable.
11
+
12
+ Parameters
13
+ ----------
14
+ key : str
15
+ The name of the environment variable to retrieve. Must be a valid
16
+ environment variable name (uppercase, numbers, underscores).
17
+ default : Any, optional
18
+ The value to return if the environment variable is not found.
19
+ Can be any type (str, int, bool, list, etc.). Defaults to None.
20
+
21
+ Returns
22
+ -------
23
+ Any
24
+ The value of the environment variable if it exists, automatically
25
+ parsed to its appropriate Python type (str, int, float, bool, list, dict, etc.),
26
+ otherwise the default value.
27
+ """
28
+ pass
29
+
30
+ @classmethod
31
+ @abstractmethod
32
+ def set(cls, key: str, value: str, type: str = None) -> bool:
33
+ """
34
+ Sets the value of an environment variable in the .env file.
35
+
36
+ Parameters
37
+ ----------
38
+ key : str
39
+ The name of the environment variable to set. Must follow the pattern:
40
+ uppercase letters, numbers, and underscores only, starting with a letter.
41
+ Example: 'DATABASE_URL', 'MAX_CONNECTIONS', 'FEATURE_FLAGS'
42
+ value : str
43
+ The value to assign to the environment variable.
44
+ type : str, optional
45
+ Optional type hint for explicit type casting. Supported types:
46
+ - 'str': String values
47
+ - 'int': Integer values
48
+ - 'float': Floating-point values
49
+ - 'bool': Boolean values (true/false)
50
+ - 'list': List/array values
51
+ - 'dict': Dictionary/object values
52
+ - 'tuple': Tuple values
53
+ - 'set': Set values
54
+ - 'base64': Base64 encoded values
55
+ - 'path': File system path values
56
+ Defaults to None (automatic type detection).
57
+
58
+ Returns
59
+ -------
60
+ bool
61
+ True if the environment variable was set successfully, False otherwise.
62
+ """
63
+ pass
64
+
65
+ @classmethod
66
+ @abstractmethod
67
+ def unset(cls, key: str) -> bool:
68
+ """
69
+ Removes the specified environment variable from the .env file.
70
+
71
+ Parameters
72
+ ----------
73
+ key : str
74
+ The name of the environment variable to remove.
75
+
76
+ Returns
77
+ -------
78
+ bool
79
+ True if the environment variable was removed successfully, False otherwise.
80
+ """
81
+ pass
82
+
83
+ @classmethod
84
+ @abstractmethod
85
+ def all(cls) -> Dict[str, Any]:
86
+ """
87
+ Retrieves all environment variables as a dictionary.
88
+
89
+ Returns
90
+ -------
91
+ dict of str to Any
92
+ A dictionary containing all environment variables loaded by DotEnv.
93
+ """
94
+ pass
95
+
96
+ @classmethod
97
+ @abstractmethod
98
+ def reload(cls) -> bool:
99
+ """
100
+ Reload environment variables from the .env file.
101
+
102
+ This method forces a refresh of all environment variables from the .env file,
103
+ useful when the file has been modified externally.
104
+
105
+ Returns
106
+ -------
107
+ bool
108
+ True if the reload was successful, False otherwise.
109
+ """
110
+ pass
@@ -352,3 +352,45 @@ class DotEnv(metaclass=Singleton):
352
352
  # Return the original string if parsing fails
353
353
  except (ValueError, SyntaxError):
354
354
  return value_str
355
+
356
+ def reload(self) -> bool:
357
+ """
358
+ Reload environment variables from the `.env` file into the current process environment.
359
+
360
+ This method forces a refresh of all environment variables from the `.env` file,
361
+ which is useful when the file has been modified externally and the changes need to be
362
+ reflected in the running process.
363
+
364
+ Returns
365
+ -------
366
+ bool
367
+ Returns True if the environment variables were successfully reloaded from the `.env` file.
368
+ Raises OrionisEnvironmentException if an error occurs during the reload process.
369
+
370
+ Raises
371
+ ------
372
+ OrionisEnvironmentException
373
+ If an error occurs while reloading environment variables from the `.env` file.
374
+
375
+ Notes
376
+ -----
377
+ Ensures thread safety during the reload operation by acquiring a lock.
378
+ Uses the `load_dotenv` function with `override=True` to update existing environment variables.
379
+ """
380
+ try:
381
+ # Ensure thread-safe operation during the reload process
382
+ with self._lock:
383
+
384
+ # Reload environment variables from the .env file into the process environment,
385
+ # overriding any existing values in os.environ
386
+ load_dotenv(self.__resolved_path, override=True)
387
+
388
+ # Indicate successful operation
389
+ return True
390
+
391
+ except Exception as e:
392
+
393
+ # Raise a general error for any exceptions during reload
394
+ raise OrionisEnvironmentException(
395
+ f"An error occurred while reloading environment variables: {e}"
396
+ )
@@ -483,6 +483,8 @@ class EnvironmentCaster(IEnvironmentCaster):
483
483
  """
484
484
  Converts the internal value to a string representation with the integer type hint prefix.
485
485
 
486
+ Now supports conversion from string values to integers for better usability.
487
+
486
488
  Returns
487
489
  -------
488
490
  str
@@ -492,20 +494,33 @@ class EnvironmentCaster(IEnvironmentCaster):
492
494
  Raises
493
495
  ------
494
496
  OrionisEnvironmentValueError
495
- If the internal value is not an integer.
497
+ If the internal value cannot be converted to an integer.
496
498
  """
497
499
 
498
- # Check if the internal value is an integer before conversion
499
- if not isinstance(self.__value_raw, int):
500
+ # If the internal value is already an integer, use it directly
501
+ if isinstance(self.__value_raw, int):
502
+ return f"{self.__type_hint}:{str(self.__value_raw)}"
503
+
504
+ # If the internal value is a string, try to convert it to an integer
505
+ if isinstance(self.__value_raw, str):
506
+ try:
507
+ # Strip whitespace and attempt conversion
508
+ converted_value = int(self.__value_raw.strip())
509
+ return f"{self.__type_hint}:{str(converted_value)}"
510
+ except ValueError:
511
+ raise OrionisEnvironmentValueError(
512
+ f"Cannot convert string '{self.__value_raw}' to integer. Value must be a valid integer representation."
513
+ )
500
514
 
501
- # Raise an error if the value is not an integer
515
+ # For other types, try direct conversion
516
+ try:
517
+ converted_value = int(self.__value_raw)
518
+ return f"{self.__type_hint}:{str(converted_value)}"
519
+ except (ValueError, TypeError):
502
520
  raise OrionisEnvironmentValueError(
503
- f"Value must be an integer to convert to int, got {type(self.__value_raw).__name__} instead."
521
+ f"Value must be convertible to integer, got {type(self.__value_raw).__name__} with value '{self.__value_raw}'."
504
522
  )
505
523
 
506
- # Return the formatted string with type hint and integer value
507
- return f"{self.__type_hint}:{str(self.__value_raw)}"
508
-
509
524
  def __parseFloat(self):
510
525
  """
511
526
  Convert the internal raw value to a float.
@@ -539,6 +554,8 @@ class EnvironmentCaster(IEnvironmentCaster):
539
554
  """
540
555
  Converts the internal value to a string representation with the float type hint prefix.
541
556
 
557
+ Now supports conversion from string values to floats for better usability.
558
+
542
559
  Returns
543
560
  -------
544
561
  str
@@ -548,20 +565,33 @@ class EnvironmentCaster(IEnvironmentCaster):
548
565
  Raises
549
566
  ------
550
567
  OrionisEnvironmentValueError
551
- If the internal value is not a float.
568
+ If the internal value cannot be converted to a float.
552
569
  """
553
570
 
554
- # Ensure the internal value is a float before conversion
555
- if not isinstance(self.__value_raw, float):
571
+ # If the internal value is already a float, use it directly
572
+ if isinstance(self.__value_raw, float):
573
+ return f"{self.__type_hint}:{str(self.__value_raw)}"
574
+
575
+ # If the internal value is a string, try to convert it to a float
576
+ if isinstance(self.__value_raw, str):
577
+ try:
578
+ # Strip whitespace and attempt conversion
579
+ converted_value = float(self.__value_raw.strip())
580
+ return f"{self.__type_hint}:{str(converted_value)}"
581
+ except ValueError:
582
+ raise OrionisEnvironmentValueError(
583
+ f"Cannot convert string '{self.__value_raw}' to float. Value must be a valid floating-point representation."
584
+ )
556
585
 
557
- # Raise an error if the value is not a float
586
+ # For other types (like int), try direct conversion
587
+ try:
588
+ converted_value = float(self.__value_raw)
589
+ return f"{self.__type_hint}:{str(converted_value)}"
590
+ except (ValueError, TypeError):
558
591
  raise OrionisEnvironmentValueError(
559
- f"Value must be a float to convert to float, got {type(self.__value_raw).__name__} instead."
592
+ f"Value must be convertible to float, got {type(self.__value_raw).__name__} with value '{self.__value_raw}'."
560
593
  )
561
594
 
562
- # Return the formatted string with type hint and float value
563
- return f"{self.__type_hint}:{str(self.__value_raw)}"
564
-
565
595
  def __parseBool(self):
566
596
  """
567
597
  Convert the internal raw value to a boolean.
@@ -601,6 +631,8 @@ class EnvironmentCaster(IEnvironmentCaster):
601
631
  """
602
632
  Convert the internal value to a string representation with the boolean type hint prefix.
603
633
 
634
+ Now supports conversion from string values to booleans for better usability.
635
+
604
636
  Returns
605
637
  -------
606
638
  str
@@ -610,20 +642,37 @@ class EnvironmentCaster(IEnvironmentCaster):
610
642
  Raises
611
643
  ------
612
644
  OrionisEnvironmentValueError
613
- If the internal value is not a boolean.
645
+ If the internal value cannot be converted to a boolean.
614
646
  """
615
647
 
616
- # Ensure the internal value is a boolean before conversion
617
- if not isinstance(self.__value_raw, bool):
648
+ # If the internal value is already a boolean, use it directly
649
+ if isinstance(self.__value_raw, bool):
650
+ return f"{self.__type_hint}:{str(self.__value_raw).lower()}"
618
651
 
619
- # Raise an error if the value is not a boolean
652
+ # If the internal value is a string, try to convert it to a boolean
653
+ if isinstance(self.__value_raw, str):
654
+ # Strip whitespace and check common boolean representations
655
+ str_value = self.__value_raw.strip().lower()
656
+
657
+ if str_value in ('true', '1', 'yes', 'on', 'enabled'):
658
+ return f"{self.__type_hint}:true"
659
+ elif str_value in ('false', '0', 'no', 'off', 'disabled'):
660
+ return f"{self.__type_hint}:false"
661
+ else:
662
+ raise OrionisEnvironmentValueError(
663
+ f"Cannot convert string '{self.__value_raw}' to boolean. "
664
+ f"Valid representations: true/false, 1/0, yes/no, on/off, enabled/disabled."
665
+ )
666
+
667
+ # For other types, try direct conversion using Python's truthiness
668
+ try:
669
+ boolean_value = bool(self.__value_raw)
670
+ return f"{self.__type_hint}:{str(boolean_value).lower()}"
671
+ except Exception:
620
672
  raise OrionisEnvironmentValueError(
621
- f"Value must be a boolean to convert to bool, got {type(self.__value_raw).__name__} instead."
673
+ f"Value must be convertible to boolean, got {type(self.__value_raw).__name__} with value '{self.__value_raw}'."
622
674
  )
623
675
 
624
- # Return the formatted string with type hint and boolean value in lowercase
625
- return f"{self.__type_hint}:{str(self.__value_raw).lower()}"
626
-
627
676
  def __parseList(self):
628
677
  """
629
678
  Parses the internal raw value and converts it to a Python list.
@@ -0,0 +1,189 @@
1
+ from orionis.services.environment.contracts.env import IEnv
2
+ from orionis.services.environment.core.dot_env import DotEnv
3
+ from typing import Any, Dict
4
+
5
+ class Env(IEnv):
6
+
7
+ # Shared singleton instance for DotEnv
8
+ _dotenv_instance = None
9
+
10
+ @classmethod
11
+ def _getSingletonInstance(cls):
12
+ """
13
+ Retrieve the shared DotEnv singleton instance.
14
+
15
+ This method ensures that only one instance of DotEnv is created and reused
16
+ throughout the Env class. If the instance does not exist, it will be created.
17
+
18
+ Returns
19
+ -------
20
+ DotEnv
21
+ The shared DotEnv instance used for environment variable operations.
22
+ """
23
+
24
+ # Check if the singleton instance has already been created
25
+ if cls._dotenv_instance is None:
26
+ # Create a new DotEnv instance if it does not exist
27
+ cls._dotenv_instance = DotEnv()
28
+ # Return the existing or newly created DotEnv instance
29
+ return cls._dotenv_instance
30
+
31
+ @classmethod
32
+ def get(cls, key: str, default: Any = None) -> Any:
33
+ """
34
+ Retrieve the value of an environment variable by its key.
35
+
36
+ Parameters
37
+ ----------
38
+ key : str
39
+ The name of the environment variable to retrieve.
40
+ default : Any, optional
41
+ The value to return if the environment variable is not found. Defaults to None.
42
+
43
+ Returns
44
+ -------
45
+ Any
46
+ The value of the environment variable if it exists, otherwise the provided default value.
47
+ """
48
+
49
+ # Get the shared DotEnv singleton instance to access environment variables
50
+ dotenv = cls._getSingletonInstance()
51
+
52
+ # Return the value for the specified key, or the default if the key is not present
53
+ return dotenv.get(key, default)
54
+
55
+ @classmethod
56
+ def set(cls, key: str, value: str, type: str = None) -> bool:
57
+ """
58
+ Set or update an environment variable in the .env file.
59
+
60
+ Parameters
61
+ ----------
62
+ key : str
63
+ The name of the environment variable to set or update.
64
+ value : str
65
+ The value to assign to the environment variable.
66
+ type : str, optional
67
+ Type hint for the variable. Supported types include 'str', 'int', 'float',
68
+ 'bool', 'list', 'dict', 'tuple', 'set', 'base64', and 'path'. Defaults to None.
69
+
70
+ Returns
71
+ -------
72
+ bool
73
+ Returns True if the environment variable was set or updated successfully,
74
+ otherwise returns False.
75
+ """
76
+
77
+ # Retrieve the shared DotEnv singleton instance to access environment variable operations
78
+ dotenv = cls._getSingletonInstance()
79
+
80
+ # Set the environment variable with the specified key, value, and optional type hint
81
+ return dotenv.set(key, value, type)
82
+
83
+ @classmethod
84
+ def unset(cls, key: str) -> bool:
85
+ """
86
+ Remove an environment variable from the .env file.
87
+
88
+ Parameters
89
+ ----------
90
+ key : str
91
+ The name of the environment variable to remove.
92
+
93
+ Returns
94
+ -------
95
+ bool
96
+ True if the environment variable was removed successfully, False otherwise.
97
+ """
98
+
99
+ # Retrieve the shared DotEnv singleton instance to access environment variable operations
100
+ dotenv = cls._getSingletonInstance()
101
+
102
+ # Attempt to remove the environment variable with the specified key
103
+ return dotenv.unset(key)
104
+
105
+ @classmethod
106
+ def all(cls) -> Dict[str, Any]:
107
+ """
108
+ Retrieve all environment variables as a dictionary.
109
+
110
+ This method accesses the shared DotEnv singleton instance and returns all loaded
111
+ environment variables in a dictionary format. It is useful for inspecting the
112
+ current environment configuration.
113
+
114
+ Returns
115
+ -------
116
+ dict of str to Any
117
+ A dictionary containing all environment variables loaded by DotEnv.
118
+ """
119
+
120
+ # Retrieve the shared DotEnv singleton instance to access environment variables
121
+ dotenv = cls._getSingletonInstance()
122
+
123
+ # Return all environment variables as a dictionary
124
+ return dotenv.all()
125
+
126
+ @staticmethod
127
+ def isVirtual() -> bool:
128
+ """
129
+ Check if the current Python interpreter is running inside a virtual environment.
130
+
131
+ This method detects whether the Python process is executing within a virtual environment
132
+ by inspecting environment variables, configuration files, and interpreter prefixes.
133
+
134
+ Returns
135
+ -------
136
+ bool
137
+ Returns True if the interpreter is running inside a virtual environment, otherwise False.
138
+ """
139
+
140
+ import sys
141
+ import os
142
+ from pathlib import Path
143
+
144
+ # Check for the 'VIRTUAL_ENV' environment variable, which is set by virtualenv
145
+ if 'VIRTUAL_ENV' in os.environ:
146
+ return True
147
+
148
+ # Search for 'pyvenv.cfg' in the parent directories of the Python executable (used by venv)
149
+ executable = Path(sys.executable).resolve()
150
+ for parent in executable.parents:
151
+
152
+ # If 'pyvenv.cfg' exists in any parent directory, it's likely a venv
153
+ if (parent / 'pyvenv.cfg').exists():
154
+ return True
155
+
156
+ # Compare sys.prefix and sys.base_prefix to detect venv or virtualenv usage
157
+ if hasattr(sys, 'base_prefix') and sys.prefix != sys.base_prefix:
158
+ return True
159
+
160
+ # If none of the checks indicate a virtual environment, return False
161
+ return False
162
+
163
+ @classmethod
164
+ def reload(cls) -> bool:
165
+ """
166
+ Reload environment variables from the .env file.
167
+
168
+ This method resets the DotEnv singleton instance and reloads all environment variables
169
+ from the .env file. It is useful when the .env file has been modified externally and
170
+ the latest values need to be reflected in the application.
171
+
172
+ Returns
173
+ -------
174
+ bool
175
+ True if the environment variables were reloaded successfully, False otherwise.
176
+ """
177
+
178
+ # Reset the singleton instance to ensure a fresh reload of environment variables
179
+ cls._dotenv_instance = None
180
+
181
+ # Create a new DotEnv instance and load the .env file
182
+ dotenv = cls._getSingletonInstance()
183
+
184
+ # Attempt to reload environment variables from the .env file
185
+ try:
186
+ return dotenv.reload()
187
+ except Exception:
188
+ # Return False if an error occurs during reload
189
+ return False
@@ -1,9 +1,9 @@
1
1
  from typing import Any
2
- from orionis.services.environment.core.dot_env import DotEnv
2
+ from orionis.services.environment.env import Env
3
3
 
4
4
  def env(key: str, default: Any = None) -> Any:
5
5
  """
6
- Retrieves the value of an environment variable.
6
+ Retrieve the value of an environment variable using the Env facade.
7
7
 
8
8
  Parameters
9
9
  ----------
@@ -18,5 +18,5 @@ def env(key: str, default: Any = None) -> Any:
18
18
  The value of the environment variable if it exists, otherwise the specified default value.
19
19
  """
20
20
 
21
- # Instantiate DotEnv and retrieve the environment variable by key
22
- return DotEnv().get(key, default)
21
+ # Retrieve the environment variable using the Env singleton instance.
22
+ return Env.get(key, default)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: orionis
3
- Version: 0.692.0
3
+ Version: 0.694.0
4
4
  Summary: Orionis Framework – Elegant, Fast, and Powerful.
5
5
  Home-page: https://github.com/orionis-framework/framework
6
6
  Author: Raul Mauricio Uñate Castro
@@ -1,77 +0,0 @@
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
- Retrieves the value of the specified environment variable.
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 environment variable is not found. Defaults to None.
18
-
19
- Returns
20
- -------
21
- Any
22
- The value of the environment variable if it exists, 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
- Sets the value of 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'). Defaults to None.
40
-
41
- Returns
42
- -------
43
- bool
44
- True if the environment variable was set successfully, False otherwise.
45
- """
46
- pass
47
-
48
- @staticmethod
49
- @abstractmethod
50
- def unset(key: str) -> bool:
51
- """
52
- Removes 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 environment variable was removed successfully, False otherwise.
63
- """
64
- pass
65
-
66
- @staticmethod
67
- @abstractmethod
68
- def all() -> Dict[str, Any]:
69
- """
70
- Retrieves 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