aury-boot 0.0.20__tar.gz → 0.0.21__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.
- {aury_boot-0.0.20 → aury_boot-0.0.21}/PKG-INFO +3 -8
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/_version.py +2 -2
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/app/base.py +8 -3
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/config/settings.py +1 -2
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/errors/handlers.py +23 -8
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/pkg.py +3 -3
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/aury_docs/08-scheduler.md.tpl +22 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/scheduler/manager.py +22 -4
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/tasks/manager.py +37 -17
- {aury_boot-0.0.20 → aury_boot-0.0.21}/pyproject.toml +2 -7
- {aury_boot-0.0.20 → aury_boot-0.0.21}/.gitignore +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/README.md +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/adapter/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/adapter/base.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/adapter/config.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/adapter/decorators.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/adapter/exceptions.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/adapter/http.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/app/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/app/components.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/app/middlewares.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/app/startup.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/config/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/config/multi_instance.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/constants/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/constants/components.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/constants/scheduler.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/constants/service.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/errors/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/errors/chain.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/errors/codes.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/errors/exceptions.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/errors/response.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/interfaces/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/interfaces/egress.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/interfaces/ingress.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/middleware/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/middleware/logging.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/migrations/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/migrations/manager.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/migrations/setup.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/rpc/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/rpc/base.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/rpc/client.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/rpc/discovery.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/scheduler/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/scheduler/runner.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/application/server/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/add.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/app.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/config.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/docker.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/docs.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/generate.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/init.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/migrate/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/migrate/app.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/migrate/commands.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/scheduler.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/server/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/server/app.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/generate/api.py.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/generate/model.py.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/generate/repository.py.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/generate/schema.py.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/generate/service.py.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/AGENTS.md.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/README.md.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/admin_console_init.py.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/aury_docs/00-overview.md.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/aury_docs/01-model.md.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/aury_docs/02-repository.md.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/aury_docs/03-service.md.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/aury_docs/04-schema.md.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/aury_docs/05-api.md.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/aury_docs/06-exception.md.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/aury_docs/07-cache.md.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/aury_docs/09-tasks.md.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/aury_docs/10-storage.md.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/aury_docs/11-logging.md.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/aury_docs/12-admin.md.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/aury_docs/13-channel.md.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/aury_docs/14-mq.md.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/aury_docs/15-events.md.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/aury_docs/16-adapter.md.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/aury_docs/99-cli.md.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/config.py.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/conftest.py.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/env_templates/_header.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/env_templates/admin.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/env_templates/cache.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/env_templates/database.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/env_templates/log.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/env_templates/messaging.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/env_templates/rpc.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/env_templates/scheduler.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/env_templates/service.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/env_templates/storage.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/env_templates/third_party.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/gitignore.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/main.py.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/modules/api.py.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/modules/exceptions.py.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/modules/schedules.py.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/modules/tasks.py.tpl +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/worker.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/common/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/common/exceptions/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/common/i18n/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/common/i18n/translator.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/common/logging/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/common/logging/context.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/common/logging/decorators.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/common/logging/format.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/common/logging/setup.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/contrib/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/contrib/admin_console/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/contrib/admin_console/auth.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/contrib/admin_console/discovery.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/contrib/admin_console/install.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/contrib/admin_console/utils.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/domain/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/domain/exceptions/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/domain/models/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/domain/models/base.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/domain/models/mixins.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/domain/models/models.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/domain/pagination/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/domain/repository/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/domain/repository/impl.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/domain/repository/interceptors.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/domain/repository/interface.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/domain/repository/query_builder.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/domain/service/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/domain/service/base.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/domain/transaction/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/cache/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/cache/backends.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/cache/base.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/cache/exceptions.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/cache/factory.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/cache/manager.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/channel/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/channel/backends/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/channel/backends/memory.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/channel/backends/redis.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/channel/base.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/channel/manager.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/clients/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/clients/rabbitmq/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/clients/rabbitmq/config.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/clients/rabbitmq/manager.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/clients/redis/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/clients/redis/config.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/clients/redis/manager.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/database/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/database/config.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/database/exceptions.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/database/manager.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/database/query_tools/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/database/strategies/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/di/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/di/container.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/events/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/events/backends/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/events/backends/memory.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/events/backends/rabbitmq.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/events/backends/redis.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/events/base.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/events/manager.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/events/middleware.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/monitoring/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/mq/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/mq/backends/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/mq/backends/rabbitmq.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/mq/backends/redis.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/mq/base.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/mq/manager.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/scheduler/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/scheduler/exceptions.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/storage/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/storage/base.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/storage/exceptions.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/storage/factory.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/tasks/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/tasks/config.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/tasks/constants.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/tasks/exceptions.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/testing/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/testing/base.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/testing/client.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/testing/factory.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/toolkit/__init__.py +0 -0
- {aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/toolkit/http/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: aury-boot
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.21
|
|
4
4
|
Summary: Aury Boot - 基于 FastAPI 生态的企业级 API 开发框架
|
|
5
5
|
Requires-Python: >=3.13
|
|
6
6
|
Requires-Dist: alembic>=1.17.2
|
|
@@ -24,13 +24,11 @@ Requires-Dist: sqladmin>=0.16.0; extra == 'admin'
|
|
|
24
24
|
Provides-Extra: all
|
|
25
25
|
Requires-Dist: aiomysql>=0.3.2; extra == 'all'
|
|
26
26
|
Requires-Dist: aiosqlite>=0.21.0; extra == 'all'
|
|
27
|
-
Requires-Dist: amqp>=5.3.1; extra == 'all'
|
|
28
27
|
Requires-Dist: apscheduler>=3.11.1; extra == 'all'
|
|
29
28
|
Requires-Dist: asyncpg>=0.31.0; extra == 'all'
|
|
30
29
|
Requires-Dist: aury-sdk-storage[aws]>=0.0.1; extra == 'all'
|
|
31
|
-
Requires-Dist: dramatiq-kombu-broker>=0.2.2; extra == 'all'
|
|
32
30
|
Requires-Dist: dramatiq>=1.18.0; extra == 'all'
|
|
33
|
-
Requires-Dist:
|
|
31
|
+
Requires-Dist: pika>=1.3.2; extra == 'all'
|
|
34
32
|
Requires-Dist: redis>=7.1.0; extra == 'all'
|
|
35
33
|
Provides-Extra: dev
|
|
36
34
|
Requires-Dist: mypy>=1.19.0; extra == 'dev'
|
|
@@ -53,9 +51,7 @@ Requires-Dist: aiosqlite>=0.21.0; extra == 'recommended'
|
|
|
53
51
|
Requires-Dist: apscheduler>=3.11.1; extra == 'recommended'
|
|
54
52
|
Requires-Dist: asyncpg>=0.31.0; extra == 'recommended'
|
|
55
53
|
Requires-Dist: aury-sdk-storage[aws]>=0.0.1; extra == 'recommended'
|
|
56
|
-
Requires-Dist: dramatiq-kombu-broker>=0.2.2; extra == 'recommended'
|
|
57
54
|
Requires-Dist: dramatiq>=1.18.0; extra == 'recommended'
|
|
58
|
-
Requires-Dist: kombu>=5.6.1; extra == 'recommended'
|
|
59
55
|
Requires-Dist: redis>=7.1.0; extra == 'recommended'
|
|
60
56
|
Provides-Extra: redis
|
|
61
57
|
Requires-Dist: redis>=7.1.0; extra == 'redis'
|
|
@@ -66,9 +62,8 @@ Requires-Dist: apscheduler>=3.11.1; extra == 'scheduler'
|
|
|
66
62
|
Provides-Extra: sqlite
|
|
67
63
|
Requires-Dist: aiosqlite>=0.21.0; extra == 'sqlite'
|
|
68
64
|
Provides-Extra: tasks
|
|
69
|
-
Requires-Dist: dramatiq-kombu-broker>=0.2.2; extra == 'tasks'
|
|
70
65
|
Requires-Dist: dramatiq>=1.18.0; extra == 'tasks'
|
|
71
|
-
Requires-Dist:
|
|
66
|
+
Requires-Dist: redis>=7.1.0; extra == 'tasks'
|
|
72
67
|
Description-Content-Type: text/markdown
|
|
73
68
|
|
|
74
69
|
# Aury Boot
|
|
@@ -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.
|
|
32
|
-
__version_tuple__ = version_tuple = (0, 0,
|
|
31
|
+
__version__ = version = '0.0.21'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 0, 21)
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
|
@@ -11,8 +11,10 @@ from contextlib import asynccontextmanager
|
|
|
11
11
|
import sys
|
|
12
12
|
from typing import Any, ClassVar
|
|
13
13
|
|
|
14
|
-
from fastapi import FastAPI, Request, status
|
|
14
|
+
from fastapi import FastAPI, HTTPException, Request, status
|
|
15
|
+
from fastapi.exceptions import RequestValidationError
|
|
15
16
|
from fastapi.responses import JSONResponse
|
|
17
|
+
from starlette.exceptions import HTTPException as StarletteHTTPException
|
|
16
18
|
from starlette.middleware import Middleware as StarletteMiddleware
|
|
17
19
|
|
|
18
20
|
from aury.boot.application.config import BaseConfig
|
|
@@ -279,8 +281,11 @@ class FoundationApp(FastAPI):
|
|
|
279
281
|
**kwargs,
|
|
280
282
|
)
|
|
281
283
|
|
|
282
|
-
#
|
|
283
|
-
self.add_exception_handler(
|
|
284
|
+
# 异常处理:显式注册以覆盖 FastAPI/Starlette 默认处理器,确保统一响应格式
|
|
285
|
+
self.add_exception_handler(RequestValidationError, global_exception_handler) # 422
|
|
286
|
+
self.add_exception_handler(HTTPException, global_exception_handler) # 4xx/5xx
|
|
287
|
+
self.add_exception_handler(StarletteHTTPException, global_exception_handler) # Starlette 异常
|
|
288
|
+
self.add_exception_handler(Exception, global_exception_handler) # 其他未处理异常
|
|
284
289
|
|
|
285
290
|
# 设置路由
|
|
286
291
|
self.setup_routes()
|
|
@@ -507,10 +507,9 @@ class MessageQueueSettings(BaseModel):
|
|
|
507
507
|
- Task: 基于 Dramatiq,用于异步任务处理(API + Worker 模式)
|
|
508
508
|
- MQ: 通用消息队列,用于服务间通信、事件驱动架构
|
|
509
509
|
|
|
510
|
-
|
|
510
|
+
支持的后端:
|
|
511
511
|
- Redis: redis://localhost:6379/0
|
|
512
512
|
- RabbitMQ: amqp://guest:guest@localhost:5672//
|
|
513
|
-
- Amazon SQS: sqs://
|
|
514
513
|
"""
|
|
515
514
|
|
|
516
515
|
enabled: bool = Field(
|
|
@@ -174,6 +174,7 @@ class ValidationErrorHandler(ErrorHandler):
|
|
|
174
174
|
"""验证异常处理器。
|
|
175
175
|
|
|
176
176
|
处理 Pydantic ValidationError 和 FastAPI RequestValidationError。
|
|
177
|
+
返回 422 Unprocessable Entity(符合 FastAPI 规范)。
|
|
177
178
|
"""
|
|
178
179
|
|
|
179
180
|
def can_handle(self, exception: Exception) -> bool:
|
|
@@ -182,24 +183,38 @@ class ValidationErrorHandler(ErrorHandler):
|
|
|
182
183
|
|
|
183
184
|
async def handle(self, exception: Exception, request: Request) -> JSONResponse:
|
|
184
185
|
"""处理验证异常。"""
|
|
185
|
-
logger.warning(f"数据验证失败: {exception}")
|
|
186
|
-
|
|
187
186
|
errors = []
|
|
188
187
|
for error in exception.errors():
|
|
188
|
+
# 构建友好的字段路径:跳过 body 前缀
|
|
189
|
+
loc = error.get("loc", ())
|
|
190
|
+
# FastAPI 会在 loc 前加 'body'/'query'/'path' 等,保留第一个作为来源
|
|
191
|
+
source = str(loc[0]) if loc else ""
|
|
192
|
+
field_path = ".".join(str(part) for part in loc[1:]) if len(loc) > 1 else str(loc[0]) if loc else ""
|
|
193
|
+
|
|
189
194
|
errors.append({
|
|
190
|
-
"field":
|
|
191
|
-
"
|
|
192
|
-
"
|
|
195
|
+
"field": field_path,
|
|
196
|
+
"source": source, # body / query / path / header
|
|
197
|
+
"message": error.get("msg", ""),
|
|
198
|
+
"type": error.get("type", ""),
|
|
199
|
+
"input": error.get("input"), # 实际输入值(便于调试)
|
|
193
200
|
})
|
|
194
201
|
|
|
202
|
+
# 详细日志:方便开发调试
|
|
203
|
+
error_summary = "; ".join(
|
|
204
|
+
f"{e['source']}.{e['field']}({e['type']}): {e['message']}" for e in errors
|
|
205
|
+
)
|
|
206
|
+
logger.warning(
|
|
207
|
+
f"参数校验失败 [{request.method} {request.url.path}]: {error_summary}"
|
|
208
|
+
)
|
|
209
|
+
|
|
195
210
|
response = ResponseBuilder.fail(
|
|
196
|
-
message="
|
|
197
|
-
code=
|
|
211
|
+
message="参数校验失败",
|
|
212
|
+
code=422,
|
|
198
213
|
errors=errors,
|
|
199
214
|
)
|
|
200
215
|
|
|
201
216
|
return JSONResponse(
|
|
202
|
-
status_code=status.
|
|
217
|
+
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
|
|
203
218
|
content=response.model_dump(mode="json"),
|
|
204
219
|
)
|
|
205
220
|
|
|
@@ -97,16 +97,16 @@ MODULES: dict[str, ModuleInfo] = {
|
|
|
97
97
|
"tasks": ModuleInfo(
|
|
98
98
|
name="tasks",
|
|
99
99
|
desc="Dramatiq 任务队列",
|
|
100
|
-
usage="TaskManager
|
|
100
|
+
usage="TaskManager 异步任务时需要(默认使用 Redis Broker)",
|
|
101
101
|
category=Category.TASK,
|
|
102
|
-
deps=["dramatiq", "
|
|
102
|
+
deps=["dramatiq", "redis"],
|
|
103
103
|
),
|
|
104
104
|
"rabbitmq": ModuleInfo(
|
|
105
105
|
name="rabbitmq",
|
|
106
106
|
desc="RabbitMQ 消息队列后端",
|
|
107
107
|
usage="TaskManager/EventBus 使用 RabbitMQ 时需要(需配合 tasks)",
|
|
108
108
|
category=Category.TASK,
|
|
109
|
-
deps=["
|
|
109
|
+
deps=["pika"],
|
|
110
110
|
),
|
|
111
111
|
# 调度器
|
|
112
112
|
"scheduler": ModuleInfo(
|
|
@@ -118,6 +118,28 @@ from datetime import datetime, timedelta
|
|
|
118
118
|
scheduler.add_job(my_task, DateTrigger(run_date=datetime.now() + timedelta(seconds=10)))
|
|
119
119
|
```
|
|
120
120
|
|
|
121
|
+
## 条件加载
|
|
122
|
+
|
|
123
|
+
通过 `enabled` 参数控制任务是否注册:
|
|
124
|
+
|
|
125
|
+
```python
|
|
126
|
+
from config import settings
|
|
127
|
+
|
|
128
|
+
# 根据配置开关决定是否启用
|
|
129
|
+
@scheduler.scheduled_job("cron", hour=2, enabled=settings.ENABLE_REPORT)
|
|
130
|
+
async def daily_report():
|
|
131
|
+
"""仅在 ENABLE_REPORT=true 时注册。"""
|
|
132
|
+
...
|
|
133
|
+
|
|
134
|
+
# 区分环境
|
|
135
|
+
@scheduler.scheduled_job("interval", minutes=5, enabled=settings.ENV == "production")
|
|
136
|
+
async def prod_only_task():
|
|
137
|
+
"""仅生产环境执行。"""
|
|
138
|
+
...
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
`enabled=False` 时任务不会注册,日志记录:`任务已禁用,跳过注册: xxx`
|
|
142
|
+
|
|
121
143
|
## 多实例支持
|
|
122
144
|
|
|
123
145
|
支持不同业务线使用独立的调度器实例:
|
|
@@ -518,7 +518,16 @@ class SchedulerManager:
|
|
|
518
518
|
|
|
519
519
|
self._scheduler.start()
|
|
520
520
|
self._started = True
|
|
521
|
-
|
|
521
|
+
|
|
522
|
+
# 打印已加载的任务列表
|
|
523
|
+
jobs = self._scheduler.get_jobs()
|
|
524
|
+
if jobs:
|
|
525
|
+
logger.info(f"调度器已启动,共加载 {len(jobs)} 个定时任务:")
|
|
526
|
+
for job in jobs:
|
|
527
|
+
next_run = job.next_run_time.strftime("%Y-%m-%d %H:%M:%S") if job.next_run_time else "已暂停"
|
|
528
|
+
logger.info(f" - {job.id} | 触发器: {type(job.trigger).__name__} | 下次执行: {next_run}")
|
|
529
|
+
else:
|
|
530
|
+
logger.info("调度器已启动,无定时任务")
|
|
522
531
|
|
|
523
532
|
def shutdown(self) -> None:
|
|
524
533
|
"""关闭调度器。"""
|
|
@@ -543,6 +552,7 @@ class SchedulerManager:
|
|
|
543
552
|
trigger: TriggerType | BaseTrigger,
|
|
544
553
|
*,
|
|
545
554
|
id: str | None = None,
|
|
555
|
+
enabled: bool = True,
|
|
546
556
|
**kwargs: Any,
|
|
547
557
|
) -> Callable[[Callable], Callable]:
|
|
548
558
|
"""任务注册装饰器。
|
|
@@ -569,9 +579,10 @@ class SchedulerManager:
|
|
|
569
579
|
async def hourly_task():
|
|
570
580
|
print("每小时整点执行")
|
|
571
581
|
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
582
|
+
# === 条件加载 ===
|
|
583
|
+
@scheduler.scheduled_job("cron", hour=2, enabled=settings.ENABLE_REPORT)
|
|
584
|
+
async def daily_report():
|
|
585
|
+
print("每日报告")
|
|
575
586
|
|
|
576
587
|
# === 原生对象模式 ===
|
|
577
588
|
from apscheduler.triggers.cron import CronTrigger
|
|
@@ -585,12 +596,19 @@ class SchedulerManager:
|
|
|
585
596
|
- 字符串: "cron" 或 "interval"
|
|
586
597
|
- 对象: CronTrigger(...) 或 IntervalTrigger(...)
|
|
587
598
|
id: 任务ID(可选,默认使用函数完整路径)
|
|
599
|
+
enabled: 是否启用任务,默认 True。设为 False 时跳过注册
|
|
588
600
|
**kwargs: 触发器参数(字符串模式)或其他 APScheduler add_job 参数
|
|
589
601
|
|
|
590
602
|
Returns:
|
|
591
603
|
装饰器函数
|
|
592
604
|
"""
|
|
593
605
|
def decorator(func: Callable) -> Callable:
|
|
606
|
+
# enabled=False 时跳过注册
|
|
607
|
+
if not enabled:
|
|
608
|
+
job_id = id or f"{func.__module__}.{func.__name__}"
|
|
609
|
+
logger.debug(f"任务已禁用,跳过注册: {job_id}")
|
|
610
|
+
return func
|
|
611
|
+
|
|
594
612
|
job_config = {
|
|
595
613
|
"func": func,
|
|
596
614
|
"trigger": trigger,
|
|
@@ -34,16 +34,40 @@ except ImportError:
|
|
|
34
34
|
CurrentMessage = None
|
|
35
35
|
TimeLimit = None
|
|
36
36
|
|
|
37
|
-
#
|
|
37
|
+
# 可选导入 Redis/RabbitMQ broker(不再使用 KombuBroker)
|
|
38
38
|
try:
|
|
39
|
-
from
|
|
40
|
-
|
|
41
|
-
except
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
39
|
+
from dramatiq.brokers.redis import RedisBroker # type: ignore
|
|
40
|
+
_REDIS_BROKER_AVAILABLE = True
|
|
41
|
+
except Exception:
|
|
42
|
+
RedisBroker = None # type: ignore
|
|
43
|
+
_REDIS_BROKER_AVAILABLE = False
|
|
44
|
+
|
|
45
|
+
try:
|
|
46
|
+
from dramatiq.brokers.rabbitmq import RabbitmqBroker # type: ignore
|
|
47
|
+
_RABBIT_BROKER_AVAILABLE = True
|
|
48
|
+
except Exception:
|
|
49
|
+
RabbitmqBroker = None # type: ignore
|
|
50
|
+
_RABBIT_BROKER_AVAILABLE = False
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def _create_broker(url: str, middleware_list: list) -> Any:
|
|
54
|
+
"""根据 URL 创建 Dramatiq 原生 Broker,并挂载中间件。"""
|
|
55
|
+
scheme = url.split(":", 1)[0].lower() if url else ""
|
|
56
|
+
if scheme.startswith("redis"):
|
|
57
|
+
if not _REDIS_BROKER_AVAILABLE:
|
|
58
|
+
raise ImportError("未安装 redis 或 dramatiq 的 RedisBroker 不可用,请安装: pip install dramatiq redis")
|
|
59
|
+
broker = RedisBroker(url=url) # type: ignore[call-arg]
|
|
60
|
+
for m in middleware_list:
|
|
61
|
+
broker.add_middleware(m)
|
|
62
|
+
return broker
|
|
63
|
+
if scheme in {"amqp", "amqps"}:
|
|
64
|
+
if not _RABBIT_BROKER_AVAILABLE:
|
|
65
|
+
raise ImportError("RabbitMQ broker 不可用,请安装: pip install 'dramatiq[rabbitmq]'")
|
|
66
|
+
broker = RabbitmqBroker(url=url) # type: ignore[call-arg]
|
|
67
|
+
for m in middleware_list:
|
|
68
|
+
broker.add_middleware(m)
|
|
69
|
+
return broker
|
|
70
|
+
raise ValueError(f"不支持的任务队列 URL: {url}")
|
|
47
71
|
|
|
48
72
|
|
|
49
73
|
class TaskProxy:
|
|
@@ -170,7 +194,7 @@ class TaskManager:
|
|
|
170
194
|
name: 实例名称
|
|
171
195
|
"""
|
|
172
196
|
self.name = name
|
|
173
|
-
self._broker: Any = None #
|
|
197
|
+
self._broker: Any = None # Dramatiq Broker | None
|
|
174
198
|
self._initialized: bool = False
|
|
175
199
|
self._task_config: TaskConfig | None = None
|
|
176
200
|
self._run_mode: TaskRunMode = TaskRunMode.WORKER # 默认 Worker 模式(调度者)
|
|
@@ -255,10 +279,6 @@ class TaskManager:
|
|
|
255
279
|
"dramatiq 未安装。请安装可选依赖: pip install 'aury-boot[queue-dramatiq]'"
|
|
256
280
|
)
|
|
257
281
|
|
|
258
|
-
if not _KOMBU_BROKER_AVAILABLE:
|
|
259
|
-
raise ImportError(
|
|
260
|
-
"dramatiq-kombu-broker 未安装。请安装可选依赖: pip install 'aury-boot[queue-dramatiq-kombu]'"
|
|
261
|
-
)
|
|
262
282
|
|
|
263
283
|
try:
|
|
264
284
|
# 使用函数式编程创建默认中间件(如果未提供)
|
|
@@ -268,11 +288,11 @@ class TaskManager:
|
|
|
268
288
|
|
|
269
289
|
middleware_list = middleware if middleware is not None else create_default_middleware()
|
|
270
290
|
|
|
271
|
-
# 使用
|
|
272
|
-
self._broker =
|
|
291
|
+
# 使用 Dramatiq 原生 Broker(Redis/RabbitMQ),不再依赖 KombuBroker
|
|
292
|
+
self._broker = _create_broker(url, middleware_list)
|
|
273
293
|
dramatiq.set_broker(self._broker)
|
|
274
294
|
self._initialized = True
|
|
275
|
-
logger.info(f"
|
|
295
|
+
logger.info(f"任务管理器初始化完成(broker={type(self._broker).__name__}, url={url})")
|
|
276
296
|
except Exception as exc:
|
|
277
297
|
logger.error(f"任务队列初始化失败: {exc}")
|
|
278
298
|
raise
|
|
@@ -53,8 +53,7 @@ s3 = ["aury-sdk-storage[aws]>=0.0.1"]
|
|
|
53
53
|
# ============ 任务队列 ============
|
|
54
54
|
tasks = [
|
|
55
55
|
"dramatiq>=1.18.0",
|
|
56
|
-
"
|
|
57
|
-
"dramatiq-kombu-broker>=0.2.2",
|
|
56
|
+
"redis>=7.1.0",
|
|
58
57
|
]
|
|
59
58
|
|
|
60
59
|
# ============ 消息队列后端 ============
|
|
@@ -75,8 +74,6 @@ recommended = [
|
|
|
75
74
|
"asyncpg>=0.31.0",
|
|
76
75
|
"redis>=7.1.0",
|
|
77
76
|
"dramatiq>=1.18.0",
|
|
78
|
-
"kombu>=5.6.1",
|
|
79
|
-
"dramatiq-kombu-broker>=0.2.2",
|
|
80
77
|
"apscheduler>=3.11.1",
|
|
81
78
|
"aury-sdk-storage[aws]>=0.0.1",
|
|
82
79
|
"aiosqlite>=0.21.0",
|
|
@@ -89,9 +86,7 @@ all = [
|
|
|
89
86
|
"redis>=7.1.0",
|
|
90
87
|
"aury-sdk-storage[aws]>=0.0.1",
|
|
91
88
|
"dramatiq>=1.18.0",
|
|
92
|
-
"
|
|
93
|
-
"dramatiq-kombu-broker>=0.2.2",
|
|
94
|
-
"amqp>=5.3.1",
|
|
89
|
+
"pika>=1.3.2", # RabbitMQ
|
|
95
90
|
"apscheduler>=3.11.1",
|
|
96
91
|
]
|
|
97
92
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/generate/repository.py.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/admin_console_init.py.tpl
RENAMED
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/aury_docs/01-model.md.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/aury_docs/05-api.md.tpl
RENAMED
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/aury_docs/07-cache.md.tpl
RENAMED
|
File without changes
|
{aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/aury_docs/09-tasks.md.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/aury_docs/12-admin.md.tpl
RENAMED
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/aury_docs/14-mq.md.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/aury_docs/99-cli.md.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/env_templates/_header.tpl
RENAMED
|
File without changes
|
{aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/env_templates/admin.tpl
RENAMED
|
File without changes
|
{aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/env_templates/cache.tpl
RENAMED
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/env_templates/log.tpl
RENAMED
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/env_templates/rpc.tpl
RENAMED
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/env_templates/service.tpl
RENAMED
|
File without changes
|
{aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/env_templates/storage.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/modules/api.py.tpl
RENAMED
|
File without changes
|
{aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/modules/exceptions.py.tpl
RENAMED
|
File without changes
|
{aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/modules/schedules.py.tpl
RENAMED
|
File without changes
|
{aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/commands/templates/project/modules/tasks.py.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/database/query_tools/__init__.py
RENAMED
|
File without changes
|
{aury_boot-0.0.20 → aury_boot-0.0.21}/aury/boot/infrastructure/database/strategies/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|