splent-cli 1.22.0__tar.gz → 1.22.2__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 (193) hide show
  1. {splent_cli-1.22.0/src/splent_cli.egg-info → splent_cli-1.22.2}/PKG-INFO +1 -1
  2. {splent_cli-1.22.0 → splent_cli-1.22.2}/pyproject.toml +1 -1
  3. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/database/db_upgrade.py +36 -17
  4. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_deploy.py +36 -2
  5. {splent_cli-1.22.0 → splent_cli-1.22.2/src/splent_cli.egg-info}/PKG-INFO +1 -1
  6. {splent_cli-1.22.0 → splent_cli-1.22.2}/LICENSE +0 -0
  7. {splent_cli-1.22.0 → splent_cli-1.22.2}/README.md +0 -0
  8. {splent_cli-1.22.0 → splent_cli-1.22.2}/setup.cfg +0 -0
  9. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/__init__.py +0 -0
  10. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/__main__.py +0 -0
  11. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/cli.py +0 -0
  12. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/__init__.py +0 -0
  13. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/cache/__init__.py +0 -0
  14. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/cache/cache_clear.py +0 -0
  15. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/cache/cache_orphans.py +0 -0
  16. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/cache/cache_outdated.py +0 -0
  17. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/cache/cache_prune.py +0 -0
  18. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/cache/cache_size.py +0 -0
  19. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/cache/cache_status.py +0 -0
  20. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/cache/cache_usage.py +0 -0
  21. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/cache/cache_versions.py +0 -0
  22. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/check/__init__.py +0 -0
  23. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/check/check_contracts.py +0 -0
  24. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/check/check_deps.py +0 -0
  25. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/check/check_docker.py +0 -0
  26. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/check/check_env.py +0 -0
  27. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/check/check_features.py +0 -0
  28. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/check/check_github.py +0 -0
  29. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/check/check_infra.py +0 -0
  30. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/check/check_product.py +0 -0
  31. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/check/check_pypi.py +0 -0
  32. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/check/check_pyproject.py +0 -0
  33. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/check/check_releases.py +0 -0
  34. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/clear/__init__.py +0 -0
  35. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/clear/clear_build.py +0 -0
  36. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/clear/clear_log.py +0 -0
  37. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/clear/clear_uploads.py +0 -0
  38. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/command/__init__.py +0 -0
  39. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/command/command_create.py +0 -0
  40. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/coverage.py +0 -0
  41. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/database/db_console.py +0 -0
  42. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/database/db_dump.py +0 -0
  43. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/database/db_migrate.py +0 -0
  44. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/database/db_reset.py +0 -0
  45. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/database/db_restore.py +0 -0
  46. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/database/db_rollback.py +0 -0
  47. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/database/db_seed.py +0 -0
  48. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/database/db_status.py +0 -0
  49. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/doctor.py +0 -0
  50. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/env/env_list.py +0 -0
  51. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/env/env_set.py +0 -0
  52. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/env/env_show.py +0 -0
  53. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/export/__init__.py +0 -0
  54. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/export/export_puml.py +0 -0
  55. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_add.py +0 -0
  56. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_attach.py +0 -0
  57. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_clean.py +0 -0
  58. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_clone.py +0 -0
  59. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_compat.py +0 -0
  60. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_compile.py +0 -0
  61. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_contract.py +0 -0
  62. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_create.py +0 -0
  63. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_delete.py +0 -0
  64. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_detach.py +0 -0
  65. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_discard.py +0 -0
  66. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_drift.py +0 -0
  67. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_env.py +0 -0
  68. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_fork.py +0 -0
  69. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_git.py +0 -0
  70. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_hook_add.py +0 -0
  71. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_hook_remove.py +0 -0
  72. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_hooks.py +0 -0
  73. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_impact.py +0 -0
  74. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_info.py +0 -0
  75. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_inject_config.py +0 -0
  76. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_install.py +0 -0
  77. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_list.py +0 -0
  78. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_order.py +0 -0
  79. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_outdated.py +0 -0
  80. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_pin.py +0 -0
  81. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_pip_install.py +0 -0
  82. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_pull.py +0 -0
  83. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_refine.py +0 -0
  84. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_release.py +0 -0
  85. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_remove.py +0 -0
  86. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_rename.py +0 -0
  87. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_search.py +0 -0
  88. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_status.py +0 -0
  89. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_sync_template.py +0 -0
  90. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_test.py +0 -0
  91. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_translate.py +0 -0
  92. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_unlock.py +0 -0
  93. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_upgrade.py +0 -0
  94. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_versions.py +0 -0
  95. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/feature/feature_xray.py +0 -0
  96. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/lint.py +0 -0
  97. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/locust.py +0 -0
  98. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/marketplace/login.py +0 -0
  99. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/marketplace/logout.py +0 -0
  100. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/marketplace/marketplace_auth_utils.py +0 -0
  101. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/marketplace/marketplace_index.py +0 -0
  102. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/marketplace/whoami.py +0 -0
  103. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/__init__.py +0 -0
  104. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_auto_require.py +0 -0
  105. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_build.py +0 -0
  106. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_clean.py +0 -0
  107. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_commands.py +0 -0
  108. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_config.py +0 -0
  109. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_configure.py +0 -0
  110. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_console.py +0 -0
  111. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_containers.py +0 -0
  112. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_create.py +0 -0
  113. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_derive.py +0 -0
  114. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_deselect.py +0 -0
  115. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_down.py +0 -0
  116. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_drift.py +0 -0
  117. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_env.py +0 -0
  118. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_list.py +0 -0
  119. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_logs.py +0 -0
  120. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_missing.py +0 -0
  121. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_port.py +0 -0
  122. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_release.py +0 -0
  123. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_resolve.py +0 -0
  124. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_restart.py +0 -0
  125. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_routes.py +0 -0
  126. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_run.py +0 -0
  127. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_select.py +0 -0
  128. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_shell.py +0 -0
  129. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_signals.py +0 -0
  130. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_sync_template.py +0 -0
  131. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_test.py +0 -0
  132. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_up.py +0 -0
  133. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/product/product_validate.py +0 -0
  134. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/release/__init__.py +0 -0
  135. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/release/release_core.py +0 -0
  136. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/release/release_resume.py +0 -0
  137. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/selenium.py +0 -0
  138. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/__init__.py +0 -0
  139. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/spl_add_constraints.py +0 -0
  140. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/spl_add_feature.py +0 -0
  141. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/spl_compare.py +0 -0
  142. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/spl_configurations.py +0 -0
  143. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/spl_create.py +0 -0
  144. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/spl_deps.py +0 -0
  145. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/spl_features.py +0 -0
  146. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/spl_fetch.py +0 -0
  147. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/spl_info.py +0 -0
  148. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/spl_list.py +0 -0
  149. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/spl_migrate_catalog.py +0 -0
  150. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/spl_outdated.py +0 -0
  151. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/spl_pin.py +0 -0
  152. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/spl_publish.py +0 -0
  153. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/spl_remove_feature.py +0 -0
  154. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/spl/spl_utils.py +0 -0
  155. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/tokens_setup.py +0 -0
  156. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/uvl/uvl_utils.py +0 -0
  157. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/commands/version.py +0 -0
  158. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/services/__init__.py +0 -0
  159. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/services/compose.py +0 -0
  160. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/services/context.py +0 -0
  161. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/services/credentials.py +0 -0
  162. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/services/index_refresh.py +0 -0
  163. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/services/marketplace.py +0 -0
  164. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/services/marketplace_api.py +0 -0
  165. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/services/marketplace_url.py +0 -0
  166. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/services/preflight.py +0 -0
  167. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/services/registry.py +0 -0
  168. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/services/release.py +0 -0
  169. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/services/release_gate.py +0 -0
  170. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/services/spl_store.py +0 -0
  171. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/__init__.py +0 -0
  172. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/archetype.py +0 -0
  173. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/cache_utils.py +0 -0
  174. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/command_loader.py +0 -0
  175. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/contract_freshness.py +0 -0
  176. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/db_utils.py +0 -0
  177. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/decorators.py +0 -0
  178. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/dynamic_imports.py +0 -0
  179. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/feature_installer.py +0 -0
  180. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/feature_utils.py +0 -0
  181. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/git_url.py +0 -0
  182. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/integrity.py +0 -0
  183. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/io_utils.py +0 -0
  184. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/lifecycle.py +0 -0
  185. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/manifest.py +0 -0
  186. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/path_utils.py +0 -0
  187. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/proc.py +0 -0
  188. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli/utils/template_drift.py +0 -0
  189. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli.egg-info/SOURCES.txt +0 -0
  190. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli.egg-info/dependency_links.txt +0 -0
  191. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli.egg-info/entry_points.txt +0 -0
  192. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli.egg-info/requires.txt +0 -0
  193. {splent_cli-1.22.0 → splent_cli-1.22.2}/src/splent_cli.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: splent_cli
3
- Version: 1.22.0
3
+ Version: 1.22.2
4
4
  Summary: SPLENT-CLI is a CLI to be able to work on your development more easily.
5
5
  Author-email: DiversoLab <diversolab@us.es>
6
6
  Project-URL: Homepage, https://github.com/diverso-lab/splent_cli
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "splent_cli"
7
- version = "1.22.0"
7
+ version = "1.22.2"
8
8
  description = "SPLENT-CLI is a CLI to be able to work on your development more easily."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.13"
@@ -168,8 +168,9 @@ def db_upgrade(feature):
168
168
  logging.getLogger("alembic").setLevel(logging.WARNING)
169
169
  logging.getLogger("alembic.runtime.migration").setLevel(logging.WARNING)
170
170
 
171
- failures = []
172
- for feat, mdir in dirs.items():
171
+ def _upgrade_one(feat: str, mdir: str) -> str | None:
172
+ """Run one feature's upgrade. Returns None on success, else the
173
+ message that explains the failure (printed only when final)."""
173
174
  try:
174
175
  logging.getLogger("alembic.runtime.migration").setLevel(logging.WARNING)
175
176
  with _collect_alembic_errors() as logged:
@@ -179,16 +180,9 @@ def db_upgrade(feature):
179
180
  # flask_migrate swallows alembic's CommandError and calls
180
181
  # sys.exit(1), so catching the exit is the only way to say
181
182
  # anything at all instead of failing in silence.
182
- click.echo(
183
- click.style(
184
- _diagnose_upgrade_failure(
185
- app, feat, mdir, "; ".join(logged) or None
186
- ),
187
- fg="red",
188
- )
183
+ return _diagnose_upgrade_failure(
184
+ app, feat, mdir, "; ".join(logged) or None
189
185
  )
190
- failures.append(feat)
191
- continue
192
186
  revision = MigrationManager.get_current_feature_revision(
193
187
  feat, app.extensions["migrate"].db.engine
194
188
  )
@@ -208,17 +202,42 @@ def db_upgrade(feature):
208
202
  name=name,
209
203
  version=version,
210
204
  )
205
+ return None
211
206
  except ImportError as e:
212
207
  if "models" in str(e):
213
208
  # Feature has migrations/ dir but no models module — skip silently
214
- continue
215
- click.echo(click.style(f" ❌ {feat}: {e}", fg="red"))
216
- failures.append(feat)
209
+ return None
210
+ return f" ❌ {feat}: {e}"
217
211
  except Exception as e:
218
- click.echo(
219
- click.style(_diagnose_upgrade_failure(app, feat, mdir, e), fg="red")
212
+ return _diagnose_upgrade_failure(app, feat, mdir, e)
213
+
214
+ # Features migrate one Alembic branch each, and a branch may create a
215
+ # foreign key onto a table another feature's branch creates (slider and
216
+ # partners reference media_item). The declaration order in pyproject is
217
+ # not a dependency order, so on a fresh database the first pass can fail
218
+ # for the dependents and succeed for their dependencies. Whatever failed
219
+ # is retried while a pass still makes progress; only what fails when
220
+ # nothing else can move is reported.
221
+ pending = dict(dirs)
222
+ failures: dict[str, str] = {}
223
+ while pending:
224
+ failures = {}
225
+ for feat, mdir in pending.items():
226
+ message = _upgrade_one(feat, mdir)
227
+ if message is not None:
228
+ failures[feat] = message
229
+ if not failures or len(failures) == len(pending):
230
+ break
231
+ click.echo(
232
+ click.style(
233
+ f" retrying {', '.join(failures)} now that the rest has migrated",
234
+ dim=True,
220
235
  )
221
- failures.append(feat)
236
+ )
237
+ pending = {feat: dirs[feat] for feat in failures}
238
+
239
+ for message in failures.values():
240
+ click.echo(click.style(message, fg="red"))
222
241
 
223
242
  if failures:
224
243
  raise click.ClickException(
@@ -14,6 +14,30 @@ from splent_cli.commands.product.product_build import (
14
14
  )
15
15
  from splent_cli.utils.proc import require_docker
16
16
 
17
+
18
+ # Suffixes that mark a value nobody has to choose: a random string is the
19
+ # right answer. TURNSTILE_SITE_KEY and friends end in _KEY too, but they are
20
+ # issued by a third party, so only the generic secret words qualify.
21
+ _GENERATED_SUFFIXES = ("_PASSWORD", "_SECRET", "_ROOT_PASSWORD")
22
+ _DATABASE_DEFAULTS = {
23
+ "MARIADB_DATABASE": "{product}_db",
24
+ "MARIADB_USER": "{product}_db_user",
25
+ "MARIADB_TEST_DATABASE": "{product}_db_test",
26
+ }
27
+
28
+
29
+ def suggest_value(key: str, product: str) -> str | None:
30
+ """A default for a ``<SET>`` variable, or None when only the operator
31
+ knows the answer."""
32
+ import secrets
33
+
34
+ if key in _DATABASE_DEFAULTS:
35
+ return _DATABASE_DEFAULTS[key].format(product=product)
36
+ if key == "SECRET_KEY" or key.endswith(_GENERATED_SUFFIXES):
37
+ return secrets.token_urlsafe(24)
38
+ return None
39
+
40
+
17
41
  # Env vars whose value is a directory the running app writes to. Their contents
18
42
  # only survive a redeploy if a volume in the compose file mounts that exact
19
43
  # path, so product:deploy warns when one is set without a matching mount.
@@ -257,8 +281,18 @@ def product_deploy(down, ci):
257
281
  else:
258
282
  missing_vars.append(key)
259
283
  else:
284
+ # Offer an answer wherever one can be made up, so the ordinary
285
+ # deploy is Enter, Enter, Enter: random strings for anything
286
+ # that smells like a secret, the product's conventional names
287
+ # for the database. What only the operator knows (a mail
288
+ # host, a proxy address, an API key issued elsewhere) is
289
+ # asked without a default.
290
+ suggested = suggest_value(key, product)
260
291
  new_value = click.prompt(
261
- f" Value required for {key}", hide_input=False
292
+ f" Value required for {key}",
293
+ default=suggested,
294
+ show_default=suggested is not None,
295
+ hide_input=False,
262
296
  )
263
297
  env_vars[key] = new_value
264
298
 
@@ -474,7 +508,7 @@ def product_deploy(down, ci):
474
508
  " deployed but app may not be healthy. Check logs with:",
475
509
  fg="yellow",
476
510
  )
477
- click.echo(f" docker logs {product}_web")
511
+ click.echo(f" docker logs {product}_web_deploy")
478
512
  else:
479
513
  click.secho(" done.", fg="green")
480
514
  except subprocess.CalledProcessError as e:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: splent_cli
3
- Version: 1.22.0
3
+ Version: 1.22.2
4
4
  Summary: SPLENT-CLI is a CLI to be able to work on your development more easily.
5
5
  Author-email: DiversoLab <diversolab@us.es>
6
6
  Project-URL: Homepage, https://github.com/diverso-lab/splent_cli
File without changes
File without changes
File without changes