aury-boot 0.0.11__tar.gz → 0.0.12__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.11 → aury_boot-0.0.12}/PKG-INFO +1 -1
  2. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/_version.py +2 -2
  3. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/aury_docs/10-storage.md.tpl +49 -6
  4. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/aury_docs/16-adapter.md.tpl +28 -28
  5. {aury_boot-0.0.11 → aury_boot-0.0.12}/.gitignore +0 -0
  6. {aury_boot-0.0.11 → aury_boot-0.0.12}/README.md +0 -0
  7. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/__init__.py +0 -0
  8. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/__init__.py +0 -0
  9. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/adapter/__init__.py +0 -0
  10. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/adapter/base.py +0 -0
  11. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/adapter/config.py +0 -0
  12. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/adapter/decorators.py +0 -0
  13. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/adapter/exceptions.py +0 -0
  14. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/adapter/http.py +0 -0
  15. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/app/__init__.py +0 -0
  16. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/app/base.py +0 -0
  17. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/app/components.py +0 -0
  18. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/app/middlewares.py +0 -0
  19. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/app/startup.py +0 -0
  20. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/config/__init__.py +0 -0
  21. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/config/multi_instance.py +0 -0
  22. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/config/settings.py +0 -0
  23. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/constants/__init__.py +0 -0
  24. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/constants/components.py +0 -0
  25. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/constants/scheduler.py +0 -0
  26. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/constants/service.py +0 -0
  27. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/errors/__init__.py +0 -0
  28. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/errors/chain.py +0 -0
  29. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/errors/codes.py +0 -0
  30. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/errors/exceptions.py +0 -0
  31. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/errors/handlers.py +0 -0
  32. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/errors/response.py +0 -0
  33. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/interfaces/__init__.py +0 -0
  34. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/interfaces/egress.py +0 -0
  35. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/interfaces/ingress.py +0 -0
  36. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/middleware/__init__.py +0 -0
  37. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/middleware/logging.py +0 -0
  38. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/migrations/__init__.py +0 -0
  39. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/migrations/manager.py +0 -0
  40. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/migrations/setup.py +0 -0
  41. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/rpc/__init__.py +0 -0
  42. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/rpc/base.py +0 -0
  43. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/rpc/client.py +0 -0
  44. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/rpc/discovery.py +0 -0
  45. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/scheduler/__init__.py +0 -0
  46. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/scheduler/runner.py +0 -0
  47. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/application/server/__init__.py +0 -0
  48. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/__init__.py +0 -0
  49. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/add.py +0 -0
  50. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/app.py +0 -0
  51. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/config.py +0 -0
  52. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/docker.py +0 -0
  53. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/docs.py +0 -0
  54. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/generate.py +0 -0
  55. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/init.py +0 -0
  56. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/migrate/__init__.py +0 -0
  57. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/migrate/app.py +0 -0
  58. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/migrate/commands.py +0 -0
  59. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/pkg.py +0 -0
  60. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/scheduler.py +0 -0
  61. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/server/__init__.py +0 -0
  62. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/server/app.py +0 -0
  63. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/generate/api.py.tpl +0 -0
  64. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/generate/model.py.tpl +0 -0
  65. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/generate/repository.py.tpl +0 -0
  66. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/generate/schema.py.tpl +0 -0
  67. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/generate/service.py.tpl +0 -0
  68. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/AGENTS.md.tpl +0 -0
  69. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/README.md.tpl +0 -0
  70. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/admin_console_init.py.tpl +0 -0
  71. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/aury_docs/00-overview.md.tpl +0 -0
  72. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/aury_docs/01-model.md.tpl +0 -0
  73. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/aury_docs/02-repository.md.tpl +0 -0
  74. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/aury_docs/03-service.md.tpl +0 -0
  75. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/aury_docs/04-schema.md.tpl +0 -0
  76. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/aury_docs/05-api.md.tpl +0 -0
  77. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/aury_docs/06-exception.md.tpl +0 -0
  78. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/aury_docs/07-cache.md.tpl +0 -0
  79. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/aury_docs/08-scheduler.md.tpl +0 -0
  80. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/aury_docs/09-tasks.md.tpl +0 -0
  81. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/aury_docs/11-logging.md.tpl +0 -0
  82. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/aury_docs/12-admin.md.tpl +0 -0
  83. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/aury_docs/13-channel.md.tpl +0 -0
  84. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/aury_docs/14-mq.md.tpl +0 -0
  85. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/aury_docs/15-events.md.tpl +0 -0
  86. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/aury_docs/99-cli.md.tpl +0 -0
  87. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/config.py.tpl +0 -0
  88. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/conftest.py.tpl +0 -0
  89. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/env_templates/_header.tpl +0 -0
  90. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/env_templates/admin.tpl +0 -0
  91. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/env_templates/cache.tpl +0 -0
  92. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/env_templates/database.tpl +0 -0
  93. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/env_templates/log.tpl +0 -0
  94. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/env_templates/messaging.tpl +0 -0
  95. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/env_templates/rpc.tpl +0 -0
  96. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/env_templates/scheduler.tpl +0 -0
  97. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/env_templates/service.tpl +0 -0
  98. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/env_templates/storage.tpl +0 -0
  99. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/env_templates/third_party.tpl +0 -0
  100. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/gitignore.tpl +0 -0
  101. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/main.py.tpl +0 -0
  102. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/modules/api.py.tpl +0 -0
  103. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/modules/exceptions.py.tpl +0 -0
  104. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/modules/schedules.py.tpl +0 -0
  105. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/templates/project/modules/tasks.py.tpl +0 -0
  106. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/commands/worker.py +0 -0
  107. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/common/__init__.py +0 -0
  108. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/common/exceptions/__init__.py +0 -0
  109. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/common/i18n/__init__.py +0 -0
  110. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/common/i18n/translator.py +0 -0
  111. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/common/logging/__init__.py +0 -0
  112. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/common/logging/context.py +0 -0
  113. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/common/logging/decorators.py +0 -0
  114. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/common/logging/format.py +0 -0
  115. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/common/logging/setup.py +0 -0
  116. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/contrib/__init__.py +0 -0
  117. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/contrib/admin_console/__init__.py +0 -0
  118. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/contrib/admin_console/auth.py +0 -0
  119. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/contrib/admin_console/discovery.py +0 -0
  120. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/contrib/admin_console/install.py +0 -0
  121. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/contrib/admin_console/utils.py +0 -0
  122. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/domain/__init__.py +0 -0
  123. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/domain/exceptions/__init__.py +0 -0
  124. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/domain/models/__init__.py +0 -0
  125. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/domain/models/base.py +0 -0
  126. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/domain/models/mixins.py +0 -0
  127. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/domain/models/models.py +0 -0
  128. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/domain/pagination/__init__.py +0 -0
  129. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/domain/repository/__init__.py +0 -0
  130. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/domain/repository/impl.py +0 -0
  131. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/domain/repository/interceptors.py +0 -0
  132. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/domain/repository/interface.py +0 -0
  133. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/domain/repository/query_builder.py +0 -0
  134. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/domain/service/__init__.py +0 -0
  135. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/domain/service/base.py +0 -0
  136. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/domain/transaction/__init__.py +0 -0
  137. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/__init__.py +0 -0
  138. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/cache/__init__.py +0 -0
  139. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/cache/backends.py +0 -0
  140. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/cache/base.py +0 -0
  141. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/cache/exceptions.py +0 -0
  142. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/cache/factory.py +0 -0
  143. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/cache/manager.py +0 -0
  144. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/channel/__init__.py +0 -0
  145. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/channel/backends/__init__.py +0 -0
  146. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/channel/backends/memory.py +0 -0
  147. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/channel/backends/redis.py +0 -0
  148. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/channel/base.py +0 -0
  149. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/channel/manager.py +0 -0
  150. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/clients/__init__.py +0 -0
  151. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/clients/rabbitmq/__init__.py +0 -0
  152. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/clients/rabbitmq/config.py +0 -0
  153. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/clients/rabbitmq/manager.py +0 -0
  154. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/clients/redis/__init__.py +0 -0
  155. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/clients/redis/config.py +0 -0
  156. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/clients/redis/manager.py +0 -0
  157. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/database/__init__.py +0 -0
  158. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/database/config.py +0 -0
  159. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/database/exceptions.py +0 -0
  160. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/database/manager.py +0 -0
  161. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/database/query_tools/__init__.py +0 -0
  162. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/database/strategies/__init__.py +0 -0
  163. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/di/__init__.py +0 -0
  164. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/di/container.py +0 -0
  165. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/events/__init__.py +0 -0
  166. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/events/backends/__init__.py +0 -0
  167. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/events/backends/memory.py +0 -0
  168. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/events/backends/rabbitmq.py +0 -0
  169. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/events/backends/redis.py +0 -0
  170. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/events/base.py +0 -0
  171. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/events/manager.py +0 -0
  172. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/events/middleware.py +0 -0
  173. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/monitoring/__init__.py +0 -0
  174. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/mq/__init__.py +0 -0
  175. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/mq/backends/__init__.py +0 -0
  176. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/mq/backends/rabbitmq.py +0 -0
  177. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/mq/backends/redis.py +0 -0
  178. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/mq/base.py +0 -0
  179. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/mq/manager.py +0 -0
  180. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/scheduler/__init__.py +0 -0
  181. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/scheduler/exceptions.py +0 -0
  182. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/scheduler/manager.py +0 -0
  183. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/storage/__init__.py +0 -0
  184. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/storage/base.py +0 -0
  185. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/storage/exceptions.py +0 -0
  186. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/storage/factory.py +0 -0
  187. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/tasks/__init__.py +0 -0
  188. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/tasks/config.py +0 -0
  189. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/tasks/constants.py +0 -0
  190. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/tasks/exceptions.py +0 -0
  191. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/infrastructure/tasks/manager.py +0 -0
  192. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/testing/__init__.py +0 -0
  193. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/testing/base.py +0 -0
  194. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/testing/client.py +0 -0
  195. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/testing/factory.py +0 -0
  196. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/toolkit/__init__.py +0 -0
  197. {aury_boot-0.0.11 → aury_boot-0.0.12}/aury/boot/toolkit/http/__init__.py +0 -0
  198. {aury_boot-0.0.11 → aury_boot-0.0.12}/pyproject.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aury-boot
3
- Version: 0.0.11
3
+ Version: 0.0.12
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.11'
32
- __version_tuple__ = version_tuple = (0, 0, 11)
31
+ __version__ = version = '0.0.12'
32
+ __version_tuple__ = version_tuple = (0, 0, 12)
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -11,17 +11,20 @@ pip install "aury-sdk-storage[aws]"
11
11
 
12
12
  ## 10.2 基本用法(StorageManager)
13
13
 
14
- `StorageManager` 支持**命名多实例**,可以同时管理多个存储后端。
14
+ `StorageManager` 支持**命名多实例**,内部使用 `aury-sdk-storage` 提供的 `StorageFactory.from_config()` 智能选择后端(COS 原生 / S3 兼容等),对上层暴露统一接口。
15
15
 
16
16
  ```python
17
17
  from aury.boot.infrastructure.storage import (
18
- StorageManager, StorageConfig, StorageBackend, StorageFile,
18
+ StorageManager,
19
+ StorageConfig,
20
+ StorageBackend,
21
+ StorageFile,
19
22
  )
20
23
 
21
24
  # 默认实例
22
25
  storage = StorageManager.get_instance()
23
26
  await storage.initialize(StorageConfig(
24
- backend=StorageBackend.COS,
27
+ backend=StorageBackend.COS, # 自动选择 COS 原生 SDK 或 S3 兼容模式
25
28
  bucket_name="my-bucket-1250000000",
26
29
  region="ap-guangzhou",
27
30
  endpoint="https://cos.ap-guangzhou.myqcloud.com",
@@ -45,6 +48,12 @@ url = await storage.upload_file(
45
48
  )
46
49
  )
47
50
 
51
+ # 批量上传
52
+ urls = await storage.upload_files([
53
+ StorageFile(object_name="img/1.jpg", data=b"..."),
54
+ StorageFile(object_name="img/2.jpg", data=b"..."),
55
+ ])
56
+
48
57
  # 下载文件
49
58
  content = await storage.download_file("user/123/avatar.png")
50
59
 
@@ -58,7 +67,38 @@ exists = await storage.file_exists("user/123/avatar.png")
58
67
  await storage.delete_file("user/123/avatar.png")
59
68
  ```
60
69
 
61
- ## 10.3 STS 临时凭证(前端直传)
70
+ ## 10.3 高级用法:直接使用 SDKStorageFactory / StorageType
71
+
72
+ 对于需要更精细控制后端类型(如在脚手架或基础设施层扩展存储实现)的场景,可以直接使用 SDK 导出的类型:
73
+
74
+ ```python
75
+ from aury.boot.infrastructure.storage import (
76
+ COSStorage,
77
+ LocalStorage,
78
+ S3Storage,
79
+ SDKStorageFactory, # SDK 工厂(基于 StorageType 枚举)
80
+ StorageConfig,
81
+ StorageFile,
82
+ StorageType,
83
+ )
84
+
85
+ # 使用 StorageType 创建后端
86
+ config = StorageConfig(
87
+ backend=StorageType.COS,
88
+ bucket_name="my-bucket-1250000000",
89
+ region="ap-guangzhou",
90
+ )
91
+
92
+ backend = SDKStorageFactory.from_config(config)
93
+ result = await backend.upload_file(
94
+ StorageFile(object_name="dev/test.txt", data=b"hello"),
95
+ )
96
+ print(result.url)
97
+ ```
98
+
99
+ > 一般业务代码直接通过 `StorageManager` 即可,只有在需要自定义装配流程或编写基础设施扩展时才需要直接使用 `SDKStorageFactory` / `StorageType` / `COSStorage` 等类型。
100
+
101
+ ## 10.4 STS 临时凭证(前端直传)
62
102
 
63
103
  ```python
64
104
  from aury.sdk.storage.sts import (
@@ -95,11 +135,14 @@ return {{
95
135
  }}
96
136
  ```
97
137
 
98
- ## 10.4 本地存储(开发测试)
138
+ ## 10.5 本地存储(开发测试)
99
139
 
100
140
  ```python
101
141
  from aury.boot.infrastructure.storage import (
102
- StorageManager, StorageConfig, StorageBackend, StorageFile,
142
+ StorageManager,
143
+ StorageConfig,
144
+ StorageBackend,
145
+ StorageFile,
103
146
  )
104
147
 
105
148
  storage = StorageManager.get_instance()
@@ -33,7 +33,7 @@ class PaymentAdapter(BaseAdapter):
33
33
  # 真实调用第三方 API
34
34
  response = await self.http_client.post(
35
35
  "https://api.payment.com/orders",
36
- json={"amount": amount, "order_id": order_id},
36
+ json={{"amount": amount, "order_id": order_id}},
37
37
  )
38
38
  return response.json()
39
39
 
@@ -41,12 +41,12 @@ class PaymentAdapter(BaseAdapter):
41
41
  async def create_order_mock(self, amount: int, order_id: str) -> dict:
42
42
  """创建支付订单(Mock 实现)。"""
43
43
  if amount > 100000:
44
- return {"success": False, "error": "金额超限"}
45
- return {
44
+ return {{"success": False, "error": "金额超限"}}
45
+ return {{
46
46
  "success": True,
47
- "transaction_id": f"mock_tx_{order_id}",
47
+ "transaction_id": f"mock_tx_{{order_id}}",
48
48
  "amount": amount,
49
- }
49
+ }}
50
50
 
51
51
  @adapter_method("query_order")
52
52
  async def query_order(self, transaction_id: str) -> dict:
@@ -59,11 +59,11 @@ class PaymentAdapter(BaseAdapter):
59
59
  @query_order.mock
60
60
  async def query_order_mock(self, transaction_id: str) -> dict:
61
61
  """查询支付订单(Mock)。"""
62
- return {
62
+ return {{
63
63
  "transaction_id": transaction_id,
64
64
  "status": "paid",
65
65
  "mock": True,
66
- }
66
+ }}
67
67
  ```
68
68
 
69
69
  ## 16.3 Adapter 配置
@@ -78,7 +78,7 @@ THIRD_PARTY__GATEWAY_MODE=mock
78
78
 
79
79
  # 方法级模式覆盖(JSON 格式)
80
80
  # 例如:query 方法使用 real,其他方法使用全局配置
81
- THIRD_PARTY__METHOD_MODES={"query_order": "real"}
81
+ THIRD_PARTY__METHOD_MODES={{"query_order": "real"}}
82
82
 
83
83
  # Mock 策略:decorator(装饰器)/ auto(自动生成)
84
84
  THIRD_PARTY__MOCK_STRATEGY=decorator
@@ -140,7 +140,7 @@ class WechatAdapter(HttpAdapter):
140
140
  return await self._request(
141
141
  "POST",
142
142
  "/cgi-bin/message/send",
143
- json={"touser": openid, "content": content},
143
+ json={{"touser": openid, "content": content}},
144
144
  )
145
145
 
146
146
  @send_message.mock
@@ -156,13 +156,13 @@ class WechatAdapter(HttpAdapter):
156
156
  ```python
157
157
  settings = AdapterSettings(
158
158
  mode="mock", # 默认 Mock
159
- method_modes={
159
+ method_modes={{
160
160
  "query_order": "real", # 查询走真实接口
161
161
  "create_order": "mock", # 创建走 Mock
162
162
  "refund": "disabled", # 退款禁用
163
- },
163
+ }},
164
+ debug=True,
164
165
  )
165
-
166
166
  adapter = PaymentAdapter("payment", settings)
167
167
 
168
168
  # query_order 会调用真实 API
@@ -237,19 +237,19 @@ class PaymentAdapter(HttpAdapter):
237
237
  self, method: str, args: tuple, kwargs: dict
238
238
  ) -> None:
239
239
  """调用前钩子。"""
240
- logger.info(f"调用 {method},参数: {args}")
240
+ logger.info(f"调用 {{method}},参数: {{args}}")
241
241
 
242
242
  async def _on_after_call(
243
243
  self, method: str, args: tuple, kwargs: dict, result: Any
244
244
  ) -> None:
245
245
  """调用后钩子。"""
246
- logger.info(f"{method} 返回: {result}")
246
+ logger.info(f"{{method}} 返回: {{result}}")
247
247
 
248
248
  async def _on_call_error(
249
249
  self, method: str, args: tuple, kwargs: dict, error: Exception
250
250
  ) -> None:
251
251
  """调用异常钩子。"""
252
- logger.error(f"{method} 异常: {error}")
252
+ logger.error(f"{{method}} 异常: {{error}}")
253
253
  # 可以在这里发送告警
254
254
  ```
255
255
 
@@ -277,11 +277,11 @@ class CompositePaymentAdapter(BaseAdapter):
277
277
  @pay.mock
278
278
  async def pay_mock(self, channel: str, amount: int, order_id: str) -> dict:
279
279
  """统一 Mock 实现。"""
280
- return {
280
+ return {{
281
281
  "success": True,
282
282
  "channel": channel,
283
- "transaction_id": f"mock_{channel}_{order_id}",
284
- }
283
+ "transaction_id": f"mock_{{channel}}_{{order_id}}",
284
+ }}
285
285
  ```
286
286
 
287
287
  ## 16.8 异常处理
@@ -303,9 +303,9 @@ except AdapterTimeoutError:
303
303
  logger.error("支付适配器超时")
304
304
  # 重试或告警
305
305
  except AdapterValidationError as e:
306
- logger.error(f"参数校验失败: {e}")
306
+ logger.error(f"参数校验失败: {{e}}")
307
307
  except AdapterError as e:
308
- logger.error(f"适配器错误: {e}")
308
+ logger.error(f"适配器错误: {{e}}")
309
309
  ```
310
310
 
311
311
  ## 16.9 最佳实践
@@ -329,16 +329,16 @@ async def create_order_mock(self, amount: int, order_id: str) -> dict:
329
329
  """Mock 应模拟各种场景。"""
330
330
  # 模拟金额校验
331
331
  if amount <= 0:
332
- return {"success": False, "error": "金额必须大于0"}
332
+ return {{"success": False, "error": "金额必须大于0"}}
333
333
  if amount > 100000:
334
- return {"success": False, "error": "金额超限"}
334
+ return {{"success": False, "error": "金额超限"}}
335
335
 
336
336
  # 模拟偶发失败(可选)
337
337
  import random
338
338
  if random.random() < 0.01:
339
- return {"success": False, "error": "系统繁忙"}
339
+ return {{"success": False, "error": "系统繁忙"}}
340
340
 
341
- return {"success": True, "transaction_id": f"mock_{order_id}"}
341
+ return {{"success": True, "transaction_id": f"mock_{{order_id}}"}}
342
342
  ```
343
343
 
344
344
  ### 3. 环境配置建议
@@ -381,11 +381,11 @@ class OrderService(BaseService):
381
381
  async def create_order(self, user_id: str, amount: int) -> Order:
382
382
  """创建订单并发起支付。"""
383
383
  # 1. 创建订单记录
384
- order = await self.order_repo.create({
384
+ order = await self.order_repo.create({{
385
385
  "user_id": user_id,
386
386
  "amount": amount,
387
387
  "status": "pending",
388
- })
388
+ }})
389
389
 
390
390
  # 2. 调用支付适配器
391
391
  pay_result = await self.payment.create_order(amount, str(order.id))
@@ -394,10 +394,10 @@ class OrderService(BaseService):
394
394
  raise PaymentError(pay_result["error"])
395
395
 
396
396
  # 3. 更新订单状态
397
- await self.order_repo.update(order, {
397
+ await self.order_repo.update(order, {{
398
398
  "transaction_id": pay_result["transaction_id"],
399
399
  "status": "paid",
400
- })
400
+ }})
401
401
 
402
402
  return order
403
403
  ```
File without changes
File without changes
File without changes