quadkit-cli 0.0.2__tar.gz → 0.0.4__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.
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/.gitignore +18 -25
- quadkit_cli-0.0.4/PKG-INFO +187 -0
- quadkit_cli-0.0.4/README.md +131 -0
- quadkit_cli-0.0.4/docs/ARCHITECTURE.md +586 -0
- quadkit_cli-0.0.4/docs/COMMANDS.md +258 -0
- quadkit_cli-0.0.4/docs/CONFIGURATION.md +46 -0
- quadkit_cli-0.0.4/docs/GUIDE.md +205 -0
- quadkit_cli-0.0.4/docs/HOWTOS.md +92 -0
- quadkit_cli-0.0.4/docs/PROJECT_LAYOUT.md +242 -0
- quadkit_cli-0.0.4/docs/PUBLIC_PACKAGE_CLI_MATRIX.md +89 -0
- quadkit_cli-0.0.4/docs/QUICKSTART.md +67 -0
- quadkit_cli-0.0.4/docs/TROUBLESHOOTING.md +150 -0
- quadkit_cli-0.0.4/example.yaml +8 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/pyproject.toml +23 -23
- quadkit_cli-0.0.4/src/quadkit/cli/commands/__init__.py +48 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/commands/config.py +37 -10
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/commands/db_bootstrap.py +11 -10
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/commands/db_commands_ops.py +2 -2
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/commands/events.py +13 -10
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/commands/init.py +3 -1
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/commands/inspect.py +2 -1
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/commands/meta.py +60 -61
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/commands/new.py +6 -3
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/commands/project.py +3 -4
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/commands/system.py +40 -34
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/config.py +0 -3
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/contributors/core.py +4 -1
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/contributors/runtime.py +2 -30
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/exceptions.py +3 -1
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/lib/__init__.py +0 -2
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/lib/config_loader.py +10 -2
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/output/manager.py +8 -9
- quadkit_cli-0.0.4/src/quadkit/cli/package_names.py +116 -0
- quadkit_cli-0.0.4/src/quadkit/cli/registry/__init__.py +363 -0
- quadkit_cli-0.0.4/src/quadkit/cli/registry/_lazy_exports.py +167 -0
- quadkit_cli-0.0.4/src/quadkit/cli/registry/database.py +216 -0
- quadkit_cli-0.0.2/src/quadkit/cli/registry/database.py → quadkit_cli-0.0.4/src/quadkit/cli/registry/database_backends.py +6 -191
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/registry/health_checks/providers.py +14 -31
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/registry/migration.py +7 -1
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/registry/presets.py +20 -22
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/registry/provider_catalog.py +20 -18
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/registry/provider_registry.py +19 -6
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/registry/secrets.py +6 -1
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/registry/template.py +16 -35
- quadkit_cli-0.0.4/src/quadkit/cli/runtime/__init__.py +37 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/runtime/context.py +8 -1
- quadkit_cli-0.0.4/src/quadkit/cli/runtime/main.py +330 -0
- quadkit_cli-0.0.4/src/quadkit/cli/scaffold/__init__.py +59 -0
- quadkit_cli-0.0.4/src/quadkit/cli/scaffold/app_files.py +377 -0
- quadkit_cli-0.0.4/src/quadkit/cli/scaffold/module_files.py +328 -0
- quadkit_cli-0.0.4/src/quadkit/cli/scaffold/render.py +193 -0
- quadkit_cli-0.0.4/src/quadkit/cli/scaffold/specs.py +201 -0
- quadkit_cli-0.0.4/src/quadkit/cli/scaffold/support_files.py +143 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/conftest.py +2 -4
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/commands/test_system.py +15 -5
- quadkit_cli-0.0.4/tests/unit/registry/test_completion.py +80 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/registry/test_database.py +5 -5
- quadkit_cli-0.0.4/tests/unit/registry/test_presets.py +120 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/registry/test_template.py +4 -1
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_cli_context.py +3 -1
- quadkit_cli-0.0.4/tests/unit/test_cli_contribution_system__testclicontributorsubprovider.py +478 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_cli_errors.py +2 -2
- quadkit_cli-0.0.4/tests/unit/test_cli_import_isolation.py +229 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_contributor_runtime.py +3 -3
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_db.py +3 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_generator_base.py +1 -1
- quadkit_cli-0.0.4/tests/unit/test_generator_option_help.py +65 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_health_checks.py +18 -6
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_new.py +8 -3
- quadkit_cli-0.0.4/tests/unit/test_package_names.py +153 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_project_layout.py +4 -2
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_provider_registry.py +24 -24
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_scaffold_and_validators.py +14 -1
- quadkit_cli-0.0.4/tests/unit/test_storage_driver_generator.py +46 -0
- quadkit_cli-0.0.2/PKG-INFO +0 -194
- quadkit_cli-0.0.2/README.md +0 -138
- quadkit_cli-0.0.2/example.yaml +0 -13
- quadkit_cli-0.0.2/src/quadkit/cli/commands/__init__.py +0 -36
- quadkit_cli-0.0.2/src/quadkit/cli/lib/config_gen.py +0 -304
- quadkit_cli-0.0.2/src/quadkit/cli/lib/console.py +0 -18
- quadkit_cli-0.0.2/src/quadkit/cli/registry/__init__.py +0 -338
- quadkit_cli-0.0.2/src/quadkit/cli/runtime/__init__.py +0 -8
- quadkit_cli-0.0.2/src/quadkit/cli/runtime/main.py +0 -154
- quadkit_cli-0.0.2/src/quadkit/cli/scaffold.py +0 -1161
- quadkit_cli-0.0.2/tests/unit/lib/test_config_gen.py +0 -251
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/LICENSE +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/NOTICE +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/__init__.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/assembly/__init__.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/assembly/assembler.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/commands/add.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/commands/config_utils.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/commands/contrib.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/commands/db.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/commands/db_commands_data.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/commands/db_commands_migrations.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/commands/dev.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/commands/gen.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/commands/py.typed +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/commands/run.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/commands/shell.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/constants.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/contributors/__init__.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/contributors/base.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/contributors/discovery.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/contributors/registry.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/decorators.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/di/__init__.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/di/provider.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/di/sub_providers/__init__.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/di/sub_providers/contributor.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/events.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/generators/__init__.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/generators/base.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/generators/field_parser.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/generators/provider.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/generators/test.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/hooks.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/layout.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/lib/entry_point.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/lib/naming.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/lib/templates.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/module.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/output/__init__.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/protocols.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/py.typed +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/registry/backend_base.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/registry/command.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/registry/completion.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/registry/config.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/registry/environment.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/registry/formatter.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/registry/generator.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/registry/health.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/registry/health_checks/__init__.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/registry/health_checks/base.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/registry/health_checks/deps.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/registry/health_checks/project.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/registry/health_checks/python_env.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/registry/health_checks/tools.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/registry/health_checks/vcs_docker.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/registry/hook.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/registry/inspect.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/registry/provider.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/registry/serializer.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/registry/server.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/registry/task.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/registry/telemetry.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/registry/version.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/registry/watcher.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/runtime/error_handler.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/scaffold_package.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/templates/provider.py.jinja2 +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/templates/py.typed +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/templates/test_unit.py.jinja2 +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/cli/types.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/src/quadkit/py.typed +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/helpers/runner.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/integration/__init__.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/integration/test_cli_lifecycle.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/test_package_structure_p1.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/__init__.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/_test_cli_contribution_system_support.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/commands/__init__.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/commands/test_config.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/commands/test_config_happy_paths.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/commands/test_contrib.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/commands/test_events_cmd.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/commands/test_inspect.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/commands/test_meta.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/commands/test_run.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/commands/test_shell.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/di/test_config_alignment.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/lib/test_templates.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/registry/__init__.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/registry/test_environment.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/registry/test_formatter.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/registry/test_health.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/registry/test_hook.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/registry/test_inspect_registry.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/registry/test_migration.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/registry/test_secrets.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/registry/test_serializer.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/registry/test_task.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/registry/test_telemetry.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/registry/test_version.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/registry/test_watcher.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_add.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_base_contributor.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_cli_constants.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_cli_contribution_system.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_cli_exceptions.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_cli_module.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_cli_types.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_config_async.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_config_loader.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_config_save.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_config_validate.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_contributor_registry.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_core_contributor.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_decorators.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_dev_command.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_error_handler.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_events.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_exception_handling.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_field_parser.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_gen.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_gen_controller.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_gen_provider.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_generator_registry.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_generators_contract.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_hooks.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_init_command.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_layout.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_main.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_output.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_output_json.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_project.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_public_surface.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_round40_hardening.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_run_detection.py +0 -0
- {quadkit_cli-0.0.2 → quadkit_cli-0.0.4}/tests/unit/test_server_registry.py +0 -0
|
@@ -28,6 +28,8 @@
|
|
|
28
28
|
!.importlinter
|
|
29
29
|
!.superpowers/
|
|
30
30
|
!.superpowers/**
|
|
31
|
+
!.gitattributes
|
|
32
|
+
!.editorconfig
|
|
31
33
|
!Makefile
|
|
32
34
|
!docker-compose.test.yml
|
|
33
35
|
!quadkit.yaml.example
|
|
@@ -98,69 +100,62 @@ internal-docs/
|
|
|
98
100
|
# Editor swap files
|
|
99
101
|
*.swp
|
|
100
102
|
|
|
101
|
-
# Tiered package layout (core/, packages/, experimental/<family>/)
|
|
102
103
|
!core/
|
|
103
104
|
!packages/
|
|
104
|
-
!experimental/
|
|
105
|
-
!experimental/*/
|
|
106
105
|
!core/quadkit*/
|
|
107
106
|
!packages/quadkit*/
|
|
108
|
-
!experimental/*/quadkit*/
|
|
109
107
|
!core/quadkit*/pyproject.toml
|
|
110
108
|
!packages/quadkit*/pyproject.toml
|
|
111
|
-
!experimental/*/quadkit*/pyproject.toml
|
|
112
109
|
!core/quadkit*/CHANGELOG.md
|
|
113
110
|
!packages/quadkit*/CHANGELOG.md
|
|
114
|
-
!experimental/*/quadkit*/CHANGELOG.md
|
|
115
111
|
!core/quadkit*/README.md
|
|
116
112
|
!packages/quadkit*/README.md
|
|
117
|
-
!experimental/*/quadkit*/README.md
|
|
118
113
|
!core/quadkit*/alembic.ini
|
|
119
114
|
!packages/quadkit*/alembic.ini
|
|
120
|
-
!experimental/*/quadkit*/alembic.ini
|
|
121
115
|
!core/quadkit*/mypy.ini
|
|
122
116
|
!packages/quadkit*/mypy.ini
|
|
123
|
-
!experimental/*/quadkit*/mypy.ini
|
|
124
117
|
!core/quadkit*/*.yaml.example
|
|
125
118
|
!packages/quadkit*/*.yaml.example
|
|
126
|
-
!experimental/*/quadkit*/*.yaml.example
|
|
127
119
|
!core/quadkit*/src/
|
|
128
120
|
!core/quadkit*/src/**
|
|
129
121
|
!packages/quadkit*/src/
|
|
130
122
|
!packages/quadkit*/src/**
|
|
131
|
-
!experimental/*/quadkit*/src/
|
|
132
|
-
!experimental/*/quadkit*/src/**
|
|
133
123
|
!core/quadkit*/tests/
|
|
134
124
|
!core/quadkit*/tests/**
|
|
135
125
|
!packages/quadkit*/tests/
|
|
136
126
|
!packages/quadkit*/tests/**
|
|
137
|
-
!experimental/*/quadkit*/tests/
|
|
138
|
-
!experimental/*/quadkit*/tests/**
|
|
139
127
|
!core/quadkit*/docs/
|
|
140
128
|
!core/quadkit*/docs/**
|
|
141
129
|
!packages/quadkit*/docs/
|
|
142
130
|
!packages/quadkit*/docs/**
|
|
143
|
-
!experimental/*/quadkit*/docs/
|
|
144
|
-
!experimental/*/quadkit*/docs/**
|
|
145
131
|
|
|
146
132
|
# dev/
|
|
147
133
|
!dev/
|
|
148
134
|
!dev/**
|
|
149
135
|
|
|
150
136
|
# Admin dev playground (committed dev asset; local SQLite files stay ignored)
|
|
151
|
-
!
|
|
152
|
-
!
|
|
153
|
-
|
|
154
|
-
|
|
137
|
+
!packages/quadkit-admin/playground/
|
|
138
|
+
!packages/quadkit-admin/playground/serve.py
|
|
139
|
+
|
|
140
|
+
# gatewai apps
|
|
141
|
+
!apps/
|
|
142
|
+
!apps/**
|
|
143
|
+
!apps/gatewai/
|
|
144
|
+
!apps/gatewai/**
|
|
145
|
+
apps/**/node_modules/
|
|
146
|
+
apps/**/dist/
|
|
147
|
+
apps/**/__pycache__/
|
|
148
|
+
apps/**/*.pyc
|
|
149
|
+
apps/**/*.db
|
|
150
|
+
apps/**/*.db-wal
|
|
151
|
+
apps/**/*.db-shm
|
|
155
152
|
|
|
156
153
|
# Re-exclude private content under the tiered paths.
|
|
157
154
|
# MUST come after the !...docs/** negations above — last match wins.
|
|
158
155
|
core/quadkit*/docs/plans/
|
|
159
156
|
packages/quadkit*/docs/plans/
|
|
160
|
-
experimental/*/quadkit*/docs/plans/
|
|
161
157
|
core/quadkit*/docs/**/
|
|
162
158
|
packages/quadkit*/docs/**/
|
|
163
|
-
experimental/*/quadkit*/docs/**/
|
|
164
159
|
|
|
165
160
|
# Re-exclude tooling artifacts under the tiered paths
|
|
166
161
|
__pycache__/
|
|
@@ -178,13 +173,11 @@ test.db
|
|
|
178
173
|
*.log
|
|
179
174
|
!core/quadkit*/tests/fixtures/test.db
|
|
180
175
|
!packages/quadkit*/tests/fixtures/test.db
|
|
181
|
-
!experimental/*/quadkit*/tests/fixtures/test.db
|
|
182
176
|
|
|
183
177
|
# Allow the generated example gifs to be tracked (README hero images).
|
|
184
178
|
!core/quadkit*/docs/gifs/
|
|
185
179
|
!core/quadkit*/docs/gifs/**
|
|
186
180
|
!packages/*/quadkit*/docs/gifs/
|
|
187
181
|
!packages/*/quadkit*/docs/gifs/**
|
|
188
|
-
!experimental/*/quadkit*/docs/gifs/
|
|
189
|
-
!experimental/*/quadkit*/docs/gifs/**
|
|
190
182
|
examples/*/screenshot.png
|
|
183
|
+
!banner*
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: quadkit-cli
|
|
3
|
+
Version: 0.0.4
|
|
4
|
+
Summary: Command-line interface for Quadkit Framework - Project scaffolding, code generation, and development tools
|
|
5
|
+
Project-URL: Homepage, https://dbtinoy-.github.io/quadkit/
|
|
6
|
+
Project-URL: Repository, https://github.com/dbtinoy-/quadkit
|
|
7
|
+
Project-URL: Documentation, https://dbtinoy-.github.io/quadkit/
|
|
8
|
+
Project-URL: Issues, https://github.com/dbtinoy-/quadkit/issues
|
|
9
|
+
Project-URL: Changelog, https://github.com/dbtinoy-/quadkit/blob/main/CHANGELOG.md
|
|
10
|
+
Author-email: Quadkit Framework Team <team@quadkit.dev>
|
|
11
|
+
Maintainer-email: Quadkit Framework Team <team@quadkit.dev>
|
|
12
|
+
License: Apache-2.0
|
|
13
|
+
License-File: LICENSE
|
|
14
|
+
License-File: NOTICE
|
|
15
|
+
Keywords: cli,codegen,command-line,devtools,framework,scaffolding
|
|
16
|
+
Classifier: Development Status :: 3 - Alpha
|
|
17
|
+
Classifier: Environment :: Console
|
|
18
|
+
Classifier: Intended Audience :: Developers
|
|
19
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
20
|
+
Classifier: Operating System :: OS Independent
|
|
21
|
+
Classifier: Programming Language :: Python :: 3
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
25
|
+
Classifier: Topic :: Software Development :: Code Generators
|
|
26
|
+
Classifier: Topic :: Utilities
|
|
27
|
+
Classifier: Typing :: Typed
|
|
28
|
+
Requires-Python: >=3.11
|
|
29
|
+
Requires-Dist: aiofiles<26,>=23.0.0
|
|
30
|
+
Requires-Dist: click<9,>=8.1.0
|
|
31
|
+
Requires-Dist: httpx<1,>=0.25.0
|
|
32
|
+
Requires-Dist: jinja2<4,>=3.1.0
|
|
33
|
+
Requires-Dist: pyyaml<7,>=6.0
|
|
34
|
+
Requires-Dist: quadkit-contracts>=0.0.2
|
|
35
|
+
Requires-Dist: quadkit>=0.0.2
|
|
36
|
+
Requires-Dist: rich<14,>=13.0.0
|
|
37
|
+
Requires-Dist: shellingham<2,>=1.5.0
|
|
38
|
+
Requires-Dist: tomli<3,>=2.0.0
|
|
39
|
+
Requires-Dist: typer[all]<1,>=0.9.0
|
|
40
|
+
Requires-Dist: watchfiles<2,>=0.21.0
|
|
41
|
+
Provides-Extra: all
|
|
42
|
+
Requires-Dist: pytest-asyncio<2,>=0.21.0; extra == 'all'
|
|
43
|
+
Requires-Dist: pytest-cov<8,>=4.0.0; extra == 'all'
|
|
44
|
+
Requires-Dist: pytest<10,>=8.0.0; extra == 'all'
|
|
45
|
+
Requires-Dist: quadkit-testing>=0.0.2; extra == 'all'
|
|
46
|
+
Provides-Extra: dev
|
|
47
|
+
Requires-Dist: black<27,>=23.0.0; extra == 'dev'
|
|
48
|
+
Requires-Dist: mypy<3,>=1.0.0; extra == 'dev'
|
|
49
|
+
Requires-Dist: ruff<1,>=0.1.0; extra == 'dev'
|
|
50
|
+
Provides-Extra: test
|
|
51
|
+
Requires-Dist: pytest-asyncio<2,>=0.21.0; extra == 'test'
|
|
52
|
+
Requires-Dist: pytest-cov<8,>=4.0.0; extra == 'test'
|
|
53
|
+
Requires-Dist: pytest<10,>=8.0.0; extra == 'test'
|
|
54
|
+
Requires-Dist: quadkit-testing>=0.0.2; extra == 'test'
|
|
55
|
+
Description-Content-Type: text/markdown
|
|
56
|
+
|
|
57
|
+
# quadkit-cli
|
|
58
|
+
|
|
59
|
+

|
|
60
|
+
|
|
61
|
+
[](https://pypi.org/project/quadkit-cli/)
|
|
62
|
+
[](https://pypi.org/project/quadkit-cli/)
|
|
63
|
+
[](https://github.com/dbtinoy-/quadkit/blob/main/LICENSE)
|
|
64
|
+
|
|
65
|
+
The `quadkit` command line: project scaffolding, generators, a smart
|
|
66
|
+
runner, and administrative commands for every stage of the application
|
|
67
|
+
lifecycle. Contributor-based — other packages can register their own
|
|
68
|
+
commands.
|
|
69
|
+
|
|
70
|
+
For day-to-day Quadkit developers: scaffold, generate, run, inspect.
|
|
71
|
+
|
|
72
|
+
## The quadkit family
|
|
73
|
+
|
|
74
|
+
| Package | Role |
|
|
75
|
+
| --- | --- |
|
|
76
|
+
| [`quadkit-contracts`](https://pypi.org/project/quadkit-contracts/) | zero-dependency protocols, types, exception hierarchy |
|
|
77
|
+
| [`quadkit`](https://pypi.org/project/quadkit/) | the framework core — DI container, modules, config, logging, `Result` |
|
|
78
|
+
| [`quadkit-web`](https://pypi.org/project/quadkit-web/) | ASGI layer — controllers, routing, middleware, OpenAPI docs |
|
|
79
|
+
| [`quadkit-cli`](https://pypi.org/project/quadkit-cli/) | project scaffolding and code generators |
|
|
80
|
+
| [`quadkit-testing`](https://pypi.org/project/quadkit-testing/) | in-process test beds, fakes, fixtures |
|
|
81
|
+
|
|
82
|
+
## Installation
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
uv add quadkit-cli
|
|
86
|
+
# or as a standalone tool:
|
|
87
|
+
uv tool install quadkit-cli
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Requires **Python >= 3.11**.
|
|
91
|
+
|
|
92
|
+
## Minimal working example
|
|
93
|
+
|
|
94
|
+
There is no code to write — the product is the command line:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
# Create a new project (template defaults to web-api); the package
|
|
98
|
+
# inside is my_api/ with app.py exposing create_app()
|
|
99
|
+
quadkit new project my-api
|
|
100
|
+
cd my-api
|
|
101
|
+
|
|
102
|
+
# Generate application code (list all generators: quadkit gen list)
|
|
103
|
+
quadkit gen provider MyProvider
|
|
104
|
+
quadkit gen controller Orders
|
|
105
|
+
|
|
106
|
+
# Serve the application; reload is on by default, pass --no-reload in prod
|
|
107
|
+
quadkit run my_api.app:create_app --host 0.0.0.0 --port 8000 --workers 4
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Eleven generators ship today (`quadkit gen list`):
|
|
111
|
+
|
|
112
|
+
```text
|
|
113
|
+
controller middleware graphql webhook websocket exception_filter
|
|
114
|
+
interceptor error resource provider test
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Global options: `--json` for machine-readable output, `--quiet`,
|
|
118
|
+
`--debug`, `--no-color`, and `--config <path>` to point at a specific
|
|
119
|
+
`application.yaml`.
|
|
120
|
+
|
|
121
|
+
## Command index
|
|
122
|
+
|
|
123
|
+
| Command | Purpose |
|
|
124
|
+
| --- | --- |
|
|
125
|
+
| `quadkit new project / module / package` | scaffold projects, bounded contexts, and `quadkit-*` extensions |
|
|
126
|
+
| `quadkit init` | initialize Quadkit in an existing project |
|
|
127
|
+
| `quadkit add <provider>` | add a provider to a project (e.g. `database`, `auth`) |
|
|
128
|
+
| `quadkit run [target]` | smart runner — auto-detects `create_app`, sets profile |
|
|
129
|
+
| `quadkit dev start` | production-server startup |
|
|
130
|
+
| `quadkit gen <what>` | code generation (controllers, providers, middleware, tests, more — see `quadkit gen list`) |
|
|
131
|
+
| `quadkit test` / `quadkit lint` | project-level checks |
|
|
132
|
+
| `quadkit db` / `quadkit events` | database / event-schema management |
|
|
133
|
+
| `quadkit config` / `quadkit inspect` / `quadkit shell` | configuration, runtime introspection, REPL |
|
|
134
|
+
| `quadkit project` / `quadkit contrib` / `quadkit system` | project tasks, contributors, system info |
|
|
135
|
+
| `quadkit version` | framework and package versions |
|
|
136
|
+
|
|
137
|
+
Per-distribution guide:
|
|
138
|
+
[quadkit-cli reference](https://dbtinoy-.github.io/quadkit/reference/quadkit-cli/).
|
|
139
|
+
|
|
140
|
+
## Optional extras
|
|
141
|
+
|
|
142
|
+
`[dev]` and `[test]` bundle tooling; `[all]` pulls everything.
|
|
143
|
+
|
|
144
|
+
## Configuration
|
|
145
|
+
|
|
146
|
+
The CLI reads `application.yaml` like any Quadkit application; its own
|
|
147
|
+
section is `cli` (`color`), overridable via `QK_CLI__*`, e.g.
|
|
148
|
+
`QK_CLI__COLOR=false`.
|
|
149
|
+
|
|
150
|
+
## Error handling
|
|
151
|
+
|
|
152
|
+
Commands report structured failures (use `--json` for machine-readable
|
|
153
|
+
envelopes) and non-zero exit codes; `--debug` surfaces full tracebacks.
|
|
154
|
+
|
|
155
|
+
## Testing
|
|
156
|
+
|
|
157
|
+
`quadkit test` runs the project suite; the CLI's own behavior is
|
|
158
|
+
covered by the public test set the release pipeline executes from the
|
|
159
|
+
exported tree.
|
|
160
|
+
|
|
161
|
+
## Security
|
|
162
|
+
|
|
163
|
+
The CLI reads configuration and scaffolds code — it does not serve
|
|
164
|
+
traffic. As with every distribution, keep the `0.x` line pinned and
|
|
165
|
+
review release notes on upgrade. Report vulnerabilities privately per
|
|
166
|
+
[SECURITY.md](https://github.com/dbtinoy-/quadkit/blob/main/SECURITY.md).
|
|
167
|
+
|
|
168
|
+
## Stability
|
|
169
|
+
|
|
170
|
+
Version `0.0.3` in the `0.x` series, released in lockstep with the
|
|
171
|
+
other four distributions; APIs may change between minor versions until
|
|
172
|
+
1.0 — pin an exact version (`quadkit-cli==0.0.3`) or a tight range
|
|
173
|
+
(`>=0.0.3,<0.1.0`). Full policy:
|
|
174
|
+
[stability and compatibility](https://dbtinoy-.github.io/quadkit/reference/stability/).
|
|
175
|
+
|
|
176
|
+
## Links
|
|
177
|
+
|
|
178
|
+
- **Documentation** — <https://dbtinoy-.github.io/quadkit/>
|
|
179
|
+
- **Getting started** — <https://dbtinoy-.github.io/quadkit/getting-started/installation/>
|
|
180
|
+
- **Changelog** — <https://github.com/dbtinoy-/quadkit/blob/main/CHANGELOG.md>
|
|
181
|
+
- **Issues** — <https://github.com/dbtinoy-/quadkit/issues>
|
|
182
|
+
- **Security** — report privately per [SECURITY.md](https://github.com/dbtinoy-/quadkit/blob/main/SECURITY.md)
|
|
183
|
+
- **Contributing** — [CONTRIBUTING.md](https://github.com/dbtinoy-/quadkit/blob/main/CONTRIBUTING.md)
|
|
184
|
+
|
|
185
|
+
Apache-2.0 — see [LICENSE](https://github.com/dbtinoy-/quadkit/blob/main/LICENSE). "Quadkit" and the
|
|
186
|
+
Quadkit logo are trademarks of the project — see
|
|
187
|
+
[TRADEMARK.md](https://github.com/dbtinoy-/quadkit/blob/main/TRADEMARK.md).
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# quadkit-cli
|
|
2
|
+
|
|
3
|
+

|
|
4
|
+
|
|
5
|
+
[](https://pypi.org/project/quadkit-cli/)
|
|
6
|
+
[](https://pypi.org/project/quadkit-cli/)
|
|
7
|
+
[](https://github.com/dbtinoy-/quadkit/blob/main/LICENSE)
|
|
8
|
+
|
|
9
|
+
The `quadkit` command line: project scaffolding, generators, a smart
|
|
10
|
+
runner, and administrative commands for every stage of the application
|
|
11
|
+
lifecycle. Contributor-based — other packages can register their own
|
|
12
|
+
commands.
|
|
13
|
+
|
|
14
|
+
For day-to-day Quadkit developers: scaffold, generate, run, inspect.
|
|
15
|
+
|
|
16
|
+
## The quadkit family
|
|
17
|
+
|
|
18
|
+
| Package | Role |
|
|
19
|
+
| --- | --- |
|
|
20
|
+
| [`quadkit-contracts`](https://pypi.org/project/quadkit-contracts/) | zero-dependency protocols, types, exception hierarchy |
|
|
21
|
+
| [`quadkit`](https://pypi.org/project/quadkit/) | the framework core — DI container, modules, config, logging, `Result` |
|
|
22
|
+
| [`quadkit-web`](https://pypi.org/project/quadkit-web/) | ASGI layer — controllers, routing, middleware, OpenAPI docs |
|
|
23
|
+
| [`quadkit-cli`](https://pypi.org/project/quadkit-cli/) | project scaffolding and code generators |
|
|
24
|
+
| [`quadkit-testing`](https://pypi.org/project/quadkit-testing/) | in-process test beds, fakes, fixtures |
|
|
25
|
+
|
|
26
|
+
## Installation
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
uv add quadkit-cli
|
|
30
|
+
# or as a standalone tool:
|
|
31
|
+
uv tool install quadkit-cli
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Requires **Python >= 3.11**.
|
|
35
|
+
|
|
36
|
+
## Minimal working example
|
|
37
|
+
|
|
38
|
+
There is no code to write — the product is the command line:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
# Create a new project (template defaults to web-api); the package
|
|
42
|
+
# inside is my_api/ with app.py exposing create_app()
|
|
43
|
+
quadkit new project my-api
|
|
44
|
+
cd my-api
|
|
45
|
+
|
|
46
|
+
# Generate application code (list all generators: quadkit gen list)
|
|
47
|
+
quadkit gen provider MyProvider
|
|
48
|
+
quadkit gen controller Orders
|
|
49
|
+
|
|
50
|
+
# Serve the application; reload is on by default, pass --no-reload in prod
|
|
51
|
+
quadkit run my_api.app:create_app --host 0.0.0.0 --port 8000 --workers 4
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Eleven generators ship today (`quadkit gen list`):
|
|
55
|
+
|
|
56
|
+
```text
|
|
57
|
+
controller middleware graphql webhook websocket exception_filter
|
|
58
|
+
interceptor error resource provider test
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Global options: `--json` for machine-readable output, `--quiet`,
|
|
62
|
+
`--debug`, `--no-color`, and `--config <path>` to point at a specific
|
|
63
|
+
`application.yaml`.
|
|
64
|
+
|
|
65
|
+
## Command index
|
|
66
|
+
|
|
67
|
+
| Command | Purpose |
|
|
68
|
+
| --- | --- |
|
|
69
|
+
| `quadkit new project / module / package` | scaffold projects, bounded contexts, and `quadkit-*` extensions |
|
|
70
|
+
| `quadkit init` | initialize Quadkit in an existing project |
|
|
71
|
+
| `quadkit add <provider>` | add a provider to a project (e.g. `database`, `auth`) |
|
|
72
|
+
| `quadkit run [target]` | smart runner — auto-detects `create_app`, sets profile |
|
|
73
|
+
| `quadkit dev start` | production-server startup |
|
|
74
|
+
| `quadkit gen <what>` | code generation (controllers, providers, middleware, tests, more — see `quadkit gen list`) |
|
|
75
|
+
| `quadkit test` / `quadkit lint` | project-level checks |
|
|
76
|
+
| `quadkit db` / `quadkit events` | database / event-schema management |
|
|
77
|
+
| `quadkit config` / `quadkit inspect` / `quadkit shell` | configuration, runtime introspection, REPL |
|
|
78
|
+
| `quadkit project` / `quadkit contrib` / `quadkit system` | project tasks, contributors, system info |
|
|
79
|
+
| `quadkit version` | framework and package versions |
|
|
80
|
+
|
|
81
|
+
Per-distribution guide:
|
|
82
|
+
[quadkit-cli reference](https://dbtinoy-.github.io/quadkit/reference/quadkit-cli/).
|
|
83
|
+
|
|
84
|
+
## Optional extras
|
|
85
|
+
|
|
86
|
+
`[dev]` and `[test]` bundle tooling; `[all]` pulls everything.
|
|
87
|
+
|
|
88
|
+
## Configuration
|
|
89
|
+
|
|
90
|
+
The CLI reads `application.yaml` like any Quadkit application; its own
|
|
91
|
+
section is `cli` (`color`), overridable via `QK_CLI__*`, e.g.
|
|
92
|
+
`QK_CLI__COLOR=false`.
|
|
93
|
+
|
|
94
|
+
## Error handling
|
|
95
|
+
|
|
96
|
+
Commands report structured failures (use `--json` for machine-readable
|
|
97
|
+
envelopes) and non-zero exit codes; `--debug` surfaces full tracebacks.
|
|
98
|
+
|
|
99
|
+
## Testing
|
|
100
|
+
|
|
101
|
+
`quadkit test` runs the project suite; the CLI's own behavior is
|
|
102
|
+
covered by the public test set the release pipeline executes from the
|
|
103
|
+
exported tree.
|
|
104
|
+
|
|
105
|
+
## Security
|
|
106
|
+
|
|
107
|
+
The CLI reads configuration and scaffolds code — it does not serve
|
|
108
|
+
traffic. As with every distribution, keep the `0.x` line pinned and
|
|
109
|
+
review release notes on upgrade. Report vulnerabilities privately per
|
|
110
|
+
[SECURITY.md](https://github.com/dbtinoy-/quadkit/blob/main/SECURITY.md).
|
|
111
|
+
|
|
112
|
+
## Stability
|
|
113
|
+
|
|
114
|
+
Version `0.0.3` in the `0.x` series, released in lockstep with the
|
|
115
|
+
other four distributions; APIs may change between minor versions until
|
|
116
|
+
1.0 — pin an exact version (`quadkit-cli==0.0.3`) or a tight range
|
|
117
|
+
(`>=0.0.3,<0.1.0`). Full policy:
|
|
118
|
+
[stability and compatibility](https://dbtinoy-.github.io/quadkit/reference/stability/).
|
|
119
|
+
|
|
120
|
+
## Links
|
|
121
|
+
|
|
122
|
+
- **Documentation** — <https://dbtinoy-.github.io/quadkit/>
|
|
123
|
+
- **Getting started** — <https://dbtinoy-.github.io/quadkit/getting-started/installation/>
|
|
124
|
+
- **Changelog** — <https://github.com/dbtinoy-/quadkit/blob/main/CHANGELOG.md>
|
|
125
|
+
- **Issues** — <https://github.com/dbtinoy-/quadkit/issues>
|
|
126
|
+
- **Security** — report privately per [SECURITY.md](https://github.com/dbtinoy-/quadkit/blob/main/SECURITY.md)
|
|
127
|
+
- **Contributing** — [CONTRIBUTING.md](https://github.com/dbtinoy-/quadkit/blob/main/CONTRIBUTING.md)
|
|
128
|
+
|
|
129
|
+
Apache-2.0 — see [LICENSE](https://github.com/dbtinoy-/quadkit/blob/main/LICENSE). "Quadkit" and the
|
|
130
|
+
Quadkit logo are trademarks of the project — see
|
|
131
|
+
[TRADEMARK.md](https://github.com/dbtinoy-/quadkit/blob/main/TRADEMARK.md).
|