py-wlcli 0.6.13__tar.gz → 0.6.14__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 (302) hide show
  1. {py_wlcli-0.6.13/rust → py_wlcli-0.6.14}/LICENSE +1 -1
  2. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/PKG-INFO +20 -20
  3. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/README.md +17 -17
  4. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/pyproject.toml +8 -4
  5. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/rust/Cargo.lock +21 -54
  6. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/rust/Cargo.toml +3 -2
  7. py_wlcli-0.6.14/rust/deny.toml +14 -0
  8. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/__init__.py +1 -1
  9. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/__main__.py +1 -1
  10. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/__init__.py +1 -1
  11. py_wlcli-0.6.14/src/wl_cli/commands/buildcommands/__init__.py +1 -0
  12. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/buildcommands/dist.py +12 -9
  13. py_wlcli-0.6.14/src/wl_cli/commands/clean/__init__.py +1 -0
  14. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/clean/clean.py +0 -1
  15. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/clean/clean_utils.py +11 -0
  16. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/clean/dead_code/dead_code_command.py +0 -3
  17. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/clean/dead_code/detector.py +1 -1
  18. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/cleanup.py +7 -4
  19. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/debug/debug_cache.py +2 -2
  20. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/format/__init__.py +0 -3
  21. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/format/format_command.py +1 -5
  22. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/format/format_coordinator.py +11 -4
  23. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/format/format_executor.py +0 -1
  24. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/format/format_path_handler.py +4 -1
  25. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/git/config.py +5 -5
  26. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/git/git_facts.py +18 -1
  27. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/common/error_handler.py +3 -3
  28. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/components/cargo_sync.py +1 -0
  29. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/components/config_manager.py +6 -6
  30. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/components/git/git_utility.py +22 -13
  31. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/components/git/gitignore_manager.py +0 -1
  32. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/components/project_structure/config_generator.py +63 -37
  33. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/components/project_structure/directory_creator.py +0 -9
  34. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/components/project_structure/template_manager.py +1 -1
  35. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/components/pyproject_generator.py +1 -1
  36. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/lfs/config.py +12 -11
  37. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/lfs/initializer.py +1 -1
  38. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/lfs/watcher.py +7 -3
  39. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/lint/lint_command.py +1 -2
  40. py_wlcli-0.6.14/src/wl_cli/commands/lint/mypy_config.py +51 -0
  41. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/self/self_command.py +5 -1
  42. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/self/services/pypi_updater.py +4 -2
  43. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/self/services/windows_update.py +1 -1
  44. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/testcommands/cache_manager.py +7 -11
  45. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/testcommands/coverage_analyzer.py +1 -1
  46. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/testcommands/coverage_cache_manager.py +3 -3
  47. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/testcommands/single_test_executor.py +1 -1
  48. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/testcommands/speed_checker.py +1 -1
  49. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/testcommands/test_commands.py +2 -8
  50. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/testcommands/test_utils.py +2 -1
  51. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/testcommands/utils/coverage_parser.py +2 -2
  52. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/testcommands/utils/env_info.py +1 -1
  53. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/update/services/__init__.py +0 -2
  54. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/update/services/backup_manager.py +0 -2
  55. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/update/services/component_manager.py +0 -9
  56. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/update/services/conflict_resolver.py +2 -3
  57. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/update/services/vendors_updater.py +4 -3
  58. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/update/services/version_tracker.py +3 -2
  59. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/update/update_command.py +3 -129
  60. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/workflow.py +10 -6
  61. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/infrastructure/dependency_injection.py +2 -2
  62. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/lib/rust_utils.py +2 -1
  63. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/config/config_loader.py +3 -3
  64. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/config/core.py +2 -2
  65. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/config/defaults.py +2 -2
  66. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/config/validation.py +2 -2
  67. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/error_handler.py +2 -2
  68. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/file_copier.py +2 -1
  69. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/file_operations.py +5 -4
  70. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/logging.py +2 -2
  71. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/structured_logging/config.py +19 -16
  72. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/structured_logging/formatters.py +1 -1
  73. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/test_utils/test_filter.py +3 -3
  74. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/uv_workspace.py +1 -1
  75. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/version/pypi_version_checker.py +2 -1
  76. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/version/version_detectors.py +15 -5
  77. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/version/version_service.py +0 -1
  78. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/wl_dir_updater.py +91 -26
  79. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/config/mypy.ini +4 -3
  80. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/config/template_config.toml +1 -1
  81. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/git/.gitignore +3 -0
  82. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/unix/pre-push +25 -0
  83. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/project/.gitignore +3 -0
  84. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/rust/lib/rust_utils.py +3 -1
  85. py_wlcli-0.6.14/src/wl_cli/vendors/sop_doc/git-dev-sop.md +220 -0
  86. py_wlcli-0.6.13/src/wl_cli/commands/buildcommands/__init__.py +0 -4
  87. py_wlcli-0.6.13/src/wl_cli/commands/clean/__init__.py +0 -6
  88. py_wlcli-0.6.13/src/wl_cli/commands/lint/mypy_config.py +0 -20
  89. py_wlcli-0.6.13/src/wl_cli/commands/update/services/gstack_updater.py +0 -576
  90. py_wlcli-0.6.13/src/wl_cli/vendors/config/.coveragerc +0 -16
  91. {py_wlcli-0.6.13 → py_wlcli-0.6.14/rust}/LICENSE +0 -0
  92. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/rust/build.rs +0 -0
  93. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/rust/rust-analyzer.json +0 -0
  94. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/rust/src/lib.rs +0 -0
  95. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/rust/src/main.rs +0 -0
  96. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/cli_click.py +0 -0
  97. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/base.py +0 -0
  98. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/buildcommands/build.py +0 -0
  99. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/buildcommands/build_utils.py +0 -0
  100. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/buildcommands/builders/__init__.py +0 -0
  101. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/buildcommands/builders/cleanup.py +0 -0
  102. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/buildcommands/builders/coordinator.py +0 -0
  103. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/buildcommands/builders/environment.py +0 -0
  104. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/buildcommands/builders/rust_builder.py +0 -0
  105. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/buildcommands/builders/stubs.py +0 -0
  106. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/buildcommands/test.py +0 -0
  107. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/clean/build.py +0 -0
  108. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/clean/core.py +0 -0
  109. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/clean/dead_code/__init__.py +0 -0
  110. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/clean/dead_code/fixer.py +0 -0
  111. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/clean/dead_code/reporter.py +0 -0
  112. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/clean/dead_code/utils.py +0 -0
  113. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/clean/lfs.py +0 -0
  114. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/clean/python.py +0 -0
  115. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/clean/rust.py +0 -0
  116. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/clean/utils/__init__.py +0 -0
  117. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/clean/venv.py +0 -0
  118. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/click_base.py +0 -0
  119. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/config/__init__.py +0 -0
  120. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/config/config.py +0 -0
  121. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/debug/__init__.py +0 -0
  122. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/debug/debug.py +0 -0
  123. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/debug/debug_subagent.py +0 -0
  124. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/debug/output_formatter.py +0 -0
  125. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/debug/source_hasher.py +0 -0
  126. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/dependency_resolver.py +0 -0
  127. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/format/format_cache.py +0 -0
  128. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/format/format_progress.py +0 -0
  129. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/format/format_reporter.py +0 -0
  130. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/format/python_formatter.py +0 -0
  131. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/format/rust_formatter.py +0 -0
  132. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/git/__init__.py +0 -0
  133. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/git/git_flow.py +0 -0
  134. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/git/hook.py +0 -0
  135. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/git/policy.py +0 -0
  136. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/__init__.py +0 -0
  137. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/common/__init__.py +0 -0
  138. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/common/check_git_bash.py +0 -0
  139. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/common/exceptions.py +0 -0
  140. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/components/__init__.py +0 -0
  141. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/components/directory_utils.py +0 -0
  142. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/components/git/__init__.py +0 -0
  143. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/components/git/branch_creator.py +0 -0
  144. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/components/git/git_flow_interface.py +0 -0
  145. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/components/git/git_flow_manager.py +0 -0
  146. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/components/git/git_lfs_manager.py +0 -0
  147. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/components/git/pre_commit_manager.py +0 -0
  148. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/components/git_initializer.py +0 -0
  149. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/components/i18n_manager.py +0 -0
  150. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/components/log_manager.py +0 -0
  151. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/components/project_structure/__init__.py +0 -0
  152. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/components/project_structure/hooks_manager.py +0 -0
  153. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/components/project_structure/readme_handler.py +0 -0
  154. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/components/project_structure/rust_files_handler.py +0 -0
  155. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/components/project_structure/setup_handler.py +0 -0
  156. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/components/project_structure/sop_generator.py +0 -0
  157. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/components/project_structure/template_copier.py +0 -0
  158. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/components/rust_initializer.py +0 -0
  159. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/components/symlink_cleaner.py +0 -0
  160. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/components/symlink_manager.py +0 -0
  161. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/components/venv_manager.py +0 -0
  162. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/initenv.py +0 -0
  163. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/services/__init__.py +0 -0
  164. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/services/environment_initializer.py +0 -0
  165. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/services/git_lfs_initializer.py +0 -0
  166. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/initenv/services/project_structure_initializer.py +0 -0
  167. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/lfs/README.md +0 -0
  168. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/lfs/__init__.py +0 -0
  169. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/lfs/cli.py +0 -0
  170. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/lfs/hook.py +0 -0
  171. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/lfs/manager.py +0 -0
  172. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/lfs/policy.py +0 -0
  173. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/lint/__init__.py +0 -0
  174. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/lint/lint.py +0 -0
  175. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/lint/lint_executor.py +0 -0
  176. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/lint/lint_reporter.py +0 -0
  177. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/registry.py +0 -0
  178. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/self/__init__.py +0 -0
  179. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/self/common/__init__.py +0 -0
  180. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/self/common/config.py +0 -0
  181. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/self/common/version_cache.py +0 -0
  182. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/self/handlers/__init__.py +0 -0
  183. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/self/handlers/base_handler.py +0 -0
  184. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/self/handlers/install_handler.py +0 -0
  185. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/self/handlers/status_handler.py +0 -0
  186. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/self/handlers/uninstall_handler.py +0 -0
  187. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/self/handlers/update_handler.py +0 -0
  188. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/self/handlers/version_handler.py +0 -0
  189. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/self/services/__init__.py +0 -0
  190. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/self/services/installation_manager.py +0 -0
  191. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/self/services/local_installer.py +0 -0
  192. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/testcommands/__init__.py +0 -0
  193. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/testcommands/base_dependency_analyzer.py +0 -0
  194. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/testcommands/batch_processor.py +0 -0
  195. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/testcommands/progress_manager.py +0 -0
  196. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/testcommands/python_env_detector.py +0 -0
  197. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/testcommands/report_generator.py +0 -0
  198. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/testcommands/test_command_builder.py +0 -0
  199. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/testcommands/test_reporter.py +0 -0
  200. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/testcommands/test_result_handler.py +0 -0
  201. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/testcommands/test_runner.py +0 -0
  202. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/testcommands/utils/__init__.py +0 -0
  203. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/testcommands/utils/junit_parser.py +0 -0
  204. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/testcommands/utils/markdown_utils.py +0 -0
  205. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/testcommands/utils/project_root.py +0 -0
  206. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/update/__init__.py +0 -0
  207. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/update/utils/__init__.py +0 -0
  208. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/version/__init__.py +0 -0
  209. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/commands/version/version_command.py +0 -0
  210. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/exceptions.py +0 -0
  211. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/lib/__init__.py +0 -0
  212. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/__init__.py +0 -0
  213. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/cache.py +0 -0
  214. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/config/__init__.py +0 -0
  215. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/config/env_exporter.py +0 -0
  216. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/config/env_parser.py +0 -0
  217. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/language_utils.py +0 -0
  218. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/lazy_import.py +0 -0
  219. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/log_levels.py +0 -0
  220. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/log_rotators.py +0 -0
  221. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/output_context.py +0 -0
  222. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/performance/__init__.py +0 -0
  223. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/performance/decorators.py +0 -0
  224. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/performance/exporter.py +0 -0
  225. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/performance/models.py +0 -0
  226. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/performance/monitor.py +0 -0
  227. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/performance_monitor.py +0 -0
  228. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/platform_adapter.py +0 -0
  229. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/project_root.py +0 -0
  230. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/structured_logger.py +0 -0
  231. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/structured_logging/__init__.py +0 -0
  232. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/structured_logging/core.py +0 -0
  233. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/structured_logging/filtering.py +0 -0
  234. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/structured_logging/filters.py +0 -0
  235. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/structured_logging/handlers.py +0 -0
  236. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/structured_logging/logger.py +0 -0
  237. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/subprocess.py +0 -0
  238. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/subprocess_utils.py +0 -0
  239. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/test_utils/__init__.py +0 -0
  240. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/uv_tool.py +0 -0
  241. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/version/__init__.py +0 -0
  242. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/version/version_comparator.py +0 -0
  243. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/version/version_updater.py +0 -0
  244. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/workspace_detector/__init__.py +0 -0
  245. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/workspace_detector/core.py +0 -0
  246. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/workspace_detector/detection_strategies.py +0 -0
  247. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/workspace_detector/exceptions.py +0 -0
  248. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/workspace_detector/types.py +0 -0
  249. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/utils/workspace_detector/venv_resolver.py +0 -0
  250. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/config/.codespellrc +0 -0
  251. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/config/dependencies.toml +0 -0
  252. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/config/pyproject_defaults.toml +0 -0
  253. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/config/tool_configs.toml +0 -0
  254. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/git/.pre-commit-config.yaml +0 -0
  255. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/applypatch-msg.sample +0 -0
  256. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/commit-msg.sample +0 -0
  257. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/fsmonitor-watchman.sample +0 -0
  258. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/post-update.sample +0 -0
  259. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/pre-applypatch.sample +0 -0
  260. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/pre-commit +0 -0
  261. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/pre-commit.legacy +0 -0
  262. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/pre-commit.sample +0 -0
  263. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/pre-merge-commit.sample +0 -0
  264. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/pre-push.sample +0 -0
  265. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/pre-rebase.sample +0 -0
  266. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/pre-receive.sample +0 -0
  267. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/prepare-commit-msg.sample +0 -0
  268. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/push-to-checkout.sample +0 -0
  269. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/sendemail-validate.sample +0 -0
  270. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/unix/applypatch-msg.sample +0 -0
  271. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/unix/check_lockfile.py +0 -0
  272. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/unix/check_lockfile.sh +0 -0
  273. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/unix/commit-msg.sample +0 -0
  274. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/unix/fsmonitor-watchman.sample +0 -0
  275. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/unix/post-update.sample +0 -0
  276. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/unix/pre-applypatch.sample +0 -0
  277. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/unix/pre-commit +0 -0
  278. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/unix/pre-commit.legacy +0 -0
  279. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/unix/pre-commit.py +0 -0
  280. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/unix/pre-commit.sample +0 -0
  281. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/unix/pre-merge-commit.sample +0 -0
  282. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/unix/pre-push.sample +0 -0
  283. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/unix/pre-rebase.sample +0 -0
  284. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/unix/pre-receive.sample +0 -0
  285. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/unix/prepare-commit-msg.sample +0 -0
  286. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/update.sample +0 -0
  287. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/hooks/win/work.bat +0 -0
  288. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/project/.python-version +0 -0
  289. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/project/LICENSE +0 -0
  290. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/project/README.md +0 -0
  291. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/project/pyproject.toml +0 -0
  292. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/project/pyproject_no_workspace.toml +0 -0
  293. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/project/pyproject_workspace.toml +0 -0
  294. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/readme/README.md +0 -0
  295. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/rust/Cargo.toml +0 -0
  296. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/rust/lib/__init__.py +0 -0
  297. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/rust/src/lib.rs +0 -0
  298. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/rust/src/main.rs +0 -0
  299. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/rust/tests/test_rust_fallback.py +0 -0
  300. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/sop_doc/industrial-standard-sop.md +0 -0
  301. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/sop_doc/python-sop.md +0 -0
  302. {py_wlcli-0.6.13 → py_wlcli-0.6.14}/src/wl_cli/vendors/sop_doc/rust-readme.md +0 -0
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2025 Admin
3
+ Copyright (c) 2025 WL Admin
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: py_wlcli
3
- Version: 0.6.13
3
+ Version: 0.6.14
4
4
  Requires-Dist: toml>=0.10.2
5
5
  Requires-Dist: click>=8.1.0
6
6
  Requires-Dist: tqdm>=4.66.0
@@ -27,8 +27,8 @@ Author-email: WL Admin <wl.admin@example.com>
27
27
  License-Expression: MIT
28
28
  Requires-Python: >=3.11
29
29
  Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
30
- Project-URL: Homepage, https://gitlab.gewinnrobo.com/Humuyuan/py_wlcommands
31
- Project-URL: Issues, https://gitlab.gewinnrobo.com/Humuyuan/py_wlcommands/-/issues
30
+ Project-URL: Homepage, https://gitlab.gewinnrobo.com/Humuyuan/wl-cli
31
+ Project-URL: Issues, https://gitlab.gewinnrobo.com/Humuyuan/wl-cli/-/issues
32
32
 
33
33
  # wl_cli(`wl` CLI)
34
34
 
@@ -46,11 +46,11 @@ Project-URL: Issues, https://gitlab.gewinnrobo.com/Humuyuan/py_wlcommands/-/issu
46
46
  | `wl format` | 格式化 Python 与 Rust 代码 |
47
47
  | `wl lint` | 代码质量检查(ruff/mypy 等) |
48
48
  | `wl clean` | 清理构建产物与临时文件 |
49
- | `wl debug` | 质量门(测试 + 格式检查) |
49
+ | `wl debug` | (已弃用)质量门 — 改用 `wl test -s` 与 `wl format -s` |
50
50
  | `wl self` | 自管理命令 |
51
51
 
52
52
  命令行别名:`b`→build、`c`→clean、`f`→format、`i`→init。
53
- 完整命令参考见 [CLI_COMMANDS.md](https://github.com/CharlieZi/py_wlcommands/blob/main/CLI_COMMANDS.md)。
53
+ 完整命令参考见 [CLI_COMMANDS.md](https://github.com/CharlieZi/wl-cli/blob/main/CLI_COMMANDS.md)。
54
54
 
55
55
  ## 环境要求
56
56
 
@@ -63,23 +63,23 @@ Project-URL: Issues, https://gitlab.gewinnrobo.com/Humuyuan/py_wlcommands/-/issu
63
63
  ### 稳定版(PyPI)
64
64
 
65
65
  ```bash
66
- pip install wl-cli
66
+ pip install py-wlcli
67
67
  ```
68
68
 
69
- 按需安装可选 extra:`pip install "wl-cli[lfs]"`(LFS watch)、
70
- `pip install "wl-cli[test]"`(测试套件)、`pip install "wl-cli[dev]"`(开发工具)。
71
- 详见[安装文档](https://github.com/CharlieZi/py_wlcommands/blob/main/docs/user/installation.md)。
69
+ 按需安装可选 extra:`pip install "py-wlcli[lfs]"`(LFS watch)、
70
+ `pip install "py-wlcli[test]"`(测试套件)、`pip install "py-wlcli[dev]"`(开发工具)。
71
+ 详见[安装文档](https://github.com/CharlieZi/wl-cli/blob/main/docs/user/installation.md)。
72
72
 
73
73
  ### 开发版(从源码)
74
74
 
75
75
  ```bash
76
76
  # 以 GitLab 为主仓(origin),GitHub 为镜像
77
- git clone https://gitlab.gewinnrobo.com/Humuyuan/py_wlcommands.git
77
+ git clone https://gitlab.gewinnrobo.com/Humuyuan/wl-cli.git
78
78
  cd wl_cli
79
79
  uv pip install -e ".[dev,test]"
80
80
  ```
81
81
 
82
- GitHub 镜像:<https://github.com/CharlieZi/py_wlcommands.git>
82
+ GitHub 镜像:<https://github.com/CharlieZi/wl-cli.git>
83
83
 
84
84
  ## 快速开始
85
85
 
@@ -102,25 +102,25 @@ pytest tests/ -v # 指定文件(pytest 直跑)
102
102
  ```
103
103
 
104
104
  提交前请确保 pre-commit 通过(ruff、codespell、lockfile 一致性等)。
105
- 开发约束详见 [CLAUDE.md](https://github.com/CharlieZi/py_wlcommands/blob/main/CLAUDE.md),
106
- 贡献流程见 [CONTRIBUTING.md](https://github.com/CharlieZi/py_wlcommands/blob/main/CONTRIBUTING.md)。
105
+ 开发约束详见 [CLAUDE.md](https://github.com/CharlieZi/wl-cli/blob/main/CLAUDE.md),
106
+ 贡献流程见 [CONTRIBUTING.md](https://github.com/CharlieZi/wl-cli/blob/main/CONTRIBUTING.md)。
107
107
 
108
108
  ## 文档
109
109
 
110
- - [CLI_COMMANDS.md](https://github.com/CharlieZi/py_wlcommands/blob/main/CLI_COMMANDS.md) — 命令参考
111
- - [CONTEXT.md](https://github.com/CharlieZi/py_wlcommands/blob/main/CONTEXT.md) — 架构术语(Click 迁移语境)
112
- - [docs/](https://github.com/CharlieZi/py_wlcommands/tree/main/docs) — 设计、ADR、章节与 CICD/发布文档
113
- - [安装文档](https://github.com/CharlieZi/py_wlcommands/blob/main/docs/user/installation.md) — 安装细节与 shell 补全
110
+ - [CLI_COMMANDS.md](https://github.com/CharlieZi/wl-cli/blob/main/CLI_COMMANDS.md) — 命令参考
111
+ - [CONTEXT.md](https://github.com/CharlieZi/wl-cli/blob/main/CONTEXT.md) — 架构术语(Click 迁移语境)
112
+ - [docs/](https://github.com/CharlieZi/wl-cli/tree/main/docs) — 设计、ADR、章节与 CICD/发布文档
113
+ - [安装文档](https://github.com/CharlieZi/wl-cli/blob/main/docs/user/installation.md) — 安装细节与 shell 补全
114
114
 
115
115
  ## 架构速览
116
116
 
117
- Click CLI([src/py_wlcommands/cli_click.py](https://github.com/CharlieZi/py_wlcommands/blob/main/src/py_wlcommands/cli_click.py)
117
+ Click CLI([src/wl_cli/cli_click.py](https://github.com/CharlieZi/wl-cli/blob/main/src/wl_cli/cli_click.py)
118
118
  经 `setup_commands()` 直接注册)→ 各命令实现(`commands/<group>/`)→ 业务逻辑;
119
119
  Rust 原生扩展(`rust/`、`src/wl_cli/lib/`)经 maturin 编译为 `wl_cli_native`;
120
120
  依赖注入容器集中管理共享服务(`infrastructure/dependency_injection.py`)。
121
- 架构演进背景见 [Click 迁移设计](https://github.com/CharlieZi/py_wlcommands/blob/main/docs/superpowers/specs/2026-06-02-full-click-migration-design.md)。
121
+ 架构演进背景见 [Click 迁移设计](https://github.com/CharlieZi/wl-cli/blob/main/docs/superpowers/specs/2026-06-02-full-click-migration-design.md)。
122
122
 
123
123
  ## 许可证
124
124
 
125
- MIT,见 [LICENSE](https://github.com/CharlieZi/py_wlcommands/blob/main/LICENSE)。
125
+ MIT,见 [LICENSE](https://github.com/CharlieZi/wl-cli/blob/main/LICENSE)。
126
126
 
@@ -14,11 +14,11 @@
14
14
  | `wl format` | 格式化 Python 与 Rust 代码 |
15
15
  | `wl lint` | 代码质量检查(ruff/mypy 等) |
16
16
  | `wl clean` | 清理构建产物与临时文件 |
17
- | `wl debug` | 质量门(测试 + 格式检查) |
17
+ | `wl debug` | (已弃用)质量门 — 改用 `wl test -s` 与 `wl format -s` |
18
18
  | `wl self` | 自管理命令 |
19
19
 
20
20
  命令行别名:`b`→build、`c`→clean、`f`→format、`i`→init。
21
- 完整命令参考见 [CLI_COMMANDS.md](https://github.com/CharlieZi/py_wlcommands/blob/main/CLI_COMMANDS.md)。
21
+ 完整命令参考见 [CLI_COMMANDS.md](https://github.com/CharlieZi/wl-cli/blob/main/CLI_COMMANDS.md)。
22
22
 
23
23
  ## 环境要求
24
24
 
@@ -31,23 +31,23 @@
31
31
  ### 稳定版(PyPI)
32
32
 
33
33
  ```bash
34
- pip install wl-cli
34
+ pip install py-wlcli
35
35
  ```
36
36
 
37
- 按需安装可选 extra:`pip install "wl-cli[lfs]"`(LFS watch)、
38
- `pip install "wl-cli[test]"`(测试套件)、`pip install "wl-cli[dev]"`(开发工具)。
39
- 详见[安装文档](https://github.com/CharlieZi/py_wlcommands/blob/main/docs/user/installation.md)。
37
+ 按需安装可选 extra:`pip install "py-wlcli[lfs]"`(LFS watch)、
38
+ `pip install "py-wlcli[test]"`(测试套件)、`pip install "py-wlcli[dev]"`(开发工具)。
39
+ 详见[安装文档](https://github.com/CharlieZi/wl-cli/blob/main/docs/user/installation.md)。
40
40
 
41
41
  ### 开发版(从源码)
42
42
 
43
43
  ```bash
44
44
  # 以 GitLab 为主仓(origin),GitHub 为镜像
45
- git clone https://gitlab.gewinnrobo.com/Humuyuan/py_wlcommands.git
45
+ git clone https://gitlab.gewinnrobo.com/Humuyuan/wl-cli.git
46
46
  cd wl_cli
47
47
  uv pip install -e ".[dev,test]"
48
48
  ```
49
49
 
50
- GitHub 镜像:<https://github.com/CharlieZi/py_wlcommands.git>
50
+ GitHub 镜像:<https://github.com/CharlieZi/wl-cli.git>
51
51
 
52
52
  ## 快速开始
53
53
 
@@ -70,24 +70,24 @@ pytest tests/ -v # 指定文件(pytest 直跑)
70
70
  ```
71
71
 
72
72
  提交前请确保 pre-commit 通过(ruff、codespell、lockfile 一致性等)。
73
- 开发约束详见 [CLAUDE.md](https://github.com/CharlieZi/py_wlcommands/blob/main/CLAUDE.md),
74
- 贡献流程见 [CONTRIBUTING.md](https://github.com/CharlieZi/py_wlcommands/blob/main/CONTRIBUTING.md)。
73
+ 开发约束详见 [CLAUDE.md](https://github.com/CharlieZi/wl-cli/blob/main/CLAUDE.md),
74
+ 贡献流程见 [CONTRIBUTING.md](https://github.com/CharlieZi/wl-cli/blob/main/CONTRIBUTING.md)。
75
75
 
76
76
  ## 文档
77
77
 
78
- - [CLI_COMMANDS.md](https://github.com/CharlieZi/py_wlcommands/blob/main/CLI_COMMANDS.md) — 命令参考
79
- - [CONTEXT.md](https://github.com/CharlieZi/py_wlcommands/blob/main/CONTEXT.md) — 架构术语(Click 迁移语境)
80
- - [docs/](https://github.com/CharlieZi/py_wlcommands/tree/main/docs) — 设计、ADR、章节与 CICD/发布文档
81
- - [安装文档](https://github.com/CharlieZi/py_wlcommands/blob/main/docs/user/installation.md) — 安装细节与 shell 补全
78
+ - [CLI_COMMANDS.md](https://github.com/CharlieZi/wl-cli/blob/main/CLI_COMMANDS.md) — 命令参考
79
+ - [CONTEXT.md](https://github.com/CharlieZi/wl-cli/blob/main/CONTEXT.md) — 架构术语(Click 迁移语境)
80
+ - [docs/](https://github.com/CharlieZi/wl-cli/tree/main/docs) — 设计、ADR、章节与 CICD/发布文档
81
+ - [安装文档](https://github.com/CharlieZi/wl-cli/blob/main/docs/user/installation.md) — 安装细节与 shell 补全
82
82
 
83
83
  ## 架构速览
84
84
 
85
- Click CLI([src/py_wlcommands/cli_click.py](https://github.com/CharlieZi/py_wlcommands/blob/main/src/py_wlcommands/cli_click.py)
85
+ Click CLI([src/wl_cli/cli_click.py](https://github.com/CharlieZi/wl-cli/blob/main/src/wl_cli/cli_click.py)
86
86
  经 `setup_commands()` 直接注册)→ 各命令实现(`commands/<group>/`)→ 业务逻辑;
87
87
  Rust 原生扩展(`rust/`、`src/wl_cli/lib/`)经 maturin 编译为 `wl_cli_native`;
88
88
  依赖注入容器集中管理共享服务(`infrastructure/dependency_injection.py`)。
89
- 架构演进背景见 [Click 迁移设计](https://github.com/CharlieZi/py_wlcommands/blob/main/docs/superpowers/specs/2026-06-02-full-click-migration-design.md)。
89
+ 架构演进背景见 [Click 迁移设计](https://github.com/CharlieZi/wl-cli/blob/main/docs/superpowers/specs/2026-06-02-full-click-migration-design.md)。
90
90
 
91
91
  ## 许可证
92
92
 
93
- MIT,见 [LICENSE](https://github.com/CharlieZi/py_wlcommands/blob/main/LICENSE)。
93
+ MIT,见 [LICENSE](https://github.com/CharlieZi/wl-cli/blob/main/LICENSE)。
@@ -49,8 +49,8 @@ build-backend = "maturin"
49
49
 
50
50
 
51
51
  [project.urls]
52
- Homepage = "https://gitlab.gewinnrobo.com/Humuyuan/py_wlcommands"
53
- Issues = "https://gitlab.gewinnrobo.com/Humuyuan/py_wlcommands/-/issues"
52
+ Homepage = "https://gitlab.gewinnrobo.com/Humuyuan/wl-cli"
53
+ Issues = "https://gitlab.gewinnrobo.com/Humuyuan/wl-cli/-/issues"
54
54
 
55
55
  [tool.maturin]
56
56
  manifest-path = "rust/Cargo.toml"
@@ -92,9 +92,14 @@ preview = false
92
92
 
93
93
  [tool.ruff.lint]
94
94
  select = ["E", "W", "F", "I", "C4", "UP", "N", "B", "C90", "TCH"]
95
- ignore = ["E501", "B904", "F401", "F841", "E402", "F811", "S607", "N802", "N817"]
95
+ ignore = ["E501", "B904", "E402", "F811", "S607", "N802", "N817"]
96
96
  exclude = [ ".git", ".ruff_cache", "__pycache__", "build", "dist", "*.egg-info", "uv.lock", "tmp",]
97
97
 
98
+ # F841 (unused local variable) is enabled for package code as a dead-code
99
+ # backstop, but exempted in tests where unused locals are often scaffolding.
100
+ [tool.ruff.lint.per-file-ignores]
101
+ "tests/*" = ["F841"]
102
+
98
103
  [tool.ruff.lint.mccabe]
99
104
  max-complexity = 14
100
105
 
@@ -133,5 +138,4 @@ omit = [
133
138
  "tests/*",
134
139
  "*/__pycache__/*",
135
140
  ".venv/*",
136
- "wl_cli/commands/selfcommands/*",
137
141
  ]
@@ -2,22 +2,6 @@
2
2
  # It is not intended for manual editing.
3
3
  version = 4
4
4
 
5
- [[package]]
6
- name = "cc"
7
- version = "1.4.5"
8
- source = "registry+https://github.com/rust-lang/crates.io-index"
9
- checksum = "005ec2760ca554fae18df7a11195552ec576cd665632a881bc011d5bb2fd4d80"
10
- dependencies = [
11
- "find-msvc-tools",
12
- "shlex",
13
- ]
14
-
15
- [[package]]
16
- name = "find-msvc-tools"
17
- version = "0.1.12"
18
- source = "registry+https://github.com/rust-lang/crates.io-index"
19
- checksum = "3e0f1c7c3a72c66fd80abe965175f7523475c0489a87d3ff9d6e8c87d87a9d2d"
20
-
21
5
  [[package]]
22
6
  name = "heck"
23
7
  version = "0.5.0"
@@ -26,9 +10,9 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
26
10
 
27
11
  [[package]]
28
12
  name = "libc"
29
- version = "0.2.189"
13
+ version = "0.2.186"
30
14
  source = "registry+https://github.com/rust-lang/crates.io-index"
31
- checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2"
15
+ checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66"
32
16
 
33
17
  [[package]]
34
18
  name = "once_cell"
@@ -38,24 +22,24 @@ checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
38
22
 
39
23
  [[package]]
40
24
  name = "portable-atomic"
41
- version = "1.15.0"
25
+ version = "1.13.1"
42
26
  source = "registry+https://github.com/rust-lang/crates.io-index"
43
- checksum = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85"
27
+ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
44
28
 
45
29
  [[package]]
46
30
  name = "proc-macro2"
47
- version = "1.0.107"
31
+ version = "1.0.106"
48
32
  source = "registry+https://github.com/rust-lang/crates.io-index"
49
- checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9"
33
+ checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
50
34
  dependencies = [
51
35
  "unicode-ident",
52
36
  ]
53
37
 
54
38
  [[package]]
55
39
  name = "pyo3"
56
- version = "0.28.3"
40
+ version = "0.29.2"
57
41
  source = "registry+https://github.com/rust-lang/crates.io-index"
58
- checksum = "91fd8e38a3b50ed1167fb981cd6fd60147e091784c427b8f7183a7ee32c31c12"
42
+ checksum = "4688ddedf473e32662b9b067670129a8afb8c18e351482c70d62ba4a88171e8b"
59
43
  dependencies = [
60
44
  "libc",
61
45
  "once_cell",
@@ -67,19 +51,18 @@ dependencies = [
67
51
 
68
52
  [[package]]
69
53
  name = "pyo3-build-config"
70
- version = "0.28.3"
54
+ version = "0.29.2"
71
55
  source = "registry+https://github.com/rust-lang/crates.io-index"
72
- checksum = "e368e7ddfdeb98c9bca7f8383be1648fd84ab466bf2bc015e94008db6d35611e"
56
+ checksum = "f41027e41b4bd03f6e60f9f417fe24a6341a6bb744edd62b6f709f2a52ea30e9"
73
57
  dependencies = [
74
- "python3-dll-a",
75
58
  "target-lexicon",
76
59
  ]
77
60
 
78
61
  [[package]]
79
62
  name = "pyo3-ffi"
80
- version = "0.28.3"
63
+ version = "0.29.2"
81
64
  source = "registry+https://github.com/rust-lang/crates.io-index"
82
- checksum = "7f29e10af80b1f7ccaf7f69eace800a03ecd13e883acfacc1e5d0988605f651e"
65
+ checksum = "e591a95526fead067432c3b3a33fc74770b87b1e04e73671090d9c2055a2b327"
83
66
  dependencies = [
84
67
  "libc",
85
68
  "pyo3-build-config",
@@ -87,9 +70,9 @@ dependencies = [
87
70
 
88
71
  [[package]]
89
72
  name = "pyo3-macros"
90
- version = "0.28.3"
73
+ version = "0.29.2"
91
74
  source = "registry+https://github.com/rust-lang/crates.io-index"
92
- checksum = "df6e520eff47c45997d2fc7dd8214b25dd1310918bbb2642156ef66a67f29813"
75
+ checksum = "73225868fc1cd84eef2c3c230ddb91273bf1de46aeb8a4248da76d32a0924a1c"
93
76
  dependencies = [
94
77
  "proc-macro2",
95
78
  "pyo3-macros-backend",
@@ -99,46 +82,30 @@ dependencies = [
99
82
 
100
83
  [[package]]
101
84
  name = "pyo3-macros-backend"
102
- version = "0.28.3"
85
+ version = "0.29.2"
103
86
  source = "registry+https://github.com/rust-lang/crates.io-index"
104
- checksum = "c4cdc218d835738f81c2338f822078af45b4afdf8b2e33cbb5916f108b813acb"
87
+ checksum = "571575aa3749fa6216757dd47d2a3e7ef360f329a40f0666a9fbd14889024952"
105
88
  dependencies = [
106
89
  "heck",
107
90
  "proc-macro2",
108
- "pyo3-build-config",
109
91
  "quote",
110
92
  "syn",
111
93
  ]
112
94
 
113
- [[package]]
114
- name = "python3-dll-a"
115
- version = "0.2.15"
116
- source = "registry+https://github.com/rust-lang/crates.io-index"
117
- checksum = "d80ba7540edb18890d444c5aa8e1f1f99b1bdf26fb26ae383135325f4a36042b"
118
- dependencies = [
119
- "cc",
120
- ]
121
-
122
95
  [[package]]
123
96
  name = "quote"
124
- version = "1.0.47"
97
+ version = "1.0.46"
125
98
  source = "registry+https://github.com/rust-lang/crates.io-index"
126
- checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001"
99
+ checksum = "dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368"
127
100
  dependencies = [
128
101
  "proc-macro2",
129
102
  ]
130
103
 
131
- [[package]]
132
- name = "shlex"
133
- version = "2.0.1"
134
- source = "registry+https://github.com/rust-lang/crates.io-index"
135
- checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
136
-
137
104
  [[package]]
138
105
  name = "syn"
139
- version = "2.0.119"
106
+ version = "2.0.118"
140
107
  source = "registry+https://github.com/rust-lang/crates.io-index"
141
- checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297"
108
+ checksum = "1b9ae57f904213ebb649ce6895b8a66c66f0203b9319718f69a5612a065b1422"
142
109
  dependencies = [
143
110
  "proc-macro2",
144
111
  "quote",
@@ -159,7 +126,7 @@ checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
159
126
 
160
127
  [[package]]
161
128
  name = "wl_cli_native"
162
- version = "0.6.13"
129
+ version = "0.6.14"
163
130
  dependencies = [
164
131
  "pyo3",
165
132
  ]
@@ -1,7 +1,7 @@
1
1
 
2
2
  [package]
3
3
  name = "wl_cli_native"
4
- version = "0.6.13"
4
+ version = "0.6.14"
5
5
  edition = "2024"
6
6
  description = "wl_cli - Python项目"
7
7
  authors = ["WL Admin <wl.admin@example.com>"]
@@ -10,7 +10,8 @@ license = "MIT"
10
10
  [dependencies]
11
11
  # 与 pyproject.toml [tool.maturin] features 保持同步(lockstep)——二者取并集,改动需同步。
12
12
  # Keep in lockstep with [tool.maturin] features in pyproject.toml — cargo unions both sets.
13
- pyo3 = { version = "0.28.2", features = ["extension-module", "abi3", "abi3-py311", "generate-import-lib"] }
13
+ # IS-5: 0.28.3 had RUSTSEC-2026-0176/-0177 (fixed in >=0.29.0); 0.29 keeps the same features.
14
+ pyo3 = { version = "0.29.0", features = ["extension-module", "abi3", "abi3-py311", "generate-import-lib"] }
14
15
 
15
16
  [lib]
16
17
  name = "wl_cli_native"
@@ -0,0 +1,14 @@
1
+ # cargo-deny license policy (IS-16).
2
+ # Allow list covers every license in the resolved rust/Cargo.lock graph
3
+ # (pyo3 + its proc-macro/build deps). Derived from `cargo metadata`:
4
+ # MIT OR Apache-2.0 pyo3 & friends, heck, libc, once_cell, ...
5
+ # Apache-2.0 OR MIT portable-atomic
6
+ # Apache-2.0 WITH LLVM-exception target-lexicon
7
+ # (MIT OR Apache-2.0) AND Unicode-3.0 unicode-ident
8
+ [licenses]
9
+ allow = [
10
+ "MIT",
11
+ "Apache-2.0",
12
+ "Apache-2.0 WITH LLVM-exception",
13
+ "Unicode-3.0",
14
+ ]
@@ -24,4 +24,4 @@ def _read_version_from_file() -> str:
24
24
 
25
25
  __version__ = _read_version_from_file()
26
26
 
27
- from .commands import Command
27
+ from .commands import Command # noqa: F401 # public re-export: wl_cli.Command
@@ -48,7 +48,7 @@ def check_installation() -> bool:
48
48
  True if installed correctly, False otherwise.
49
49
  """
50
50
  try:
51
- import wl_cli
51
+ import wl_cli # noqa: F401 # availability probe: import must succeed
52
52
 
53
53
  return True
54
54
  except ImportError:
@@ -4,7 +4,7 @@ import functools
4
4
  from collections.abc import Callable
5
5
  from typing import Any
6
6
 
7
- from ..exceptions import CommandError, ErrorCode
7
+ from ..exceptions import ErrorCode
8
8
  from .base import CommandBase
9
9
  from .registry import get_command, list_commands
10
10
 
@@ -0,0 +1 @@
1
+ """Build commands package (registered lazily via COMMAND_TABLE)."""
@@ -5,7 +5,7 @@ import shutil
5
5
  import subprocess
6
6
  import sys
7
7
  from pathlib import Path
8
- from typing import TYPE_CHECKING, Any
8
+ from typing import TYPE_CHECKING, Any, cast
9
9
 
10
10
  if TYPE_CHECKING:
11
11
  from wl_cli.utils.workspace_detector.types import WorkspaceDetectionRules
@@ -94,14 +94,17 @@ class BuildDistCommand(Command):
94
94
  log_error(f"Unexpected error creating virtual environment: {e}")
95
95
  raise CommandError(f"Failed to create virtual environment: {e}")
96
96
 
97
- def _build_rules(self, kwargs: dict[str, object]) -> dict[str, object]:
98
- return {
99
- "uv_tree_min_roots": kwargs.get("ws_min_roots", 2),
100
- "use_uv_tree": not kwargs.get("ws_disable_tree", False),
101
- "use_uv_init": not kwargs.get("ws_disable_init", False),
102
- "use_pyproject": not kwargs.get("ws_disable_pyproject", False),
103
- "use_uv_lock": not kwargs.get("ws_disable_uv_lock", False),
104
- }
97
+ def _build_rules(self, kwargs: dict[str, object]) -> "WorkspaceDetectionRules":
98
+ return cast(
99
+ "WorkspaceDetectionRules",
100
+ {
101
+ "uv_tree_min_roots": kwargs.get("ws_min_roots", 2),
102
+ "use_uv_tree": not kwargs.get("ws_disable_tree", False),
103
+ "use_uv_init": not kwargs.get("ws_disable_init", False),
104
+ "use_pyproject": not kwargs.get("ws_disable_pyproject", False),
105
+ "use_uv_lock": not kwargs.get("ws_disable_uv_lock", False),
106
+ },
107
+ )
105
108
 
106
109
  def _validate_workspace(
107
110
  self, detector: WorkspaceDetector, is_workspace: bool, kwargs: dict[str, object]
@@ -0,0 +1 @@
1
+ """Clean command module."""
@@ -3,7 +3,6 @@ Command to clean project build artifacts and dead code.
3
3
  """
4
4
 
5
5
  import sys
6
- from typing import Optional
7
6
 
8
7
  import click
9
8
 
@@ -44,6 +44,17 @@ _remove_virtual_environments = remove_virtual_environments
44
44
  _remove_auto_activation_scripts = remove_auto_activation_scripts
45
45
  _remove_uv_lock = remove_uv_lock
46
46
 
47
+ #: Public re-export surface consumed by ``clean/clean.py`` (ruff: F401).
48
+ __all__ = [
49
+ "clean_all_artifacts",
50
+ "clean_build_artifacts",
51
+ "clean_cache_artifacts",
52
+ "clean_lfs_artifacts",
53
+ "clean_logs_artifacts",
54
+ "clean_rust_artifacts",
55
+ "clean_venv_artifacts",
56
+ ]
57
+
47
58
 
48
59
  def clean_all_artifacts(
49
60
  dry_run: bool = False, config: str | None = None, parallel: bool = False
@@ -2,9 +2,6 @@
2
2
  Main entry point for the dead code cleanup functionality.
3
3
  """
4
4
 
5
- import sys
6
- from pathlib import Path
7
-
8
5
  from ....utils.language_utils import _is_system_chinese
9
6
  from ....utils.project_root import find_project_root
10
7
  from .detector import DeadCodeDetector
@@ -8,7 +8,7 @@ from pathlib import Path
8
8
  from typing import Any
9
9
 
10
10
  from ....utils.logging import log_error
11
- from ....utils.subprocess_utils import SubprocessExecutor, SubprocessResult
11
+ from ....utils.subprocess_utils import SubprocessExecutor
12
12
  from .reporter import DeadCodeIssue
13
13
 
14
14
 
@@ -1,7 +1,7 @@
1
1
  """Shortcut command for dead code cleanup."""
2
2
 
3
3
  import sys
4
- from typing import Any, Optional
4
+ from typing import Any, cast
5
5
 
6
6
  import click
7
7
 
@@ -32,9 +32,12 @@ class CleanupCommand(Command):
32
32
  command = DeadCodeCommand()
33
33
  scan_without_fixing = dry_run or scan_only
34
34
 
35
- return command.run(
36
- dry_run=scan_without_fixing,
37
- json=json,
35
+ return cast(
36
+ "int",
37
+ command.run(
38
+ dry_run=scan_without_fixing,
39
+ json=json,
40
+ ),
38
41
  )
39
42
 
40
43
 
@@ -26,13 +26,13 @@ class DebugCache:
26
26
  # First try to load from old JSON for backward compatibility
27
27
  if self.cache_path.exists():
28
28
  with self.cache_path.open("r", encoding="utf-8") as f:
29
- data = json.load(f)
29
+ data: dict = json.load(f)
30
30
  # Also save to new format for next time
31
31
  self._disk_cache.set(self.CACHE_KEY, data)
32
32
  return data
33
33
 
34
34
  # Fallback to new DiskCache
35
- cached_data = self._disk_cache.get(self.CACHE_KEY)
35
+ cached_data: dict | None = self._disk_cache.get(self.CACHE_KEY)
36
36
  if cached_data is not None:
37
37
  return cached_data
38
38
 
@@ -1,8 +1,5 @@
1
1
  """Format command module."""
2
2
 
3
- import sys
4
- from pathlib import Path
5
-
6
3
  from ...commands.base import BaseCommand
7
4
  from .format_coordinator import FormatCoordinator
8
5
 
@@ -1,14 +1,10 @@
1
1
  """Format command implementation using Click decorators."""
2
2
 
3
3
  import sys
4
- from pathlib import Path
5
- from typing import Optional, Union
6
4
 
7
5
  import click
8
6
 
9
7
  from ...utils.logging import log_info
10
- from ...utils.project_root import find_project_root
11
- from ...utils.subprocess_utils import SubprocessResult
12
8
  from .format_coordinator import FormatCoordinator
13
9
  from .format_executor import FormatExecutor
14
10
  from .format_reporter import FormatReporter
@@ -38,7 +34,7 @@ class FormatCommand:
38
34
  def execute(
39
35
  self,
40
36
  quiet: bool = False,
41
- paths: tuple[str, ...] = None,
37
+ paths: tuple[str, ...] | None = None,
42
38
  unsafe: bool = True,
43
39
  report: bool = False,
44
40
  step_by_step: bool = False,
@@ -3,6 +3,7 @@
3
3
  import os
4
4
  import sys
5
5
  from pathlib import Path
6
+ from typing import cast
6
7
 
7
8
  from ...utils.output_context import get_output_config
8
9
  from .format_path_handler import FormatPathHandler
@@ -80,16 +81,22 @@ class FormatCoordinator:
80
81
  self, paths, env, quiet, unsafe=False, step_by_step=False
81
82
  ) -> bool:
82
83
  """Alias for path_handler.format_specified_paths."""
83
- return self.path_handler.format_specified_paths(
84
- paths, env, quiet, unsafe, step_by_step
84
+ return cast(
85
+ "bool",
86
+ self.path_handler.format_specified_paths(
87
+ paths, env, quiet, unsafe, step_by_step
88
+ ),
85
89
  )
86
90
 
87
91
  def format_defaults(
88
92
  self, current_path, env, quiet, unsafe, for_lint, step_by_step=False
89
93
  ) -> bool:
90
94
  """Alias for path_handler.format_defaults."""
91
- return self.path_handler.format_defaults(
92
- current_path, env, quiet, unsafe, for_lint, step_by_step
95
+ return cast(
96
+ "bool",
97
+ self.path_handler.format_defaults(
98
+ current_path, env, quiet, unsafe, for_lint, step_by_step
99
+ ),
93
100
  )
94
101
 
95
102
  def generate_format_report(self, quiet, unsafe, paths, env):