orionis 0.664.0__tar.gz → 0.666.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 (408) hide show
  1. {orionis-0.664.0/orionis.egg-info → orionis-0.666.0}/PKG-INFO +1 -1
  2. {orionis-0.664.0 → orionis-0.666.0}/orionis/failure/entities/throwable.py +4 -4
  3. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/application.py +22 -22
  4. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/app/entities/app.py +1 -1
  5. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/database/entities/mysql.py +1 -1
  6. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/database/entities/oracle.py +1 -1
  7. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/database/entities/pgsql.py +1 -1
  8. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/database/entities/sqlite.py +1 -1
  9. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/logging/entities/chunked.py +0 -2
  10. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/logging/entities/daily.py +0 -2
  11. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/logging/entities/hourly.py +0 -2
  12. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/logging/entities/monthly.py +0 -2
  13. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/logging/entities/stack.py +1 -3
  14. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/logging/entities/weekly.py +0 -2
  15. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/mail/entities/smtp.py +6 -4
  16. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/queue/entities/database.py +1 -1
  17. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/session/entities/session.py +1 -1
  18. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/startup.py +1 -1
  19. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/testing/entities/testing.py +1 -1
  20. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/contracts/application.py +1 -1
  21. {orionis-0.664.0 → orionis-0.666.0}/orionis/metadata/framework.py +1 -1
  22. {orionis-0.664.0 → orionis-0.666.0}/orionis/metadata/package.py +5 -4
  23. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/core/unit_test.py +9 -9
  24. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/output/dumper.py +1 -1
  25. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/output/printer.py +2 -2
  26. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/records/logs.py +5 -7
  27. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/view/render.py +8 -3
  28. {orionis-0.664.0 → orionis-0.666.0/orionis.egg-info}/PKG-INFO +1 -1
  29. {orionis-0.664.0 → orionis-0.666.0}/LICENCE +0 -0
  30. {orionis-0.664.0 → orionis-0.666.0}/MANIFEST.in +0 -0
  31. {orionis-0.664.0 → orionis-0.666.0}/README.md +0 -0
  32. {orionis-0.664.0 → orionis-0.666.0}/orionis/__init__.py +0 -0
  33. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/__init__.py +0 -0
  34. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/args/__init__.py +0 -0
  35. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/args/argument.py +0 -0
  36. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/base/__init__.py +0 -0
  37. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/base/command.py +0 -0
  38. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/base/scheduler.py +0 -0
  39. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/base/scheduler_event_listener.py +0 -0
  40. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/commands/__init__.py +0 -0
  41. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/commands/__publisher__.py +0 -0
  42. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/commands/__workflow__.py +0 -0
  43. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/commands/cache_clear.py +0 -0
  44. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/commands/help.py +0 -0
  45. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/commands/log_clear.py +0 -0
  46. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/commands/make_command.py +0 -0
  47. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/commands/scheduler_list.py +0 -0
  48. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/commands/scheduler_work.py +0 -0
  49. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/commands/test.py +0 -0
  50. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/commands/version.py +0 -0
  51. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/contracts/__init__.py +0 -0
  52. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/contracts/base_command.py +0 -0
  53. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/contracts/base_scheduler.py +0 -0
  54. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/contracts/cli_request.py +0 -0
  55. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/contracts/command.py +0 -0
  56. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/contracts/console.py +0 -0
  57. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/contracts/dumper.py +0 -0
  58. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/contracts/event.py +0 -0
  59. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/contracts/executor.py +0 -0
  60. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/contracts/kernel.py +0 -0
  61. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/contracts/progress_bar.py +0 -0
  62. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/contracts/reactor.py +0 -0
  63. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/contracts/schedule.py +0 -0
  64. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/contracts/schedule_event_listener.py +0 -0
  65. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/core/__init__.py +0 -0
  66. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/core/reactor.py +0 -0
  67. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/debug/__init__.py +0 -0
  68. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/debug/dumper.py +0 -0
  69. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/dynamic/__init__.py +0 -0
  70. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/dynamic/progress_bar.py +0 -0
  71. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/entities/__init__.py +0 -0
  72. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/entities/command.py +0 -0
  73. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/entities/event.py +0 -0
  74. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/entities/event_job.py +0 -0
  75. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/entities/scheduler_error.py +0 -0
  76. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/entities/scheduler_event_data.py +0 -0
  77. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/entities/scheduler_paused.py +0 -0
  78. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/entities/scheduler_resumed.py +0 -0
  79. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/entities/scheduler_shutdown.py +0 -0
  80. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/entities/scheduler_started.py +0 -0
  81. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/enums/__init__.py +0 -0
  82. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/enums/actions.py +0 -0
  83. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/enums/listener.py +0 -0
  84. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/enums/styles.py +0 -0
  85. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/exceptions/__init__.py +0 -0
  86. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/exceptions/cli_exceptions.py +0 -0
  87. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/fluent/__init__.py +0 -0
  88. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/fluent/command.py +0 -0
  89. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/fluent/event.py +0 -0
  90. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/kernel.py +0 -0
  91. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/output/__init__.py +0 -0
  92. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/output/console.py +0 -0
  93. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/output/executor.py +0 -0
  94. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/request/__init__.py +0 -0
  95. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/request/cli_request.py +0 -0
  96. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/stubs/command.stub +0 -0
  97. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/stubs/listener.stub +0 -0
  98. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/tasks/__init__.py +0 -0
  99. {orionis-0.664.0 → orionis-0.666.0}/orionis/console/tasks/schedule.py +0 -0
  100. {orionis-0.664.0 → orionis-0.666.0}/orionis/container/__init__.py +0 -0
  101. {orionis-0.664.0 → orionis-0.666.0}/orionis/container/container.py +0 -0
  102. {orionis-0.664.0 → orionis-0.666.0}/orionis/container/context/__init__.py +0 -0
  103. {orionis-0.664.0 → orionis-0.666.0}/orionis/container/context/manager.py +0 -0
  104. {orionis-0.664.0 → orionis-0.666.0}/orionis/container/context/scope.py +0 -0
  105. {orionis-0.664.0 → orionis-0.666.0}/orionis/container/contracts/__init__.py +0 -0
  106. {orionis-0.664.0 → orionis-0.666.0}/orionis/container/contracts/container.py +0 -0
  107. {orionis-0.664.0 → orionis-0.666.0}/orionis/container/contracts/service_provider.py +0 -0
  108. {orionis-0.664.0 → orionis-0.666.0}/orionis/container/entities/__init__.py +0 -0
  109. {orionis-0.664.0 → orionis-0.666.0}/orionis/container/entities/binding.py +0 -0
  110. {orionis-0.664.0 → orionis-0.666.0}/orionis/container/enums/__init__.py +0 -0
  111. {orionis-0.664.0 → orionis-0.666.0}/orionis/container/enums/lifetimes.py +0 -0
  112. {orionis-0.664.0 → orionis-0.666.0}/orionis/container/exceptions/__init__.py +0 -0
  113. {orionis-0.664.0 → orionis-0.666.0}/orionis/container/exceptions/container.py +0 -0
  114. {orionis-0.664.0 → orionis-0.666.0}/orionis/container/facades/__init__.py +0 -0
  115. {orionis-0.664.0 → orionis-0.666.0}/orionis/container/facades/facade.py +0 -0
  116. {orionis-0.664.0 → orionis-0.666.0}/orionis/container/providers/__init__.py +0 -0
  117. {orionis-0.664.0 → orionis-0.666.0}/orionis/container/providers/service_provider.py +0 -0
  118. {orionis-0.664.0 → orionis-0.666.0}/orionis/failure/__init__.py +0 -0
  119. {orionis-0.664.0 → orionis-0.666.0}/orionis/failure/base/__init__.py +0 -0
  120. {orionis-0.664.0 → orionis-0.666.0}/orionis/failure/base/handler.py +0 -0
  121. {orionis-0.664.0 → orionis-0.666.0}/orionis/failure/catch.py +0 -0
  122. {orionis-0.664.0 → orionis-0.666.0}/orionis/failure/contracts/__init__.py +0 -0
  123. {orionis-0.664.0 → orionis-0.666.0}/orionis/failure/contracts/catch.py +0 -0
  124. {orionis-0.664.0 → orionis-0.666.0}/orionis/failure/contracts/handler.py +0 -0
  125. {orionis-0.664.0 → orionis-0.666.0}/orionis/failure/entities/__init__.py +0 -0
  126. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/__init__.py +0 -0
  127. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/__init__.py +0 -0
  128. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/app/__init__.py +0 -0
  129. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/app/entities/__init__.py +0 -0
  130. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/app/enums/__init__.py +0 -0
  131. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/app/enums/ciphers.py +0 -0
  132. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/app/enums/environments.py +0 -0
  133. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/auth/__init__.py +0 -0
  134. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/auth/entities/__init__.py +0 -0
  135. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/auth/entities/auth.py +0 -0
  136. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/cache/__init__.py +0 -0
  137. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/cache/entities/__init__.py +0 -0
  138. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/cache/entities/cache.py +0 -0
  139. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/cache/entities/file.py +0 -0
  140. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/cache/entities/stores.py +0 -0
  141. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/cache/enums/__init__.py +0 -0
  142. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/cache/enums/drivers.py +0 -0
  143. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/cors/__init__.py +0 -0
  144. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/cors/entities/__init__.py +0 -0
  145. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/cors/entities/cors.py +0 -0
  146. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/database/__init__.py +0 -0
  147. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/database/entities/__init__.py +0 -0
  148. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/database/entities/connections.py +0 -0
  149. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/database/entities/database.py +0 -0
  150. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/database/enums/__init__.py +0 -0
  151. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/database/enums/mysql_charsets.py +0 -0
  152. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/database/enums/mysql_collations.py +0 -0
  153. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/database/enums/mysql_engine.py +0 -0
  154. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/database/enums/oracle_encoding.py +0 -0
  155. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/database/enums/oracle_nencoding.py +0 -0
  156. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/database/enums/pgsql_charsets.py +0 -0
  157. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/database/enums/pgsql_collations.py +0 -0
  158. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/database/enums/pgsql_mode.py +0 -0
  159. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/database/enums/sqlite_foreign_key.py +0 -0
  160. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/database/enums/sqlite_journal.py +0 -0
  161. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/database/enums/sqlite_synchronous.py +0 -0
  162. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/filesystems/__init__.py +0 -0
  163. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/filesystems/entitites/__init__.py +0 -0
  164. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/filesystems/entitites/aws.py +0 -0
  165. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/filesystems/entitites/disks.py +0 -0
  166. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/filesystems/entitites/filesystems.py +0 -0
  167. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/filesystems/entitites/local.py +0 -0
  168. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/filesystems/entitites/public.py +0 -0
  169. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/logging/__init__.py +0 -0
  170. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/logging/entities/__init__.py +0 -0
  171. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/logging/entities/channels.py +0 -0
  172. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/logging/entities/logging.py +0 -0
  173. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/logging/enums/__init__.py +0 -0
  174. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/logging/enums/levels.py +0 -0
  175. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/logging/validators/__init__.py +0 -0
  176. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/logging/validators/level.py +0 -0
  177. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/logging/validators/path.py +0 -0
  178. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/mail/__init__.py +0 -0
  179. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/mail/entities/__init__.py +0 -0
  180. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/mail/entities/file.py +0 -0
  181. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/mail/entities/mail.py +0 -0
  182. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/mail/entities/mailers.py +0 -0
  183. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/queue/__init__.py +0 -0
  184. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/queue/entities/__init__.py +0 -0
  185. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/queue/entities/brokers.py +0 -0
  186. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/queue/entities/queue.py +0 -0
  187. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/queue/enums/__init__.py +0 -0
  188. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/queue/enums/strategy.py +0 -0
  189. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/roots/__init__.py +0 -0
  190. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/roots/paths.py +0 -0
  191. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/session/__init__.py +0 -0
  192. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/session/entities/__init__.py +0 -0
  193. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/session/enums/__init__.py +0 -0
  194. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/session/enums/same_site_policy.py +0 -0
  195. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/session/helpers/__init__.py +0 -0
  196. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/session/helpers/secret_key.py +0 -0
  197. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/testing/__init__.py +0 -0
  198. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/testing/entities/__init__.py +0 -0
  199. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/testing/enums/__init__.py +0 -0
  200. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/testing/enums/drivers.py +0 -0
  201. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/testing/enums/mode.py +0 -0
  202. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/config/testing/enums/verbosity.py +0 -0
  203. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/contracts/__init__.py +0 -0
  204. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/exceptions/__init__.py +0 -0
  205. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/exceptions/application.py +0 -0
  206. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/providers/__init__.py +0 -0
  207. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/providers/catch_provider.py +0 -0
  208. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/providers/cli_request_provider.py +0 -0
  209. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/providers/console_provider.py +0 -0
  210. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/providers/directory_provider.py +0 -0
  211. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/providers/dumper_provider.py +0 -0
  212. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/providers/executor_provider.py +0 -0
  213. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/providers/inspirational_provider.py +0 -0
  214. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/providers/logger_provider.py +0 -0
  215. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/providers/performance_counter_provider.py +0 -0
  216. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/providers/progress_bar_provider.py +0 -0
  217. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/providers/reactor_provider.py +0 -0
  218. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/providers/scheduler_provider.py +0 -0
  219. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/providers/testing_provider.py +0 -0
  220. {orionis-0.664.0 → orionis-0.666.0}/orionis/foundation/providers/workers_provider.py +0 -0
  221. {orionis-0.664.0 → orionis-0.666.0}/orionis/metadata/__init__.py +0 -0
  222. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/__init__.py +0 -0
  223. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/asynchrony/__init__.py +0 -0
  224. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/asynchrony/contracts/__init__.py +0 -0
  225. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/asynchrony/contracts/coroutines.py +0 -0
  226. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/asynchrony/coroutines.py +0 -0
  227. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/asynchrony/exceptions/__init__.py +0 -0
  228. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/asynchrony/exceptions/asynchrony.py +0 -0
  229. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/encrypter/encrypter.py +0 -0
  230. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/environment/__init__.py +0 -0
  231. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/environment/contracts/__init__.py +0 -0
  232. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/environment/contracts/caster.py +0 -0
  233. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/environment/contracts/env.py +0 -0
  234. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/environment/core/__init__.py +0 -0
  235. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/environment/core/dot_env.py +0 -0
  236. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/environment/dynamic/__init__.py +0 -0
  237. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/environment/dynamic/caster.py +0 -0
  238. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/environment/enums/__init__.py +0 -0
  239. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/environment/enums/value_type.py +0 -0
  240. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/environment/env.py +0 -0
  241. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/environment/exceptions/__init__.py +0 -0
  242. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/environment/exceptions/environment.py +0 -0
  243. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/environment/helpers/__init__.py +0 -0
  244. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/environment/helpers/functions.py +0 -0
  245. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/environment/key/__init__.py +0 -0
  246. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/environment/key/key_generator.py +0 -0
  247. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/environment/validators/__init__.py +0 -0
  248. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/environment/validators/key_name.py +0 -0
  249. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/environment/validators/types.py +0 -0
  250. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/file/__init__.py +0 -0
  251. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/file/contracts/__init__.py +0 -0
  252. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/file/contracts/directory.py +0 -0
  253. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/file/directory.py +0 -0
  254. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/inspirational/__init__.py +0 -0
  255. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/inspirational/contracts/__init__.py +0 -0
  256. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/inspirational/contracts/inspire.py +0 -0
  257. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/inspirational/inspire.py +0 -0
  258. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/inspirational/quotes.py +0 -0
  259. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/introspection/__init__.py +0 -0
  260. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/introspection/abstract/__init__.py +0 -0
  261. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/introspection/abstract/contracts/__init__.py +0 -0
  262. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/introspection/abstract/contracts/reflection.py +0 -0
  263. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/introspection/abstract/reflection.py +0 -0
  264. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/introspection/callables/__init__.py +0 -0
  265. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/introspection/callables/contracts/__init__.py +0 -0
  266. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/introspection/callables/contracts/reflection.py +0 -0
  267. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/introspection/callables/reflection.py +0 -0
  268. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/introspection/concretes/__init__.py +0 -0
  269. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/introspection/concretes/contracts/__init__.py +0 -0
  270. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/introspection/concretes/contracts/reflection.py +0 -0
  271. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/introspection/concretes/reflection.py +0 -0
  272. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/introspection/dependencies/__init__.py +0 -0
  273. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/introspection/dependencies/contracts/__init__.py +0 -0
  274. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/introspection/dependencies/contracts/reflection.py +0 -0
  275. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/introspection/dependencies/entities/__init__.py +0 -0
  276. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/introspection/dependencies/entities/argument.py +0 -0
  277. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/introspection/dependencies/entities/resolve_argument.py +0 -0
  278. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/introspection/dependencies/reflection.py +0 -0
  279. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/introspection/exceptions/__init__.py +0 -0
  280. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/introspection/exceptions/introspection.py +0 -0
  281. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/introspection/instances/__init__.py +0 -0
  282. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/introspection/instances/contracts/__init__.py +0 -0
  283. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/introspection/instances/contracts/reflection.py +0 -0
  284. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/introspection/instances/reflection.py +0 -0
  285. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/introspection/modules/__init__.py +0 -0
  286. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/introspection/modules/contracts/__init__.py +0 -0
  287. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/introspection/modules/contracts/reflection.py +0 -0
  288. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/introspection/modules/reflection.py +0 -0
  289. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/introspection/objects/__init__.py +0 -0
  290. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/introspection/objects/types.py +0 -0
  291. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/introspection/reflection.py +0 -0
  292. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/log/__init__.py +0 -0
  293. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/log/contracts/__init__.py +0 -0
  294. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/log/contracts/log_service.py +0 -0
  295. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/log/exceptions/__init__.py +0 -0
  296. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/log/exceptions/log.py +0 -0
  297. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/log/handlers/__init__.py +0 -0
  298. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/log/handlers/filename.py +0 -0
  299. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/log/handlers/size_rotating.py +0 -0
  300. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/log/handlers/timed_rotating.py +0 -0
  301. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/log/log_service.py +0 -0
  302. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/system/__init__.py +0 -0
  303. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/system/contracts/__init__.py +0 -0
  304. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/system/contracts/imports.py +0 -0
  305. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/system/contracts/workers.py +0 -0
  306. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/system/imports.py +0 -0
  307. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/system/runtime/__init__.py +0 -0
  308. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/system/runtime/imports.py +0 -0
  309. {orionis-0.664.0 → orionis-0.666.0}/orionis/services/system/workers.py +0 -0
  310. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/__init__.py +0 -0
  311. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/entities/__init__.py +0 -0
  312. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/entities/base.py +0 -0
  313. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/facades/__init__.py +0 -0
  314. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/facades/application.py +0 -0
  315. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/facades/application.pyi +0 -0
  316. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/facades/console.py +0 -0
  317. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/facades/console.pyi +0 -0
  318. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/facades/directory.py +0 -0
  319. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/facades/directory.pyi +0 -0
  320. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/facades/dumper.py +0 -0
  321. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/facades/dumper.pyi +0 -0
  322. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/facades/executor.py +0 -0
  323. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/facades/executor.pyi +0 -0
  324. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/facades/inspire.py +0 -0
  325. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/facades/inspire.pyi +0 -0
  326. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/facades/logger.py +0 -0
  327. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/facades/logger.pyi +0 -0
  328. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/facades/performance_counter.py +0 -0
  329. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/facades/performance_counter.pyi +0 -0
  330. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/facades/progress_bar.py +0 -0
  331. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/facades/progress_bar.pyi +0 -0
  332. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/facades/reactor.py +0 -0
  333. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/facades/reactor.pyi +0 -0
  334. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/facades/testing.py +0 -0
  335. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/facades/testing.pyi +0 -0
  336. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/facades/workers.py +0 -0
  337. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/facades/workers.pyi +0 -0
  338. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/formatter/__init__.py +0 -0
  339. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/formatter/exceptions/__init__.py +0 -0
  340. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/formatter/exceptions/contracts/__init__.py +0 -0
  341. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/formatter/exceptions/contracts/parser.py +0 -0
  342. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/formatter/exceptions/parser.py +0 -0
  343. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/formatter/serializer.py +0 -0
  344. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/patterns/__init__.py +0 -0
  345. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/patterns/singleton/__init__.py +0 -0
  346. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/patterns/singleton/meta.py +0 -0
  347. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/performance/__init__.py +0 -0
  348. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/performance/contracts/__init__.py +0 -0
  349. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/performance/contracts/counter.py +0 -0
  350. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/performance/counter.py +0 -0
  351. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/standard/__init__.py +0 -0
  352. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/standard/contracts/__init__.py +0 -0
  353. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/standard/contracts/std.py +0 -0
  354. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/standard/exceptions/__init__.py +0 -0
  355. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/standard/exceptions/standard.py +0 -0
  356. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/standard/std.py +0 -0
  357. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/wrapper/__init__.py +0 -0
  358. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/wrapper/dataclass.py +0 -0
  359. {orionis-0.664.0 → orionis-0.666.0}/orionis/support/wrapper/dot_dict.py +0 -0
  360. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/__init__.py +0 -0
  361. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/cases/__init__.py +0 -0
  362. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/cases/asynchronous.py +0 -0
  363. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/cases/synchronous.py +0 -0
  364. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/contracts/__init__.py +0 -0
  365. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/contracts/dumper.py +0 -0
  366. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/contracts/kernel.py +0 -0
  367. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/contracts/logs.py +0 -0
  368. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/contracts/printer.py +0 -0
  369. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/contracts/render.py +0 -0
  370. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/contracts/test_result.py +0 -0
  371. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/contracts/unit_test.py +0 -0
  372. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/core/__init__.py +0 -0
  373. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/entities/__init__.py +0 -0
  374. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/entities/result.py +0 -0
  375. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/enums/__init__.py +0 -0
  376. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/enums/status.py +0 -0
  377. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/exceptions/__init__.py +0 -0
  378. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/exceptions/config.py +0 -0
  379. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/exceptions/failure.py +0 -0
  380. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/exceptions/persistence.py +0 -0
  381. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/exceptions/runtime.py +0 -0
  382. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/exceptions/value.py +0 -0
  383. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/kernel.py +0 -0
  384. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/output/__init__.py +0 -0
  385. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/records/__init__.py +0 -0
  386. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/validators/__init__.py +0 -0
  387. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/validators/base_path.py +0 -0
  388. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/validators/execution_mode.py +0 -0
  389. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/validators/fail_fast.py +0 -0
  390. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/validators/folder_path.py +0 -0
  391. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/validators/module_name.py +0 -0
  392. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/validators/name_pattern.py +0 -0
  393. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/validators/pattern.py +0 -0
  394. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/validators/persistent.py +0 -0
  395. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/validators/persistent_driver.py +0 -0
  396. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/validators/throw_exception.py +0 -0
  397. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/validators/verbosity.py +0 -0
  398. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/validators/web_report.py +0 -0
  399. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/validators/workers.py +0 -0
  400. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/view/__init__.py +0 -0
  401. {orionis-0.664.0 → orionis-0.666.0}/orionis/test/view/report.stub +0 -0
  402. {orionis-0.664.0 → orionis-0.666.0}/orionis.egg-info/SOURCES.txt +0 -0
  403. {orionis-0.664.0 → orionis-0.666.0}/orionis.egg-info/dependency_links.txt +0 -0
  404. {orionis-0.664.0 → orionis-0.666.0}/orionis.egg-info/not-zip-safe +0 -0
  405. {orionis-0.664.0 → orionis-0.666.0}/orionis.egg-info/requires.txt +0 -0
  406. {orionis-0.664.0 → orionis-0.666.0}/orionis.egg-info/top_level.txt +0 -0
  407. {orionis-0.664.0 → orionis-0.666.0}/setup.cfg +0 -0
  408. {orionis-0.664.0 → orionis-0.666.0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: orionis
3
- Version: 0.664.0
3
+ Version: 0.666.0
4
4
  Summary: Orionis Framework – Elegant, Fast, and Powerful.
5
5
  Home-page: https://github.com/orionis-framework/framework
6
6
  Author: Raul Mauricio Uñate Castro
@@ -1,4 +1,5 @@
1
1
  from dataclasses import dataclass
2
+ from typing import Optional
2
3
 
3
4
  @dataclass(kw_only=True, frozen=True)
4
5
  class Throwable:
@@ -27,7 +28,6 @@ class Throwable:
27
28
  throughout the framework, making error handling and logging more consistent.
28
29
  """
29
30
 
30
- classtype: type # The type of the throwable (e.g., Exception class)
31
- message: str # The error message associated with the throwable
32
- args: tuple # Arguments passed to the throwable
33
- traceback: str = None # Optional traceback information as a string
31
+ classtype: type # The type of the throwable (e.g., Exception class)
32
+ message: str # The error message associated with the throwable
33
+ traceback: Optional[str] = None # Optional traceback information as a string
@@ -2,7 +2,7 @@ import asyncio
2
2
  import copy
3
3
  import time
4
4
  from pathlib import Path
5
- from typing import Any, List, Type, Dict
5
+ from typing import Any, List, Type, Dict, Optional
6
6
  from orionis.console.contracts.base_scheduler import IBaseScheduler
7
7
  from orionis.console.base.scheduler import BaseScheduler
8
8
  from orionis.container.container import Container
@@ -25,7 +25,6 @@ from orionis.foundation.config.testing.entities.testing import Testing
25
25
  from orionis.foundation.contracts.application import IApplication
26
26
  from orionis.foundation.exceptions import OrionisTypeError, OrionisRuntimeError, OrionisValueError
27
27
  from orionis.services.environment.env import Env
28
- from orionis.services.log.contracts.log_service import ILogger
29
28
  from orionis.support.wrapper.dataclass import DataClass
30
29
 
31
30
  class Application(Container, IApplication):
@@ -67,6 +66,8 @@ class Application(Container, IApplication):
67
66
  Read-only property containing the timestamp (epoch) when the application was started.
68
67
  """
69
68
 
69
+ CONFIGURATION_LOCKED_ERROR_MESSAGE = "Cannot modify configuration after application has been booted."
70
+
70
71
  @property
71
72
  def isBooted(
72
73
  self
@@ -142,13 +143,13 @@ class Application(Container, IApplication):
142
143
  self.__runtime_path_config: dict = {}
143
144
 
144
145
  # Property to store the scheduler instance
145
- self.__scheduler: IBaseScheduler = None
146
+ self.__scheduler: Optional[IBaseScheduler] = None
146
147
 
147
148
  # Property to store the exception handler class
148
- self.__exception_handler: Type[IBaseExceptionHandler] = None
149
+ self.__exception_handler: Optional[Type[IBaseExceptionHandler]] = None
149
150
 
150
151
  # Flag to prevent re-initialization
151
- self.__initialized = True
152
+ self.__initialized = True # NOSONAR
152
153
 
153
154
  # === Native Kernels and Providers for Orionis Framework ===
154
155
  # Responsible for loading the native kernels and service providers of the Orionis framework.
@@ -776,7 +777,7 @@ class Application(Container, IApplication):
776
777
 
777
778
  # Prevent modification if the application has already been booted
778
779
  if self.__booted:
779
- raise OrionisValueError("Cannot modify configuration after application has been booted.")
780
+ raise OrionisValueError(self.CONFIGURATION_LOCKED_ERROR_MESSAGE)
780
781
 
781
782
  # Convert class type to dict using DataClass wrapper
782
783
  if (isinstance(app, type) and issubclass(app, App)):
@@ -876,7 +877,7 @@ class Application(Container, IApplication):
876
877
 
877
878
  # Prevent modification if the application has already been booted
878
879
  if self.__booted:
879
- raise OrionisValueError("Cannot modify configuration after application has been booted.")
880
+ raise OrionisValueError(self.CONFIGURATION_LOCKED_ERROR_MESSAGE)
880
881
 
881
882
  # Convert class type to dict using DataClass wrapper
882
883
  if (isinstance(auth, type) and issubclass(auth, Auth)):
@@ -976,7 +977,7 @@ class Application(Container, IApplication):
976
977
 
977
978
  # Prevent modification if the application has already been booted
978
979
  if self.__booted:
979
- raise OrionisValueError("Cannot modify configuration after application has been booted.")
980
+ raise OrionisValueError(self.CONFIGURATION_LOCKED_ERROR_MESSAGE)
980
981
 
981
982
  # Convert class type to dict using DataClass wrapper
982
983
  if (isinstance(cache, type) and issubclass(cache, Cache)):
@@ -1076,7 +1077,7 @@ class Application(Container, IApplication):
1076
1077
 
1077
1078
  # Prevent modification if the application has already been booted
1078
1079
  if self.__booted:
1079
- raise OrionisValueError("Cannot modify configuration after application has been booted.")
1080
+ raise OrionisValueError(self.CONFIGURATION_LOCKED_ERROR_MESSAGE)
1080
1081
 
1081
1082
  # Convert class type to dict using DataClass wrapper
1082
1083
  if (isinstance(cors, type) and issubclass(cors, Cors)):
@@ -1176,7 +1177,7 @@ class Application(Container, IApplication):
1176
1177
 
1177
1178
  # Prevent modification if the application has already been booted
1178
1179
  if self.__booted:
1179
- raise OrionisValueError("Cannot modify configuration after application has been booted.")
1180
+ raise OrionisValueError(self.CONFIGURATION_LOCKED_ERROR_MESSAGE)
1180
1181
 
1181
1182
  # Convert class type to dict using DataClass wrapper
1182
1183
  if (isinstance(database, type) and issubclass(database, Database)):
@@ -1276,7 +1277,7 @@ class Application(Container, IApplication):
1276
1277
 
1277
1278
  # Prevent modification if the application has already been booted
1278
1279
  if self.__booted:
1279
- raise OrionisValueError("Cannot modify configuration after application has been booted.")
1280
+ raise OrionisValueError(self.CONFIGURATION_LOCKED_ERROR_MESSAGE)
1280
1281
 
1281
1282
  # Convert class type to dict using DataClass wrapper
1282
1283
  if (isinstance(filesystems, type) and issubclass(filesystems, Filesystems)):
@@ -1376,7 +1377,7 @@ class Application(Container, IApplication):
1376
1377
 
1377
1378
  # Prevent modification if the application has already been booted
1378
1379
  if self.__booted:
1379
- raise OrionisValueError("Cannot modify configuration after application has been booted.")
1380
+ raise OrionisValueError(self.CONFIGURATION_LOCKED_ERROR_MESSAGE)
1380
1381
 
1381
1382
  # Convert class type to dict using DataClass wrapper
1382
1383
  if (isinstance(logging, type) and issubclass(logging, Logging)):
@@ -1476,7 +1477,7 @@ class Application(Container, IApplication):
1476
1477
 
1477
1478
  # Prevent modification if the application has already been booted
1478
1479
  if self.__booted:
1479
- raise OrionisValueError("Cannot modify configuration after application has been booted.")
1480
+ raise OrionisValueError(self.CONFIGURATION_LOCKED_ERROR_MESSAGE)
1480
1481
 
1481
1482
  # Convert class type to dict using DataClass wrapper
1482
1483
  if (isinstance(mail, type) and issubclass(mail, Mail)):
@@ -1576,7 +1577,7 @@ class Application(Container, IApplication):
1576
1577
 
1577
1578
  # Prevent modification if the application has already been booted
1578
1579
  if self.__booted:
1579
- raise OrionisValueError("Cannot modify configuration after application has been booted.")
1580
+ raise OrionisValueError(self.CONFIGURATION_LOCKED_ERROR_MESSAGE)
1580
1581
 
1581
1582
  # Convert class type to dict using DataClass wrapper
1582
1583
  if (isinstance(queue, type) and issubclass(queue, Queue)):
@@ -1676,7 +1677,7 @@ class Application(Container, IApplication):
1676
1677
 
1677
1678
  # Prevent modification if the application has already been booted
1678
1679
  if self.__booted:
1679
- raise OrionisValueError("Cannot modify configuration after application has been booted.")
1680
+ raise OrionisValueError(self.CONFIGURATION_LOCKED_ERROR_MESSAGE)
1680
1681
 
1681
1682
  # Convert class type to dict using DataClass wrapper
1682
1683
  if (isinstance(session, type) and issubclass(session, Session)):
@@ -1776,7 +1777,7 @@ class Application(Container, IApplication):
1776
1777
 
1777
1778
  # Prevent modification if the application has already been booted
1778
1779
  if self.__booted:
1779
- raise OrionisValueError("Cannot modify configuration after application has been booted.")
1780
+ raise OrionisValueError(self.CONFIGURATION_LOCKED_ERROR_MESSAGE)
1780
1781
 
1781
1782
  # Convert class type to dict using DataClass wrapper
1782
1783
  if (isinstance(testing, type) and issubclass(testing, Testing)):
@@ -1801,8 +1802,7 @@ class Application(Container, IApplication):
1801
1802
  return self
1802
1803
 
1803
1804
  def setConfigPaths(
1804
- self,
1805
- *,
1805
+ self, # NOSONAR
1806
1806
  root: str | Path = str(Path.cwd().resolve()),
1807
1807
  app: str | Path = str((Path.cwd() / 'app').resolve()),
1808
1808
  console: str | Path = str((Path.cwd() / 'app' / 'console').resolve()),
@@ -1912,7 +1912,7 @@ class Application(Container, IApplication):
1912
1912
 
1913
1913
  # Prevent modification if the application has already been booted
1914
1914
  if self.__booted:
1915
- raise OrionisValueError("Cannot modify configuration after application has been booted.")
1915
+ raise OrionisValueError(self.CONFIGURATION_LOCKED_ERROR_MESSAGE)
1916
1916
 
1917
1917
  # Convert class type to dict using DataClass wrapper
1918
1918
  if (isinstance(paths, type) and issubclass(paths, Paths)):
@@ -1977,7 +1977,7 @@ class Application(Container, IApplication):
1977
1977
  # Copy contains only the 'path' key
1978
1978
  self.__runtime_path_config = local_config_copy.get('path', {})
1979
1979
 
1980
- except BaseException as e:
1980
+ except Exception as e:
1981
1981
 
1982
1982
  # Handle any exceptions during configuration loading
1983
1983
  raise OrionisRuntimeError(f"Failed to load application configuration: {str(e)}")
@@ -1988,7 +1988,7 @@ class Application(Container, IApplication):
1988
1988
  # You can obtain a specific configuration value by providing a key,
1989
1989
  # or retrieve the entire configuration dictionary by omitting the key.
1990
1990
 
1991
- def config(
1991
+ def config( # NOSONAR
1992
1992
  self,
1993
1993
  key: str = None,
1994
1994
  value: Any = None
@@ -2097,7 +2097,7 @@ class Application(Container, IApplication):
2097
2097
  def path(
2098
2098
  self,
2099
2099
  key: str = None
2100
- ) -> Path | dict:
2100
+ ) -> Path | dict | None:
2101
2101
  """
2102
2102
  Retrieve application path configuration values using dot notation.
2103
2103
 
@@ -150,7 +150,7 @@ class App(BaseEntity):
150
150
  }
151
151
  )
152
152
 
153
- def __post_init__(self):
153
+ def __post_init__(self): # NOSONAR
154
154
  super().__post_init__()
155
155
  """
156
156
  Validate and normalize attributes after dataclass initialization.
@@ -147,7 +147,7 @@ class MySQL(BaseEntity):
147
147
  }
148
148
  )
149
149
 
150
- def __post_init__(self):
150
+ def __post_init__(self): # NOSONAR
151
151
  super().__post_init__()
152
152
  """
153
153
  Post-initialization validation for MySQL database entity configuration.
@@ -125,7 +125,7 @@ class Oracle(BaseEntity):
125
125
  }
126
126
  )
127
127
 
128
- def __post_init__(self):
128
+ def __post_init__(self): # NOSONAR
129
129
  super().__post_init__()
130
130
  """
131
131
  Post-initialization validation for Oracle database connection entity.
@@ -114,7 +114,7 @@ class PGSQL(BaseEntity):
114
114
  }
115
115
  )
116
116
 
117
- def __post_init__(self):
117
+ def __post_init__(self): # NOSONAR
118
118
  super().__post_init__()
119
119
  """
120
120
  Validates the initialization of the database entity attributes after object creation.
@@ -97,7 +97,7 @@ class SQLite(BaseEntity):
97
97
  },
98
98
  )
99
99
 
100
- def __post_init__(self):
100
+ def __post_init__(self): # NOSONAR
101
101
  super().__post_init__()
102
102
  """
103
103
  Post-initialization validation for SQLite database configuration fields.
@@ -84,8 +84,6 @@ class Chunked(BaseEntity):
84
84
  self.level = self.level.value
85
85
  elif isinstance(self.level, str):
86
86
  self.level = Level[self.level.strip().upper()].value
87
- elif isinstance(self.level, int):
88
- self.level = self.level
89
87
 
90
88
  # Validate 'mb_size'
91
89
  if not isinstance(self.mb_size, int):
@@ -69,8 +69,6 @@ class Daily(BaseEntity):
69
69
  self.level = self.level.value
70
70
  elif isinstance(self.level, str):
71
71
  self.level = Level[self.level.strip().upper()].value
72
- elif isinstance(self.level, int):
73
- self.level = self.level
74
72
 
75
73
  # Validate 'retention_days'
76
74
  if not isinstance(self.retention_days, int):
@@ -62,8 +62,6 @@ class Hourly(BaseEntity):
62
62
  self.level = self.level.value
63
63
  elif isinstance(self.level, str):
64
64
  self.level = Level[self.level.strip().upper()].value
65
- elif isinstance(self.level, int):
66
- self.level = self.level
67
65
 
68
66
  # Validate 'retention_hours'
69
67
  if not isinstance(self.retention_hours, int) or self.retention_hours < 0:
@@ -61,8 +61,6 @@ class Monthly(BaseEntity):
61
61
  self.level = self.level.value
62
62
  elif isinstance(self.level, str):
63
63
  self.level = Level[self.level.strip().upper()].value
64
- elif isinstance(self.level, int):
65
- self.level = self.level
66
64
 
67
65
  # Validate 'retention_months'
68
66
  if not isinstance(self.retention_months, int):
@@ -44,6 +44,4 @@ class Stack(BaseEntity):
44
44
  if isinstance(self.level, Level):
45
45
  self.level = self.level.value
46
46
  elif isinstance(self.level, str):
47
- self.level = Level[self.level.strip().upper()].value
48
- elif isinstance(self.level, int):
49
- self.level = self.level
47
+ self.level = Level[self.level.strip().upper()].value
@@ -63,8 +63,6 @@ class Weekly(BaseEntity):
63
63
  self.level = self.level.value
64
64
  elif isinstance(self.level, str):
65
65
  self.level = Level[self.level.strip().upper()].value
66
- elif isinstance(self.level, int):
67
- self.level = self.level
68
66
 
69
67
  # Validate 'retention_weeks'
70
68
  if not isinstance(self.retention_weeks, int):
@@ -3,6 +3,8 @@ from typing import Optional
3
3
  from orionis.foundation.exceptions import OrionisIntegrityException
4
4
  from orionis.support.entities.base import BaseEntity
5
5
 
6
+ DEFAULT_SMTP_URL = "smtp.mailtrap.io"
7
+
6
8
  @dataclass(unsafe_hash=True, kw_only=True)
7
9
  class Smtp(BaseEntity):
8
10
  """
@@ -27,18 +29,18 @@ class Smtp(BaseEntity):
27
29
  """
28
30
 
29
31
  url: str = field(
30
- default = "smtp.mailtrap.io",
32
+ default = DEFAULT_SMTP_URL,
31
33
  metadata = {
32
34
  "description": "The full URL for the SMTP service.",
33
- "default": "smtp.mailtrap.io"
35
+ "default": DEFAULT_SMTP_URL
34
36
  }
35
37
  )
36
38
 
37
39
  host: str = field(
38
- default = "smtp.mailtrap.io",
40
+ default = DEFAULT_SMTP_URL,
39
41
  metadata = {
40
42
  "description": "The hostname of the SMTP server.",
41
- "default": "smtp.mailtrap.io"
43
+ "default": DEFAULT_SMTP_URL
42
44
  }
43
45
  )
44
46
 
@@ -75,7 +75,7 @@ class Database(BaseEntity):
75
75
  # Validate `table` attribute
76
76
  if not isinstance(self.table, str):
77
77
  raise OrionisIntegrityException("The 'table' property must be a string.")
78
- if not re.fullmatch(r'[a-z_][a-z_]*', self.table):
78
+ if not re.fullmatch(r'[a-z_]+', self.table):
79
79
  raise OrionisIntegrityException(
80
80
  "The 'table' property must be a valid table name: start with a lowercase letter or underscore, contain only lowercase letters or underscores (no numbers allowed)."
81
81
  )
@@ -77,7 +77,7 @@ class Session(BaseEntity):
77
77
  }
78
78
  )
79
79
 
80
- def __post_init__(self):
80
+ def __post_init__(self): # NOSONAR
81
81
  super().__post_init__()
82
82
  """
83
83
  Validates the initialization parameters of the session entity.
@@ -148,7 +148,7 @@ class Configuration(BaseEntity):
148
148
  }
149
149
  )
150
150
 
151
- def __post_init__(self):
151
+ def __post_init__(self): # NOSONAR
152
152
  super().__post_init__()
153
153
  """
154
154
  Validates and converts configuration attributes to their respective entity types.
@@ -129,7 +129,7 @@ class Testing(BaseEntity):
129
129
  }
130
130
  )
131
131
 
132
- def __post_init__(self):
132
+ def __post_init__(self): # NOSONAR
133
133
  super().__post_init__()
134
134
  """
135
135
  Validate and normalize configuration options after initialization.
@@ -1043,7 +1043,7 @@ class IApplication(IContainer):
1043
1043
 
1044
1044
  @abstractmethod
1045
1045
  def setConfigPaths(
1046
- self,
1046
+ self, # NOSONAR
1047
1047
  *,
1048
1048
  root: str | Path = str(Path.cwd().resolve()),
1049
1049
  app: str | Path = str((Path.cwd() / 'app').resolve()),
@@ -5,7 +5,7 @@
5
5
  NAME = "orionis"
6
6
 
7
7
  # Current version of the framework
8
- VERSION = "0.664.0"
8
+ VERSION = "0.666.0"
9
9
 
10
10
  # Full name of the author or maintainer of the project
11
11
  AUTHOR = "Raul Mauricio Uñate Castro"
@@ -45,7 +45,7 @@ class PypiOrionisPackage:
45
45
  The metadata is retrieved using the PyPI JSON API and stored in the `_info` attribute.
46
46
  If the request fails, an exception will be raised during initialization.
47
47
  """
48
- self._baseUrl = API # Set the base URL for the PyPI API endpoint
48
+ self._base_url = API # Set the base URL for the PyPI API endpoint
49
49
  self._info = {} # Initialize the dictionary to store package metadata
50
50
  self.getAllData() # Fetch and populate metadata from PyPI
51
51
 
@@ -80,7 +80,7 @@ class PypiOrionisPackage:
80
80
  """
81
81
  try:
82
82
  # Send a GET request to the PyPI API endpoint
83
- response = requests.get(self._baseUrl, timeout=10)
83
+ response = requests.get(self._base_url, timeout=10)
84
84
 
85
85
  # Raise an error for non-200 status codes
86
86
  response.raise_for_status()
@@ -101,14 +101,15 @@ class PypiOrionisPackage:
101
101
  except requests.RequestException as e:
102
102
 
103
103
  # Handle network or HTTP errors
104
- raise Exception(
104
+ raise ConnectionError(
105
105
  f"Error fetching data from PyPI: {e}. "
106
106
  "Please check your internet connection or try again later."
107
107
  )
108
+
108
109
  except ValueError as ve:
109
110
 
110
111
  # Handle invalid response structure
111
- raise Exception(
112
+ raise ValueError(
112
113
  f"Invalid response structure from PyPI: {ve}"
113
114
  )
114
115
 
@@ -160,7 +160,7 @@ class UnitTest(IUnitTest):
160
160
  storage_path = self.__app.path('storage')
161
161
  self.__storage: Path = (storage_path / 'testing' / 'results').resolve()
162
162
 
163
- def __loadConfig(
163
+ def __loadConfig( # NOSONAR
164
164
  self
165
165
  ) -> None:
166
166
  """
@@ -316,7 +316,7 @@ class UnitTest(IUnitTest):
316
316
  # If folder_path is '*', discover all modules matching the pattern in the test directory
317
317
  if self.__folder_path == '*':
318
318
  list_modules = self.__listMatchingModules(
319
- self.__root_path, self.__test_path, None, self.__pattern
319
+ self.__root_path, self.__test_path, '', self.__pattern
320
320
  )
321
321
  modules.update(list_modules)
322
322
 
@@ -619,7 +619,7 @@ class UnitTest(IUnitTest):
619
619
  "Ensure that the test files are valid and that there are no syntax errors or missing dependencies."
620
620
  )
621
621
 
622
- def __withDebugger(
622
+ def __withDebugger( # NOSONAR
623
623
  self,
624
624
  test_case: unittest.TestCase
625
625
  ) -> bool:
@@ -773,7 +773,7 @@ class UnitTest(IUnitTest):
773
773
  # Return the summary of the test results
774
774
  return summary
775
775
 
776
- def __flattenTestSuite(
776
+ def __flattenTestSuite( # NOSONAR
777
777
  self,
778
778
  suite: unittest.TestSuite
779
779
  ) -> List[unittest.TestCase]:
@@ -875,7 +875,7 @@ class UnitTest(IUnitTest):
875
875
  # Return the aggregated test result object
876
876
  return result
877
877
 
878
- def __resolveTestDependencies(
878
+ def __resolveTestDependencies( # NOSONAR
879
879
  self,
880
880
  test_case: unittest.TestCase
881
881
  ) -> unittest.TestSuite:
@@ -972,7 +972,7 @@ class UnitTest(IUnitTest):
972
972
  except RuntimeError:
973
973
  loop = None
974
974
  if loop and loop.is_running():
975
- return loop.create_task(async_wrapper(self_instance))
975
+ return loop.create_task(async_wrapper(self_instance)) # NOSONAR
976
976
  else:
977
977
  return asyncio.run(async_wrapper(self_instance))
978
978
 
@@ -983,7 +983,7 @@ class UnitTest(IUnitTest):
983
983
 
984
984
  # For synchronous methods, inject dependencies directly
985
985
  def wrapper(self_instance):
986
- return original_method(self_instance, **resolved_args)
986
+ return original_method(self_instance, **resolved_args) # NOSONAR
987
987
 
988
988
  # Bind the wrapped method to the test case instance
989
989
  bound_method = wrapper.__get__(test_case, test_cls)
@@ -1249,7 +1249,7 @@ class UnitTest(IUnitTest):
1249
1249
  super().addFailure(test, err)
1250
1250
  elapsed = self._test_timings.get(test, 0.0)
1251
1251
  tb_str = ''.join(traceback.format_exception(*err))
1252
- file_path, clean_tb = this._extractErrorInfo(tb_str)
1252
+ file_path, clean_tb = this._extractErrorInfo(tb_str) # NOSONAR
1253
1253
  self.test_results.append(
1254
1254
  TestResult(
1255
1255
  id=test.id(),
@@ -1272,7 +1272,7 @@ class UnitTest(IUnitTest):
1272
1272
  super().addError(test, err)
1273
1273
  elapsed = self._test_timings.get(test, 0.0)
1274
1274
  tb_str = ''.join(traceback.format_exception(*err))
1275
- file_path, clean_tb = this._extractErrorInfo(tb_str)
1275
+ file_path, clean_tb = this._extractErrorInfo(tb_str) # NOSONAR
1276
1276
  self.test_results.append(
1277
1277
  TestResult(
1278
1278
  id=test.id(),
@@ -63,7 +63,7 @@ class TestDumper(ITestDumper):
63
63
  test case classes.
64
64
  """
65
65
 
66
- values: tuple = tuple()
66
+ values: tuple = ()
67
67
  for arg in args:
68
68
  if not self.__isTestCaseClass(arg):
69
69
  values += (arg,)
@@ -421,7 +421,7 @@ class TestPrinter(ITestPrinter):
421
421
  invite_text.append("View report: ", style="bold green")
422
422
 
423
423
  # Append the report path, styled as underlined blue for emphasis
424
- invite_text.append(str(path), style="underline blue")
424
+ invite_text.append(str(path), style="underline blue") # NOSONAR
425
425
 
426
426
  # Print the composed invitation message to the console
427
427
  self.__rich_console.print(invite_text)
@@ -486,7 +486,7 @@ class TestPrinter(ITestPrinter):
486
486
  # Add a blank line after the table for spacing
487
487
  self.__rich_console.line(1)
488
488
 
489
- def displayResults(
489
+ def displayResults( # NOSONAR
490
490
  self,
491
491
  *,
492
492
  summary: Dict[str, Any]
@@ -102,7 +102,7 @@ class TestLogs(ITestLogs):
102
102
  # Set synchronous mode to NORMAL for performance
103
103
  self._conn.execute("PRAGMA synchronous=NORMAL;")
104
104
 
105
- except (sqlite3.Error, Exception) as e:
105
+ except sqlite3.Error as e:
106
106
 
107
107
  # Raise a custom exception if connection fails
108
108
  raise OrionisTestPersistenceError(
@@ -329,14 +329,12 @@ class TestLogs(ITestLogs):
329
329
  )
330
330
 
331
331
  # Validate 'first' parameter if provided
332
- if first is not None:
333
- if not isinstance(first, int) or first <= 0:
334
- raise OrionisTestValueError("'first' must be a positive integer greater than zero.")
332
+ if first is not None and not isinstance(first, int) or first <= 0:
333
+ raise OrionisTestValueError("'first' must be a positive integer greater than zero.")
335
334
 
336
335
  # Validate 'last' parameter if provided
337
- if last is not None:
338
- if not isinstance(last, int) or last <= 0:
339
- raise OrionisTestValueError("'last' must be a positive integer greater than zero.")
336
+ if last is not None and not isinstance(last, int) or last <= 0:
337
+ raise OrionisTestValueError("'last' must be a positive integer greater than zero.")
340
338
 
341
339
  # Determine the order and quantity of records to retrieve
342
340
  # If 'last' is specified, order by descending ID; otherwise, ascending
@@ -128,10 +128,15 @@ class TestingResultRender(ITestingResultRender):
128
128
 
129
129
  # Open the generated report in the default web browser if running on Windows or macOS.
130
130
  try:
131
+
131
132
  # Check the operating system and open the report in a web browser if applicable
132
133
  if ((os.name == 'nt') or (os.name == 'posix' and sys.platform == 'darwin')):
133
134
  import webbrowser
134
135
  webbrowser.open(self.__report_path.as_uri())
135
- finally:
136
- # Return the absolute path to the generated report
137
- return str(self.__report_path)
136
+ except Exception:
137
+
138
+ # Silently ignore any errors when opening the browser
139
+ pass
140
+
141
+ # Return the absolute path to the generated report
142
+ return str(self.__report_path)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: orionis
3
- Version: 0.664.0
3
+ Version: 0.666.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
File without changes
File without changes
File without changes
File without changes