aury-boot 0.0.7__tar.gz → 0.0.9__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 (197) hide show
  1. {aury_boot-0.0.7 → aury_boot-0.0.9}/PKG-INFO +1 -1
  2. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/_version.py +2 -2
  3. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/app/base.py +10 -0
  4. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/config/settings.py +8 -0
  5. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/env_templates/log.tpl +2 -0
  6. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/env_templates/rpc.tpl +1 -1
  7. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/env_templates/third_party.tpl +4 -4
  8. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/main.py.tpl +4 -0
  9. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/common/logging/__init__.py +4 -0
  10. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/common/logging/setup.py +74 -0
  11. {aury_boot-0.0.7 → aury_boot-0.0.9}/.gitignore +0 -0
  12. {aury_boot-0.0.7 → aury_boot-0.0.9}/README.md +0 -0
  13. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/__init__.py +0 -0
  14. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/__init__.py +0 -0
  15. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/adapter/__init__.py +0 -0
  16. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/adapter/base.py +0 -0
  17. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/adapter/config.py +0 -0
  18. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/adapter/decorators.py +0 -0
  19. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/adapter/exceptions.py +0 -0
  20. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/adapter/http.py +0 -0
  21. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/app/__init__.py +0 -0
  22. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/app/components.py +0 -0
  23. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/app/middlewares.py +0 -0
  24. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/app/startup.py +0 -0
  25. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/config/__init__.py +0 -0
  26. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/config/multi_instance.py +0 -0
  27. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/constants/__init__.py +0 -0
  28. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/constants/components.py +0 -0
  29. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/constants/scheduler.py +0 -0
  30. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/constants/service.py +0 -0
  31. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/errors/__init__.py +0 -0
  32. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/errors/chain.py +0 -0
  33. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/errors/codes.py +0 -0
  34. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/errors/exceptions.py +0 -0
  35. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/errors/handlers.py +0 -0
  36. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/errors/response.py +0 -0
  37. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/interfaces/__init__.py +0 -0
  38. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/interfaces/egress.py +0 -0
  39. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/interfaces/ingress.py +0 -0
  40. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/middleware/__init__.py +0 -0
  41. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/middleware/logging.py +0 -0
  42. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/migrations/__init__.py +0 -0
  43. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/migrations/manager.py +0 -0
  44. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/migrations/setup.py +0 -0
  45. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/rpc/__init__.py +0 -0
  46. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/rpc/base.py +0 -0
  47. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/rpc/client.py +0 -0
  48. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/rpc/discovery.py +0 -0
  49. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/scheduler/__init__.py +0 -0
  50. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/scheduler/runner.py +0 -0
  51. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/application/server/__init__.py +0 -0
  52. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/__init__.py +0 -0
  53. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/add.py +0 -0
  54. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/app.py +0 -0
  55. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/config.py +0 -0
  56. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/docker.py +0 -0
  57. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/docs.py +0 -0
  58. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/generate.py +0 -0
  59. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/init.py +0 -0
  60. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/migrate/__init__.py +0 -0
  61. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/migrate/app.py +0 -0
  62. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/migrate/commands.py +0 -0
  63. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/scheduler.py +0 -0
  64. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/server/__init__.py +0 -0
  65. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/server/app.py +0 -0
  66. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/generate/api.py.tpl +0 -0
  67. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/generate/model.py.tpl +0 -0
  68. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/generate/repository.py.tpl +0 -0
  69. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/generate/schema.py.tpl +0 -0
  70. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/generate/service.py.tpl +0 -0
  71. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/AGENTS.md.tpl +0 -0
  72. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/README.md.tpl +0 -0
  73. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/admin_console_init.py.tpl +0 -0
  74. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/aury_docs/00-overview.md.tpl +0 -0
  75. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/aury_docs/01-model.md.tpl +0 -0
  76. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/aury_docs/02-repository.md.tpl +0 -0
  77. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/aury_docs/03-service.md.tpl +0 -0
  78. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/aury_docs/04-schema.md.tpl +0 -0
  79. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/aury_docs/05-api.md.tpl +0 -0
  80. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/aury_docs/06-exception.md.tpl +0 -0
  81. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/aury_docs/07-cache.md.tpl +0 -0
  82. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/aury_docs/08-scheduler.md.tpl +0 -0
  83. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/aury_docs/09-tasks.md.tpl +0 -0
  84. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/aury_docs/10-storage.md.tpl +0 -0
  85. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/aury_docs/11-logging.md.tpl +0 -0
  86. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/aury_docs/12-admin.md.tpl +0 -0
  87. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/aury_docs/13-channel.md.tpl +0 -0
  88. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/aury_docs/14-mq.md.tpl +0 -0
  89. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/aury_docs/15-events.md.tpl +0 -0
  90. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/aury_docs/16-adapter.md.tpl +0 -0
  91. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/aury_docs/99-cli.md.tpl +0 -0
  92. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/config.py.tpl +0 -0
  93. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/conftest.py.tpl +0 -0
  94. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/env_templates/_header.tpl +0 -0
  95. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/env_templates/admin.tpl +0 -0
  96. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/env_templates/cache.tpl +0 -0
  97. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/env_templates/database.tpl +0 -0
  98. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/env_templates/messaging.tpl +0 -0
  99. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/env_templates/scheduler.tpl +0 -0
  100. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/env_templates/service.tpl +0 -0
  101. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/env_templates/storage.tpl +0 -0
  102. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/gitignore.tpl +0 -0
  103. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/modules/api.py.tpl +0 -0
  104. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/modules/exceptions.py.tpl +0 -0
  105. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/modules/schedules.py.tpl +0 -0
  106. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/templates/project/modules/tasks.py.tpl +0 -0
  107. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/commands/worker.py +0 -0
  108. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/common/__init__.py +0 -0
  109. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/common/exceptions/__init__.py +0 -0
  110. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/common/i18n/__init__.py +0 -0
  111. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/common/i18n/translator.py +0 -0
  112. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/common/logging/context.py +0 -0
  113. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/common/logging/decorators.py +0 -0
  114. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/common/logging/format.py +0 -0
  115. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/contrib/__init__.py +0 -0
  116. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/contrib/admin_console/__init__.py +0 -0
  117. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/contrib/admin_console/auth.py +0 -0
  118. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/contrib/admin_console/discovery.py +0 -0
  119. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/contrib/admin_console/install.py +0 -0
  120. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/contrib/admin_console/utils.py +0 -0
  121. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/domain/__init__.py +0 -0
  122. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/domain/exceptions/__init__.py +0 -0
  123. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/domain/models/__init__.py +0 -0
  124. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/domain/models/base.py +0 -0
  125. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/domain/models/mixins.py +0 -0
  126. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/domain/models/models.py +0 -0
  127. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/domain/pagination/__init__.py +0 -0
  128. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/domain/repository/__init__.py +0 -0
  129. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/domain/repository/impl.py +0 -0
  130. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/domain/repository/interceptors.py +0 -0
  131. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/domain/repository/interface.py +0 -0
  132. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/domain/repository/query_builder.py +0 -0
  133. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/domain/service/__init__.py +0 -0
  134. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/domain/service/base.py +0 -0
  135. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/domain/transaction/__init__.py +0 -0
  136. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/__init__.py +0 -0
  137. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/cache/__init__.py +0 -0
  138. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/cache/backends.py +0 -0
  139. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/cache/base.py +0 -0
  140. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/cache/exceptions.py +0 -0
  141. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/cache/factory.py +0 -0
  142. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/cache/manager.py +0 -0
  143. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/channel/__init__.py +0 -0
  144. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/channel/backends/__init__.py +0 -0
  145. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/channel/backends/memory.py +0 -0
  146. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/channel/backends/redis.py +0 -0
  147. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/channel/base.py +0 -0
  148. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/channel/manager.py +0 -0
  149. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/clients/__init__.py +0 -0
  150. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/clients/rabbitmq/__init__.py +0 -0
  151. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/clients/rabbitmq/config.py +0 -0
  152. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/clients/rabbitmq/manager.py +0 -0
  153. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/clients/redis/__init__.py +0 -0
  154. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/clients/redis/config.py +0 -0
  155. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/clients/redis/manager.py +0 -0
  156. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/database/__init__.py +0 -0
  157. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/database/config.py +0 -0
  158. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/database/exceptions.py +0 -0
  159. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/database/manager.py +0 -0
  160. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/database/query_tools/__init__.py +0 -0
  161. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/database/strategies/__init__.py +0 -0
  162. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/di/__init__.py +0 -0
  163. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/di/container.py +0 -0
  164. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/events/__init__.py +0 -0
  165. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/events/backends/__init__.py +0 -0
  166. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/events/backends/memory.py +0 -0
  167. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/events/backends/rabbitmq.py +0 -0
  168. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/events/backends/redis.py +0 -0
  169. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/events/base.py +0 -0
  170. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/events/manager.py +0 -0
  171. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/events/middleware.py +0 -0
  172. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/monitoring/__init__.py +0 -0
  173. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/mq/__init__.py +0 -0
  174. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/mq/backends/__init__.py +0 -0
  175. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/mq/backends/rabbitmq.py +0 -0
  176. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/mq/backends/redis.py +0 -0
  177. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/mq/base.py +0 -0
  178. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/mq/manager.py +0 -0
  179. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/scheduler/__init__.py +0 -0
  180. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/scheduler/exceptions.py +0 -0
  181. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/scheduler/manager.py +0 -0
  182. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/storage/__init__.py +0 -0
  183. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/storage/base.py +0 -0
  184. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/storage/exceptions.py +0 -0
  185. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/storage/factory.py +0 -0
  186. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/tasks/__init__.py +0 -0
  187. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/tasks/config.py +0 -0
  188. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/tasks/constants.py +0 -0
  189. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/tasks/exceptions.py +0 -0
  190. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/infrastructure/tasks/manager.py +0 -0
  191. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/testing/__init__.py +0 -0
  192. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/testing/base.py +0 -0
  193. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/testing/client.py +0 -0
  194. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/testing/factory.py +0 -0
  195. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/toolkit/__init__.py +0 -0
  196. {aury_boot-0.0.7 → aury_boot-0.0.9}/aury/boot/toolkit/http/__init__.py +0 -0
  197. {aury_boot-0.0.7 → aury_boot-0.0.9}/pyproject.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aury-boot
3
- Version: 0.0.7
3
+ Version: 0.0.9
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.7'
32
- __version_tuple__ = version_tuple = (0, 0, 7)
31
+ __version__ = version = '0.0.9'
32
+ __version_tuple__ = version_tuple = (0, 0, 9)
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -203,6 +203,7 @@ class FoundationApp(FastAPI):
203
203
  title: str = "Aury Service",
204
204
  version: str = "1.0.0",
205
205
  description: str | None = None,
206
+ intercept_loggers: list[str] | None = None,
206
207
  **kwargs: Any,
207
208
  ) -> None:
208
209
  """初始化应用。
@@ -212,6 +213,9 @@ class FoundationApp(FastAPI):
212
213
  title: 应用标题
213
214
  version: 应用版本
214
215
  description: 应用描述
216
+ intercept_loggers: 额外需要拦截的标准 logging logger 名称列表,
217
+ 会追加到框架默认列表 (uvicorn, sqlalchemy.engine 等)。
218
+ 也可通过配置 LOG__INTERCEPT_LOGGERS 设置。
215
219
  **kwargs: 传递给 FastAPI 的其他参数
216
220
  """
217
221
  # 加载配置
@@ -223,6 +227,11 @@ class FoundationApp(FastAPI):
223
227
  frame = sys._getframe(1)
224
228
  self._caller_module = frame.f_globals.get("__name__", "__main__")
225
229
 
230
+ # 合并 intercept_loggers:参数 + 配置
231
+ merged_intercept = list(config.log.intercept_loggers)
232
+ if intercept_loggers:
233
+ merged_intercept.extend(intercept_loggers)
234
+
226
235
  # 初始化日志(必须在其他操作之前)
227
236
  setup_logging(
228
237
  log_level=config.log.level,
@@ -232,6 +241,7 @@ class FoundationApp(FastAPI):
232
241
  retention_days=config.log.retention_days,
233
242
  enable_file_rotation=config.log.enable_file_rotation,
234
243
  enable_console=config.log.enable_console,
244
+ intercept_loggers=merged_intercept,
235
245
  )
236
246
 
237
247
  # 注册 access 日志(HTTP 请求日志)
@@ -372,6 +372,14 @@ class LogSettings(BaseModel):
372
372
  default=False,
373
373
  description="是否记录 WebSocket 消息内容(注意性能和敏感数据)"
374
374
  )
375
+ intercept_loggers: list[str] = Field(
376
+ default_factory=list,
377
+ description=(
378
+ "额外需要由 loguru 接管的标准 logging logger 名称列表。"
379
+ "框架默认已拦截 uvicorn、uvicorn.error、uvicorn.access、sqlalchemy.engine,"
380
+ "此处配置会追加到默认列表。"
381
+ ),
382
+ )
375
383
 
376
384
 
377
385
  class ServiceSettings(BaseModel):
@@ -16,3 +16,5 @@
16
16
  # LOG__ENABLE_FILE_ROTATION=true
17
17
  # 是否输出日志到控制台
18
18
  # LOG__ENABLE_CONSOLE=true
19
+ # 额外需要拦截的标准 logging logger (默认已拦截 uvicorn、sqlalchemy.engine)
20
+ # LOG__INTERCEPT_LOGGERS=["my_package", "third_party_lib"]
@@ -3,7 +3,7 @@
3
3
  # RPC 客户端配置 (RPC_CLIENT__)
4
4
  # =============================================================================
5
5
  # 服务地址映射 {service_name: url}
6
- # RPC_CLIENT__SERVICES={"user-service": "http://localhost:8001"}
6
+ # RPC_CLIENT__SERVICES={{"user-service": "http://localhost:8001"}}
7
7
  # 默认超时时间(秒)
8
8
  # RPC_CLIENT__DEFAULT_TIMEOUT=30
9
9
  # 默认重试次数
@@ -20,10 +20,10 @@
20
20
  # THIRD_PARTY__PAYMENT__API_SECRET=
21
21
  # THIRD_PARTY__PAYMENT__TIMEOUT=30
22
22
  # THIRD_PARTY__PAYMENT__RETRY_TIMES=3
23
- # THIRD_PARTY__PAYMENT__METHOD_MODES={"query": "real", "refund": "disabled"}
23
+ # THIRD_PARTY__PAYMENT__METHOD_MODES={{"query": "real", "refund": "disabled"}}
24
24
  # THIRD_PARTY__PAYMENT__MOCK_STRATEGY=success
25
25
  # THIRD_PARTY__PAYMENT__MOCK_DELAY=0.1
26
- # THIRD_PARTY__PAYMENT__MOCK_DEFAULT_RESPONSE={"success": true, "mock": true}
26
+ # THIRD_PARTY__PAYMENT__MOCK_DEFAULT_RESPONSE={{"success": true, "mock": true}}
27
27
  #
28
28
  # ---------- 短信接口示例 (SMS) ----------
29
29
  # THIRD_PARTY__SMS__ENABLED=true
@@ -33,11 +33,11 @@
33
33
  # THIRD_PARTY__SMS__API_SECRET=xxx
34
34
  # THIRD_PARTY__SMS__TIMEOUT=10
35
35
  # THIRD_PARTY__SMS__MOCK_STRATEGY=success
36
- # THIRD_PARTY__SMS__MOCK_DEFAULT_RESPONSE={"code": "OK", "message": "mock sent"}
36
+ # THIRD_PARTY__SMS__MOCK_DEFAULT_RESPONSE={{"code": "OK", "message": "mock sent"}}
37
37
  #
38
38
  # ---------- 微信接口示例 (WECHAT) ----------
39
39
  # THIRD_PARTY__WECHAT__ENABLED=true
40
40
  # THIRD_PARTY__WECHAT__MODE=mock
41
41
  # THIRD_PARTY__WECHAT__BASE_URL=https://api.weixin.qq.com
42
42
  # THIRD_PARTY__WECHAT__TIMEOUT=15
43
- # THIRD_PARTY__WECHAT__EXTRA={"appid": "wx123", "secret": "xxx"}
43
+ # THIRD_PARTY__WECHAT__EXTRA={{"appid": "wx123", "secret": "xxx"}}
@@ -25,11 +25,15 @@ config = AppConfig()
25
25
  # - HEALTH_CHECK_PATH: 健康检查路径(默认 /api/health)
26
26
  # - HEALTH_CHECK_ENABLED: 是否启用(默认 true)
27
27
  #
28
+ # 日志拦截:
29
+ # 框架默认拦截 uvicorn/sqlalchemy.engine,可通过 intercept_loggers 追加额外的 logger
30
+ #
28
31
  app = FoundationApp(
29
32
  title="{project_name}",
30
33
  version="0.1.0",
31
34
  description="{project_name} - 基于 Aury Boot",
32
35
  config=config,
36
+ intercept_loggers=[],
33
37
  )
34
38
 
35
39
  # 注册 API 路由
@@ -44,11 +44,14 @@ from aury.boot.common.logging.format import (
44
44
  log_exception,
45
45
  )
46
46
  from aury.boot.common.logging.setup import (
47
+ DEFAULT_INTERCEPT_LOGGERS,
47
48
  register_log_sink,
49
+ setup_intercept,
48
50
  setup_logging,
49
51
  )
50
52
 
51
53
  __all__ = [
54
+ "DEFAULT_INTERCEPT_LOGGERS",
52
55
  "ServiceContext",
53
56
  "format_exception_java_style",
54
57
  "get_class_logger",
@@ -63,6 +66,7 @@ __all__ = [
63
66
  "register_request_context",
64
67
  "set_service_context",
65
68
  "set_trace_id",
69
+ "setup_intercept",
66
70
  "setup_logging",
67
71
  ]
68
72
 
@@ -5,6 +5,7 @@
5
5
 
6
6
  from __future__ import annotations
7
7
 
8
+ import logging
8
9
  import os
9
10
  from typing import Any
10
11
 
@@ -88,6 +89,70 @@ def register_log_sink(
88
89
  logger.debug(f"注册日志 sink: {name} (filter_key={filter_key})")
89
90
 
90
91
 
92
+ # 默认拦截的标准 logging 日志记录器
93
+ # - uvicorn: Uvicorn 服务器日志
94
+ # - uvicorn.error: Uvicorn 错误日志
95
+ # - sqlalchemy.engine: SQLAlchemy SQL 语句日志
96
+ # 注意:uvicorn.access 不拦截,因为框架有自己的 RequestLoggingMiddleware
97
+ DEFAULT_INTERCEPT_LOGGERS = [
98
+ "uvicorn",
99
+ "uvicorn.error",
100
+ "sqlalchemy.engine",
101
+ ]
102
+
103
+
104
+ class _InterceptHandler(logging.Handler):
105
+ """将标准 logging 日志转发到 loguru 的处理器。"""
106
+
107
+ def emit(self, record: logging.LogRecord) -> None:
108
+ # 获取对应的 loguru 级别
109
+ try:
110
+ level = logger.level(record.levelname).name
111
+ except ValueError:
112
+ level = record.levelno
113
+
114
+ # 查找调用者的帧深度
115
+ frame, depth = logging.currentframe(), 2
116
+ while frame and frame.f_code.co_filename == logging.__file__:
117
+ frame = frame.f_back
118
+ depth += 1
119
+
120
+ logger.opt(depth=depth, exception=record.exc_info).log(
121
+ level, record.getMessage()
122
+ )
123
+
124
+
125
+ def _setup_intercept(logger_names: list[str]) -> None:
126
+ """让 loguru 接管指定的标准 logging 日志记录器。"""
127
+ handler = _InterceptHandler()
128
+ for name in logger_names:
129
+ std_logger = logging.getLogger(name)
130
+ std_logger.handlers = [handler]
131
+ std_logger.setLevel(logging.DEBUG)
132
+ std_logger.propagate = False
133
+
134
+
135
+ def setup_intercept(logger_names: list[str] | None = None) -> None:
136
+ """拦截标准 logging 日志记录器并转发到 loguru。
137
+
138
+ 用于独立脚本/CLI 入口点(不使用 FoundationApp 时)。
139
+ FoundationApp 会自动调用此函数,无需手动调用。
140
+
141
+ Args:
142
+ logger_names: 额外需要拦截的 logger 名称列表,
143
+ 会追加到默认列表 (uvicorn, sqlalchemy.engine 等)。
144
+
145
+ 使用示例::
146
+
147
+ from aury.boot.common.logging import setup_logging, setup_intercept
148
+
149
+ setup_logging(log_level="DEBUG")
150
+ setup_intercept(["my_package", "third_party_lib"])
151
+ """
152
+ to_intercept = DEFAULT_INTERCEPT_LOGGERS + (logger_names or [])
153
+ _setup_intercept(to_intercept)
154
+
155
+
91
156
  def setup_logging(
92
157
  log_level: str = "INFO",
93
158
  log_dir: str | None = None,
@@ -97,6 +162,7 @@ def setup_logging(
97
162
  retention_days: int = 7,
98
163
  rotation_size: str = "50 MB",
99
164
  enable_console: bool = True,
165
+ intercept_loggers: list[str] | None = None,
100
166
  ) -> None:
101
167
  """设置日志配置。
102
168
 
@@ -119,6 +185,8 @@ def setup_logging(
119
185
  retention_days: 日志保留天数(默认:7 天)
120
186
  rotation_size: 单文件大小上限(默认:50 MB)
121
187
  enable_console: 是否输出到控制台
188
+ intercept_loggers: 额外需要拦截的标准 logging logger 名称列表,
189
+ 会追加到默认列表 (uvicorn, sqlalchemy.engine 等)。
122
190
  """
123
191
  log_level = log_level.upper()
124
192
  log_dir = log_dir or "logs"
@@ -205,10 +273,16 @@ def setup_logging(
205
273
  filter=lambda record, c=ctx: record["extra"].get("service") == c,
206
274
  )
207
275
 
276
+ # 拦截标准 logging 日志并转发到 loguru
277
+ to_intercept = DEFAULT_INTERCEPT_LOGGERS + (intercept_loggers or [])
278
+ _setup_intercept(to_intercept)
279
+
208
280
  logger.info(f"日志系统初始化完成 | 服务: {service_type} | 级别: {log_level} | 目录: {log_dir}")
209
281
 
210
282
 
211
283
  __all__ = [
284
+ "DEFAULT_INTERCEPT_LOGGERS",
212
285
  "register_log_sink",
286
+ "setup_intercept",
213
287
  "setup_logging",
214
288
  ]
File without changes
File without changes
File without changes