orionis 0.460.0__tar.gz → 0.462.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 (510) hide show
  1. {orionis-0.460.0/orionis.egg-info → orionis-0.462.0}/PKG-INFO +1 -1
  2. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/commands/help.py +6 -3
  3. orionis-0.462.0/orionis/console/commands/publisher.py +577 -0
  4. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/commands/test.py +4 -5
  5. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/commands/version.py +7 -4
  6. orionis-0.462.0/orionis/console/contracts/schedule.py +4 -0
  7. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/core/reactor.py +19 -5
  8. orionis-0.462.0/orionis/console/tasks/schedule.py +4 -0
  9. {orionis-0.460.0 → orionis-0.462.0}/orionis/metadata/framework.py +1 -1
  10. orionis-0.462.0/orionis/support/facades/reactor.py +22 -0
  11. {orionis-0.460.0 → orionis-0.462.0/orionis.egg-info}/PKG-INFO +1 -1
  12. {orionis-0.460.0 → orionis-0.462.0}/orionis.egg-info/SOURCES.txt +5 -0
  13. orionis-0.462.0/tests/testing/view/__init__.py +0 -0
  14. {orionis-0.460.0 → orionis-0.462.0}/LICENCE +0 -0
  15. {orionis-0.460.0 → orionis-0.462.0}/MANIFEST.in +0 -0
  16. {orionis-0.460.0 → orionis-0.462.0}/README.md +0 -0
  17. {orionis-0.460.0 → orionis-0.462.0}/orionis/__init__.py +0 -0
  18. {orionis-0.460.0 → orionis-0.462.0}/orionis/app.py +0 -0
  19. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/__init__.py +0 -0
  20. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/args/__init__.py +0 -0
  21. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/args/argument.py +0 -0
  22. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/args/enums/__init__.py +0 -0
  23. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/args/enums/actions.py +0 -0
  24. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/base/__init__.py +0 -0
  25. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/base/command.py +0 -0
  26. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/base/contracts/__init__.py +0 -0
  27. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/base/contracts/command.py +0 -0
  28. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/commands/__init__.py +0 -0
  29. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/contracts/__init__.py +0 -0
  30. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/contracts/kernel.py +0 -0
  31. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/contracts/reactor.py +0 -0
  32. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/core/__init__.py +0 -0
  33. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/dumper/__init__.py +0 -0
  34. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/dumper/contracts/__init__.py +0 -0
  35. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/dumper/contracts/dump.py +0 -0
  36. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/dumper/dump.py +0 -0
  37. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/dynamic/__init__.py +0 -0
  38. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/dynamic/contracts/__init__.py +0 -0
  39. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/dynamic/contracts/progress_bar.py +0 -0
  40. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/dynamic/progress_bar.py +0 -0
  41. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/exceptions/__init__.py +0 -0
  42. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/exceptions/cli_exception.py +0 -0
  43. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/exceptions/cli_orionis_value_error.py +0 -0
  44. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/exceptions/cli_runtime_error.py +0 -0
  45. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/exceptions/cli_schedule_exception.py +0 -0
  46. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/kernel.py +0 -0
  47. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/output/__init__.py +0 -0
  48. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/output/console.py +0 -0
  49. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/output/contracts/__init__.py +0 -0
  50. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/output/contracts/console.py +0 -0
  51. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/output/contracts/executor.py +0 -0
  52. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/output/enums/__init__.py +0 -0
  53. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/output/enums/styles.py +0 -0
  54. {orionis-0.460.0 → orionis-0.462.0}/orionis/console/output/executor.py +0 -0
  55. {orionis-0.460.0/orionis/container → orionis-0.462.0/orionis/console/tasks}/__init__.py +0 -0
  56. {orionis-0.460.0/orionis/container/context → orionis-0.462.0/orionis/container}/__init__.py +0 -0
  57. {orionis-0.460.0 → orionis-0.462.0}/orionis/container/container.py +0 -0
  58. {orionis-0.460.0/orionis/container/contracts → orionis-0.462.0/orionis/container/context}/__init__.py +0 -0
  59. {orionis-0.460.0 → orionis-0.462.0}/orionis/container/context/manager.py +0 -0
  60. {orionis-0.460.0 → orionis-0.462.0}/orionis/container/context/scope.py +0 -0
  61. {orionis-0.460.0/orionis/container/entities → orionis-0.462.0/orionis/container/contracts}/__init__.py +0 -0
  62. {orionis-0.460.0 → orionis-0.462.0}/orionis/container/contracts/container.py +0 -0
  63. {orionis-0.460.0 → orionis-0.462.0}/orionis/container/contracts/service_provider.py +0 -0
  64. {orionis-0.460.0/orionis/container/facades → orionis-0.462.0/orionis/container/entities}/__init__.py +0 -0
  65. {orionis-0.460.0 → orionis-0.462.0}/orionis/container/entities/binding.py +0 -0
  66. {orionis-0.460.0 → orionis-0.462.0}/orionis/container/enums/__init__.py +0 -0
  67. {orionis-0.460.0 → orionis-0.462.0}/orionis/container/enums/lifetimes.py +0 -0
  68. {orionis-0.460.0 → orionis-0.462.0}/orionis/container/exceptions/__init__.py +0 -0
  69. {orionis-0.460.0 → orionis-0.462.0}/orionis/container/exceptions/attribute.py +0 -0
  70. {orionis-0.460.0 → orionis-0.462.0}/orionis/container/exceptions/exception.py +0 -0
  71. {orionis-0.460.0 → orionis-0.462.0}/orionis/container/exceptions/type.py +0 -0
  72. {orionis-0.460.0 → orionis-0.462.0}/orionis/container/exceptions/value.py +0 -0
  73. {orionis-0.460.0/orionis/container/providers → orionis-0.462.0/orionis/container/facades}/__init__.py +0 -0
  74. {orionis-0.460.0 → orionis-0.462.0}/orionis/container/facades/facade.py +0 -0
  75. {orionis-0.460.0/orionis/foundation → orionis-0.462.0/orionis/container/providers}/__init__.py +0 -0
  76. {orionis-0.460.0 → orionis-0.462.0}/orionis/container/providers/service_provider.py +0 -0
  77. {orionis-0.460.0 → orionis-0.462.0}/orionis/container/validators/__init__.py +0 -0
  78. {orionis-0.460.0 → orionis-0.462.0}/orionis/container/validators/implements.py +0 -0
  79. {orionis-0.460.0 → orionis-0.462.0}/orionis/container/validators/is_abstract_class.py +0 -0
  80. {orionis-0.460.0 → orionis-0.462.0}/orionis/container/validators/is_callable.py +0 -0
  81. {orionis-0.460.0 → orionis-0.462.0}/orionis/container/validators/is_concrete_class.py +0 -0
  82. {orionis-0.460.0 → orionis-0.462.0}/orionis/container/validators/is_instance.py +0 -0
  83. {orionis-0.460.0 → orionis-0.462.0}/orionis/container/validators/is_not_subclass.py +0 -0
  84. {orionis-0.460.0 → orionis-0.462.0}/orionis/container/validators/is_subclass.py +0 -0
  85. {orionis-0.460.0 → orionis-0.462.0}/orionis/container/validators/is_valid_alias.py +0 -0
  86. {orionis-0.460.0 → orionis-0.462.0}/orionis/container/validators/lifetime.py +0 -0
  87. {orionis-0.460.0/orionis/foundation/config → orionis-0.462.0/orionis/foundation}/__init__.py +0 -0
  88. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/application.py +0 -0
  89. {orionis-0.460.0/orionis/foundation/config/app → orionis-0.462.0/orionis/foundation/config}/__init__.py +0 -0
  90. {orionis-0.460.0/orionis/foundation/config/app/entities → orionis-0.462.0/orionis/foundation/config/app}/__init__.py +0 -0
  91. {orionis-0.460.0/orionis/foundation/config/auth → orionis-0.462.0/orionis/foundation/config/app/entities}/__init__.py +0 -0
  92. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/app/entities/app.py +0 -0
  93. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/app/enums/__init__.py +0 -0
  94. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/app/enums/ciphers.py +0 -0
  95. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/app/enums/environments.py +0 -0
  96. {orionis-0.460.0/orionis/foundation/config/auth/entities → orionis-0.462.0/orionis/foundation/config/auth}/__init__.py +0 -0
  97. {orionis-0.460.0/orionis/foundation/config/cache → orionis-0.462.0/orionis/foundation/config/auth/entities}/__init__.py +0 -0
  98. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/auth/entities/auth.py +0 -0
  99. {orionis-0.460.0/orionis/foundation/config/cache/entities → orionis-0.462.0/orionis/foundation/config/cache}/__init__.py +0 -0
  100. {orionis-0.460.0/orionis/foundation/config/cors → orionis-0.462.0/orionis/foundation/config/cache/entities}/__init__.py +0 -0
  101. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/cache/entities/cache.py +0 -0
  102. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/cache/entities/file.py +0 -0
  103. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/cache/entities/stores.py +0 -0
  104. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/cache/enums/__init__.py +0 -0
  105. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/cache/enums/drivers.py +0 -0
  106. {orionis-0.460.0/orionis/foundation/config/cors/entities → orionis-0.462.0/orionis/foundation/config/cors}/__init__.py +0 -0
  107. {orionis-0.460.0/orionis/foundation/config/database → orionis-0.462.0/orionis/foundation/config/cors/entities}/__init__.py +0 -0
  108. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/cors/entities/cors.py +0 -0
  109. {orionis-0.460.0/orionis/foundation/config/database/entities → orionis-0.462.0/orionis/foundation/config/database}/__init__.py +0 -0
  110. {orionis-0.460.0/orionis/foundation/config/filesystems → orionis-0.462.0/orionis/foundation/config/database/entities}/__init__.py +0 -0
  111. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/database/entities/connections.py +0 -0
  112. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/database/entities/database.py +0 -0
  113. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/database/entities/mysql.py +0 -0
  114. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/database/entities/oracle.py +0 -0
  115. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/database/entities/pgsql.py +0 -0
  116. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/database/entities/sqlite.py +0 -0
  117. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/database/enums/__init__.py +0 -0
  118. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/database/enums/mysql_charsets.py +0 -0
  119. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/database/enums/mysql_collations.py +0 -0
  120. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/database/enums/mysql_engine.py +0 -0
  121. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/database/enums/oracle_encoding.py +0 -0
  122. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/database/enums/oracle_nencoding.py +0 -0
  123. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/database/enums/pgsql_charsets.py +0 -0
  124. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/database/enums/pgsql_collations.py +0 -0
  125. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/database/enums/pgsql_mode.py +0 -0
  126. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/database/enums/sqlite_foreign_key.py +0 -0
  127. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/database/enums/sqlite_journal.py +0 -0
  128. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/database/enums/sqlite_synchronous.py +0 -0
  129. {orionis-0.460.0/orionis/foundation/config/filesystems/entitites → orionis-0.462.0/orionis/foundation/config/filesystems}/__init__.py +0 -0
  130. {orionis-0.460.0/orionis/foundation/config/logging → orionis-0.462.0/orionis/foundation/config/filesystems/entitites}/__init__.py +0 -0
  131. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/filesystems/entitites/aws.py +0 -0
  132. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/filesystems/entitites/disks.py +0 -0
  133. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/filesystems/entitites/filesystems.py +0 -0
  134. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/filesystems/entitites/local.py +0 -0
  135. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/filesystems/entitites/public.py +0 -0
  136. {orionis-0.460.0/orionis/foundation/config/logging/entities → orionis-0.462.0/orionis/foundation/config/logging}/__init__.py +0 -0
  137. {orionis-0.460.0/orionis/foundation/config/mail → orionis-0.462.0/orionis/foundation/config/logging/entities}/__init__.py +0 -0
  138. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/logging/entities/channels.py +0 -0
  139. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/logging/entities/chunked.py +0 -0
  140. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/logging/entities/daily.py +0 -0
  141. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/logging/entities/hourly.py +0 -0
  142. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/logging/entities/logging.py +0 -0
  143. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/logging/entities/monthly.py +0 -0
  144. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/logging/entities/stack.py +0 -0
  145. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/logging/entities/weekly.py +0 -0
  146. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/logging/enums/__init__.py +0 -0
  147. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/logging/enums/levels.py +0 -0
  148. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/logging/validators/__init__.py +0 -0
  149. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/logging/validators/level.py +0 -0
  150. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/logging/validators/path.py +0 -0
  151. {orionis-0.460.0/orionis/foundation/config/mail/entities → orionis-0.462.0/orionis/foundation/config/mail}/__init__.py +0 -0
  152. {orionis-0.460.0/orionis/foundation/config/queue → orionis-0.462.0/orionis/foundation/config/mail/entities}/__init__.py +0 -0
  153. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/mail/entities/file.py +0 -0
  154. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/mail/entities/mail.py +0 -0
  155. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/mail/entities/mailers.py +0 -0
  156. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/mail/entities/smtp.py +0 -0
  157. {orionis-0.460.0/orionis/foundation/config/queue/entities → orionis-0.462.0/orionis/foundation/config/queue}/__init__.py +0 -0
  158. {orionis-0.460.0/orionis/foundation/config/roots → orionis-0.462.0/orionis/foundation/config/queue/entities}/__init__.py +0 -0
  159. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/queue/entities/brokers.py +0 -0
  160. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/queue/entities/database.py +0 -0
  161. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/queue/entities/queue.py +0 -0
  162. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/queue/enums/__init__.py +0 -0
  163. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/queue/enums/strategy.py +0 -0
  164. {orionis-0.460.0/orionis/foundation/config/session → orionis-0.462.0/orionis/foundation/config/roots}/__init__.py +0 -0
  165. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/roots/paths.py +0 -0
  166. {orionis-0.460.0/orionis/foundation/config/session/entities → orionis-0.462.0/orionis/foundation/config/session}/__init__.py +0 -0
  167. {orionis-0.460.0/orionis/foundation/config/session/helpers → orionis-0.462.0/orionis/foundation/config/session/entities}/__init__.py +0 -0
  168. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/session/entities/session.py +0 -0
  169. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/session/enums/__init__.py +0 -0
  170. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/session/enums/same_site_policy.py +0 -0
  171. {orionis-0.460.0/orionis/foundation/config/testing → orionis-0.462.0/orionis/foundation/config/session/helpers}/__init__.py +0 -0
  172. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/session/helpers/secret_key.py +0 -0
  173. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/startup.py +0 -0
  174. {orionis-0.460.0/orionis/foundation/config/testing/entities → orionis-0.462.0/orionis/foundation/config/testing}/__init__.py +0 -0
  175. {orionis-0.460.0/orionis/foundation/contracts → orionis-0.462.0/orionis/foundation/config/testing/entities}/__init__.py +0 -0
  176. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/testing/entities/testing.py +0 -0
  177. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/testing/enums/__init__.py +0 -0
  178. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/testing/enums/drivers.py +0 -0
  179. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/testing/enums/mode.py +0 -0
  180. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/config/testing/enums/verbosity.py +0 -0
  181. {orionis-0.460.0/orionis/foundation/providers → orionis-0.462.0/orionis/foundation/contracts}/__init__.py +0 -0
  182. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/contracts/application.py +0 -0
  183. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/contracts/config.py +0 -0
  184. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/exceptions/__init__.py +0 -0
  185. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/exceptions/integrity.py +0 -0
  186. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/exceptions/runtime.py +0 -0
  187. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/exceptions/type.py +0 -0
  188. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/exceptions/value.py +0 -0
  189. {orionis-0.460.0/orionis/metadata → orionis-0.462.0/orionis/foundation/providers}/__init__.py +0 -0
  190. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/providers/console_provider.py +0 -0
  191. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/providers/dumper_provider.py +0 -0
  192. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/providers/executor_provider.py +0 -0
  193. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/providers/inspirational_provider.py +0 -0
  194. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/providers/logger_provider.py +0 -0
  195. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/providers/progress_bar_provider.py +0 -0
  196. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/providers/reactor_provider.py +0 -0
  197. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/providers/testing_provider.py +0 -0
  198. {orionis-0.460.0 → orionis-0.462.0}/orionis/foundation/providers/workers_provider.py +0 -0
  199. {orionis-0.460.0/orionis/services → orionis-0.462.0/orionis/metadata}/__init__.py +0 -0
  200. {orionis-0.460.0 → orionis-0.462.0}/orionis/metadata/package.py +0 -0
  201. {orionis-0.460.0/orionis/services/asynchrony → orionis-0.462.0/orionis/services}/__init__.py +0 -0
  202. {orionis-0.460.0/orionis/services/asynchrony/contracts → orionis-0.462.0/orionis/services/asynchrony}/__init__.py +0 -0
  203. {orionis-0.460.0/orionis/services/environment → orionis-0.462.0/orionis/services/asynchrony/contracts}/__init__.py +0 -0
  204. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/asynchrony/contracts/coroutines.py +0 -0
  205. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/asynchrony/coroutines.py +0 -0
  206. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/asynchrony/exceptions/__init__.py +0 -0
  207. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/asynchrony/exceptions/exception.py +0 -0
  208. {orionis-0.460.0/orionis/services/environment/contracts → orionis-0.462.0/orionis/services/environment}/__init__.py +0 -0
  209. {orionis-0.460.0/orionis/services/environment/core → orionis-0.462.0/orionis/services/environment/contracts}/__init__.py +0 -0
  210. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/environment/contracts/caster.py +0 -0
  211. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/environment/contracts/env.py +0 -0
  212. {orionis-0.460.0/orionis/services/environment/dynamic → orionis-0.462.0/orionis/services/environment/core}/__init__.py +0 -0
  213. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/environment/core/dot_env.py +0 -0
  214. {orionis-0.460.0/orionis/services/environment/helpers → orionis-0.462.0/orionis/services/environment/dynamic}/__init__.py +0 -0
  215. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/environment/dynamic/caster.py +0 -0
  216. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/environment/enums/__init__.py +0 -0
  217. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/environment/enums/value_type.py +0 -0
  218. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/environment/env.py +0 -0
  219. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/environment/exceptions/__init__.py +0 -0
  220. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/environment/exceptions/exception.py +0 -0
  221. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/environment/exceptions/value.py +0 -0
  222. {orionis-0.460.0/orionis/services/environment/key → orionis-0.462.0/orionis/services/environment/helpers}/__init__.py +0 -0
  223. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/environment/helpers/functions.py +0 -0
  224. {orionis-0.460.0/orionis/services/inspirational → orionis-0.462.0/orionis/services/environment/key}/__init__.py +0 -0
  225. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/environment/key/key_generator.py +0 -0
  226. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/environment/validators/__init__.py +0 -0
  227. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/environment/validators/key_name.py +0 -0
  228. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/environment/validators/types.py +0 -0
  229. {orionis-0.460.0/orionis/services/inspirational/contracts → orionis-0.462.0/orionis/services/inspirational}/__init__.py +0 -0
  230. {orionis-0.460.0/orionis/services/introspection → orionis-0.462.0/orionis/services/inspirational/contracts}/__init__.py +0 -0
  231. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/inspirational/contracts/inspire.py +0 -0
  232. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/inspirational/inspire.py +0 -0
  233. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/inspirational/quotes.py +0 -0
  234. {orionis-0.460.0/orionis/services/introspection/abstract → orionis-0.462.0/orionis/services/introspection}/__init__.py +0 -0
  235. {orionis-0.460.0/orionis/services/introspection/abstract/contracts → orionis-0.462.0/orionis/services/introspection/abstract}/__init__.py +0 -0
  236. {orionis-0.460.0/orionis/services/introspection/callables → orionis-0.462.0/orionis/services/introspection/abstract/contracts}/__init__.py +0 -0
  237. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/introspection/abstract/contracts/reflection.py +0 -0
  238. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/introspection/abstract/reflection.py +0 -0
  239. {orionis-0.460.0/orionis/services/introspection/callables/contracts → orionis-0.462.0/orionis/services/introspection/callables}/__init__.py +0 -0
  240. {orionis-0.460.0/orionis/services/introspection/concretes → orionis-0.462.0/orionis/services/introspection/callables/contracts}/__init__.py +0 -0
  241. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/introspection/callables/contracts/reflection.py +0 -0
  242. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/introspection/callables/reflection.py +0 -0
  243. {orionis-0.460.0/orionis/services/introspection/concretes/contracts → orionis-0.462.0/orionis/services/introspection/concretes}/__init__.py +0 -0
  244. {orionis-0.460.0/orionis/services/introspection/dependencies → orionis-0.462.0/orionis/services/introspection/concretes/contracts}/__init__.py +0 -0
  245. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/introspection/concretes/contracts/reflection.py +0 -0
  246. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/introspection/concretes/reflection.py +0 -0
  247. {orionis-0.460.0/orionis/services/introspection/dependencies/contracts → orionis-0.462.0/orionis/services/introspection/dependencies}/__init__.py +0 -0
  248. {orionis-0.460.0/orionis/services/introspection/dependencies/entities → orionis-0.462.0/orionis/services/introspection/dependencies/contracts}/__init__.py +0 -0
  249. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/introspection/dependencies/contracts/reflection.py +0 -0
  250. {orionis-0.460.0/orionis/services/introspection/instances → orionis-0.462.0/orionis/services/introspection/dependencies/entities}/__init__.py +0 -0
  251. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/introspection/dependencies/entities/argument.py +0 -0
  252. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/introspection/dependencies/entities/resolve_argument.py +0 -0
  253. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/introspection/dependencies/reflection.py +0 -0
  254. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/introspection/exceptions/__init__.py +0 -0
  255. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/introspection/exceptions/attribute.py +0 -0
  256. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/introspection/exceptions/type.py +0 -0
  257. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/introspection/exceptions/value.py +0 -0
  258. {orionis-0.460.0/orionis/services/introspection/instances/contracts → orionis-0.462.0/orionis/services/introspection/instances}/__init__.py +0 -0
  259. {orionis-0.460.0/orionis/services/introspection/modules → orionis-0.462.0/orionis/services/introspection/instances/contracts}/__init__.py +0 -0
  260. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/introspection/instances/contracts/reflection.py +0 -0
  261. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/introspection/instances/reflection.py +0 -0
  262. {orionis-0.460.0/orionis/services/introspection/modules/contracts → orionis-0.462.0/orionis/services/introspection/modules}/__init__.py +0 -0
  263. {orionis-0.460.0/orionis/services/introspection/objects → orionis-0.462.0/orionis/services/introspection/modules/contracts}/__init__.py +0 -0
  264. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/introspection/modules/contracts/reflection.py +0 -0
  265. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/introspection/modules/reflection.py +0 -0
  266. {orionis-0.460.0/orionis/services/log → orionis-0.462.0/orionis/services/introspection/objects}/__init__.py +0 -0
  267. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/introspection/objects/types.py +0 -0
  268. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/introspection/reflection.py +0 -0
  269. {orionis-0.460.0/orionis/services/log/contracts → orionis-0.462.0/orionis/services/log}/__init__.py +0 -0
  270. {orionis-0.460.0/orionis/services/log/handlers → orionis-0.462.0/orionis/services/log/contracts}/__init__.py +0 -0
  271. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/log/contracts/log_service.py +0 -0
  272. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/log/exceptions/__init__.py +0 -0
  273. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/log/exceptions/runtime.py +0 -0
  274. {orionis-0.460.0/orionis/services/system → orionis-0.462.0/orionis/services/log/handlers}/__init__.py +0 -0
  275. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/log/handlers/filename.py +0 -0
  276. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/log/handlers/size_rotating.py +0 -0
  277. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/log/handlers/timed_rotating.py +0 -0
  278. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/log/log_service.py +0 -0
  279. {orionis-0.460.0/orionis/services/system/contracts → orionis-0.462.0/orionis/services/system}/__init__.py +0 -0
  280. {orionis-0.460.0/orionis/services/system/runtime → orionis-0.462.0/orionis/services/system/contracts}/__init__.py +0 -0
  281. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/system/contracts/imports.py +0 -0
  282. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/system/contracts/workers.py +0 -0
  283. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/system/imports.py +0 -0
  284. {orionis-0.460.0/orionis/support → orionis-0.462.0/orionis/services/system/runtime}/__init__.py +0 -0
  285. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/system/runtime/imports.py +0 -0
  286. {orionis-0.460.0 → orionis-0.462.0}/orionis/services/system/workers.py +0 -0
  287. {orionis-0.460.0/orionis/support/entities → orionis-0.462.0/orionis/support}/__init__.py +0 -0
  288. {orionis-0.460.0/orionis/support/facades → orionis-0.462.0/orionis/support/entities}/__init__.py +0 -0
  289. {orionis-0.460.0 → orionis-0.462.0}/orionis/support/entities/base.py +0 -0
  290. {orionis-0.460.0/orionis/support/formatter → orionis-0.462.0/orionis/support/facades}/__init__.py +0 -0
  291. {orionis-0.460.0 → orionis-0.462.0}/orionis/support/facades/console.py +0 -0
  292. {orionis-0.460.0 → orionis-0.462.0}/orionis/support/facades/dumper.py +0 -0
  293. {orionis-0.460.0 → orionis-0.462.0}/orionis/support/facades/executor.py +0 -0
  294. {orionis-0.460.0 → orionis-0.462.0}/orionis/support/facades/inspire.py +0 -0
  295. {orionis-0.460.0 → orionis-0.462.0}/orionis/support/facades/logger.py +0 -0
  296. {orionis-0.460.0 → orionis-0.462.0}/orionis/support/facades/progress_bar.py +0 -0
  297. {orionis-0.460.0 → orionis-0.462.0}/orionis/support/facades/testing.py +0 -0
  298. {orionis-0.460.0 → orionis-0.462.0}/orionis/support/facades/workers.py +0 -0
  299. {orionis-0.460.0/orionis/support/formatter/exceptions → orionis-0.462.0/orionis/support/formatter}/__init__.py +0 -0
  300. {orionis-0.460.0/orionis/support/formatter/exceptions/contracts → orionis-0.462.0/orionis/support/formatter/exceptions}/__init__.py +0 -0
  301. {orionis-0.460.0/orionis/support/patterns → orionis-0.462.0/orionis/support/formatter/exceptions/contracts}/__init__.py +0 -0
  302. {orionis-0.460.0 → orionis-0.462.0}/orionis/support/formatter/exceptions/contracts/parser.py +0 -0
  303. {orionis-0.460.0 → orionis-0.462.0}/orionis/support/formatter/exceptions/parser.py +0 -0
  304. {orionis-0.460.0 → orionis-0.462.0}/orionis/support/formatter/serializer.py +0 -0
  305. {orionis-0.460.0/orionis/support/standard → orionis-0.462.0/orionis/support/patterns}/__init__.py +0 -0
  306. {orionis-0.460.0 → orionis-0.462.0}/orionis/support/patterns/singleton/__init__.py +0 -0
  307. {orionis-0.460.0 → orionis-0.462.0}/orionis/support/patterns/singleton/meta.py +0 -0
  308. {orionis-0.460.0/orionis/support/standard/contracts → orionis-0.462.0/orionis/support/standard}/__init__.py +0 -0
  309. {orionis-0.460.0/orionis/test → orionis-0.462.0/orionis/support/standard/contracts}/__init__.py +0 -0
  310. {orionis-0.460.0 → orionis-0.462.0}/orionis/support/standard/contracts/std.py +0 -0
  311. {orionis-0.460.0 → orionis-0.462.0}/orionis/support/standard/exceptions/__init__.py +0 -0
  312. {orionis-0.460.0 → orionis-0.462.0}/orionis/support/standard/exceptions/value.py +0 -0
  313. {orionis-0.460.0 → orionis-0.462.0}/orionis/support/standard/std.py +0 -0
  314. {orionis-0.460.0 → orionis-0.462.0}/orionis/support/wrapper/__init__.py +0 -0
  315. {orionis-0.460.0 → orionis-0.462.0}/orionis/support/wrapper/dot_dict.py +0 -0
  316. {orionis-0.460.0/orionis/test/cases → orionis-0.462.0/orionis/test}/__init__.py +0 -0
  317. {orionis-0.460.0/orionis/test/contracts → orionis-0.462.0/orionis/test/cases}/__init__.py +0 -0
  318. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/cases/asynchronous.py +0 -0
  319. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/cases/synchronous.py +0 -0
  320. {orionis-0.460.0/orionis/test/core → orionis-0.462.0/orionis/test/contracts}/__init__.py +0 -0
  321. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/contracts/dumper.py +0 -0
  322. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/contracts/kernel.py +0 -0
  323. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/contracts/logs.py +0 -0
  324. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/contracts/printer.py +0 -0
  325. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/contracts/render.py +0 -0
  326. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/contracts/test_result.py +0 -0
  327. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/contracts/unit_test.py +0 -0
  328. {orionis-0.460.0/orionis/test/entities → orionis-0.462.0/orionis/test/core}/__init__.py +0 -0
  329. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/core/unit_test.py +0 -0
  330. {orionis-0.460.0/orionis/test/output → orionis-0.462.0/orionis/test/entities}/__init__.py +0 -0
  331. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/entities/result.py +0 -0
  332. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/enums/__init__.py +0 -0
  333. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/enums/status.py +0 -0
  334. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/exceptions/__init__.py +0 -0
  335. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/exceptions/config.py +0 -0
  336. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/exceptions/failure.py +0 -0
  337. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/exceptions/persistence.py +0 -0
  338. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/exceptions/runtime.py +0 -0
  339. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/exceptions/value.py +0 -0
  340. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/kernel.py +0 -0
  341. {orionis-0.460.0/orionis/test/records → orionis-0.462.0/orionis/test/output}/__init__.py +0 -0
  342. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/output/dumper.py +0 -0
  343. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/output/printer.py +0 -0
  344. {orionis-0.460.0/orionis/test/view → orionis-0.462.0/orionis/test/records}/__init__.py +0 -0
  345. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/records/logs.py +0 -0
  346. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/validators/__init__.py +0 -0
  347. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/validators/base_path.py +0 -0
  348. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/validators/execution_mode.py +0 -0
  349. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/validators/fail_fast.py +0 -0
  350. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/validators/folder_path.py +0 -0
  351. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/validators/module_name.py +0 -0
  352. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/validators/name_pattern.py +0 -0
  353. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/validators/pattern.py +0 -0
  354. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/validators/persistent.py +0 -0
  355. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/validators/persistent_driver.py +0 -0
  356. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/validators/print_result.py +0 -0
  357. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/validators/tags.py +0 -0
  358. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/validators/throw_exception.py +0 -0
  359. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/validators/verbosity.py +0 -0
  360. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/validators/web_report.py +0 -0
  361. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/validators/workers.py +0 -0
  362. {orionis-0.460.0/tests → orionis-0.462.0/orionis/test/view}/__init__.py +0 -0
  363. {orionis-0.460.0 → orionis-0.462.0}/orionis/test/view/render.py +0 -0
  364. {orionis-0.460.0 → orionis-0.462.0}/orionis.egg-info/dependency_links.txt +0 -0
  365. {orionis-0.460.0 → orionis-0.462.0}/orionis.egg-info/requires.txt +0 -0
  366. {orionis-0.460.0 → orionis-0.462.0}/orionis.egg-info/top_level.txt +0 -0
  367. {orionis-0.460.0 → orionis-0.462.0}/orionis.egg-info/zip-safe +0 -0
  368. {orionis-0.460.0 → orionis-0.462.0}/setup.cfg +0 -0
  369. {orionis-0.460.0 → orionis-0.462.0}/setup.py +0 -0
  370. {orionis-0.460.0/tests/container → orionis-0.462.0/tests}/__init__.py +0 -0
  371. {orionis-0.460.0/tests/container/context → orionis-0.462.0/tests/container}/__init__.py +0 -0
  372. {orionis-0.460.0/tests/container/core → orionis-0.462.0/tests/container/context}/__init__.py +0 -0
  373. {orionis-0.460.0 → orionis-0.462.0}/tests/container/context/test_manager.py +0 -0
  374. {orionis-0.460.0 → orionis-0.462.0}/tests/container/context/test_scope.py +0 -0
  375. {orionis-0.460.0/tests/container/entities → orionis-0.462.0/tests/container/core}/__init__.py +0 -0
  376. {orionis-0.460.0 → orionis-0.462.0}/tests/container/core/test_container.py +0 -0
  377. {orionis-0.460.0 → orionis-0.462.0}/tests/container/core/test_singleton.py +0 -0
  378. {orionis-0.460.0 → orionis-0.462.0}/tests/container/core/test_thread_safety.py +0 -0
  379. {orionis-0.460.0/tests/container/enums → orionis-0.462.0/tests/container/entities}/__init__.py +0 -0
  380. {orionis-0.460.0 → orionis-0.462.0}/tests/container/entities/test_binding.py +0 -0
  381. {orionis-0.460.0/tests/container/facades → orionis-0.462.0/tests/container/enums}/__init__.py +0 -0
  382. {orionis-0.460.0 → orionis-0.462.0}/tests/container/enums/test_lifetimes.py +0 -0
  383. {orionis-0.460.0/tests/container/mocks → orionis-0.462.0/tests/container/facades}/__init__.py +0 -0
  384. {orionis-0.460.0 → orionis-0.462.0}/tests/container/facades/test_facade.py +0 -0
  385. {orionis-0.460.0/tests/container/providers → orionis-0.462.0/tests/container/mocks}/__init__.py +0 -0
  386. {orionis-0.460.0 → orionis-0.462.0}/tests/container/mocks/mock_auto_resolution.py +0 -0
  387. {orionis-0.460.0 → orionis-0.462.0}/tests/container/mocks/mock_complex_classes.py +0 -0
  388. {orionis-0.460.0 → orionis-0.462.0}/tests/container/mocks/mock_simple_classes.py +0 -0
  389. {orionis-0.460.0/tests/container/validators → orionis-0.462.0/tests/container/providers}/__init__.py +0 -0
  390. {orionis-0.460.0 → orionis-0.462.0}/tests/container/providers/test_providers.py +0 -0
  391. {orionis-0.460.0/tests/example → orionis-0.462.0/tests/container/validators}/__init__.py +0 -0
  392. {orionis-0.460.0 → orionis-0.462.0}/tests/container/validators/test_implements.py +0 -0
  393. {orionis-0.460.0 → orionis-0.462.0}/tests/container/validators/test_is_abstract_class.py +0 -0
  394. {orionis-0.460.0 → orionis-0.462.0}/tests/container/validators/test_is_callable.py +0 -0
  395. {orionis-0.460.0 → orionis-0.462.0}/tests/container/validators/test_is_concrete_class.py +0 -0
  396. {orionis-0.460.0 → orionis-0.462.0}/tests/container/validators/test_is_instance.py +0 -0
  397. {orionis-0.460.0 → orionis-0.462.0}/tests/container/validators/test_is_not_subclass.py +0 -0
  398. {orionis-0.460.0 → orionis-0.462.0}/tests/container/validators/test_is_subclass.py +0 -0
  399. {orionis-0.460.0 → orionis-0.462.0}/tests/container/validators/test_is_valid_alias.py +0 -0
  400. {orionis-0.460.0 → orionis-0.462.0}/tests/container/validators/test_lifetime.py +0 -0
  401. {orionis-0.460.0/tests/foundation → orionis-0.462.0/tests/example}/__init__.py +0 -0
  402. {orionis-0.460.0 → orionis-0.462.0}/tests/example/test_example.py +0 -0
  403. {orionis-0.460.0/tests/foundation/config → orionis-0.462.0/tests/foundation}/__init__.py +0 -0
  404. {orionis-0.460.0/tests/foundation/config/app → orionis-0.462.0/tests/foundation/config}/__init__.py +0 -0
  405. {orionis-0.460.0/tests/foundation/config/auth → orionis-0.462.0/tests/foundation/config/app}/__init__.py +0 -0
  406. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/app/test_foundation_config_app.py +0 -0
  407. {orionis-0.460.0/tests/foundation/config/cache → orionis-0.462.0/tests/foundation/config/auth}/__init__.py +0 -0
  408. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/auth/test_foundation_config_auth.py +0 -0
  409. {orionis-0.460.0/tests/foundation/config/cors → orionis-0.462.0/tests/foundation/config/cache}/__init__.py +0 -0
  410. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/cache/test_foundation_config_cache.py +0 -0
  411. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/cache/test_foundation_config_cache_file.py +0 -0
  412. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/cache/test_foundation_config_cache_stores.py +0 -0
  413. {orionis-0.460.0/tests/foundation/config/database → orionis-0.462.0/tests/foundation/config/cors}/__init__.py +0 -0
  414. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/cors/test_foundation_config_cors.py +0 -0
  415. {orionis-0.460.0/tests/foundation/config/filesystems → orionis-0.462.0/tests/foundation/config/database}/__init__.py +0 -0
  416. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/database/test_foundation_config_database.py +0 -0
  417. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/database/test_foundation_config_database_connections.py +0 -0
  418. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/database/test_foundation_config_database_mysql.py +0 -0
  419. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/database/test_foundation_config_database_oracle.py +0 -0
  420. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/database/test_foundation_config_database_pgsql.py +0 -0
  421. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/database/test_foundation_config_database_sqlite.py +0 -0
  422. {orionis-0.460.0/tests/foundation/config/logging → orionis-0.462.0/tests/foundation/config/filesystems}/__init__.py +0 -0
  423. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems.py +0 -0
  424. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_aws.py +0 -0
  425. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_disks.py +0 -0
  426. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_local.py +0 -0
  427. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_public.py +0 -0
  428. {orionis-0.460.0/tests/foundation/config/mail → orionis-0.462.0/tests/foundation/config/logging}/__init__.py +0 -0
  429. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/logging/test_foundation_config_logging.py +0 -0
  430. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/logging/test_foundation_config_logging_channels.py +0 -0
  431. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/logging/test_foundation_config_logging_chunked.py +0 -0
  432. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/logging/test_foundation_config_logging_daily.py +0 -0
  433. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/logging/test_foundation_config_logging_hourly.py +0 -0
  434. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/logging/test_foundation_config_logging_monthly.py +0 -0
  435. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/logging/test_foundation_config_logging_stack.py +0 -0
  436. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/logging/test_foundation_config_logging_weekly.py +0 -0
  437. {orionis-0.460.0/tests/foundation/config/queue → orionis-0.462.0/tests/foundation/config/mail}/__init__.py +0 -0
  438. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/mail/test_foundation_config_mail.py +0 -0
  439. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/mail/test_foundation_config_mail_file.py +0 -0
  440. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/mail/test_foundation_config_mail_mailers.py +0 -0
  441. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/mail/test_foundation_config_mail_smtp.py +0 -0
  442. {orionis-0.460.0/tests/foundation/config/root → orionis-0.462.0/tests/foundation/config/queue}/__init__.py +0 -0
  443. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/queue/test_foundation_config_queue.py +0 -0
  444. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/queue/test_foundation_config_queue_brokers.py +0 -0
  445. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/queue/test_foundation_config_queue_database.py +0 -0
  446. {orionis-0.460.0/tests/foundation/config/session → orionis-0.462.0/tests/foundation/config/root}/__init__.py +0 -0
  447. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/root/test_foundation_config_root_paths.py +0 -0
  448. {orionis-0.460.0/tests/foundation/config/startup → orionis-0.462.0/tests/foundation/config/session}/__init__.py +0 -0
  449. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/session/test_foundation_config_session.py +0 -0
  450. {orionis-0.460.0/tests/foundation/config/testing → orionis-0.462.0/tests/foundation/config/startup}/__init__.py +0 -0
  451. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/startup/test_foundation_config_startup.py +0 -0
  452. {orionis-0.460.0/tests/metadata → orionis-0.462.0/tests/foundation/config/testing}/__init__.py +0 -0
  453. {orionis-0.460.0 → orionis-0.462.0}/tests/foundation/config/testing/test_foundation_config_testing.py +0 -0
  454. {orionis-0.460.0/tests/services → orionis-0.462.0/tests/metadata}/__init__.py +0 -0
  455. {orionis-0.460.0 → orionis-0.462.0}/tests/metadata/test_metadata_framework.py +0 -0
  456. {orionis-0.460.0 → orionis-0.462.0}/tests/metadata/test_metadata_package.py +0 -0
  457. {orionis-0.460.0/tests/services/asynchrony → orionis-0.462.0/tests/services}/__init__.py +0 -0
  458. {orionis-0.460.0/tests/services/environment → orionis-0.462.0/tests/services/asynchrony}/__init__.py +0 -0
  459. {orionis-0.460.0 → orionis-0.462.0}/tests/services/asynchrony/test_services_asynchrony_coroutine.py +0 -0
  460. {orionis-0.460.0/tests/services/introspection → orionis-0.462.0/tests/services/environment}/__init__.py +0 -0
  461. {orionis-0.460.0 → orionis-0.462.0}/tests/services/environment/test_services_environment.py +0 -0
  462. {orionis-0.460.0/tests/services/introspection/dependencies → orionis-0.462.0/tests/services/introspection}/__init__.py +0 -0
  463. {orionis-0.460.0/tests/services/introspection/dependencies/mocks → orionis-0.462.0/tests/services/introspection/dependencies}/__init__.py +0 -0
  464. {orionis-0.460.0/tests/services/introspection/reflection → orionis-0.462.0/tests/services/introspection/dependencies/mocks}/__init__.py +0 -0
  465. {orionis-0.460.0 → orionis-0.462.0}/tests/services/introspection/dependencies/mocks/mock_user.py +0 -0
  466. {orionis-0.460.0 → orionis-0.462.0}/tests/services/introspection/dependencies/mocks/mock_user_controller.py +0 -0
  467. {orionis-0.460.0 → orionis-0.462.0}/tests/services/introspection/dependencies/mocks/mock_users_permissions.py +0 -0
  468. {orionis-0.460.0 → orionis-0.462.0}/tests/services/introspection/dependencies/test_reflect_dependencies.py +0 -0
  469. {orionis-0.460.0/tests/services/introspection/reflection/mock → orionis-0.462.0/tests/services/introspection/reflection}/__init__.py +0 -0
  470. {orionis-0.460.0/tests/services/log → orionis-0.462.0/tests/services/introspection/reflection/mock}/__init__.py +0 -0
  471. {orionis-0.460.0 → orionis-0.462.0}/tests/services/introspection/reflection/mock/fake_reflect_instance.py +0 -0
  472. {orionis-0.460.0 → orionis-0.462.0}/tests/services/introspection/reflection/test_reflection_abstract.py +0 -0
  473. {orionis-0.460.0 → orionis-0.462.0}/tests/services/introspection/reflection/test_reflection_callable.py +0 -0
  474. {orionis-0.460.0 → orionis-0.462.0}/tests/services/introspection/reflection/test_reflection_concrete.py +0 -0
  475. {orionis-0.460.0 → orionis-0.462.0}/tests/services/introspection/reflection/test_reflection_instance.py +0 -0
  476. {orionis-0.460.0 → orionis-0.462.0}/tests/services/introspection/reflection/test_reflection_module.py +0 -0
  477. {orionis-0.460.0 → orionis-0.462.0}/tests/services/introspection/test_reflection.py +0 -0
  478. {orionis-0.460.0/tests/services/system → orionis-0.462.0/tests/services/log}/__init__.py +0 -0
  479. {orionis-0.460.0 → orionis-0.462.0}/tests/services/log/test_log.py +0 -0
  480. {orionis-0.460.0/tests/support → orionis-0.462.0/tests/services/system}/__init__.py +0 -0
  481. {orionis-0.460.0 → orionis-0.462.0}/tests/services/system/test_services_system_imports.py +0 -0
  482. {orionis-0.460.0 → orionis-0.462.0}/tests/services/system/test_services_system_workers.py +0 -0
  483. {orionis-0.460.0/tests/support/entities → orionis-0.462.0/tests/support}/__init__.py +0 -0
  484. {orionis-0.460.0/tests/support/patterns → orionis-0.462.0/tests/support/entities}/__init__.py +0 -0
  485. {orionis-0.460.0 → orionis-0.462.0}/tests/support/entities/mock_dataclass.py +0 -0
  486. {orionis-0.460.0 → orionis-0.462.0}/tests/support/entities/test_base.py +0 -0
  487. {orionis-0.460.0/tests/support/patterns/singleton → orionis-0.462.0/tests/support/patterns}/__init__.py +0 -0
  488. {orionis-0.460.0/tests/support/standard → orionis-0.462.0/tests/support/patterns/singleton}/__init__.py +0 -0
  489. {orionis-0.460.0 → orionis-0.462.0}/tests/support/patterns/singleton/test_patterns_singleton.py +0 -0
  490. {orionis-0.460.0/tests/support/wrapper → orionis-0.462.0/tests/support/standard}/__init__.py +0 -0
  491. {orionis-0.460.0 → orionis-0.462.0}/tests/support/standard/test_services_std.py +0 -0
  492. {orionis-0.460.0/tests/testing → orionis-0.462.0/tests/support/wrapper}/__init__.py +0 -0
  493. {orionis-0.460.0 → orionis-0.462.0}/tests/support/wrapper/test_services_wrapper_docdict.py +0 -0
  494. {orionis-0.460.0/tests/testing/cases → orionis-0.462.0/tests/testing}/__init__.py +0 -0
  495. {orionis-0.460.0/tests/testing/entities → orionis-0.462.0/tests/testing/cases}/__init__.py +0 -0
  496. {orionis-0.460.0 → orionis-0.462.0}/tests/testing/cases/test_testing_asynchronous.py +0 -0
  497. {orionis-0.460.0 → orionis-0.462.0}/tests/testing/cases/test_testing_synchronous.py +0 -0
  498. {orionis-0.460.0/tests/testing/enums → orionis-0.462.0/tests/testing/entities}/__init__.py +0 -0
  499. {orionis-0.460.0 → orionis-0.462.0}/tests/testing/entities/test_testing_result.py +0 -0
  500. {orionis-0.460.0/tests/testing/output → orionis-0.462.0/tests/testing/enums}/__init__.py +0 -0
  501. {orionis-0.460.0 → orionis-0.462.0}/tests/testing/enums/test_testing_status.py +0 -0
  502. {orionis-0.460.0/tests/testing/records → orionis-0.462.0/tests/testing/output}/__init__.py +0 -0
  503. {orionis-0.460.0 → orionis-0.462.0}/tests/testing/output/test_testing_dumper.py +0 -0
  504. {orionis-0.460.0 → orionis-0.462.0}/tests/testing/output/test_testing_printer.py +0 -0
  505. {orionis-0.460.0/tests/testing/validators → orionis-0.462.0/tests/testing/records}/__init__.py +0 -0
  506. {orionis-0.460.0 → orionis-0.462.0}/tests/testing/records/test_testing_records.py +0 -0
  507. {orionis-0.460.0 → orionis-0.462.0}/tests/testing/test_testing_unit.py +0 -0
  508. {orionis-0.460.0/tests/testing/view → orionis-0.462.0/tests/testing/validators}/__init__.py +0 -0
  509. {orionis-0.460.0 → orionis-0.462.0}/tests/testing/validators/test_testing_validators.py +0 -0
  510. {orionis-0.460.0 → orionis-0.462.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.460.0
3
+ Version: 0.462.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
@@ -18,7 +18,7 @@ class HelpCommand(BaseCommand):
18
18
  # Command description
19
19
  description: str = "Displays usage information, examples, and a list of available commands in the Orionis CLI."
20
20
 
21
- def handle(self, reactor: IReactor) -> None:
21
+ def handle(self, reactor: IReactor) -> dict:
22
22
  """
23
23
  Displays usage information and a list of available commands for the Orionis CLI.
24
24
 
@@ -29,8 +29,8 @@ class HelpCommand(BaseCommand):
29
29
 
30
30
  Returns
31
31
  -------
32
- None
33
- This method does not return any value. It prints help information to the console.
32
+ dict
33
+ A dictionary containing the list of available commands, each with its signature and description.
34
34
 
35
35
  Raises
36
36
  ------
@@ -77,6 +77,9 @@ class HelpCommand(BaseCommand):
77
77
  console.print(panel)
78
78
  console.print()
79
79
 
80
+ # Return the list of commands for potential further use
81
+ return commands
82
+
80
83
  except Exception as e:
81
84
 
82
85
  # Raise a custom runtime error if any exception occurs
@@ -0,0 +1,577 @@
1
+ import inspect
2
+ import os
3
+ import re
4
+ import shutil
5
+ import subprocess
6
+ import sys
7
+ import time
8
+ from pathlib import Path
9
+ from rich.console import Console
10
+ from rich.panel import Panel
11
+ from orionis.console.base.command import BaseCommand
12
+ from orionis.console.contracts.reactor import IReactor
13
+ from orionis.console.exceptions import CLIOrionisRuntimeError
14
+ from orionis.metadata.framework import VERSION
15
+
16
+ class PublisherCommand(BaseCommand):
17
+ """
18
+ PublisherCommand is a console command for automating the process of publishing a Python package to the Orionis repository (PyPI).
19
+
20
+ This command performs the following steps:
21
+ 1. Runs the project's test suite and aborts if there are any test failures or errors.
22
+ 2. Bumps the minor version number in the file where the VERSION constant is defined.
23
+ 3. Commits and pushes changes to the Git repository if there are modifications.
24
+ 4. Builds the package distributions (source and wheel) using `setup.py`.
25
+ 5. Publishes the built distributions to PyPI using Twine and a token from environment variables.
26
+ 6. Cleans up temporary build artifacts and metadata directories after publishing.
27
+
28
+ Attributes
29
+ ----------
30
+ timestamps : bool
31
+ Indicates whether timestamps will be shown in the command output.
32
+ signature : str
33
+ Command signature ("publisher").
34
+ description : str
35
+ Command description.
36
+
37
+ Methods
38
+ -------
39
+ __init__(console: Console)
40
+ Initializes the PublisherCommand instance, setting up the console, project root, console width, and PyPI token.
41
+ __bumpMinorVersion()
42
+ Increments the minor version number in the file where the VERSION constant is defined.
43
+ __gitPush()
44
+ Commits and pushes changes to the Git repository if there are modifications.
45
+ __build()
46
+ Builds the package distributions using `setup.py`.
47
+ __publish()
48
+ Publishes the built distributions to PyPI using Twine and a token from environment variables.
49
+ __clearRepository()
50
+ Cleans up temporary build artifacts and metadata directories after publishing.
51
+ handle(reactor: IReactor) -> None
52
+ Orchestrates the publishing process, running tests, bumping version, pushing to Git, building, and publishing the package.
53
+
54
+ Returns
55
+ -------
56
+ None
57
+ This class does not return a value directly. The main workflow is executed via the `handle` method, which returns None.
58
+ """
59
+
60
+ # Indicates whether timestamps will be shown in the command output
61
+ timestamps: bool = True
62
+
63
+ # Command signature and description
64
+ signature: str = "__publisher__"
65
+
66
+ # Command description
67
+ description: str = "Publishes Package to the Orionis repository."
68
+
69
+ def __init__(self, console: Console):
70
+ """
71
+ Initializes the PublisherCommand instance with the provided console and sets up
72
+ essential attributes for publishing operations.
73
+
74
+ This constructor sets up the console for output, determines the project root
75
+ directory, calculates the console width for display panels, and retrieves the
76
+ PyPI authentication token from environment variables.
77
+
78
+ Parameters
79
+ ----------
80
+ console : Console
81
+ The Rich Console instance used for formatted output throughout the command execution.
82
+
83
+ Returns
84
+ -------
85
+ None
86
+ This method does not return any value. It initializes instance attributes for use in other methods.
87
+ """
88
+
89
+ # Store the console instance for output
90
+ self.__console = console
91
+
92
+ # Set the project root to the current working directory
93
+ self.__project_root = Path.cwd()
94
+
95
+ # Calculate the width for console panels (3/4 of the console width)
96
+ self.__with_console = (self.__console.width // 4) * 3
97
+
98
+ # Retrieve the PyPI token from environment variables and remove leading/trailing whitespace
99
+ self.__token = os.getenv("PYPI_TOKEN").strip()
100
+
101
+ def __bumpMinorVersion(self):
102
+ """
103
+ Increment the minor version number in the file where the VERSION constant is defined.
104
+
105
+ This method locates the file containing the VERSION constant, reads its contents,
106
+ searches for the version assignment line, increments the minor version component,
107
+ and writes the updated version string back to the file. The patch and major
108
+ components remain unchanged.
109
+
110
+ Parameters
111
+ ----------
112
+ None
113
+
114
+ Returns
115
+ -------
116
+ None
117
+ This method does not return any value. The version is updated in-place in the file.
118
+
119
+ Raises
120
+ ------
121
+ FileNotFoundError
122
+ If the file containing the VERSION constant cannot be found.
123
+ IOError
124
+ If there is an error reading from or writing to the file.
125
+ """
126
+
127
+ # Get the file path where the VERSION constant is defined
128
+ # VERSION is imported from orionis.metadata.framework
129
+ import orionis.metadata.framework
130
+ filepath = Path(inspect.getfile(orionis.metadata.framework))
131
+ if not filepath.exists():
132
+ raise FileNotFoundError(f"VERSION file not found at {filepath}")
133
+
134
+ # Read all lines from the file
135
+ with open(filepath, 'r') as f:
136
+ lines = f.readlines()
137
+
138
+ # Prepare a list to hold the new lines
139
+ new_lines = []
140
+
141
+ # Regular expression to match the VERSION assignment line
142
+ pattern = re.compile(r'^(VERSION\s*=\s*["\'])(\d+)\.(\d+)\.(\d+)(["\'])')
143
+
144
+ # Iterate through each line in the file
145
+ for line in lines:
146
+ match = pattern.match(line)
147
+ if match:
148
+
149
+ # Extract major, minor, and patch numbers
150
+ major, minor, patch = int(match.group(2)), int(match.group(3)), int(match.group(4))
151
+
152
+ # Increment the minor version
153
+ minor += 1
154
+
155
+ # Construct the new version string
156
+ new_version = f'{match.group(1)}{major}.{minor}.{patch}{match.group(5)}'
157
+ new_lines.append(new_version + '\n')
158
+
159
+ else:
160
+
161
+ # Keep all other lines unchanged
162
+ new_lines.append(line)
163
+
164
+ # Write the updated lines back to the file
165
+ with open(filepath, 'w') as f:
166
+ f.writelines(new_lines)
167
+
168
+ # Print a message indicating the version has been bumped
169
+ self.__console.print(
170
+ Panel(
171
+ f"[green]📦 Bumped minor version to {VERSION}[/]",
172
+ border_style="green",
173
+ width=self.__with_console
174
+ )
175
+ )
176
+
177
+ def __gitPush(self):
178
+ """
179
+ Commits and pushes changes to the Git repository if there are modifications.
180
+
181
+ This method checks for uncommitted changes in the current project directory.
182
+ If changes are detected, it stages all modifications, commits them with a
183
+ message containing the current version, and pushes the commit to the remote
184
+ repository. If there are no changes, it logs a message indicating that no
185
+ commit or push is necessary.
186
+
187
+ Parameters
188
+ ----------
189
+ None
190
+
191
+ Returns
192
+ -------
193
+ None
194
+ This method does not return any value. All output is printed to the console.
195
+
196
+ Raises
197
+ ------
198
+ subprocess.CalledProcessError
199
+ If any of the subprocess calls to Git fail.
200
+ """
201
+
202
+ # Check the current Git status to see if there are modified files
203
+ git_status = subprocess.run(
204
+ ["git", "status", "--short"], capture_output=True, text=True, cwd=self.__project_root
205
+ )
206
+
207
+ # Check if the command was successful and if there are modified files
208
+ modified_files = git_status.stdout.strip()
209
+
210
+ # If there are modified files, proceed with staging and committing
211
+ if modified_files:
212
+
213
+ # Print the status of modified files
214
+ self.__console.print(
215
+ Panel(
216
+ "[cyan]📌 Staging files for commit...[/]",
217
+ border_style="cyan",
218
+ width=self.__with_console
219
+ )
220
+ )
221
+
222
+ # Stage all modified files
223
+ subprocess.run(
224
+ ["git", "add", "."], check=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, cwd=self.__project_root
225
+ )
226
+
227
+ # Commit the changes with a message
228
+ self.__console.print(
229
+ Panel(
230
+ f"[cyan]✅ Committing changes: [📦 Release version {VERSION}][/]",
231
+ border_style="cyan",
232
+ width=self.__with_console
233
+ )
234
+ )
235
+
236
+ # Wait for a short period to ensure the commit is registered
237
+ time.sleep(5)
238
+
239
+ subprocess.run(
240
+ ["git", "commit", "-m", f"📦 Release version {VERSION}"], check=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, cwd=self.__project_root
241
+ )
242
+ self.__console.print(
243
+ Panel(
244
+ "[cyan]🚀 Pushing changes to the remote repository...[/]",
245
+ border_style="cyan",
246
+ width=self.__with_console
247
+ )
248
+ )
249
+
250
+ # Push the changes to the remote repository
251
+ subprocess.run(
252
+ ["git", "push", "-f"], check=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, cwd=self.__project_root
253
+ )
254
+ self.__console.print(
255
+ Panel(
256
+ "[green]🌟 Git push completed![/]",
257
+ border_style="green",
258
+ width=self.__with_console
259
+ )
260
+ )
261
+
262
+ else:
263
+
264
+ self.__console.print(
265
+ Panel(
266
+ "[green]✅ No changes to commit.[/]",
267
+ border_style="green",
268
+ width=self.__with_console
269
+ )
270
+ )
271
+
272
+ def __build(self):
273
+ """
274
+ Builds the package distributions using `setup.py`.
275
+
276
+ This method compiles the package by invoking the `setup.py` script located
277
+ at the project root. It generates both source (`sdist`) and wheel (`bdist_wheel`)
278
+ distribution files, which are required for publishing the package to a repository.
279
+ If the `setup.py` file is not found, an error message is displayed and the build
280
+ process is aborted.
281
+
282
+ Parameters
283
+ ----------
284
+ None
285
+
286
+ Returns
287
+ -------
288
+ None
289
+ This method does not return any value. All output is printed to the console.
290
+
291
+ Raises
292
+ ------
293
+ subprocess.CalledProcessError
294
+ If the `setup.py` build command fails.
295
+ """
296
+
297
+ try:
298
+
299
+ # Notify the user that the build process is starting
300
+ self.__console.print(
301
+ Panel(
302
+ "[cyan]🛠️ Building the package...[/]",
303
+ border_style="cyan",
304
+ width=self.__with_console
305
+ )
306
+ )
307
+
308
+ # Define the path to the setup.py file in the project root
309
+ setup_path = self.__project_root / "setup.py"
310
+
311
+ # Check if setup.py exists in the project root
312
+ if not os.path.exists(setup_path):
313
+ self.__console.print(
314
+ Panel(
315
+ "[bold red]❌ Error: setup.py not found in the current execution directory.[/]",
316
+ border_style="red",
317
+ width=self.__with_console
318
+ )
319
+ )
320
+ return
321
+
322
+ # Run the setup.py script to build both sdist and wheel distributions
323
+ subprocess.run(
324
+ [sys.executable, "setup.py", "sdist", "bdist_wheel"],
325
+ check=True,
326
+ stdout=subprocess.DEVNULL,
327
+ stderr=subprocess.DEVNULL,
328
+ cwd=self.__project_root
329
+ )
330
+
331
+ # Notify the user that the build was successful
332
+ self.__console.print(
333
+ Panel(
334
+ "[green]✅ Build process completed successfully![/]",
335
+ border_style="green",
336
+ width=self.__with_console
337
+ )
338
+ )
339
+
340
+ except subprocess.CalledProcessError as e:
341
+
342
+ # Notify the user if the build process fails
343
+ self.__console.print(
344
+ Panel(
345
+ f"[bold red]❌ Build failed: {e}[/]",
346
+ border_style="red",
347
+ width=self.__with_console
348
+ )
349
+ )
350
+
351
+ def __publish(self):
352
+ """
353
+ Uploads the built package distributions to the PyPI repository using Twine.
354
+
355
+ This method locates the Twine executable (preferring the local virtual environment if available),
356
+ and uploads all distribution files from the `dist/` directory to PyPI using the authentication
357
+ token provided via the `PYPI_TOKEN` environment variable. If the token is missing, the process
358
+ is aborted and an error message is displayed. After a successful upload, the method cleans up
359
+ temporary Python bytecode files and `__pycache__` directories.
360
+
361
+ Parameters
362
+ ----------
363
+ None
364
+
365
+ Returns
366
+ -------
367
+ None
368
+ This method does not return any value. All output is printed to the console.
369
+
370
+ Raises
371
+ ------
372
+ subprocess.CalledProcessError
373
+ If the Twine upload or cleanup commands fail.
374
+ ValueError
375
+ If the PyPI token is not found in the environment variables.
376
+ """
377
+
378
+ # Get the PyPI token from environment variables
379
+ token = self.__token
380
+
381
+ # Check if the PyPI token is available
382
+ if not token:
383
+ self.__console.print(
384
+ Panel(
385
+ "[bold red]❌ Error: PyPI token not found in environment variables.[/]",
386
+ border_style="red",
387
+ width=self.__with_console
388
+ )
389
+ )
390
+ return
391
+
392
+ # Try to find 'twine' in the local virtual environment, otherwise use system PATH
393
+ venv_twine = self.__project_root / 'venv' / 'Scripts' / 'twine'
394
+ if venv_twine.exists():
395
+ twine_path = str(venv_twine.resolve())
396
+ else:
397
+ twine_path = 'twine'
398
+
399
+ # Notify user that the upload process is starting
400
+ self.__console.print(
401
+ Panel(
402
+ "[cyan]📤 Uploading package to PyPI...[/]",
403
+ border_style="cyan",
404
+ width=self.__with_console
405
+ )
406
+ )
407
+
408
+ # Upload the package distributions to PyPI using Twine
409
+ try:
410
+ subprocess.run(
411
+ [twine_path, "upload", "dist/*", "-u", "__token__", "-p", token],
412
+ check=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, cwd=self.__project_root
413
+ )
414
+ self.__console.print(
415
+ Panel(
416
+ "[green]✅ Package published successfully![/]",
417
+ border_style="green",
418
+ width=self.__with_console
419
+ )
420
+ )
421
+
422
+ # Print error message and exit if upload fails
423
+ except Exception as e:
424
+ self.__console.print(
425
+ Panel(
426
+ f"[bold red]🔴 Error uploading the package. Try changing the version and retry. Error: {e}[/]",
427
+ border_style="red",
428
+ width=self.__with_console
429
+ )
430
+ )
431
+ exit(1)
432
+
433
+ # Notify user that cleanup is starting
434
+ self.__console.print(
435
+ Panel(
436
+ "[cyan]🧹 Cleaning up temporary files...[/]",
437
+ border_style="cyan",
438
+ width=self.__with_console
439
+ )
440
+ )
441
+
442
+ # Remove all .pyc files and __pycache__ directories recursively
443
+ subprocess.run(
444
+ ["powershell", "-Command", "Get-ChildItem -Recurse -Filter *.pyc | Remove-Item; Get-ChildItem -Recurse -Filter __pycache__ | Remove-Item -Recurse"],
445
+ check=True, shell=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, cwd=self.__project_root
446
+ )
447
+
448
+ # Optionally, clear build artifacts (currently commented out)
449
+ self.__clearRepository()
450
+
451
+ # Notify user that the publishing process is complete
452
+ self.__console.print(
453
+ Panel(
454
+ f"[bold green]✅ Publishing process completed successfully![/]",
455
+ border_style="green",
456
+ width=self.__with_console
457
+ )
458
+ )
459
+ self.__console.print()
460
+
461
+ def __clearRepository(self):
462
+ """
463
+ Removes temporary build artifacts and metadata directories from the project root.
464
+
465
+ This method deletes the following directories if they exist:
466
+ - `build/`: Contains temporary build files generated during packaging.
467
+ - `dist/`: Contains distribution archives (e.g., .tar.gz, .whl) created by the build process.
468
+ - `orionis.egg-info/`: Contains package metadata generated by setuptools.
469
+
470
+ Parameters
471
+ ----------
472
+ None
473
+
474
+ Returns
475
+ -------
476
+ None
477
+ This method does not return any value. All output is printed to the console.
478
+
479
+ Raises
480
+ ------
481
+ PermissionError
482
+ If the method fails to delete any of the directories due to insufficient permissions.
483
+ Exception
484
+ If any other error occurs during the deletion process.
485
+ """
486
+
487
+ # List of directories to remove after publishing
488
+ folders = ["build", "dist", "orionis.egg-info"]
489
+
490
+ for folder in folders:
491
+ folder_path = self.__project_root / folder
492
+
493
+ # Check if the directory exists before attempting to remove it
494
+ if os.path.exists(folder_path):
495
+
496
+ # Recursively remove the directory and its contents
497
+ try:
498
+ shutil.rmtree(folder_path)
499
+
500
+ # Handle insufficient permissions error
501
+ except PermissionError:
502
+ self.__console.print(
503
+ Panel(
504
+ f"[bold red]❌ Error: Could not remove {folder_path} due to insufficient permissions.[/]",
505
+ border_style="red",
506
+ width=self.__with_console
507
+ )
508
+ )
509
+
510
+ # Handle any other exceptions that may occur
511
+ except Exception as e:
512
+ self.__console.print(
513
+ Panel(
514
+ f"[bold red]❌ Error removing {folder_path}: {str(e)}[/]",
515
+ border_style="red",
516
+ width=self.__with_console
517
+ )
518
+ )
519
+
520
+ def handle(self, reactor: IReactor) -> None:
521
+ """
522
+ Displays usage information and a list of available commands for the Orionis CLI.
523
+
524
+ Parameters
525
+ ----------
526
+ reactor : IReactor
527
+ The reactor instance providing command metadata via the `info()` method.
528
+
529
+ Returns
530
+ -------
531
+ None
532
+ This method does not return any value. It prints help information to the console.
533
+
534
+ Raises
535
+ ------
536
+ CLIOrionisRuntimeError
537
+ If an unexpected error occurs during help information generation or display.
538
+ """
539
+ try:
540
+
541
+ # Execute test suite
542
+ response: dict = reactor.call("test")
543
+
544
+ # Determinar si existieron errores en el test suite
545
+ failed = response.get("failed", 0)
546
+ errors = response.get("errors", 0)
547
+
548
+ # If there are any failed tests, print a warning message
549
+ if failed > 0 or errors > 0:
550
+ console = Console()
551
+ console.print(
552
+ Panel(
553
+ f"Tests failed: {failed}, Errors: {errors}",
554
+ title="Test Suite Results",
555
+ style="bold red"
556
+ )
557
+ )
558
+
559
+ # If there are failed tests, we do not proceed with the publishing
560
+ return
561
+
562
+ # Bump the minor version number
563
+ self.__bumpMinorVersion()
564
+
565
+ # Push changes to Git
566
+ self.__gitPush()
567
+
568
+ # Build the package
569
+ self.__build()
570
+
571
+ # Publish the package to PyPI
572
+ self.__publish()
573
+
574
+ except Exception as e:
575
+
576
+ # Raise a custom runtime error if any exception occurs
577
+ raise CLIOrionisRuntimeError(f"An unexpected error occurred: {e}") from e
@@ -26,7 +26,7 @@ class TestCommand(BaseCommand):
26
26
  # Command description
27
27
  description: str = "Executes all automated tests using the configured test kernel for the Orionis application."
28
28
 
29
- def handle(self) -> None:
29
+ def handle(self) -> dict:
30
30
  """
31
31
  Executes the test command for the Orionis CLI.
32
32
 
@@ -36,9 +36,8 @@ class TestCommand(BaseCommand):
36
36
 
37
37
  Returns
38
38
  -------
39
- None
40
- This method does not return any value. It performs actions as a side effect,
41
- such as running the test suite and handling exceptions.
39
+ dict
40
+ The result of the test execution, typically containing test results or status.
42
41
 
43
42
  Raises
44
43
  ------
@@ -54,7 +53,7 @@ class TestCommand(BaseCommand):
54
53
  kernel: ITestKernel = app.make(ITestKernel)
55
54
 
56
55
  # Run the test suite using the kernel's handle method
57
- kernel.handle()
56
+ return kernel.handle()
58
57
 
59
58
  except Exception as e:
60
59
 
@@ -27,7 +27,7 @@ class VersionCommand(BaseCommand):
27
27
  # Command description
28
28
  description: str = "Displays the current Orionis framework version and metadata, including author, Python requirements, documentation, and repository links."
29
29
 
30
- def handle(self) -> None:
30
+ def handle(self) -> str:
31
31
  """
32
32
  Executes the version command to display the current Orionis framework version and metadata.
33
33
 
@@ -41,9 +41,8 @@ class VersionCommand(BaseCommand):
41
41
 
42
42
  Returns
43
43
  -------
44
- None
45
- This method does not return any value. It outputs the version and metadata information
46
- to the console using rich formatting.
44
+ str
45
+ The current version of the Orionis framework.
47
46
 
48
47
  Raises
49
48
  ------
@@ -82,6 +81,10 @@ class VersionCommand(BaseCommand):
82
81
  console.print(panel)
83
82
  console.line()
84
83
 
84
+ # Return the framework version for potential further use
85
+ return framework.VERSION
86
+
85
87
  except Exception as e:
88
+
86
89
  # Raise a custom runtime error if any exception occurs
87
90
  raise CLIOrionisRuntimeError(f"An unexpected error occurred: {e}") from e
@@ -0,0 +1,4 @@
1
+ from abc import ABC, abstractmethod
2
+
3
+ class ISchedule(ABC):
4
+ pass