quadkit-cli 0.0.4__tar.gz → 0.0.41__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 (212) hide show
  1. quadkit_cli-0.0.41/.gitignore +24 -0
  2. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/PKG-INFO +1 -1
  3. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/pyproject.toml +1 -1
  4. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/environment.py +52 -2
  5. quadkit_cli-0.0.4/.gitignore +0 -183
  6. quadkit_cli-0.0.4/docs/ARCHITECTURE.md +0 -586
  7. quadkit_cli-0.0.4/docs/COMMANDS.md +0 -258
  8. quadkit_cli-0.0.4/docs/CONFIGURATION.md +0 -46
  9. quadkit_cli-0.0.4/docs/GUIDE.md +0 -205
  10. quadkit_cli-0.0.4/docs/HOWTOS.md +0 -92
  11. quadkit_cli-0.0.4/docs/PROJECT_LAYOUT.md +0 -242
  12. quadkit_cli-0.0.4/docs/PUBLIC_PACKAGE_CLI_MATRIX.md +0 -89
  13. quadkit_cli-0.0.4/docs/QUICKSTART.md +0 -67
  14. quadkit_cli-0.0.4/docs/TROUBLESHOOTING.md +0 -150
  15. quadkit_cli-0.0.4/tests/helpers/runner.py +0 -153
  16. quadkit_cli-0.0.4/tests/unit/commands/test_events_cmd.py +0 -58
  17. quadkit_cli-0.0.4/tests/unit/registry/test_template.py +0 -180
  18. quadkit_cli-0.0.4/tests/unit/test_add.py +0 -131
  19. quadkit_cli-0.0.4/tests/unit/test_cli_contribution_system__testclicontributorsubprovider.py +0 -478
  20. quadkit_cli-0.0.4/tests/unit/test_generator_option_help.py +0 -65
  21. quadkit_cli-0.0.4/tests/unit/test_health_checks.py +0 -312
  22. quadkit_cli-0.0.4/tests/unit/test_package_names.py +0 -153
  23. quadkit_cli-0.0.4/tests/unit/test_public_surface.py +0 -85
  24. quadkit_cli-0.0.4/tests/unit/test_scaffold_and_validators.py +0 -314
  25. quadkit_cli-0.0.4/tests/unit/test_storage_driver_generator.py +0 -46
  26. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/LICENSE +0 -0
  27. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/NOTICE +0 -0
  28. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/README.md +0 -0
  29. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/example.yaml +0 -0
  30. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/__init__.py +0 -0
  31. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/assembly/__init__.py +0 -0
  32. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/assembly/assembler.py +0 -0
  33. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/commands/__init__.py +0 -0
  34. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/commands/add.py +0 -0
  35. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/commands/config.py +0 -0
  36. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/commands/config_utils.py +0 -0
  37. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/commands/contrib.py +0 -0
  38. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/commands/db.py +0 -0
  39. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/commands/db_bootstrap.py +0 -0
  40. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/commands/db_commands_data.py +0 -0
  41. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/commands/db_commands_migrations.py +0 -0
  42. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/commands/db_commands_ops.py +0 -0
  43. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/commands/dev.py +0 -0
  44. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/commands/events.py +0 -0
  45. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/commands/gen.py +0 -0
  46. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/commands/init.py +0 -0
  47. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/commands/inspect.py +0 -0
  48. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/commands/meta.py +0 -0
  49. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/commands/new.py +0 -0
  50. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/commands/project.py +0 -0
  51. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/commands/py.typed +0 -0
  52. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/commands/run.py +0 -0
  53. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/commands/shell.py +0 -0
  54. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/commands/system.py +0 -0
  55. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/config.py +0 -0
  56. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/constants.py +0 -0
  57. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/contributors/__init__.py +0 -0
  58. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/contributors/base.py +0 -0
  59. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/contributors/core.py +0 -0
  60. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/contributors/discovery.py +0 -0
  61. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/contributors/registry.py +0 -0
  62. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/contributors/runtime.py +0 -0
  63. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/decorators.py +0 -0
  64. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/di/__init__.py +0 -0
  65. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/di/provider.py +0 -0
  66. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/di/sub_providers/__init__.py +0 -0
  67. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/di/sub_providers/contributor.py +0 -0
  68. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/events.py +0 -0
  69. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/exceptions.py +0 -0
  70. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/generators/__init__.py +0 -0
  71. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/generators/base.py +0 -0
  72. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/generators/field_parser.py +0 -0
  73. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/generators/provider.py +0 -0
  74. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/generators/test.py +0 -0
  75. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/hooks.py +0 -0
  76. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/layout.py +0 -0
  77. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/lib/__init__.py +0 -0
  78. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/lib/config_loader.py +0 -0
  79. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/lib/entry_point.py +0 -0
  80. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/lib/naming.py +0 -0
  81. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/lib/templates.py +0 -0
  82. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/module.py +0 -0
  83. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/output/__init__.py +0 -0
  84. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/output/manager.py +0 -0
  85. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/package_names.py +0 -0
  86. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/protocols.py +0 -0
  87. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/py.typed +0 -0
  88. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/__init__.py +0 -0
  89. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/_lazy_exports.py +0 -0
  90. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/backend_base.py +0 -0
  91. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/command.py +0 -0
  92. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/completion.py +0 -0
  93. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/config.py +0 -0
  94. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/database.py +0 -0
  95. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/database_backends.py +0 -0
  96. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/formatter.py +0 -0
  97. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/generator.py +0 -0
  98. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/health.py +0 -0
  99. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/health_checks/__init__.py +0 -0
  100. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/health_checks/base.py +0 -0
  101. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/health_checks/deps.py +0 -0
  102. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/health_checks/project.py +0 -0
  103. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/health_checks/providers.py +0 -0
  104. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/health_checks/python_env.py +0 -0
  105. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/health_checks/tools.py +0 -0
  106. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/health_checks/vcs_docker.py +0 -0
  107. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/hook.py +0 -0
  108. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/inspect.py +0 -0
  109. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/migration.py +0 -0
  110. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/presets.py +0 -0
  111. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/provider.py +0 -0
  112. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/provider_catalog.py +0 -0
  113. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/provider_registry.py +0 -0
  114. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/secrets.py +0 -0
  115. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/serializer.py +0 -0
  116. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/server.py +0 -0
  117. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/task.py +0 -0
  118. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/telemetry.py +0 -0
  119. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/template.py +0 -0
  120. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/version.py +0 -0
  121. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/registry/watcher.py +0 -0
  122. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/runtime/__init__.py +0 -0
  123. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/runtime/context.py +0 -0
  124. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/runtime/error_handler.py +0 -0
  125. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/runtime/main.py +0 -0
  126. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/scaffold/__init__.py +0 -0
  127. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/scaffold/app_files.py +0 -0
  128. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/scaffold/module_files.py +0 -0
  129. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/scaffold/render.py +0 -0
  130. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/scaffold/specs.py +0 -0
  131. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/scaffold/support_files.py +0 -0
  132. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/scaffold_package.py +0 -0
  133. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/templates/provider.py.jinja2 +0 -0
  134. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/templates/py.typed +0 -0
  135. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/templates/test_unit.py.jinja2 +0 -0
  136. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/cli/types.py +0 -0
  137. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/src/quadkit/py.typed +0 -0
  138. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/conftest.py +0 -0
  139. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/integration/__init__.py +0 -0
  140. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/integration/test_cli_lifecycle.py +0 -0
  141. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/test_package_structure_p1.py +0 -0
  142. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/__init__.py +0 -0
  143. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/_test_cli_contribution_system_support.py +0 -0
  144. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/commands/__init__.py +0 -0
  145. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/commands/test_config.py +0 -0
  146. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/commands/test_config_happy_paths.py +0 -0
  147. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/commands/test_contrib.py +0 -0
  148. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/commands/test_inspect.py +0 -0
  149. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/commands/test_meta.py +0 -0
  150. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/commands/test_run.py +0 -0
  151. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/commands/test_shell.py +0 -0
  152. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/commands/test_system.py +0 -0
  153. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/di/test_config_alignment.py +0 -0
  154. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/lib/test_templates.py +0 -0
  155. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/registry/__init__.py +0 -0
  156. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/registry/test_completion.py +0 -0
  157. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/registry/test_database.py +0 -0
  158. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/registry/test_environment.py +0 -0
  159. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/registry/test_formatter.py +0 -0
  160. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/registry/test_health.py +0 -0
  161. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/registry/test_hook.py +0 -0
  162. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/registry/test_inspect_registry.py +0 -0
  163. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/registry/test_migration.py +0 -0
  164. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/registry/test_presets.py +0 -0
  165. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/registry/test_secrets.py +0 -0
  166. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/registry/test_serializer.py +0 -0
  167. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/registry/test_task.py +0 -0
  168. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/registry/test_telemetry.py +0 -0
  169. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/registry/test_version.py +0 -0
  170. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/registry/test_watcher.py +0 -0
  171. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_base_contributor.py +0 -0
  172. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_cli_constants.py +0 -0
  173. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_cli_context.py +0 -0
  174. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_cli_contribution_system.py +0 -0
  175. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_cli_errors.py +0 -0
  176. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_cli_exceptions.py +0 -0
  177. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_cli_import_isolation.py +0 -0
  178. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_cli_module.py +0 -0
  179. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_cli_types.py +0 -0
  180. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_config_async.py +0 -0
  181. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_config_loader.py +0 -0
  182. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_config_save.py +0 -0
  183. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_config_validate.py +0 -0
  184. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_contributor_registry.py +0 -0
  185. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_contributor_runtime.py +0 -0
  186. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_core_contributor.py +0 -0
  187. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_db.py +0 -0
  188. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_decorators.py +0 -0
  189. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_dev_command.py +0 -0
  190. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_error_handler.py +0 -0
  191. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_events.py +0 -0
  192. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_exception_handling.py +0 -0
  193. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_field_parser.py +0 -0
  194. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_gen.py +0 -0
  195. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_gen_controller.py +0 -0
  196. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_gen_provider.py +0 -0
  197. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_generator_base.py +0 -0
  198. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_generator_registry.py +0 -0
  199. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_generators_contract.py +0 -0
  200. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_hooks.py +0 -0
  201. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_init_command.py +0 -0
  202. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_layout.py +0 -0
  203. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_main.py +0 -0
  204. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_new.py +0 -0
  205. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_output.py +0 -0
  206. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_output_json.py +0 -0
  207. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_project.py +0 -0
  208. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_project_layout.py +0 -0
  209. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_provider_registry.py +0 -0
  210. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_round40_hardening.py +0 -0
  211. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_run_detection.py +0 -0
  212. {quadkit_cli-0.0.4 → quadkit_cli-0.0.41}/tests/unit/test_server_registry.py +0 -0
@@ -0,0 +1,24 @@
1
+ # Generated public-repository ignore rules.
2
+ # Private monorepo paths are intentionally not referenced here.
3
+
4
+ __pycache__/
5
+ *.py[cod]
6
+ *.so
7
+ *.egg-info/
8
+ .venv/
9
+ venv/
10
+ .env
11
+ .env.*
12
+ !.env.example
13
+ .pytest_cache/
14
+ .ruff_cache/
15
+ .mypy_cache/
16
+ .coverage
17
+ coverage.xml
18
+ htmlcov/
19
+ build/
20
+ dist/
21
+ *.log
22
+ .DS_Store
23
+ .idea/
24
+ .vscode/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: quadkit-cli
3
- Version: 0.0.4
3
+ Version: 0.0.41
4
4
  Summary: Command-line interface for Quadkit Framework - Project scaffolding, code generation, and development tools
5
5
  Project-URL: Homepage, https://dbtinoy-.github.io/quadkit/
6
6
  Project-URL: Repository, https://github.com/dbtinoy-/quadkit
@@ -6,7 +6,7 @@ build-backend = "hatchling.build"
6
6
 
7
7
  [project]
8
8
  name = "quadkit-cli"
9
- version = "0.0.4"
9
+ version = "0.0.41"
10
10
  description = "Command-line interface for Quadkit Framework - Project scaffolding, code generation, and development tools"
11
11
  readme = "README.md"
12
12
  requires-python = ">=3.11"
@@ -13,7 +13,16 @@ from typing import ClassVar
13
13
 
14
14
  @dataclass
15
15
  class EnvironmentConfig:
16
- """Configuration for an environment."""
16
+ """Configuration for an environment.
17
+
18
+ Attributes:
19
+ name: Environment name.
20
+ description: Human-readable description.
21
+ variables: Additional environment variables to apply when switching.
22
+ database_url: Database URL for this environment.
23
+ debug: Whether debug mode is enabled.
24
+ log_level: Logging level for this environment.
25
+ """
17
26
 
18
27
  name: str
19
28
  description: str = ""
@@ -22,6 +31,39 @@ class EnvironmentConfig:
22
31
  debug: bool = False
23
32
  log_level: str = "INFO"
24
33
 
34
+ def apply(self) -> None:
35
+ """Apply this configuration to the process environment.
36
+
37
+ Writes ``variables`` into ``os.environ``, and ensures
38
+ ``DATABASE_URL`` and ``LOG_LEVEL`` reflect the typed fields
39
+ when they are set. This is the consumption site for
40
+ ``variables``, ``database_url`` and ``log_level`` — without it
41
+ the fields would be dead configuration.
42
+ """
43
+ if self.variables:
44
+ for key, value in self.variables.items():
45
+ if key:
46
+ os.environ[key] = value
47
+ if self.database_url:
48
+ os.environ["DATABASE_URL"] = self.database_url
49
+ if self.log_level:
50
+ os.environ["LOG_LEVEL"] = self.log_level
51
+ os.environ["QK_LOG_LEVEL"] = self.log_level
52
+
53
+ def to_env_dict(self) -> dict[str, str]:
54
+ """Return the environment variables this config would set.
55
+
56
+ Returns:
57
+ Dictionary of environment variables including ``variables``,
58
+ ``DATABASE_URL`` and ``LOG_LEVEL`` when present.
59
+ """
60
+ result: dict[str, str] = dict(self.variables)
61
+ if self.database_url:
62
+ result["DATABASE_URL"] = self.database_url
63
+ if self.log_level:
64
+ result["LOG_LEVEL"] = self.log_level
65
+ return result
66
+
25
67
 
26
68
  class Environment(abc.ABC):
27
69
  """Abstract base class for environments."""
@@ -202,7 +244,13 @@ class EnvironmentManager:
202
244
  self.registry = EnvironmentRegistry.with_defaults()
203
245
 
204
246
  def switch(self, name: str) -> bool:
205
- """Switch to a different environment."""
247
+ """Switch to a different environment and apply its variables.
248
+
249
+ Validation is performed before the switch. When valid, the
250
+ environment is marked as current and its ``EnvironmentConfig``
251
+ is applied to ``os.environ`` so ``variables``, ``database_url``
252
+ and ``log_level`` take effect.
253
+ """
206
254
  env = self.registry.get(name)
207
255
  if not env:
208
256
  return False
@@ -212,6 +260,8 @@ class EnvironmentManager:
212
260
  return False
213
261
 
214
262
  self.registry.set_current(name)
263
+ config = env.get_config()
264
+ config.apply()
215
265
  return True
216
266
 
217
267
  def validate_current(self) -> tuple[bool, str]:
@@ -1,183 +0,0 @@
1
- *
2
- !tests/
3
- !tests/**
4
- !README.md
5
- !AGENTS.md
6
- !DEVELOPMENT.md
7
- !QUICKGUIDE.md
8
- !MILESTONE*.md
9
- !TESTS*.md
10
- !CHANGELOG.md
11
- !AUDIT*.md
12
- !REF*.md
13
- !AUDIT*.json
14
- !LICENSE
15
- !LICENSE-MIT.txt
16
- !NOTICE
17
- !TRADEMARK.md
18
- !conftest.py
19
- !CONTRIBUTING.md
20
- !CODE_OF_CONDUCT.md
21
- !SECURITY.md
22
- !GOVERNANCE.md
23
- !pyproject.toml
24
- !uv.lock
25
- !docker-compose.yml
26
- !.env.example
27
- !.env.full.example
28
- !.importlinter
29
- !.superpowers/
30
- !.superpowers/**
31
- !.gitattributes
32
- !.editorconfig
33
- !Makefile
34
- !docker-compose.test.yml
35
- !quadkit.yaml.example
36
- !.github/
37
- !.github/workflows/
38
- !.github/workflows/**
39
- !.github/dependabot.yml
40
- !.devcontainer/
41
- !.devcontainer/**
42
- !tools/
43
- !tools/**
44
- !*example.yaml
45
-
46
- # Quadkit Packages
47
- !quadkit*/
48
- !quadkit*/pyproject.toml
49
- !quadkit*/CHANGELOG.md
50
- !quadkit*/README.md
51
- !quadkit*/alembic.ini
52
- !quadkit*/mypy.ini
53
- !quadkit*/*.yaml.example
54
- !quadkit*/src/
55
- !quadkit*/src/**
56
- !quadkit*/docs/
57
- !quadkit*/docs/**
58
- !quadkit*/tests/
59
- !quadkit*/tests/**
60
-
61
- # Keep quadkit docs
62
- !/docs/
63
- !docs/**
64
-
65
- # Session / cutover plans at the repo root
66
- !plans/
67
- !plans/**
68
-
69
- # Keep example files for README examples
70
- !/examples/
71
- !/examples/**
72
-
73
- # Re-ignore these AFTER negations (last match wins)
74
- *.tape
75
- examples/*/runs/
76
- __pycache__/
77
- *.pyc
78
- *.pyo
79
- *.egg-info/
80
- dist/
81
- build/
82
- .eggs/
83
- *.egg
84
- .pytest_cache/
85
- .mypy_cache/
86
- .ruff_cache/
87
- htmlcov/
88
- .coverage
89
- coverage.xml
90
- test.db
91
- !quadkit*/tests/fixtures/test.db
92
- *.log
93
- *.tmp
94
-
95
- # Company-specific files (keep private, do not commit)
96
- .company/
97
- COMPANY_*.md
98
- company-config/
99
- internal-docs/
100
- # Editor swap files
101
- *.swp
102
-
103
- !core/
104
- !packages/
105
- !core/quadkit*/
106
- !packages/quadkit*/
107
- !core/quadkit*/pyproject.toml
108
- !packages/quadkit*/pyproject.toml
109
- !core/quadkit*/CHANGELOG.md
110
- !packages/quadkit*/CHANGELOG.md
111
- !core/quadkit*/README.md
112
- !packages/quadkit*/README.md
113
- !core/quadkit*/alembic.ini
114
- !packages/quadkit*/alembic.ini
115
- !core/quadkit*/mypy.ini
116
- !packages/quadkit*/mypy.ini
117
- !core/quadkit*/*.yaml.example
118
- !packages/quadkit*/*.yaml.example
119
- !core/quadkit*/src/
120
- !core/quadkit*/src/**
121
- !packages/quadkit*/src/
122
- !packages/quadkit*/src/**
123
- !core/quadkit*/tests/
124
- !core/quadkit*/tests/**
125
- !packages/quadkit*/tests/
126
- !packages/quadkit*/tests/**
127
- !core/quadkit*/docs/
128
- !core/quadkit*/docs/**
129
- !packages/quadkit*/docs/
130
- !packages/quadkit*/docs/**
131
-
132
- # dev/
133
- !dev/
134
- !dev/**
135
-
136
- # Admin dev playground (committed dev asset; local SQLite files stay ignored)
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
152
-
153
- # Re-exclude private content under the tiered paths.
154
- # MUST come after the !...docs/** negations above — last match wins.
155
- core/quadkit*/docs/plans/
156
- packages/quadkit*/docs/plans/
157
- core/quadkit*/docs/**/
158
- packages/quadkit*/docs/**/
159
-
160
- # Re-exclude tooling artifacts under the tiered paths
161
- __pycache__/
162
- *.pyc
163
- *.pyo
164
- *.egg-info/
165
- .pytest_cache/
166
- .mypy_cache/
167
- .ruff_cache/
168
- htmlcov/
169
- .coverage
170
- coverage.xml
171
- test.db
172
- *.tmp
173
- *.log
174
- !core/quadkit*/tests/fixtures/test.db
175
- !packages/quadkit*/tests/fixtures/test.db
176
-
177
- # Allow the generated example gifs to be tracked (README hero images).
178
- !core/quadkit*/docs/gifs/
179
- !core/quadkit*/docs/gifs/**
180
- !packages/*/quadkit*/docs/gifs/
181
- !packages/*/quadkit*/docs/gifs/**
182
- examples/*/screenshot.png
183
- !banner*