orionis 0.443.0__tar.gz → 0.444.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 (514) hide show
  1. {orionis-0.443.0/orionis.egg-info → orionis-0.444.0}/PKG-INFO +1 -1
  2. orionis-0.444.0/orionis/console/args/argument.py +343 -0
  3. orionis-0.444.0/orionis/console/args/enums/actions.py +43 -0
  4. orionis-0.444.0/orionis/console/commands/version.py +46 -0
  5. orionis-0.444.0/orionis/foundation/providers/testing_provider.py +82 -0
  6. {orionis-0.443.0 → orionis-0.444.0}/orionis/metadata/framework.py +1 -1
  7. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/core/unit_test.py +134 -5
  8. orionis-0.444.0/orionis/test/kernel.py +79 -0
  9. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/validators/workers.py +2 -2
  10. {orionis-0.443.0 → orionis-0.444.0/orionis.egg-info}/PKG-INFO +1 -1
  11. {orionis-0.443.0 → orionis-0.444.0}/orionis.egg-info/SOURCES.txt +5 -2
  12. orionis-0.444.0/tests/testing/view/__init__.py +0 -0
  13. orionis-0.443.0/orionis/console/commands/version.py +0 -31
  14. orionis-0.443.0/orionis/foundation/providers/testing_provider.py +0 -45
  15. orionis-0.443.0/orionis/test/kernel.py +0 -132
  16. {orionis-0.443.0 → orionis-0.444.0}/LICENCE +0 -0
  17. {orionis-0.443.0 → orionis-0.444.0}/MANIFEST.in +0 -0
  18. {orionis-0.443.0 → orionis-0.444.0}/README.md +0 -0
  19. {orionis-0.443.0 → orionis-0.444.0}/orionis/__init__.py +0 -0
  20. {orionis-0.443.0 → orionis-0.444.0}/orionis/app.py +0 -0
  21. {orionis-0.443.0 → orionis-0.444.0}/orionis/console/__init__.py +0 -0
  22. {orionis-0.443.0/orionis/console/arguments → orionis-0.444.0/orionis/console/args}/__init__.py +0 -0
  23. {orionis-0.443.0/orionis/console/base → orionis-0.444.0/orionis/console/args/enums}/__init__.py +0 -0
  24. {orionis-0.443.0/orionis/console/arguments → orionis-0.444.0/orionis/console/args}/parser.py +0 -0
  25. {orionis-0.443.0/orionis/console/base/contracts → orionis-0.444.0/orionis/console/base}/__init__.py +0 -0
  26. {orionis-0.443.0 → orionis-0.444.0}/orionis/console/base/command.py +0 -0
  27. {orionis-0.443.0/orionis/console/dumper → orionis-0.444.0/orionis/console/base/contracts}/__init__.py +0 -0
  28. {orionis-0.443.0 → orionis-0.444.0}/orionis/console/base/contracts/command.py +0 -0
  29. {orionis-0.443.0 → orionis-0.444.0}/orionis/console/contracts/kernel.py +0 -0
  30. {orionis-0.443.0 → orionis-0.444.0}/orionis/console/core/reactor.py +0 -0
  31. {orionis-0.443.0/orionis/console/dumper/contracts → orionis-0.444.0/orionis/console/dumper}/__init__.py +0 -0
  32. {orionis-0.443.0/orionis/console/dynamic → orionis-0.444.0/orionis/console/dumper/contracts}/__init__.py +0 -0
  33. {orionis-0.443.0 → orionis-0.444.0}/orionis/console/dumper/contracts/dump.py +0 -0
  34. {orionis-0.443.0 → orionis-0.444.0}/orionis/console/dumper/dump.py +0 -0
  35. {orionis-0.443.0/orionis/console/dynamic/contracts → orionis-0.444.0/orionis/console/dynamic}/__init__.py +0 -0
  36. {orionis-0.443.0/orionis/console/output → orionis-0.444.0/orionis/console/dynamic/contracts}/__init__.py +0 -0
  37. {orionis-0.443.0 → orionis-0.444.0}/orionis/console/dynamic/contracts/progress_bar.py +0 -0
  38. {orionis-0.443.0 → orionis-0.444.0}/orionis/console/dynamic/progress_bar.py +0 -0
  39. {orionis-0.443.0 → orionis-0.444.0}/orionis/console/exceptions/__init__.py +0 -0
  40. {orionis-0.443.0 → orionis-0.444.0}/orionis/console/exceptions/cli_exception.py +0 -0
  41. {orionis-0.443.0 → orionis-0.444.0}/orionis/console/exceptions/cli_orionis_value_error.py +0 -0
  42. {orionis-0.443.0 → orionis-0.444.0}/orionis/console/exceptions/cli_runtime_error.py +0 -0
  43. {orionis-0.443.0 → orionis-0.444.0}/orionis/console/exceptions/cli_schedule_exception.py +0 -0
  44. {orionis-0.443.0 → orionis-0.444.0}/orionis/console/kernel.py +0 -0
  45. {orionis-0.443.0/orionis/console/output/contracts → orionis-0.444.0/orionis/console/output}/__init__.py +0 -0
  46. {orionis-0.443.0 → orionis-0.444.0}/orionis/console/output/console.py +0 -0
  47. {orionis-0.443.0/orionis/container → orionis-0.444.0/orionis/console/output/contracts}/__init__.py +0 -0
  48. {orionis-0.443.0 → orionis-0.444.0}/orionis/console/output/contracts/console.py +0 -0
  49. {orionis-0.443.0 → orionis-0.444.0}/orionis/console/output/enums/__init__.py +0 -0
  50. {orionis-0.443.0 → orionis-0.444.0}/orionis/console/output/enums/styles.py +0 -0
  51. {orionis-0.443.0/orionis/container/context → orionis-0.444.0/orionis/container}/__init__.py +0 -0
  52. {orionis-0.443.0 → orionis-0.444.0}/orionis/container/container.py +0 -0
  53. {orionis-0.443.0/orionis/container/contracts → orionis-0.444.0/orionis/container/context}/__init__.py +0 -0
  54. {orionis-0.443.0 → orionis-0.444.0}/orionis/container/context/manager.py +0 -0
  55. {orionis-0.443.0 → orionis-0.444.0}/orionis/container/context/scope.py +0 -0
  56. {orionis-0.443.0/orionis/container/entities → orionis-0.444.0/orionis/container/contracts}/__init__.py +0 -0
  57. {orionis-0.443.0 → orionis-0.444.0}/orionis/container/contracts/container.py +0 -0
  58. {orionis-0.443.0 → orionis-0.444.0}/orionis/container/contracts/resolver.py +0 -0
  59. {orionis-0.443.0 → orionis-0.444.0}/orionis/container/contracts/service_provider.py +0 -0
  60. {orionis-0.443.0/orionis/container/facades → orionis-0.444.0/orionis/container/entities}/__init__.py +0 -0
  61. {orionis-0.443.0 → orionis-0.444.0}/orionis/container/entities/binding.py +0 -0
  62. {orionis-0.443.0 → orionis-0.444.0}/orionis/container/enums/__init__.py +0 -0
  63. {orionis-0.443.0 → orionis-0.444.0}/orionis/container/enums/lifetimes.py +0 -0
  64. {orionis-0.443.0 → orionis-0.444.0}/orionis/container/exceptions/__init__.py +0 -0
  65. {orionis-0.443.0 → orionis-0.444.0}/orionis/container/exceptions/attribute.py +0 -0
  66. {orionis-0.443.0 → orionis-0.444.0}/orionis/container/exceptions/exception.py +0 -0
  67. {orionis-0.443.0 → orionis-0.444.0}/orionis/container/exceptions/type.py +0 -0
  68. {orionis-0.443.0 → orionis-0.444.0}/orionis/container/exceptions/value.py +0 -0
  69. {orionis-0.443.0/orionis/container/providers → orionis-0.444.0/orionis/container/facades}/__init__.py +0 -0
  70. {orionis-0.443.0 → orionis-0.444.0}/orionis/container/facades/facade.py +0 -0
  71. {orionis-0.443.0/orionis/container/resolver → orionis-0.444.0/orionis/container/providers}/__init__.py +0 -0
  72. {orionis-0.443.0 → orionis-0.444.0}/orionis/container/providers/service_provider.py +0 -0
  73. {orionis-0.443.0/orionis/foundation → orionis-0.444.0/orionis/container/resolver}/__init__.py +0 -0
  74. {orionis-0.443.0 → orionis-0.444.0}/orionis/container/resolver/resolver.py +0 -0
  75. {orionis-0.443.0 → orionis-0.444.0}/orionis/container/validators/__init__.py +0 -0
  76. {orionis-0.443.0 → orionis-0.444.0}/orionis/container/validators/implements.py +0 -0
  77. {orionis-0.443.0 → orionis-0.444.0}/orionis/container/validators/is_abstract_class.py +0 -0
  78. {orionis-0.443.0 → orionis-0.444.0}/orionis/container/validators/is_callable.py +0 -0
  79. {orionis-0.443.0 → orionis-0.444.0}/orionis/container/validators/is_concrete_class.py +0 -0
  80. {orionis-0.443.0 → orionis-0.444.0}/orionis/container/validators/is_instance.py +0 -0
  81. {orionis-0.443.0 → orionis-0.444.0}/orionis/container/validators/is_not_subclass.py +0 -0
  82. {orionis-0.443.0 → orionis-0.444.0}/orionis/container/validators/is_subclass.py +0 -0
  83. {orionis-0.443.0 → orionis-0.444.0}/orionis/container/validators/is_valid_alias.py +0 -0
  84. {orionis-0.443.0 → orionis-0.444.0}/orionis/container/validators/lifetime.py +0 -0
  85. {orionis-0.443.0/orionis/foundation/config → orionis-0.444.0/orionis/foundation}/__init__.py +0 -0
  86. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/application.py +0 -0
  87. {orionis-0.443.0/orionis/foundation/config/app → orionis-0.444.0/orionis/foundation/config}/__init__.py +0 -0
  88. {orionis-0.443.0/orionis/foundation/config/app/entities → orionis-0.444.0/orionis/foundation/config/app}/__init__.py +0 -0
  89. {orionis-0.443.0/orionis/foundation/config/auth → orionis-0.444.0/orionis/foundation/config/app/entities}/__init__.py +0 -0
  90. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/app/entities/app.py +0 -0
  91. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/app/enums/__init__.py +0 -0
  92. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/app/enums/ciphers.py +0 -0
  93. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/app/enums/environments.py +0 -0
  94. {orionis-0.443.0/orionis/foundation/config/auth/entities → orionis-0.444.0/orionis/foundation/config/auth}/__init__.py +0 -0
  95. {orionis-0.443.0/orionis/foundation/config/cache → orionis-0.444.0/orionis/foundation/config/auth/entities}/__init__.py +0 -0
  96. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/auth/entities/auth.py +0 -0
  97. {orionis-0.443.0/orionis/foundation/config/cache/entities → orionis-0.444.0/orionis/foundation/config/cache}/__init__.py +0 -0
  98. {orionis-0.443.0/orionis/foundation/config/cors → orionis-0.444.0/orionis/foundation/config/cache/entities}/__init__.py +0 -0
  99. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/cache/entities/cache.py +0 -0
  100. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/cache/entities/file.py +0 -0
  101. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/cache/entities/stores.py +0 -0
  102. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/cache/enums/__init__.py +0 -0
  103. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/cache/enums/drivers.py +0 -0
  104. {orionis-0.443.0/orionis/foundation/config/cors/entities → orionis-0.444.0/orionis/foundation/config/cors}/__init__.py +0 -0
  105. {orionis-0.443.0/orionis/foundation/config/database → orionis-0.444.0/orionis/foundation/config/cors/entities}/__init__.py +0 -0
  106. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/cors/entities/cors.py +0 -0
  107. {orionis-0.443.0/orionis/foundation/config/database/entities → orionis-0.444.0/orionis/foundation/config/database}/__init__.py +0 -0
  108. {orionis-0.443.0/orionis/foundation/config/filesystems → orionis-0.444.0/orionis/foundation/config/database/entities}/__init__.py +0 -0
  109. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/database/entities/connections.py +0 -0
  110. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/database/entities/database.py +0 -0
  111. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/database/entities/mysql.py +0 -0
  112. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/database/entities/oracle.py +0 -0
  113. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/database/entities/pgsql.py +0 -0
  114. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/database/entities/sqlite.py +0 -0
  115. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/database/enums/__init__.py +0 -0
  116. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/database/enums/mysql_charsets.py +0 -0
  117. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/database/enums/mysql_collations.py +0 -0
  118. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/database/enums/mysql_engine.py +0 -0
  119. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/database/enums/oracle_encoding.py +0 -0
  120. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/database/enums/oracle_nencoding.py +0 -0
  121. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/database/enums/pgsql_charsets.py +0 -0
  122. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/database/enums/pgsql_collations.py +0 -0
  123. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/database/enums/pgsql_mode.py +0 -0
  124. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/database/enums/sqlite_foreign_key.py +0 -0
  125. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/database/enums/sqlite_journal.py +0 -0
  126. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/database/enums/sqlite_synchronous.py +0 -0
  127. {orionis-0.443.0/orionis/foundation/config/filesystems/entitites → orionis-0.444.0/orionis/foundation/config/filesystems}/__init__.py +0 -0
  128. {orionis-0.443.0/orionis/foundation/config/logging → orionis-0.444.0/orionis/foundation/config/filesystems/entitites}/__init__.py +0 -0
  129. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/filesystems/entitites/aws.py +0 -0
  130. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/filesystems/entitites/disks.py +0 -0
  131. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/filesystems/entitites/filesystems.py +0 -0
  132. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/filesystems/entitites/local.py +0 -0
  133. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/filesystems/entitites/public.py +0 -0
  134. {orionis-0.443.0/orionis/foundation/config/logging/entities → orionis-0.444.0/orionis/foundation/config/logging}/__init__.py +0 -0
  135. {orionis-0.443.0/orionis/foundation/config/mail → orionis-0.444.0/orionis/foundation/config/logging/entities}/__init__.py +0 -0
  136. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/logging/entities/channels.py +0 -0
  137. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/logging/entities/chunked.py +0 -0
  138. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/logging/entities/daily.py +0 -0
  139. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/logging/entities/hourly.py +0 -0
  140. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/logging/entities/logging.py +0 -0
  141. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/logging/entities/monthly.py +0 -0
  142. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/logging/entities/stack.py +0 -0
  143. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/logging/entities/weekly.py +0 -0
  144. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/logging/enums/__init__.py +0 -0
  145. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/logging/enums/levels.py +0 -0
  146. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/logging/validators/__init__.py +0 -0
  147. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/logging/validators/level.py +0 -0
  148. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/logging/validators/path.py +0 -0
  149. {orionis-0.443.0/orionis/foundation/config/mail/entities → orionis-0.444.0/orionis/foundation/config/mail}/__init__.py +0 -0
  150. {orionis-0.443.0/orionis/foundation/config/queue → orionis-0.444.0/orionis/foundation/config/mail/entities}/__init__.py +0 -0
  151. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/mail/entities/file.py +0 -0
  152. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/mail/entities/mail.py +0 -0
  153. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/mail/entities/mailers.py +0 -0
  154. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/mail/entities/smtp.py +0 -0
  155. {orionis-0.443.0/orionis/foundation/config/queue/entities → orionis-0.444.0/orionis/foundation/config/queue}/__init__.py +0 -0
  156. {orionis-0.443.0/orionis/foundation/config/roots → orionis-0.444.0/orionis/foundation/config/queue/entities}/__init__.py +0 -0
  157. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/queue/entities/brokers.py +0 -0
  158. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/queue/entities/database.py +0 -0
  159. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/queue/entities/queue.py +0 -0
  160. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/queue/enums/__init__.py +0 -0
  161. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/queue/enums/strategy.py +0 -0
  162. {orionis-0.443.0/orionis/foundation/config/session → orionis-0.444.0/orionis/foundation/config/roots}/__init__.py +0 -0
  163. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/roots/paths.py +0 -0
  164. {orionis-0.443.0/orionis/foundation/config/session/entities → orionis-0.444.0/orionis/foundation/config/session}/__init__.py +0 -0
  165. {orionis-0.443.0/orionis/foundation/config/session/helpers → orionis-0.444.0/orionis/foundation/config/session/entities}/__init__.py +0 -0
  166. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/session/entities/session.py +0 -0
  167. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/session/enums/__init__.py +0 -0
  168. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/session/enums/same_site_policy.py +0 -0
  169. {orionis-0.443.0/orionis/foundation/config/testing → orionis-0.444.0/orionis/foundation/config/session/helpers}/__init__.py +0 -0
  170. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/session/helpers/secret_key.py +0 -0
  171. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/startup.py +0 -0
  172. {orionis-0.443.0/orionis/foundation/config/testing/entities → orionis-0.444.0/orionis/foundation/config/testing}/__init__.py +0 -0
  173. {orionis-0.443.0/orionis/foundation/contracts → orionis-0.444.0/orionis/foundation/config/testing/entities}/__init__.py +0 -0
  174. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/testing/entities/testing.py +0 -0
  175. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/testing/enums/__init__.py +0 -0
  176. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/testing/enums/drivers.py +0 -0
  177. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/testing/enums/mode.py +0 -0
  178. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/config/testing/enums/verbosity.py +0 -0
  179. {orionis-0.443.0/orionis/foundation/providers → orionis-0.444.0/orionis/foundation/contracts}/__init__.py +0 -0
  180. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/contracts/application.py +0 -0
  181. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/contracts/config.py +0 -0
  182. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/exceptions/__init__.py +0 -0
  183. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/exceptions/integrity.py +0 -0
  184. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/exceptions/runtime.py +0 -0
  185. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/exceptions/type.py +0 -0
  186. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/exceptions/value.py +0 -0
  187. {orionis-0.443.0/orionis/metadata → orionis-0.444.0/orionis/foundation/providers}/__init__.py +0 -0
  188. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/providers/console_provider.py +0 -0
  189. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/providers/dumper_provider.py +0 -0
  190. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/providers/inspirational_provider.py +0 -0
  191. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/providers/logger_provider.py +0 -0
  192. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/providers/path_resolver_provider.py +0 -0
  193. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/providers/progress_bar_provider.py +0 -0
  194. {orionis-0.443.0 → orionis-0.444.0}/orionis/foundation/providers/workers_provider.py +0 -0
  195. {orionis-0.443.0/orionis/services → orionis-0.444.0/orionis/metadata}/__init__.py +0 -0
  196. {orionis-0.443.0 → orionis-0.444.0}/orionis/metadata/package.py +0 -0
  197. {orionis-0.443.0/orionis/services/asynchrony → orionis-0.444.0/orionis/services}/__init__.py +0 -0
  198. {orionis-0.443.0/orionis/services/asynchrony/contracts → orionis-0.444.0/orionis/services/asynchrony}/__init__.py +0 -0
  199. {orionis-0.443.0/orionis/services/environment → orionis-0.444.0/orionis/services/asynchrony/contracts}/__init__.py +0 -0
  200. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/asynchrony/contracts/coroutines.py +0 -0
  201. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/asynchrony/coroutines.py +0 -0
  202. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/asynchrony/exceptions/__init__.py +0 -0
  203. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/asynchrony/exceptions/exception.py +0 -0
  204. {orionis-0.443.0/orionis/services/environment/contracts → orionis-0.444.0/orionis/services/environment}/__init__.py +0 -0
  205. {orionis-0.443.0/orionis/services/environment/core → orionis-0.444.0/orionis/services/environment/contracts}/__init__.py +0 -0
  206. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/environment/contracts/caster.py +0 -0
  207. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/environment/contracts/env.py +0 -0
  208. {orionis-0.443.0/orionis/services/environment/dynamic → orionis-0.444.0/orionis/services/environment/core}/__init__.py +0 -0
  209. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/environment/core/dot_env.py +0 -0
  210. {orionis-0.443.0/orionis/services/environment/helpers → orionis-0.444.0/orionis/services/environment/dynamic}/__init__.py +0 -0
  211. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/environment/dynamic/caster.py +0 -0
  212. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/environment/enums/__init__.py +0 -0
  213. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/environment/enums/value_type.py +0 -0
  214. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/environment/env.py +0 -0
  215. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/environment/exceptions/__init__.py +0 -0
  216. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/environment/exceptions/exception.py +0 -0
  217. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/environment/exceptions/value.py +0 -0
  218. {orionis-0.443.0/orionis/services/environment/key → orionis-0.444.0/orionis/services/environment/helpers}/__init__.py +0 -0
  219. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/environment/helpers/functions.py +0 -0
  220. {orionis-0.443.0/orionis/services/inspirational → orionis-0.444.0/orionis/services/environment/key}/__init__.py +0 -0
  221. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/environment/key/key_generator.py +0 -0
  222. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/environment/validators/__init__.py +0 -0
  223. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/environment/validators/key_name.py +0 -0
  224. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/environment/validators/types.py +0 -0
  225. {orionis-0.443.0/orionis/services/introspection → orionis-0.444.0/orionis/services/inspirational}/__init__.py +0 -0
  226. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/inspirational/contracts/inspire.py +0 -0
  227. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/inspirational/inspire.py +0 -0
  228. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/inspirational/quotes.py +0 -0
  229. {orionis-0.443.0/orionis/services/introspection/abstract → orionis-0.444.0/orionis/services/introspection}/__init__.py +0 -0
  230. {orionis-0.443.0/orionis/services/introspection/abstract/contracts → orionis-0.444.0/orionis/services/introspection/abstract}/__init__.py +0 -0
  231. {orionis-0.443.0/orionis/services/introspection/callables → orionis-0.444.0/orionis/services/introspection/abstract/contracts}/__init__.py +0 -0
  232. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/introspection/abstract/contracts/reflection.py +0 -0
  233. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/introspection/abstract/reflection.py +0 -0
  234. {orionis-0.443.0/orionis/services/introspection/callables/contracts → orionis-0.444.0/orionis/services/introspection/callables}/__init__.py +0 -0
  235. {orionis-0.443.0/orionis/services/introspection/concretes → orionis-0.444.0/orionis/services/introspection/callables/contracts}/__init__.py +0 -0
  236. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/introspection/callables/contracts/reflection.py +0 -0
  237. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/introspection/callables/reflection.py +0 -0
  238. {orionis-0.443.0/orionis/services/introspection/concretes/contracts → orionis-0.444.0/orionis/services/introspection/concretes}/__init__.py +0 -0
  239. {orionis-0.443.0/orionis/services/introspection/dependencies → orionis-0.444.0/orionis/services/introspection/concretes/contracts}/__init__.py +0 -0
  240. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/introspection/concretes/contracts/reflection.py +0 -0
  241. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/introspection/concretes/reflection.py +0 -0
  242. {orionis-0.443.0/orionis/services/introspection/dependencies/contracts → orionis-0.444.0/orionis/services/introspection/dependencies}/__init__.py +0 -0
  243. {orionis-0.443.0/orionis/services/introspection/dependencies/entities → orionis-0.444.0/orionis/services/introspection/dependencies/contracts}/__init__.py +0 -0
  244. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/introspection/dependencies/contracts/reflection.py +0 -0
  245. {orionis-0.443.0/orionis/services/introspection/instances → orionis-0.444.0/orionis/services/introspection/dependencies/entities}/__init__.py +0 -0
  246. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/introspection/dependencies/entities/callable_dependencies.py +0 -0
  247. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/introspection/dependencies/entities/class_dependencies.py +0 -0
  248. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/introspection/dependencies/entities/known_dependencies.py +0 -0
  249. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/introspection/dependencies/entities/method_dependencies.py +0 -0
  250. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/introspection/dependencies/reflection.py +0 -0
  251. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/introspection/exceptions/__init__.py +0 -0
  252. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/introspection/exceptions/attribute.py +0 -0
  253. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/introspection/exceptions/type.py +0 -0
  254. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/introspection/exceptions/value.py +0 -0
  255. {orionis-0.443.0/orionis/services/introspection/instances/contracts → orionis-0.444.0/orionis/services/introspection/instances}/__init__.py +0 -0
  256. {orionis-0.443.0/orionis/services/introspection/modules → orionis-0.444.0/orionis/services/introspection/instances/contracts}/__init__.py +0 -0
  257. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/introspection/instances/contracts/reflection.py +0 -0
  258. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/introspection/instances/reflection.py +0 -0
  259. {orionis-0.443.0/orionis/services/introspection/modules/contracts → orionis-0.444.0/orionis/services/introspection/modules}/__init__.py +0 -0
  260. {orionis-0.443.0/orionis/services/introspection/objects → orionis-0.444.0/orionis/services/introspection/modules/contracts}/__init__.py +0 -0
  261. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/introspection/modules/contracts/reflection.py +0 -0
  262. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/introspection/modules/reflection.py +0 -0
  263. {orionis-0.443.0/orionis/services/log → orionis-0.444.0/orionis/services/introspection/objects}/__init__.py +0 -0
  264. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/introspection/objects/types.py +0 -0
  265. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/introspection/reflection.py +0 -0
  266. {orionis-0.443.0/orionis/services/log/contracts → orionis-0.444.0/orionis/services/log}/__init__.py +0 -0
  267. {orionis-0.443.0/orionis/services/log/handlers → orionis-0.444.0/orionis/services/log/contracts}/__init__.py +0 -0
  268. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/log/contracts/log_service.py +0 -0
  269. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/log/exceptions/__init__.py +0 -0
  270. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/log/exceptions/runtime.py +0 -0
  271. {orionis-0.443.0/orionis/services/paths → orionis-0.444.0/orionis/services/log/handlers}/__init__.py +0 -0
  272. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/log/handlers/filename.py +0 -0
  273. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/log/handlers/size_rotating.py +0 -0
  274. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/log/handlers/timed_rotating.py +0 -0
  275. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/log/log_service.py +0 -0
  276. {orionis-0.443.0/orionis/services/paths/contracts → orionis-0.444.0/orionis/services/paths}/__init__.py +0 -0
  277. {orionis-0.443.0/orionis/services/system → orionis-0.444.0/orionis/services/paths/contracts}/__init__.py +0 -0
  278. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/paths/contracts/resolver.py +0 -0
  279. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/paths/exceptions/__init__.py +0 -0
  280. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/paths/exceptions/exception.py +0 -0
  281. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/paths/exceptions/file.py +0 -0
  282. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/paths/resolver.py +0 -0
  283. {orionis-0.443.0/orionis/services/system/contracts → orionis-0.444.0/orionis/services/system}/__init__.py +0 -0
  284. {orionis-0.443.0/orionis/services/system/runtime → orionis-0.444.0/orionis/services/system/contracts}/__init__.py +0 -0
  285. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/system/contracts/imports.py +0 -0
  286. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/system/contracts/workers.py +0 -0
  287. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/system/imports.py +0 -0
  288. {orionis-0.443.0/orionis/support → orionis-0.444.0/orionis/services/system/runtime}/__init__.py +0 -0
  289. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/system/runtime/imports.py +0 -0
  290. {orionis-0.443.0 → orionis-0.444.0}/orionis/services/system/workers.py +0 -0
  291. {orionis-0.443.0/orionis/support/entities → orionis-0.444.0/orionis/support}/__init__.py +0 -0
  292. {orionis-0.443.0/orionis/support/facades → orionis-0.444.0/orionis/support/entities}/__init__.py +0 -0
  293. {orionis-0.443.0 → orionis-0.444.0}/orionis/support/entities/base.py +0 -0
  294. {orionis-0.443.0/orionis/support/formatter → orionis-0.444.0/orionis/support/facades}/__init__.py +0 -0
  295. {orionis-0.443.0 → orionis-0.444.0}/orionis/support/facades/console.py +0 -0
  296. {orionis-0.443.0 → orionis-0.444.0}/orionis/support/facades/dumper.py +0 -0
  297. {orionis-0.443.0 → orionis-0.444.0}/orionis/support/facades/inspire.py +0 -0
  298. {orionis-0.443.0 → orionis-0.444.0}/orionis/support/facades/logger.py +0 -0
  299. {orionis-0.443.0 → orionis-0.444.0}/orionis/support/facades/path_resolver.py +0 -0
  300. {orionis-0.443.0 → orionis-0.444.0}/orionis/support/facades/progress_bar.py +0 -0
  301. {orionis-0.443.0 → orionis-0.444.0}/orionis/support/facades/testing.py +0 -0
  302. {orionis-0.443.0 → orionis-0.444.0}/orionis/support/facades/workers.py +0 -0
  303. {orionis-0.443.0/orionis/support/formatter/exceptions → orionis-0.444.0/orionis/support/formatter}/__init__.py +0 -0
  304. {orionis-0.443.0/orionis/support/formatter/exceptions/contracts → orionis-0.444.0/orionis/support/formatter/exceptions}/__init__.py +0 -0
  305. {orionis-0.443.0/orionis/support/patterns → orionis-0.444.0/orionis/support/formatter/exceptions/contracts}/__init__.py +0 -0
  306. {orionis-0.443.0 → orionis-0.444.0}/orionis/support/formatter/exceptions/contracts/parser.py +0 -0
  307. {orionis-0.443.0 → orionis-0.444.0}/orionis/support/formatter/exceptions/parser.py +0 -0
  308. {orionis-0.443.0 → orionis-0.444.0}/orionis/support/formatter/serializer.py +0 -0
  309. {orionis-0.443.0/orionis/support/standard → orionis-0.444.0/orionis/support/patterns}/__init__.py +0 -0
  310. {orionis-0.443.0 → orionis-0.444.0}/orionis/support/patterns/singleton/__init__.py +0 -0
  311. {orionis-0.443.0 → orionis-0.444.0}/orionis/support/patterns/singleton/meta.py +0 -0
  312. {orionis-0.443.0/orionis/support/standard/contracts → orionis-0.444.0/orionis/support/standard}/__init__.py +0 -0
  313. {orionis-0.443.0/orionis/test → orionis-0.444.0/orionis/support/standard/contracts}/__init__.py +0 -0
  314. {orionis-0.443.0 → orionis-0.444.0}/orionis/support/standard/contracts/std.py +0 -0
  315. {orionis-0.443.0 → orionis-0.444.0}/orionis/support/standard/exceptions/__init__.py +0 -0
  316. {orionis-0.443.0 → orionis-0.444.0}/orionis/support/standard/exceptions/value.py +0 -0
  317. {orionis-0.443.0 → orionis-0.444.0}/orionis/support/standard/std.py +0 -0
  318. {orionis-0.443.0 → orionis-0.444.0}/orionis/support/wrapper/__init__.py +0 -0
  319. {orionis-0.443.0 → orionis-0.444.0}/orionis/support/wrapper/dot_dict.py +0 -0
  320. {orionis-0.443.0/orionis/test/cases → orionis-0.444.0/orionis/test}/__init__.py +0 -0
  321. {orionis-0.443.0/orionis/test/contracts → orionis-0.444.0/orionis/test/cases}/__init__.py +0 -0
  322. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/cases/asynchronous.py +0 -0
  323. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/cases/synchronous.py +0 -0
  324. {orionis-0.443.0/orionis/test/core → orionis-0.444.0/orionis/test/contracts}/__init__.py +0 -0
  325. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/contracts/dumper.py +0 -0
  326. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/contracts/kernel.py +0 -0
  327. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/contracts/logs.py +0 -0
  328. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/contracts/printer.py +0 -0
  329. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/contracts/render.py +0 -0
  330. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/contracts/test_result.py +0 -0
  331. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/contracts/unit_test.py +0 -0
  332. {orionis-0.443.0/orionis/test/entities → orionis-0.444.0/orionis/test/core}/__init__.py +0 -0
  333. {orionis-0.443.0/orionis/test/output → orionis-0.444.0/orionis/test/entities}/__init__.py +0 -0
  334. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/entities/result.py +0 -0
  335. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/enums/__init__.py +0 -0
  336. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/enums/status.py +0 -0
  337. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/exceptions/__init__.py +0 -0
  338. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/exceptions/config.py +0 -0
  339. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/exceptions/failure.py +0 -0
  340. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/exceptions/persistence.py +0 -0
  341. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/exceptions/runtime.py +0 -0
  342. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/exceptions/value.py +0 -0
  343. {orionis-0.443.0/orionis/test/records → orionis-0.444.0/orionis/test/output}/__init__.py +0 -0
  344. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/output/dumper.py +0 -0
  345. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/output/printer.py +0 -0
  346. {orionis-0.443.0/orionis/test/view → orionis-0.444.0/orionis/test/records}/__init__.py +0 -0
  347. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/records/logs.py +0 -0
  348. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/validators/__init__.py +0 -0
  349. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/validators/base_path.py +0 -0
  350. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/validators/execution_mode.py +0 -0
  351. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/validators/fail_fast.py +0 -0
  352. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/validators/folder_path.py +0 -0
  353. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/validators/module_name.py +0 -0
  354. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/validators/name_pattern.py +0 -0
  355. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/validators/pattern.py +0 -0
  356. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/validators/persistent.py +0 -0
  357. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/validators/persistent_driver.py +0 -0
  358. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/validators/print_result.py +0 -0
  359. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/validators/tags.py +0 -0
  360. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/validators/throw_exception.py +0 -0
  361. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/validators/verbosity.py +0 -0
  362. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/validators/web_report.py +0 -0
  363. {orionis-0.443.0/tests → orionis-0.444.0/orionis/test/view}/__init__.py +0 -0
  364. {orionis-0.443.0 → orionis-0.444.0}/orionis/test/view/render.py +0 -0
  365. {orionis-0.443.0 → orionis-0.444.0}/orionis.egg-info/dependency_links.txt +0 -0
  366. {orionis-0.443.0 → orionis-0.444.0}/orionis.egg-info/requires.txt +0 -0
  367. {orionis-0.443.0 → orionis-0.444.0}/orionis.egg-info/top_level.txt +0 -0
  368. {orionis-0.443.0 → orionis-0.444.0}/orionis.egg-info/zip-safe +0 -0
  369. {orionis-0.443.0 → orionis-0.444.0}/setup.cfg +0 -0
  370. {orionis-0.443.0 → orionis-0.444.0}/setup.py +0 -0
  371. {orionis-0.443.0/tests/container → orionis-0.444.0/tests}/__init__.py +0 -0
  372. {orionis-0.443.0/tests/container/context → orionis-0.444.0/tests/container}/__init__.py +0 -0
  373. {orionis-0.443.0/tests/container/core → orionis-0.444.0/tests/container/context}/__init__.py +0 -0
  374. {orionis-0.443.0 → orionis-0.444.0}/tests/container/context/test_manager.py +0 -0
  375. {orionis-0.443.0 → orionis-0.444.0}/tests/container/context/test_scope.py +0 -0
  376. {orionis-0.443.0/tests/container/entities → orionis-0.444.0/tests/container/core}/__init__.py +0 -0
  377. {orionis-0.443.0 → orionis-0.444.0}/tests/container/core/test_container.py +0 -0
  378. {orionis-0.443.0 → orionis-0.444.0}/tests/container/core/test_singleton.py +0 -0
  379. {orionis-0.443.0 → orionis-0.444.0}/tests/container/core/test_thread_safety.py +0 -0
  380. {orionis-0.443.0/tests/container/enums → orionis-0.444.0/tests/container/entities}/__init__.py +0 -0
  381. {orionis-0.443.0 → orionis-0.444.0}/tests/container/entities/test_binding.py +0 -0
  382. {orionis-0.443.0/tests/container/facades → orionis-0.444.0/tests/container/enums}/__init__.py +0 -0
  383. {orionis-0.443.0 → orionis-0.444.0}/tests/container/enums/test_lifetimes.py +0 -0
  384. {orionis-0.443.0/tests/container/mocks → orionis-0.444.0/tests/container/facades}/__init__.py +0 -0
  385. {orionis-0.443.0 → orionis-0.444.0}/tests/container/facades/test_facade.py +0 -0
  386. {orionis-0.443.0/tests/container/providers → orionis-0.444.0/tests/container/mocks}/__init__.py +0 -0
  387. {orionis-0.443.0 → orionis-0.444.0}/tests/container/mocks/mock_complex_classes.py +0 -0
  388. {orionis-0.443.0 → orionis-0.444.0}/tests/container/mocks/mock_simple_classes.py +0 -0
  389. {orionis-0.443.0/tests/container/resolver → orionis-0.444.0/tests/container/providers}/__init__.py +0 -0
  390. {orionis-0.443.0 → orionis-0.444.0}/tests/container/providers/test_providers.py +0 -0
  391. {orionis-0.443.0/tests/container/validators → orionis-0.444.0/tests/container/resolver}/__init__.py +0 -0
  392. {orionis-0.443.0 → orionis-0.444.0}/tests/container/resolver/test_resolver.py +0 -0
  393. {orionis-0.443.0/tests/example → orionis-0.444.0/tests/container/validators}/__init__.py +0 -0
  394. {orionis-0.443.0 → orionis-0.444.0}/tests/container/validators/test_implements.py +0 -0
  395. {orionis-0.443.0 → orionis-0.444.0}/tests/container/validators/test_is_abstract_class.py +0 -0
  396. {orionis-0.443.0 → orionis-0.444.0}/tests/container/validators/test_is_callable.py +0 -0
  397. {orionis-0.443.0 → orionis-0.444.0}/tests/container/validators/test_is_concrete_class.py +0 -0
  398. {orionis-0.443.0 → orionis-0.444.0}/tests/container/validators/test_is_instance.py +0 -0
  399. {orionis-0.443.0 → orionis-0.444.0}/tests/container/validators/test_is_not_subclass.py +0 -0
  400. {orionis-0.443.0 → orionis-0.444.0}/tests/container/validators/test_is_subclass.py +0 -0
  401. {orionis-0.443.0 → orionis-0.444.0}/tests/container/validators/test_is_valid_alias.py +0 -0
  402. {orionis-0.443.0 → orionis-0.444.0}/tests/container/validators/test_lifetime.py +0 -0
  403. {orionis-0.443.0/tests/foundation → orionis-0.444.0/tests/example}/__init__.py +0 -0
  404. {orionis-0.443.0 → orionis-0.444.0}/tests/example/test_example.py +0 -0
  405. {orionis-0.443.0/tests/foundation/config → orionis-0.444.0/tests/foundation}/__init__.py +0 -0
  406. {orionis-0.443.0/tests/foundation/config/app → orionis-0.444.0/tests/foundation/config}/__init__.py +0 -0
  407. {orionis-0.443.0/tests/foundation/config/auth → orionis-0.444.0/tests/foundation/config/app}/__init__.py +0 -0
  408. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/app/test_foundation_config_app.py +0 -0
  409. {orionis-0.443.0/tests/foundation/config/cache → orionis-0.444.0/tests/foundation/config/auth}/__init__.py +0 -0
  410. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/auth/test_foundation_config_auth.py +0 -0
  411. {orionis-0.443.0/tests/foundation/config/cors → orionis-0.444.0/tests/foundation/config/cache}/__init__.py +0 -0
  412. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/cache/test_foundation_config_cache.py +0 -0
  413. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/cache/test_foundation_config_cache_file.py +0 -0
  414. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/cache/test_foundation_config_cache_stores.py +0 -0
  415. {orionis-0.443.0/tests/foundation/config/database → orionis-0.444.0/tests/foundation/config/cors}/__init__.py +0 -0
  416. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/cors/test_foundation_config_cors.py +0 -0
  417. {orionis-0.443.0/tests/foundation/config/filesystems → orionis-0.444.0/tests/foundation/config/database}/__init__.py +0 -0
  418. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/database/test_foundation_config_database.py +0 -0
  419. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/database/test_foundation_config_database_connections.py +0 -0
  420. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/database/test_foundation_config_database_mysql.py +0 -0
  421. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/database/test_foundation_config_database_oracle.py +0 -0
  422. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/database/test_foundation_config_database_pgsql.py +0 -0
  423. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/database/test_foundation_config_database_sqlite.py +0 -0
  424. {orionis-0.443.0/tests/foundation/config/logging → orionis-0.444.0/tests/foundation/config/filesystems}/__init__.py +0 -0
  425. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems.py +0 -0
  426. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_aws.py +0 -0
  427. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_disks.py +0 -0
  428. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_local.py +0 -0
  429. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_public.py +0 -0
  430. {orionis-0.443.0/tests/foundation/config/mail → orionis-0.444.0/tests/foundation/config/logging}/__init__.py +0 -0
  431. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/logging/test_foundation_config_logging.py +0 -0
  432. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/logging/test_foundation_config_logging_channels.py +0 -0
  433. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/logging/test_foundation_config_logging_chunked.py +0 -0
  434. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/logging/test_foundation_config_logging_daily.py +0 -0
  435. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/logging/test_foundation_config_logging_hourly.py +0 -0
  436. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/logging/test_foundation_config_logging_monthly.py +0 -0
  437. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/logging/test_foundation_config_logging_stack.py +0 -0
  438. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/logging/test_foundation_config_logging_weekly.py +0 -0
  439. {orionis-0.443.0/tests/foundation/config/queue → orionis-0.444.0/tests/foundation/config/mail}/__init__.py +0 -0
  440. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/mail/test_foundation_config_mail.py +0 -0
  441. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/mail/test_foundation_config_mail_file.py +0 -0
  442. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/mail/test_foundation_config_mail_mailers.py +0 -0
  443. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/mail/test_foundation_config_mail_smtp.py +0 -0
  444. {orionis-0.443.0/tests/foundation/config/root → orionis-0.444.0/tests/foundation/config/queue}/__init__.py +0 -0
  445. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/queue/test_foundation_config_queue.py +0 -0
  446. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/queue/test_foundation_config_queue_brokers.py +0 -0
  447. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/queue/test_foundation_config_queue_database.py +0 -0
  448. {orionis-0.443.0/tests/foundation/config/session → orionis-0.444.0/tests/foundation/config/root}/__init__.py +0 -0
  449. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/root/test_foundation_config_root_paths.py +0 -0
  450. {orionis-0.443.0/tests/foundation/config/startup → orionis-0.444.0/tests/foundation/config/session}/__init__.py +0 -0
  451. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/session/test_foundation_config_session.py +0 -0
  452. {orionis-0.443.0/tests/foundation/config/testing → orionis-0.444.0/tests/foundation/config/startup}/__init__.py +0 -0
  453. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/startup/test_foundation_config_startup.py +0 -0
  454. {orionis-0.443.0/tests/metadata → orionis-0.444.0/tests/foundation/config/testing}/__init__.py +0 -0
  455. {orionis-0.443.0 → orionis-0.444.0}/tests/foundation/config/testing/test_foundation_config_testing.py +0 -0
  456. {orionis-0.443.0/tests/services → orionis-0.444.0/tests/metadata}/__init__.py +0 -0
  457. {orionis-0.443.0 → orionis-0.444.0}/tests/metadata/test_metadata_framework.py +0 -0
  458. {orionis-0.443.0 → orionis-0.444.0}/tests/metadata/test_metadata_package.py +0 -0
  459. {orionis-0.443.0/tests/services/asynchrony → orionis-0.444.0/tests/services}/__init__.py +0 -0
  460. {orionis-0.443.0/tests/services/environment → orionis-0.444.0/tests/services/asynchrony}/__init__.py +0 -0
  461. {orionis-0.443.0 → orionis-0.444.0}/tests/services/asynchrony/test_services_asynchrony_coroutine.py +0 -0
  462. {orionis-0.443.0/tests/services/introspection → orionis-0.444.0/tests/services/environment}/__init__.py +0 -0
  463. {orionis-0.443.0 → orionis-0.444.0}/tests/services/environment/test_services_environment.py +0 -0
  464. {orionis-0.443.0/tests/services/introspection/dependencies → orionis-0.444.0/tests/services/introspection}/__init__.py +0 -0
  465. {orionis-0.443.0/tests/services/introspection/dependencies/mocks → orionis-0.444.0/tests/services/introspection/dependencies}/__init__.py +0 -0
  466. {orionis-0.443.0/tests/services/introspection/reflection → orionis-0.444.0/tests/services/introspection/dependencies/mocks}/__init__.py +0 -0
  467. {orionis-0.443.0 → orionis-0.444.0}/tests/services/introspection/dependencies/mocks/mock_user.py +0 -0
  468. {orionis-0.443.0 → orionis-0.444.0}/tests/services/introspection/dependencies/mocks/mock_user_controller.py +0 -0
  469. {orionis-0.443.0 → orionis-0.444.0}/tests/services/introspection/dependencies/mocks/mock_users_permissions.py +0 -0
  470. {orionis-0.443.0 → orionis-0.444.0}/tests/services/introspection/dependencies/test_reflect_dependencies.py +0 -0
  471. {orionis-0.443.0/tests/services/introspection/reflection/mock → orionis-0.444.0/tests/services/introspection/reflection}/__init__.py +0 -0
  472. {orionis-0.443.0/tests/services/log → orionis-0.444.0/tests/services/introspection/reflection/mock}/__init__.py +0 -0
  473. {orionis-0.443.0 → orionis-0.444.0}/tests/services/introspection/reflection/mock/fake_reflect_instance.py +0 -0
  474. {orionis-0.443.0 → orionis-0.444.0}/tests/services/introspection/reflection/test_reflection_abstract.py +0 -0
  475. {orionis-0.443.0 → orionis-0.444.0}/tests/services/introspection/reflection/test_reflection_callable.py +0 -0
  476. {orionis-0.443.0 → orionis-0.444.0}/tests/services/introspection/reflection/test_reflection_concrete.py +0 -0
  477. {orionis-0.443.0 → orionis-0.444.0}/tests/services/introspection/reflection/test_reflection_instance.py +0 -0
  478. {orionis-0.443.0 → orionis-0.444.0}/tests/services/introspection/reflection/test_reflection_module.py +0 -0
  479. {orionis-0.443.0 → orionis-0.444.0}/tests/services/introspection/test_reflection.py +0 -0
  480. {orionis-0.443.0/tests/services/path → orionis-0.444.0/tests/services/log}/__init__.py +0 -0
  481. {orionis-0.443.0 → orionis-0.444.0}/tests/services/log/test_log.py +0 -0
  482. {orionis-0.443.0/tests/services/system → orionis-0.444.0/tests/services/path}/__init__.py +0 -0
  483. {orionis-0.443.0 → orionis-0.444.0}/tests/services/path/test_services_resolver.py +0 -0
  484. {orionis-0.443.0/tests/support → orionis-0.444.0/tests/services/system}/__init__.py +0 -0
  485. {orionis-0.443.0 → orionis-0.444.0}/tests/services/system/test_services_system_imports.py +0 -0
  486. {orionis-0.443.0 → orionis-0.444.0}/tests/services/system/test_services_system_workers.py +0 -0
  487. {orionis-0.443.0/tests/support/entities → orionis-0.444.0/tests/support}/__init__.py +0 -0
  488. {orionis-0.443.0/tests/support/patterns → orionis-0.444.0/tests/support/entities}/__init__.py +0 -0
  489. {orionis-0.443.0 → orionis-0.444.0}/tests/support/entities/mock_dataclass.py +0 -0
  490. {orionis-0.443.0 → orionis-0.444.0}/tests/support/entities/test_base.py +0 -0
  491. {orionis-0.443.0/tests/support/patterns/singleton → orionis-0.444.0/tests/support/patterns}/__init__.py +0 -0
  492. {orionis-0.443.0/tests/support/standard → orionis-0.444.0/tests/support/patterns/singleton}/__init__.py +0 -0
  493. {orionis-0.443.0 → orionis-0.444.0}/tests/support/patterns/singleton/test_patterns_singleton.py +0 -0
  494. {orionis-0.443.0/tests/support/wrapper → orionis-0.444.0/tests/support/standard}/__init__.py +0 -0
  495. {orionis-0.443.0 → orionis-0.444.0}/tests/support/standard/test_services_std.py +0 -0
  496. {orionis-0.443.0/tests/testing → orionis-0.444.0/tests/support/wrapper}/__init__.py +0 -0
  497. {orionis-0.443.0 → orionis-0.444.0}/tests/support/wrapper/test_services_wrapper_docdict.py +0 -0
  498. {orionis-0.443.0/tests/testing/cases → orionis-0.444.0/tests/testing}/__init__.py +0 -0
  499. {orionis-0.443.0/tests/testing/entities → orionis-0.444.0/tests/testing/cases}/__init__.py +0 -0
  500. {orionis-0.443.0 → orionis-0.444.0}/tests/testing/cases/test_testing_asynchronous.py +0 -0
  501. {orionis-0.443.0 → orionis-0.444.0}/tests/testing/cases/test_testing_synchronous.py +0 -0
  502. {orionis-0.443.0/tests/testing/enums → orionis-0.444.0/tests/testing/entities}/__init__.py +0 -0
  503. {orionis-0.443.0 → orionis-0.444.0}/tests/testing/entities/test_testing_result.py +0 -0
  504. {orionis-0.443.0/tests/testing/output → orionis-0.444.0/tests/testing/enums}/__init__.py +0 -0
  505. {orionis-0.443.0 → orionis-0.444.0}/tests/testing/enums/test_testing_status.py +0 -0
  506. {orionis-0.443.0/tests/testing/records → orionis-0.444.0/tests/testing/output}/__init__.py +0 -0
  507. {orionis-0.443.0 → orionis-0.444.0}/tests/testing/output/test_testing_dumper.py +0 -0
  508. {orionis-0.443.0 → orionis-0.444.0}/tests/testing/output/test_testing_printer.py +0 -0
  509. {orionis-0.443.0/tests/testing/validators → orionis-0.444.0/tests/testing/records}/__init__.py +0 -0
  510. {orionis-0.443.0 → orionis-0.444.0}/tests/testing/records/test_testing_records.py +0 -0
  511. {orionis-0.443.0 → orionis-0.444.0}/tests/testing/test_testing_unit.py +0 -0
  512. {orionis-0.443.0/tests/testing/view → orionis-0.444.0/tests/testing/validators}/__init__.py +0 -0
  513. {orionis-0.443.0 → orionis-0.444.0}/tests/testing/validators/test_testing_validators.py +0 -0
  514. {orionis-0.443.0 → orionis-0.444.0}/tests/testing/view/test_render.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: orionis
3
- Version: 0.443.0
3
+ Version: 0.444.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
@@ -0,0 +1,343 @@
1
+ import argparse
2
+ from dataclasses import dataclass, field
3
+ from typing import Any, Optional, List, Type, Union, Dict
4
+ from orionis.console.args.enums.actions import ArgumentAction
5
+ from orionis.console.exceptions.cli_orionis_value_error import CLIOrionisValueError
6
+
7
+ @dataclass(kw_only=True, frozen=True, slots=True)
8
+ class CLIArgument:
9
+ """
10
+ Represents a command-line argument for argparse.
11
+
12
+ This class encapsulates all the properties and validation logic needed to create
13
+ a command-line argument that can be added to an argparse ArgumentParser. It provides
14
+ automatic validation, type checking, and smart defaults for common argument patterns.
15
+
16
+ Attributes
17
+ ----------
18
+ flags : List[str]
19
+ List of flags for the argument (e.g., ['--export', '-e']). Must contain at least one flag.
20
+ type : Type
21
+ Data type of the argument. Can be any Python type or custom type.
22
+ help : str
23
+ Description of the argument. If not provided, will be auto-generated from the primary flag.
24
+ default : Any, optional
25
+ Default value for the argument.
26
+ choices : List[Any], optional
27
+ List of valid values for the argument. All choices must match the specified type.
28
+ required : bool, default False
29
+ Whether the argument is required. Only applies to optional arguments.
30
+ metavar : str, optional
31
+ Metavar for displaying in help messages. Auto-generated from primary flag if not provided.
32
+ dest : str, optional
33
+ Destination name for the argument in the namespace. Auto-generated from primary flag if not provided.
34
+ action : Union[str, ArgumentAction], default ArgumentAction.STORE
35
+ Action to perform with the argument when it's encountered.
36
+ nargs : Union[int, str], optional
37
+ Number of arguments expected (e.g., 1, 2, '+', '*').
38
+ const : Any, optional
39
+ Constant value for store_const or append_const actions.
40
+
41
+ Raises
42
+ ------
43
+ CLIOrionisValueError
44
+ If any validation fails during initialization.
45
+ """
46
+
47
+ # Required fields
48
+ flags: List[str] = None
49
+ type: Type = None
50
+ help: str = None
51
+
52
+ default: Any = field(
53
+ default_factory = None,
54
+ metadata = {
55
+ "description": "Default value for the argument.",
56
+ "default": None
57
+ }
58
+ )
59
+
60
+ choices: Optional[List[Any]] = field(
61
+ default_factory = None,
62
+ metadata = {
63
+ "description": "List of valid choices for the argument.",
64
+ "default": None
65
+ }
66
+ )
67
+
68
+ required: bool = field(
69
+ default_factory = False,
70
+ metadata = {
71
+ "description": "Indicates if the argument is required.",
72
+ "default": False
73
+ }
74
+ )
75
+
76
+ metavar: Optional[str] = field(
77
+ default_factory = None,
78
+ metadata = {
79
+ "description": "Metavar for displaying in help messages.",
80
+ "default": None
81
+ }
82
+ )
83
+
84
+ dest: Optional[str] = field(
85
+ default_factory = None,
86
+ metadata = {
87
+ "description": "Destination name for the argument in the namespace.",
88
+ "default": None
89
+ }
90
+ )
91
+
92
+ action: Union[str, ArgumentAction] = field(
93
+ default_factory = ArgumentAction.STORE,
94
+ metadata = {
95
+ "description": "Action to perform with the argument.",
96
+ "default": ArgumentAction.STORE.value
97
+ }
98
+ )
99
+
100
+ nargs: Optional[Union[int, str]] = field(
101
+ default_factory = None,
102
+ metadata = {
103
+ "description": "Number of arguments expected (e.g., 1, 2, '+', '*').",
104
+ "default": None
105
+ }
106
+ )
107
+
108
+ const: Any = field(
109
+ default_factory = None,
110
+ metadata = {
111
+ "description": "Constant value for store_const or append_const actions.",
112
+ "default": None
113
+ }
114
+ )
115
+
116
+ def __post_init__(self):
117
+ """
118
+ Validate and normalize all argument attributes after initialization.
119
+
120
+ This method performs comprehensive validation of all argument attributes
121
+ and applies smart defaults where appropriate. It ensures the argument
122
+ configuration is valid for use with argparse.
123
+
124
+ Raises
125
+ ------
126
+ CLIOrionisValueError
127
+ If any validation fails or invalid values are provided.
128
+ """
129
+
130
+ # Validate flags - must be provided and non-empty
131
+ if not self.flags:
132
+ raise CLIOrionisValueError(
133
+ "Flags list cannot be empty. Please provide at least one flag (e.g., ['--export', '-e'])"
134
+ )
135
+
136
+ # Convert single string flag to list for consistency
137
+ if isinstance(self.flags, str):
138
+ object.__setattr__(self, 'flags', [self.flags])
139
+
140
+ # Ensure flags is a list
141
+ if not isinstance(self.flags, list):
142
+ raise CLIOrionisValueError("Flags must be a string or a list of strings")
143
+
144
+ # Validate each flag format and ensure they're strings
145
+ for flag in self.flags:
146
+ if not isinstance(flag, str):
147
+ raise CLIOrionisValueError("All flags must be strings")
148
+
149
+ # Check for duplicate flags
150
+ if len(set(self.flags)) != len(self.flags):
151
+ raise CLIOrionisValueError("Duplicate flags are not allowed in the flags list")
152
+
153
+ # Determine primary flag (longest one, or first if only one)
154
+ primary_flag = max(self.flags, key=len) if len(self.flags) > 1 else self.flags[0]
155
+
156
+ # Validate type is actually a type
157
+ if not isinstance(self.type, type):
158
+ raise CLIOrionisValueError("Type must be a valid Python type or custom type class")
159
+
160
+ # Auto-generate help if not provided
161
+ if self.help is None:
162
+ object.__setattr__(self, 'help', f"Argument for {primary_flag}")
163
+
164
+ # Ensure help is a string
165
+ if not isinstance(self.help, str):
166
+ raise CLIOrionisValueError("Help text must be a string")
167
+
168
+ # Validate choices if provided
169
+ if self.choices is not None:
170
+ # Ensure choices is a list
171
+ if not isinstance(self.choices, list):
172
+ raise CLIOrionisValueError("Choices must be provided as a list")
173
+
174
+ # Ensure all choices match the specified type
175
+ if self.type and not all(isinstance(choice, self.type) for choice in self.choices):
176
+ raise CLIOrionisValueError(
177
+ f"All choices must be of type {self.type.__name__}"
178
+ )
179
+
180
+ # Validate required is boolean
181
+ if not isinstance(self.required, bool):
182
+ raise CLIOrionisValueError("Required field must be a boolean value (True or False)")
183
+
184
+ # Auto-generate metavar if not provided
185
+ if self.metavar is None:
186
+ metavar = primary_flag.lstrip('-').upper().replace('-', '_')
187
+ object.__setattr__(self, 'metavar', metavar)
188
+
189
+ # Ensure metavar is a string
190
+ if not isinstance(self.metavar, str):
191
+ raise CLIOrionisValueError("Metavar must be a string")
192
+
193
+ # Auto-generate dest if not provided
194
+ if self.dest is None:
195
+ dest = primary_flag.lstrip('-').replace('-', '_')
196
+ object.__setattr__(self, 'dest', dest)
197
+
198
+ # Ensure dest is a string
199
+ if not isinstance(self.dest, str):
200
+ raise CLIOrionisValueError("Destination (dest) must be a string")
201
+
202
+ # Ensure dest is a valid Python identifier
203
+ if not self.dest.isidentifier():
204
+ raise CLIOrionisValueError(f"Destination '{self.dest}' is not a valid Python identifier")
205
+
206
+ # Normalize action value
207
+ if self.action is None:
208
+ object.__setattr__(self, 'action', ArgumentAction.STORE.value)
209
+ elif isinstance(self.action, str):
210
+ try:
211
+ action_enum = ArgumentAction(self.action)
212
+ object.__setattr__(self, 'action', action_enum.value)
213
+ except ValueError:
214
+ raise CLIOrionisValueError(f"Invalid action '{self.action}'. Please use a valid ArgumentAction value")
215
+ elif isinstance(self.action, ArgumentAction):
216
+ object.__setattr__(self, 'action', self.action.value)
217
+ else:
218
+ raise CLIOrionisValueError("Action must be a string or an ArgumentAction enum value")
219
+
220
+ # Special handling for boolean types
221
+ if self.type is bool:
222
+
223
+ # Auto-configure action based on default value
224
+ action = ArgumentAction.STORE_TRUE.value if not self.default else ArgumentAction.STORE_FALSE.value
225
+ object.__setattr__(self, 'action', action)
226
+
227
+ # argparse ignores type with store_true/false actions
228
+ object.__setattr__(self, 'type', None)
229
+
230
+ # Special handling for list types
231
+ if self.type is list and self.nargs is None:
232
+
233
+ # Auto-configure for accepting multiple values
234
+ object.__setattr__(self, 'nargs', '+')
235
+ object.__setattr__(self, 'type', str)
236
+
237
+ def addToParser(self, parser: argparse.ArgumentParser) -> None:
238
+ """
239
+ Add this argument to an argparse ArgumentParser instance.
240
+
241
+ This method integrates the CLIArgument configuration with an argparse
242
+ ArgumentParser by building the appropriate keyword arguments and adding
243
+ the argument with all its flags and options. The method handles all
244
+ necessary conversions and validations to ensure compatibility with
245
+ argparse's expected format.
246
+
247
+ Parameters
248
+ ----------
249
+ parser : argparse.ArgumentParser
250
+ The ArgumentParser instance to which this argument will be added.
251
+ The parser must be a valid argparse.ArgumentParser object.
252
+
253
+ Returns
254
+ -------
255
+ None
256
+ This method does not return any value. It modifies the provided
257
+ parser by adding the argument configuration to it.
258
+
259
+ Raises
260
+ ------
261
+ CLIOrionisValueError
262
+ If there's an error adding the argument to the parser, such as
263
+ conflicting argument names, invalid configurations, or argparse
264
+ internal errors during argument registration.
265
+ """
266
+
267
+ # Build the keyword arguments dictionary for argparse compatibility
268
+ # This filters out None values and handles special argument types
269
+ kwargs = self._buildParserKwargs()
270
+
271
+ # Attempt to add the argument to the parser with all flags and options
272
+ try:
273
+ # Use unpacking to pass all flags as positional arguments
274
+ # and all configuration options as keyword arguments
275
+ parser.add_argument(*self.flags, **kwargs)
276
+
277
+ # Catch any exception that occurs during argument addition
278
+ # and wrap it in our custom exception for consistent error handling
279
+ except Exception as e:
280
+ raise CLIOrionisValueError(f"Error adding argument {self.flags}: {e}")
281
+
282
+ def _buildParserKwargs(self) -> Dict[str, Any]:
283
+ """
284
+ Build the keyword arguments dictionary for argparse compatibility.
285
+
286
+ This private method constructs a dictionary of keyword arguments that will be
287
+ passed to argparse's add_argument method. It handles the conversion from
288
+ CLIArgument attributes to argparse-compatible parameters, filtering out None
289
+ values and applying special handling for different argument types (optional
290
+ vs positional arguments).
291
+
292
+ The method ensures that the resulting kwargs dictionary contains only valid
293
+ argparse parameters with appropriate values, preventing errors during argument
294
+ registration with the ArgumentParser.
295
+
296
+ Returns
297
+ -------
298
+ Dict[str, Any]
299
+ A dictionary containing keyword arguments ready to be unpacked and passed
300
+ to argparse.ArgumentParser.add_argument(). The dictionary includes only
301
+ non-None values and excludes parameters that are invalid for the specific
302
+ argument type (e.g., 'required' parameter for positional arguments).
303
+
304
+ Notes
305
+ -----
306
+ This method distinguishes between optional arguments (those starting with '-')
307
+ and positional arguments, applying different validation rules for each type.
308
+ Positional arguments cannot use the 'required' parameter, so it's automatically
309
+ removed from the kwargs if present.
310
+ """
311
+
312
+ # Determine argument type by checking if any flag starts with a dash
313
+ # Optional arguments have flags like '--export' or '-e'
314
+ # Positional arguments have flags without dashes like 'filename'
315
+ is_optional = any(flag.startswith('-') for flag in self.flags)
316
+ is_positional = not is_optional
317
+
318
+ # Build the base kwargs dictionary with all possible argparse parameters
319
+ # Each key corresponds to a parameter accepted by argparse.add_argument()
320
+ kwargs = {
321
+ "help": self.help, # Help text displayed in usage messages
322
+ "default": self.default, # Default value when argument not provided
323
+ "required": self.required and is_optional, # Whether argument is mandatory
324
+ "metavar": self.metavar, # Name displayed in help messages
325
+ "dest": self.dest, # Attribute name in the parsed namespace
326
+ "choices": self.choices, # List of valid values for the argument
327
+ "action": self.action, # Action to take when argument is encountered
328
+ "nargs": self.nargs, # Number of command-line arguments expected
329
+ "type": self.type, # Type to convert the argument to
330
+ "const": self.const # Constant value for certain actions
331
+ }
332
+
333
+ # Filter out None values to prevent passing invalid parameters to argparse
334
+ # argparse will raise errors if None values are explicitly passed for certain parameters
335
+ kwargs = {k: v for k, v in kwargs.items() if v is not None}
336
+
337
+ # Remove 'required' parameter for positional arguments since it's not supported
338
+ # Positional arguments are inherently required by argparse's design
339
+ if is_positional and 'required' in kwargs:
340
+ del kwargs['required']
341
+
342
+ # Return the cleaned and validated kwargs dictionary
343
+ return kwargs
@@ -0,0 +1,43 @@
1
+ from enum import Enum
2
+
3
+ class ArgumentAction(Enum):
4
+ """
5
+ Enumeration for valid argparse action types.
6
+
7
+ This enum provides a comprehensive list of all standard action types
8
+ that can be used with Python's argparse module when defining command
9
+ line arguments. Each enum member corresponds to a specific behavior
10
+ for how argument values should be processed and stored.
11
+
12
+ Returns
13
+ -------
14
+ str
15
+ The string value representing the argparse action type.
16
+ """
17
+
18
+ # Store the argument value directly
19
+ STORE = "store"
20
+
21
+ # Store a constant value when the argument is specified
22
+ STORE_CONST = "store_const"
23
+
24
+ # Store True when the argument is specified
25
+ STORE_TRUE = "store_true"
26
+
27
+ # Store False when the argument is specified
28
+ STORE_FALSE = "store_false"
29
+
30
+ # Append each argument value to a list
31
+ APPEND = "append"
32
+
33
+ # Append a constant value to a list when the argument is specified
34
+ APPEND_CONST = "append_const"
35
+
36
+ # Count the number of times the argument is specified
37
+ COUNT = "count"
38
+
39
+ # Display help message and exit
40
+ HELP = "help"
41
+
42
+ # Display version information and exit
43
+ VERSION = "version"
@@ -0,0 +1,46 @@
1
+ from orionis.console.base.command import BaseCommand
2
+ from orionis.console.exceptions import CLIOrionisRuntimeError
3
+ from orionis.metadata.framework import VERSION
4
+
5
+ class VersionCommand(BaseCommand):
6
+ """
7
+ Command class to display the current version of the Orionis framework.
8
+
9
+ This command prints the version number of the framework in use.
10
+ """
11
+
12
+ signature: str = "version"
13
+
14
+ description: str = "Prints the version of the framework in use."
15
+
16
+ def handle(self) -> None:
17
+ """
18
+ Executes the version command to display the current Orionis framework version.
19
+
20
+ This method retrieves the version number from the framework metadata and prints it
21
+ in a formatted, bold, and successful style to the console. If an unexpected error occurs
22
+ during execution, it raises a CLIOrionisRuntimeError with the original exception message.
23
+
24
+ Parameters
25
+ ----------
26
+ None
27
+
28
+ Returns
29
+ -------
30
+ None
31
+ This method does not return any value. It outputs the version information to the console.
32
+
33
+ Raises
34
+ ------
35
+ CLIOrionisRuntimeError
36
+ If an unexpected error occurs during execution, a CLIOrionisRuntimeError is raised
37
+ with the original exception message.
38
+ """
39
+
40
+ # Print the Orionis framework version in a bold, success style
41
+ try:
42
+ self.textSuccessBold(f"Orionis Framework v{VERSION}")
43
+
44
+ # Raise a custom runtime error if any exception occurs
45
+ except Exception as e:
46
+ raise CLIOrionisRuntimeError(f"An unexpected error occurred: {e}") from e
@@ -0,0 +1,82 @@
1
+ from orionis.container.providers.service_provider import ServiceProvider
2
+ from orionis.test.contracts.unit_test import IUnitTest
3
+ from orionis.test.core.unit_test import UnitTest
4
+ from orionis.foundation.config.testing.entities.testing import Testing
5
+ import os
6
+
7
+ class TestingProvider(ServiceProvider):
8
+ """
9
+ Provides and registers the unit testing environment service in the application container.
10
+
11
+ This provider integrates a native unit testing framework for Orionis,
12
+ enabling advanced testing features and registering the service as a singleton
13
+ within the application's dependency injection container.
14
+
15
+ Attributes
16
+ ----------
17
+ app : Application
18
+ The application container instance where services are registered.
19
+ """
20
+
21
+ def register(self) -> None:
22
+ """
23
+ Register the unit testing service in the application container.
24
+
25
+ Registers the IUnitTest interface to the UnitTest implementation as a singleton,
26
+ with the alias "core.orionis.testing".
27
+
28
+ Returns
29
+ -------
30
+ None
31
+ """
32
+
33
+ # Create a Testing configuration instance from the application config
34
+ config = Testing(**self.app.config('testing'))
35
+
36
+ # Create a UnitTest instance
37
+ unit_test = UnitTest(
38
+ app=self.app,
39
+ storage=self.app.path('storage_testing')
40
+ )
41
+
42
+ # Configure the UnitTest instance with settings from the Testing configuration
43
+ unit_test.configure(
44
+ verbosity=config.verbosity,
45
+ execution_mode=config.execution_mode,
46
+ max_workers=config.max_workers,
47
+ fail_fast=config.fail_fast,
48
+ print_result=config.print_result,
49
+ throw_exception=config.throw_exception,
50
+ persistent=config.persistent,
51
+ persistent_driver=config.persistent_driver,
52
+ web_report=config.web_report
53
+ )
54
+
55
+ # Discover tests based on the configuration
56
+ unit_test.discoverTests(
57
+ base_path=config.base_path,
58
+ folder_path=config.folder_path,
59
+ pattern=config.pattern,
60
+ test_name_pattern=config.test_name_pattern,
61
+ tags=config.tags
62
+ )
63
+
64
+ # Register the UnitTest instance in the application container
65
+ self.app.instance(IUnitTest, unit_test, alias="core.orionis.testing")
66
+
67
+ def boot(self) -> None:
68
+ """
69
+ Perform post-registration initialization if required.
70
+
71
+ This method is intended for any setup needed after service registration.
72
+ Currently, no additional initialization is performed.
73
+
74
+ Returns
75
+ -------
76
+ None
77
+ """
78
+
79
+ # Ensure directory for testing storage exists
80
+ storage_path = self.app.path('storage_testing')
81
+ if not os.path.exists(storage_path):
82
+ os.makedirs(storage_path, exist_ok=True)
@@ -5,7 +5,7 @@
5
5
  NAME = "orionis"
6
6
 
7
7
  # Current version of the framework
8
- VERSION = "0.443.0"
8
+ VERSION = "0.444.0"
9
9
 
10
10
  # Full name of the author or maintainer of the project
11
11
  AUTHOR = "Raul Mauricio Uñate Castro"