aury-boot 0.0.12__tar.gz → 0.0.14__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 (198) hide show
  1. {aury_boot-0.0.12 → aury_boot-0.0.14}/PKG-INFO +1 -1
  2. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/_version.py +2 -2
  3. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/docs.py +71 -26
  4. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/init.py +10 -18
  5. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/aury_docs/16-adapter.md.tpl +7 -7
  6. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/aury_docs/99-cli.md.tpl +76 -11
  7. {aury_boot-0.0.12 → aury_boot-0.0.14}/.gitignore +0 -0
  8. {aury_boot-0.0.12 → aury_boot-0.0.14}/README.md +0 -0
  9. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/__init__.py +0 -0
  10. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/__init__.py +0 -0
  11. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/adapter/__init__.py +0 -0
  12. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/adapter/base.py +0 -0
  13. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/adapter/config.py +0 -0
  14. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/adapter/decorators.py +0 -0
  15. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/adapter/exceptions.py +0 -0
  16. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/adapter/http.py +0 -0
  17. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/app/__init__.py +0 -0
  18. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/app/base.py +0 -0
  19. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/app/components.py +0 -0
  20. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/app/middlewares.py +0 -0
  21. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/app/startup.py +0 -0
  22. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/config/__init__.py +0 -0
  23. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/config/multi_instance.py +0 -0
  24. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/config/settings.py +0 -0
  25. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/constants/__init__.py +0 -0
  26. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/constants/components.py +0 -0
  27. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/constants/scheduler.py +0 -0
  28. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/constants/service.py +0 -0
  29. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/errors/__init__.py +0 -0
  30. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/errors/chain.py +0 -0
  31. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/errors/codes.py +0 -0
  32. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/errors/exceptions.py +0 -0
  33. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/errors/handlers.py +0 -0
  34. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/errors/response.py +0 -0
  35. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/interfaces/__init__.py +0 -0
  36. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/interfaces/egress.py +0 -0
  37. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/interfaces/ingress.py +0 -0
  38. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/middleware/__init__.py +0 -0
  39. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/middleware/logging.py +0 -0
  40. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/migrations/__init__.py +0 -0
  41. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/migrations/manager.py +0 -0
  42. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/migrations/setup.py +0 -0
  43. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/rpc/__init__.py +0 -0
  44. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/rpc/base.py +0 -0
  45. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/rpc/client.py +0 -0
  46. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/rpc/discovery.py +0 -0
  47. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/scheduler/__init__.py +0 -0
  48. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/scheduler/runner.py +0 -0
  49. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/application/server/__init__.py +0 -0
  50. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/__init__.py +0 -0
  51. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/add.py +0 -0
  52. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/app.py +0 -0
  53. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/config.py +0 -0
  54. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/docker.py +0 -0
  55. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/generate.py +0 -0
  56. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/migrate/__init__.py +0 -0
  57. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/migrate/app.py +0 -0
  58. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/migrate/commands.py +0 -0
  59. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/pkg.py +0 -0
  60. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/scheduler.py +0 -0
  61. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/server/__init__.py +0 -0
  62. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/server/app.py +0 -0
  63. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/generate/api.py.tpl +0 -0
  64. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/generate/model.py.tpl +0 -0
  65. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/generate/repository.py.tpl +0 -0
  66. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/generate/schema.py.tpl +0 -0
  67. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/generate/service.py.tpl +0 -0
  68. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/AGENTS.md.tpl +0 -0
  69. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/README.md.tpl +0 -0
  70. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/admin_console_init.py.tpl +0 -0
  71. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/aury_docs/00-overview.md.tpl +0 -0
  72. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/aury_docs/01-model.md.tpl +0 -0
  73. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/aury_docs/02-repository.md.tpl +0 -0
  74. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/aury_docs/03-service.md.tpl +0 -0
  75. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/aury_docs/04-schema.md.tpl +0 -0
  76. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/aury_docs/05-api.md.tpl +0 -0
  77. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/aury_docs/06-exception.md.tpl +0 -0
  78. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/aury_docs/07-cache.md.tpl +0 -0
  79. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/aury_docs/08-scheduler.md.tpl +0 -0
  80. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/aury_docs/09-tasks.md.tpl +0 -0
  81. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/aury_docs/10-storage.md.tpl +0 -0
  82. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/aury_docs/11-logging.md.tpl +0 -0
  83. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/aury_docs/12-admin.md.tpl +0 -0
  84. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/aury_docs/13-channel.md.tpl +0 -0
  85. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/aury_docs/14-mq.md.tpl +0 -0
  86. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/aury_docs/15-events.md.tpl +0 -0
  87. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/config.py.tpl +0 -0
  88. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/conftest.py.tpl +0 -0
  89. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/env_templates/_header.tpl +0 -0
  90. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/env_templates/admin.tpl +0 -0
  91. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/env_templates/cache.tpl +0 -0
  92. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/env_templates/database.tpl +0 -0
  93. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/env_templates/log.tpl +0 -0
  94. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/env_templates/messaging.tpl +0 -0
  95. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/env_templates/rpc.tpl +0 -0
  96. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/env_templates/scheduler.tpl +0 -0
  97. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/env_templates/service.tpl +0 -0
  98. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/env_templates/storage.tpl +0 -0
  99. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/env_templates/third_party.tpl +0 -0
  100. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/gitignore.tpl +0 -0
  101. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/main.py.tpl +0 -0
  102. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/modules/api.py.tpl +0 -0
  103. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/modules/exceptions.py.tpl +0 -0
  104. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/modules/schedules.py.tpl +0 -0
  105. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/templates/project/modules/tasks.py.tpl +0 -0
  106. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/commands/worker.py +0 -0
  107. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/common/__init__.py +0 -0
  108. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/common/exceptions/__init__.py +0 -0
  109. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/common/i18n/__init__.py +0 -0
  110. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/common/i18n/translator.py +0 -0
  111. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/common/logging/__init__.py +0 -0
  112. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/common/logging/context.py +0 -0
  113. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/common/logging/decorators.py +0 -0
  114. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/common/logging/format.py +0 -0
  115. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/common/logging/setup.py +0 -0
  116. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/contrib/__init__.py +0 -0
  117. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/contrib/admin_console/__init__.py +0 -0
  118. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/contrib/admin_console/auth.py +0 -0
  119. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/contrib/admin_console/discovery.py +0 -0
  120. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/contrib/admin_console/install.py +0 -0
  121. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/contrib/admin_console/utils.py +0 -0
  122. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/domain/__init__.py +0 -0
  123. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/domain/exceptions/__init__.py +0 -0
  124. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/domain/models/__init__.py +0 -0
  125. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/domain/models/base.py +0 -0
  126. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/domain/models/mixins.py +0 -0
  127. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/domain/models/models.py +0 -0
  128. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/domain/pagination/__init__.py +0 -0
  129. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/domain/repository/__init__.py +0 -0
  130. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/domain/repository/impl.py +0 -0
  131. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/domain/repository/interceptors.py +0 -0
  132. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/domain/repository/interface.py +0 -0
  133. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/domain/repository/query_builder.py +0 -0
  134. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/domain/service/__init__.py +0 -0
  135. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/domain/service/base.py +0 -0
  136. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/domain/transaction/__init__.py +0 -0
  137. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/__init__.py +0 -0
  138. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/cache/__init__.py +0 -0
  139. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/cache/backends.py +0 -0
  140. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/cache/base.py +0 -0
  141. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/cache/exceptions.py +0 -0
  142. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/cache/factory.py +0 -0
  143. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/cache/manager.py +0 -0
  144. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/channel/__init__.py +0 -0
  145. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/channel/backends/__init__.py +0 -0
  146. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/channel/backends/memory.py +0 -0
  147. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/channel/backends/redis.py +0 -0
  148. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/channel/base.py +0 -0
  149. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/channel/manager.py +0 -0
  150. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/clients/__init__.py +0 -0
  151. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/clients/rabbitmq/__init__.py +0 -0
  152. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/clients/rabbitmq/config.py +0 -0
  153. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/clients/rabbitmq/manager.py +0 -0
  154. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/clients/redis/__init__.py +0 -0
  155. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/clients/redis/config.py +0 -0
  156. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/clients/redis/manager.py +0 -0
  157. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/database/__init__.py +0 -0
  158. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/database/config.py +0 -0
  159. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/database/exceptions.py +0 -0
  160. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/database/manager.py +0 -0
  161. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/database/query_tools/__init__.py +0 -0
  162. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/database/strategies/__init__.py +0 -0
  163. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/di/__init__.py +0 -0
  164. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/di/container.py +0 -0
  165. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/events/__init__.py +0 -0
  166. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/events/backends/__init__.py +0 -0
  167. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/events/backends/memory.py +0 -0
  168. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/events/backends/rabbitmq.py +0 -0
  169. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/events/backends/redis.py +0 -0
  170. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/events/base.py +0 -0
  171. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/events/manager.py +0 -0
  172. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/events/middleware.py +0 -0
  173. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/monitoring/__init__.py +0 -0
  174. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/mq/__init__.py +0 -0
  175. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/mq/backends/__init__.py +0 -0
  176. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/mq/backends/rabbitmq.py +0 -0
  177. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/mq/backends/redis.py +0 -0
  178. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/mq/base.py +0 -0
  179. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/mq/manager.py +0 -0
  180. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/scheduler/__init__.py +0 -0
  181. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/scheduler/exceptions.py +0 -0
  182. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/scheduler/manager.py +0 -0
  183. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/storage/__init__.py +0 -0
  184. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/storage/base.py +0 -0
  185. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/storage/exceptions.py +0 -0
  186. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/storage/factory.py +0 -0
  187. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/tasks/__init__.py +0 -0
  188. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/tasks/config.py +0 -0
  189. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/tasks/constants.py +0 -0
  190. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/tasks/exceptions.py +0 -0
  191. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/infrastructure/tasks/manager.py +0 -0
  192. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/testing/__init__.py +0 -0
  193. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/testing/base.py +0 -0
  194. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/testing/client.py +0 -0
  195. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/testing/factory.py +0 -0
  196. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/toolkit/__init__.py +0 -0
  197. {aury_boot-0.0.12 → aury_boot-0.0.14}/aury/boot/toolkit/http/__init__.py +0 -0
  198. {aury_boot-0.0.12 → aury_boot-0.0.14}/pyproject.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aury-boot
3
- Version: 0.0.12
3
+ Version: 0.0.14
4
4
  Summary: Aury Boot - 基于 FastAPI 生态的企业级 API 开发框架
5
5
  Requires-Python: >=3.13
6
6
  Requires-Dist: alembic>=1.17.2
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '0.0.12'
32
- __version_tuple__ = version_tuple = (0, 0, 12)
31
+ __version__ = version = '0.0.14'
32
+ __version_tuple__ = version_tuple = (0, 0, 14)
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -83,8 +83,15 @@ def _detect_project_info(project_dir: Path) -> dict[str, str]:
83
83
  def _render_template(template_name: str, context: dict[str, str]) -> str:
84
84
  """渲染模板。
85
85
 
86
- 支持根目录模板和 aury_docs/ 子目录模板。
86
+ 支持根目录模板、aury_docs/ 子目录模板,且 .env.example 复用 init.py 的 env_templates 逻辑。
87
87
  """
88
+ # 特殊处理 env.example.tpl(通过 init.py 的 env_templates 目录合并生成)
89
+ if template_name == "env.example.tpl":
90
+ from .init import _read_env_template # 复用初始化脚手架的 env 生成逻辑
91
+
92
+ content = _read_env_template()
93
+ return content.format(**context)
94
+
88
95
  # 先在根目录找
89
96
  template_path = TEMPLATES_DIR / template_name
90
97
  if not template_path.exists():
@@ -173,6 +180,60 @@ def _get_aury_docs_templates() -> list[Path]:
173
180
  return sorted(AURY_DOCS_TPL_DIR.glob("*.md.tpl"))
174
181
 
175
182
 
183
+ def generate_aury_docs(
184
+ *,
185
+ project_dir: Path,
186
+ context: dict[str, str],
187
+ force: bool = False,
188
+ dry_run: bool = False,
189
+ quiet: bool = False,
190
+ ) -> int:
191
+ """核心实现:根据 aury_docs 模板生成开发文档包。
192
+
193
+ 被 `aury docs dev` 和 `aury init` 复用,确保生成逻辑一致。
194
+ 返回成功生成的文档数量。
195
+ """
196
+ if not quiet:
197
+ console.print()
198
+
199
+ # 确保输出目录存在
200
+ aury_docs_dir = project_dir / "aury_docs"
201
+ if not dry_run:
202
+ aury_docs_dir.mkdir(parents=True, exist_ok=True)
203
+
204
+ success_count = 0
205
+ for tpl_path in _get_aury_docs_templates():
206
+ try:
207
+ output_name = tpl_path.stem # 去掉 .tpl 后缀,保留 .md
208
+ output_path = aury_docs_dir / output_name
209
+ content = tpl_path.read_text(encoding="utf-8")
210
+ content = content.format(**context)
211
+ # init 直接写文件,不走 rich 提示
212
+ if quiet:
213
+ if output_path.exists() and not force and not dry_run:
214
+ continue
215
+ if not dry_run:
216
+ output_path.write_text(content, encoding="utf-8")
217
+ success_count += 1
218
+ else:
219
+ if _write_file(output_path, content, force=force, dry_run=dry_run):
220
+ success_count += 1
221
+ except Exception as e:
222
+ if not quiet:
223
+ console.print(f"[red]❌ 生成 {tpl_path.name} 失败: {e}[/red]")
224
+ # 静默模式下(init)忽略单个文档失败
225
+ continue
226
+
227
+ if not quiet:
228
+ console.print()
229
+ if dry_run:
230
+ console.print(f"[dim]🔍 预览模式完成,将生成 {success_count} 个文档到 aury_docs/ 目录[/dim]")
231
+ else:
232
+ console.print(f"[green]✨ 完成!成功生成 {success_count} 个文档到 aury_docs/ 目录[/green]")
233
+
234
+ return success_count
235
+
236
+
176
237
  @app.command(name="dev")
177
238
  def generate_dev_doc(
178
239
  project_dir: Path = typer.Argument(
@@ -198,32 +259,16 @@ def generate_dev_doc(
198
259
  ) -> None:
199
260
  """生成/更新 aury_docs/ 开发文档包。"""
200
261
  context = _detect_project_info(project_dir)
201
-
262
+
202
263
  console.print(f"[cyan]📚 检测到项目: {context['project_name']}[/cyan]")
203
- console.print()
204
-
205
- # 确保输出目录存在
206
- aury_docs_dir = project_dir / "aury_docs"
207
- if not dry_run:
208
- aury_docs_dir.mkdir(parents=True, exist_ok=True)
209
-
210
- success_count = 0
211
- for tpl_path in _get_aury_docs_templates():
212
- try:
213
- output_name = tpl_path.stem # 去掉 .tpl 后缀,保留 .md
214
- output_path = aury_docs_dir / output_name
215
- content = tpl_path.read_text(encoding="utf-8")
216
- content = content.format(**context)
217
- if _write_file(output_path, content, force=force, dry_run=dry_run):
218
- success_count += 1
219
- except Exception as e:
220
- console.print(f"[red]❌ 生成 {tpl_path.name} 失败: {e}[/red]")
221
-
222
- console.print()
223
- if dry_run:
224
- console.print(f"[dim]🔍 预览模式完成,将生成 {success_count} 个文档到 aury_docs/ 目录[/dim]")
225
- else:
226
- console.print(f"[green]✨ 完成!成功生成 {success_count} 个文档到 aury_docs/ 目录[/green]")
264
+
265
+ generate_aury_docs(
266
+ project_dir=project_dir,
267
+ context=context,
268
+ force=force,
269
+ dry_run=dry_run,
270
+ quiet=False,
271
+ )
227
272
 
228
273
 
229
274
  @app.command(name="cli")
@@ -836,25 +836,17 @@ def init(
836
836
  else:
837
837
  console.print(" [dim]ℹ️ migrations/ 目录已存在,跳过[/dim]")
838
838
 
839
- # 5. 生成开发文档 (aury_docs/) - 动态扫描模板目录
839
+ # 5. 生成开发文档 (aury_docs/) - 复用 docs.generate_aury_docs
840
840
  console.print("\n[bold]📚 生成开发文档...[/bold]")
841
- aury_docs_tpl_dir = TEMPLATES_DIR / "aury_docs"
842
- aury_docs_dir = base_path / "aury_docs"
843
- aury_docs_dir.mkdir(parents=True, exist_ok=True)
844
- docs_count = 0
845
- if aury_docs_tpl_dir.exists():
846
- for tpl_path in sorted(aury_docs_tpl_dir.glob("*.md.tpl")):
847
- output_name = tpl_path.stem # 去掉 .tpl 后缀,保留 .md
848
- output_path = aury_docs_dir / output_name
849
- if output_path.exists() and not force:
850
- continue
851
- try:
852
- content = tpl_path.read_text(encoding="utf-8")
853
- content = content.format(**template_vars)
854
- output_path.write_text(content, encoding="utf-8")
855
- docs_count += 1
856
- except Exception:
857
- pass
841
+ from .docs import generate_aury_docs
842
+
843
+ docs_count = generate_aury_docs(
844
+ project_dir=base_path,
845
+ context=template_vars,
846
+ force=force,
847
+ dry_run=False,
848
+ quiet=True,
849
+ )
858
850
  console.print(f" [green]✅ 已生成 {docs_count} 个文档到 aury_docs/[/green]")
859
851
 
860
852
  # 6. 生成 Docker 配置
@@ -52,7 +52,7 @@ class PaymentAdapter(BaseAdapter):
52
52
  async def query_order(self, transaction_id: str) -> dict:
53
53
  """查询支付订单。"""
54
54
  response = await self.http_client.get(
55
- f"https://api.payment.com/orders/{transaction_id}"
55
+ f"https://api.payment.com/orders/{{transaction_id}}"
56
56
  )
57
57
  return response.json()
58
58
 
@@ -98,10 +98,10 @@ settings = AdapterSettings()
98
98
  # 方式 2:代码显式配置
99
99
  settings = AdapterSettings(
100
100
  mode="mock",
101
- method_modes={
101
+ method_modes={{
102
102
  "query_order": "real", # query_order 使用真实调用
103
103
  "create_order": "mock", # create_order 使用 Mock
104
- },
104
+ }},
105
105
  debug=True,
106
106
  )
107
107
 
@@ -131,7 +131,7 @@ class WechatAdapter(HttpAdapter):
131
131
  async def _prepare_headers(self, headers: dict | None) -> dict:
132
132
  """添加认证头。"""
133
133
  headers = await super()._prepare_headers(headers)
134
- headers["Authorization"] = f"Bearer {await self._get_access_token()}"
134
+ headers["Authorization"] = f"Bearer {{await self._get_access_token()}}"
135
135
  return headers
136
136
 
137
137
  @adapter_method("send_message")
@@ -146,7 +146,7 @@ class WechatAdapter(HttpAdapter):
146
146
  @send_message.mock
147
147
  async def send_message_mock(self, openid: str, content: str) -> dict:
148
148
  """发送消息(Mock)。"""
149
- return {"errcode": 0, "errmsg": "ok", "mock": True}
149
+ return {{"errcode": 0, "errmsg": "ok", "mock": True}}
150
150
  ```
151
151
 
152
152
  ## 16.5 方法级模式覆盖
@@ -272,7 +272,7 @@ class CompositePaymentAdapter(BaseAdapter):
272
272
  elif channel == "wechat":
273
273
  return await self.wechat.create_order(amount, order_id)
274
274
  else:
275
- raise ValueError(f"不支持的支付渠道: {channel}")
275
+ raise ValueError(f"不支持的支付渠道: {{channel}}")
276
276
 
277
277
  @pay.mock
278
278
  async def pay_mock(self, channel: str, amount: int, order_id: str) -> dict:
@@ -350,7 +350,7 @@ THIRD_PARTY__DEBUG=true
350
350
 
351
351
  # 测试环境 (.env.testing)
352
352
  THIRD_PARTY__GATEWAY_MODE=mock
353
- THIRD_PARTY__METHOD_MODES={"query": "sandbox"}
353
+ THIRD_PARTY__METHOD_MODES={{"query": "sandbox"}}
354
354
 
355
355
  # 生产环境 (.env.production)
356
356
  THIRD_PARTY__GATEWAY_MODE=real
@@ -104,14 +104,79 @@ aury pkg remove redis
104
104
 
105
105
  常用环境变量:
106
106
 
107
- | 变量 | 说明 | 默认值 |
108
- |------|------|--------|
109
- | `ADMIN__ENABLED` | 是否启用管理后台 | `false` |
110
- | `ADMIN__PATH` | 管理后台路径 | `/api/admin-console` |
111
- | `ADMIN__DATABASE_URL` | 管理后台同步数据库 URL(可覆盖自动推导) | - |
112
- | `ADMIN__AUTH_MODE` | 认证模式(basic/bearer/none/custom/jwt) | `basic` |
113
- | `ADMIN__AUTH_SECRET_KEY` | session 签名密钥(生产必配) | - |
114
- | `ADMIN__AUTH_BASIC_USERNAME` | basic 用户名 | - |
115
- | `ADMIN__AUTH_BASIC_PASSWORD` | basic 密码 | - |
116
- | `ADMIN__AUTH_BEARER_TOKENS` | bearer token 白名单 | `[]` |
117
- | `ADMIN__AUTH_BACKEND` | 自定义认证后端导入路径(module:attr) | - |
107
+ || 变量 | 说明 | 默认值 |
108
+ ||------|------|--------|
109
+ || `ADMIN__ENABLED` | 是否启用管理后台 | `false` |
110
+ || `ADMIN__PATH` | 管理后台路径 | `/api/admin-console` |
111
+ || `ADMIN__DATABASE_URL` | 管理后台同步数据库 URL(可覆盖自动推导) | - |
112
+ || `ADMIN__AUTH_MODE` | 认证模式(basic/bearer/none/custom/jwt) | `basic` |
113
+ || `ADMIN__AUTH_SECRET_KEY` | session 签名密钥(生产必配) | - |
114
+ || `ADMIN__AUTH_BASIC_USERNAME` | basic 用户名 | - |
115
+ || `ADMIN__AUTH_BASIC_PASSWORD` | basic 密码 | - |
116
+ || `ADMIN__AUTH_BEARER_TOKENS` | bearer token 白名单 | `[]` |
117
+ || `ADMIN__AUTH_BACKEND` | 自定义认证后端导入路径(module:attr) | - |
118
+
119
+ ## 注册 CLI 与扩展命令
120
+
121
+ ### 内置 `aury` 命令如何注册
122
+
123
+ Aury Boot 安装后会自动注册一个全局命令 `aury`(见框架自身的 `pyproject.toml`):
124
+
125
+ ```toml
126
+ [project.scripts]
127
+ aury = "aury.boot.commands:main"
128
+ ```
129
+
130
+ - `aury.boot.commands:main` 是 Typer 应用入口,内部通过 `app.add_typer(...)` 注册了 `init/generate/server/scheduler/worker/migrate/docker/docs/pkg` 等子命令。
131
+
132
+ ### 在你自己的项目里注册一个 CLI
133
+
134
+ 如果你希望在自己的服务里有一个独立的 CLI(例如 `{project_name_snake}`),并且复用 Aury Boot 的全部基础命令,可以这样做:
135
+
136
+ 1. 新建模块 `{package_name}/cli.py`:
137
+
138
+ ```python
139
+ from typer import Typer
140
+ from aury.boot.commands import register_commands
141
+
142
+ # 创建项目自己的 CLI
143
+ app = Typer(name="{project_name_snake}")
144
+
145
+ # 继承 aury-boot 的所有基础命令
146
+ register_commands(app)
147
+
148
+ # 或者按需关闭某些命令,例如不暴露 docker 命令:
149
+ # register_commands(app, include_docker=False)
150
+
151
+
152
+ # 添加你自己的项目命令
153
+ @app.command()
154
+ async def hello(name: str = "world") -> None:
155
+ """示例:项目自定义命令。"""
156
+ print(f"Hello, {name} from {project_name_snake}!")
157
+ ```
158
+
159
+ > 注意:这里的 `app` 是 Typer 应用实例,`register_commands` 会把所有内置的 `init/generate/server/...` 等命令挂到你自己的 CLI 下。
160
+
161
+ 2. 在你项目自己的 `pyproject.toml` 中注册脚本入口(**不是框架本身的 pyproject**):
162
+
163
+ ```toml
164
+ [project.scripts]
165
+ {project_name_snake} = "{package_name}.cli:app"
166
+ ```
167
+
168
+ 3. 安装项目后,你就可以使用:
169
+
170
+ ```bash
171
+ # 使用项目 CLI 运行 aury-boot 命令
172
+ {project_name_snake} init
173
+ {project_name_snake} generate crud user -i
174
+ {project_name_snake} server dev
175
+
176
+ # 调用你自定义的命令
177
+ {project_name_snake} hello --name dev
178
+ ```
179
+
180
+ 这样:
181
+ - 基础命令仍由 Aury Boot 维护和升级;
182
+ - 你的项目可以在自己的命名空间下扩展命令,而不用直接修改框架的 `aury` 命令。
File without changes
File without changes
File without changes