py-wlcli 0.7.0__tar.gz → 0.8.0__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.
- py_wlcli-0.8.0/.gitignore +116 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/PKG-INFO +47 -33
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/README.md +22 -7
- py_wlcli-0.8.0/VERSION +1 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/pyproject.toml +30 -33
- py_wlcli-0.8.0/src/wl_cli/capabilities.py +79 -0
- py_wlcli-0.8.0/src/wl_cli/cc/__init__.py +5 -0
- py_wlcli-0.8.0/src/wl_cli/cc/checks.py +1019 -0
- py_wlcli-0.8.0/src/wl_cli/cc/cli.py +370 -0
- py_wlcli-0.8.0/src/wl_cli/cc/mutate.py +1350 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/cli_click.py +53 -2
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/buildcommands/dist.py +39 -7
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/format/python_formatter.py +17 -7
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/registry.py +13 -2
- py_wlcli-0.8.0/src/wl_cli/commands/self/common/capabilities.py +30 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/self/self_command.py +14 -6
- py_wlcli-0.8.0/src/wl_cli/env/__init__.py +5 -0
- py_wlcli-0.8.0/src/wl_cli/env/cli.py +167 -0
- py_wlcli-0.8.0/src/wl_cli/env_status.py +157 -0
- py_wlcli-0.8.0/src/wl_cli/envelope.py +91 -0
- py_wlcli-0.8.0/src/wl_cli/mcp/__init__.py +6 -0
- py_wlcli-0.8.0/src/wl_cli/mcp/capabilities.py +19 -0
- py_wlcli-0.8.0/src/wl_cli/mcp/cli.py +22 -0
- py_wlcli-0.8.0/src/wl_cli/mcp/gitlab.py +553 -0
- py_wlcli-0.8.0/src/wl_cli/mcp/k8s.py +344 -0
- py_wlcli-0.8.0/src/wl_cli/mcp/protocol.py +159 -0
- py_wlcli-0.8.0/src/wl_cli/platform.py +139 -0
- py_wlcli-0.8.0/src/wl_cli/quality/__init__.py +18 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/applypatch-msg.sample +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/commit-msg.sample +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/fsmonitor-watchman.sample +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/post-update.sample +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/pre-applypatch.sample +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/pre-commit +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/pre-commit.legacy +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/pre-commit.sample +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/pre-merge-commit.sample +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/pre-push.sample +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/pre-rebase.sample +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/pre-receive.sample +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/prepare-commit-msg.sample +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/push-to-checkout.sample +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/sendemail-validate.sample +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/unix/applypatch-msg.sample +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/unix/commit-msg.sample +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/unix/fsmonitor-watchman.sample +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/unix/post-update.sample +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/unix/pre-applypatch.sample +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/unix/pre-commit +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/unix/pre-commit.legacy +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/unix/pre-commit.sample +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/unix/pre-merge-commit.sample +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/unix/pre-push +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/unix/pre-push.sample +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/unix/pre-rebase.sample +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/unix/pre-receive.sample +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/unix/prepare-commit-msg.sample +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/update.sample +0 -0
- py_wlcli-0.8.0/src/wl_cli/vendors/project/README.md +0 -0
- py_wlcli-0.7.0/rust/Cargo.lock +0 -132
- py_wlcli-0.7.0/rust/Cargo.toml +0 -19
- py_wlcli-0.7.0/rust/LICENSE +0 -21
- py_wlcli-0.7.0/rust/build.rs +0 -29
- py_wlcli-0.7.0/rust/deny.toml +0 -22
- py_wlcli-0.7.0/rust/rust-analyzer.json +0 -20
- py_wlcli-0.7.0/src/wl_cli/commands/self/common/capabilities.py +0 -30
- py_wlcli-0.7.0/src/wl_cli/vendors/rust/src/lib.rs +0 -13
- py_wlcli-0.7.0/src/wl_cli/vendors/rust/src/main.rs +0 -3
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/LICENSE +0 -0
- {py_wlcli-0.7.0/src/wl_cli/commands/clean/dead_code → py_wlcli-0.8.0/src}/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/__main__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/base.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/buildcommands/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/buildcommands/build.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/buildcommands/build_utils.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/buildcommands/builders/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/buildcommands/builders/cleanup.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/buildcommands/builders/coordinator.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/buildcommands/builders/environment.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/buildcommands/builders/rust_builder.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/buildcommands/builders/stubs.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/buildcommands/test.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/clean/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/clean/build.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/clean/clean.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/clean/clean_utils.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/clean/core.py +0 -0
- /py_wlcli-0.7.0/src/wl_cli/commands/clean/dead_code/utils.py → /py_wlcli-0.8.0/src/wl_cli/commands/clean/dead_code/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/clean/dead_code/dead_code_command.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/clean/dead_code/detector.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/clean/dead_code/fixer.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/clean/dead_code/reporter.py +0 -0
- /py_wlcli-0.7.0/src/wl_cli/vendors/project/README.md → /py_wlcli-0.8.0/src/wl_cli/commands/clean/dead_code/utils.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/clean/lfs.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/clean/python.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/clean/rust.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/clean/utils/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/clean/venv.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/cleanup.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/click_base.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/config/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/config/config.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/debug/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/debug/debug.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/debug/debug_cache.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/debug/debug_subagent.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/debug/output_formatter.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/debug/source_hasher.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/format/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/format/format_cache_adapter.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/format/format_command.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/format/format_coordinator.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/format/format_executor.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/format/format_outcome.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/format/format_path_handler.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/format/format_progress.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/format/format_reporter.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/format/rust_formatter.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/gate/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/gate/gate_command.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/gate/preflight.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/git/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/git/config.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/git/git_facts.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/git/git_flow.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/git/hook.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/git/policy.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/git/push_update.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/common/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/common/check_git_bash.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/common/error_handler.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/common/exceptions.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/components/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/components/cargo_sync.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/components/config_manager.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/components/directory_utils.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/components/git/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/components/git/branch_creator.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/components/git/git_flow_interface.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/components/git/git_flow_manager.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/components/git/git_lfs_manager.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/components/git/git_utility.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/components/git/gitignore_manager.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/components/git_initializer.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/components/i18n_manager.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/components/log_manager.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/components/project_structure/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/components/project_structure/config_generator.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/components/project_structure/directory_creator.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/components/project_structure/hook_source.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/components/project_structure/hooks_manager.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/components/project_structure/readme_handler.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/components/project_structure/rust_files_handler.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/components/project_structure/setup_handler.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/components/project_structure/sop_generator.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/components/project_structure/template_copier.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/components/project_structure/template_manager.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/components/pyproject_generator.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/components/rust_initializer.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/components/symlink_cleaner.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/components/symlink_manager.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/components/venv_manager.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/initenv.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/services/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/services/environment_initializer.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/services/git_lfs_initializer.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/initenv/services/project_structure_initializer.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/lfs/README.md +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/lfs/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/lfs/cli.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/lfs/config.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/lfs/hook.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/lfs/initializer.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/lfs/manager.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/lfs/policy.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/lfs/watcher.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/lint/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/lint/lint_command.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/lint/lint_executor.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/lint/lint_reporter.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/lint/lint_run.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/lint/mypy_config.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/self/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/self/common/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/self/common/config.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/self/common/version_cache.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/self/handlers/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/self/handlers/base_handler.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/self/handlers/install_handler.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/self/handlers/status_handler.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/self/handlers/uninstall_handler.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/self/handlers/update_handler.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/self/handlers/version_handler.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/self/services/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/self/services/installation_manager.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/self/services/local_installer.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/self/services/pypi_updater.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/self/services/windows_update.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/testcommands/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/testcommands/base_dependency_analyzer.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/testcommands/batch_processor.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/testcommands/cache_manager.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/testcommands/coverage_analyzer.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/testcommands/coverage_cache_manager.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/testcommands/progress_manager.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/testcommands/python_env_detector.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/testcommands/report_generator.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/testcommands/single_test_executor.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/testcommands/speed_checker.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/testcommands/test_command_builder.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/testcommands/test_commands.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/testcommands/test_reporter.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/testcommands/test_result_handler.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/testcommands/test_runner.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/testcommands/test_utils.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/testcommands/utils/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/testcommands/utils/coverage_parser.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/testcommands/utils/env_info.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/testcommands/utils/junit_parser.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/testcommands/utils/markdown_utils.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/testcommands/utils/project_root.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/update/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/update/services/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/update/services/backup_manager.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/update/services/component_manager.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/update/services/conflict_resolver.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/update/services/vendors_updater.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/update/services/version_tracker.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/update/update_command.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/update/utils/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/version/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/version/version_command.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/commands/workflow.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/exceptions.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/lib/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/lib/rust_utils.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/cache.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/cache_ledger.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/cache_store.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/config/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/config/config_loader.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/config/core.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/config/defaults.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/config/env_exporter.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/config/env_parser.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/config/validation.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/error_handler.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/file_copier.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/file_operations.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/language_utils.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/lazy_import.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/log_levels.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/log_rotators.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/logging.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/output_context.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/performance/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/performance/decorators.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/performance/exporter.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/performance/models.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/performance/monitor.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/performance_monitor.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/platform_adapter.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/pre_commit.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/pre_commit_config.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/root.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/root_fallback.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/run_evidence.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/structured_logger.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/structured_logging/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/structured_logging/config.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/structured_logging/core.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/structured_logging/env.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/structured_logging/filtering.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/structured_logging/filters.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/structured_logging/formatters.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/structured_logging/handlers.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/structured_logging/logger.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/subprocess.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/subprocess_utils.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/test_utils/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/test_utils/test_filter.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/uv_run.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/uv_tool.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/uv_tree.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/uv_workspace.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/version/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/version/pypi_version_checker.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/version/version_comparator.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/version/version_detectors.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/version/version_service.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/version/version_updater.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/wl_dir_updater.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/workspace_detector/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/workspace_detector/core.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/workspace_detector/detection_strategies.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/workspace_detector/exceptions.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/workspace_detector/types.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/utils/workspace_detector/venv_resolver.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/config/.codespellrc +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/config/dependencies.toml +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/config/mypy.ini +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/config/pyproject_defaults.toml +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/config/template_config.toml +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/config/tool_configs.toml +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/git/.gitignore +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/git/.pre-commit-config.yaml +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/unix/check_lockfile.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/unix/check_lockfile.sh +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/unix/pre-commit.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/hooks/win/work.bat +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/project/.gitignore +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/project/.python-version +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/project/LICENSE +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/project/pyproject.toml +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/project/pyproject_no_workspace.toml +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/project/pyproject_workspace.toml +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/readme/README.md +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/rust/Cargo.toml +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/rust/lib/__init__.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/rust/lib/rust_utils.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0/src/wl_cli/vendors}/rust/src/lib.rs +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0/src/wl_cli/vendors}/rust/src/main.rs +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/rust/tests/test_rust_fallback.py +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/sop_doc/git-dev-sop.md +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/sop_doc/industrial-standard-sop.md +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/sop_doc/python-sop.md +0 -0
- {py_wlcli-0.7.0 → py_wlcli-0.8.0}/src/wl_cli/vendors/sop_doc/rust-readme.md +0 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# Python 相关文件
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*.so
|
|
5
|
+
*.dll
|
|
6
|
+
*.dylib
|
|
7
|
+
*.pyd
|
|
8
|
+
*.egg-info/
|
|
9
|
+
.pytest_cache/
|
|
10
|
+
.coverage
|
|
11
|
+
htmlcov/
|
|
12
|
+
.tox/
|
|
13
|
+
.hypothesis/
|
|
14
|
+
.cache/
|
|
15
|
+
.trae/
|
|
16
|
+
.wl/
|
|
17
|
+
.claude/
|
|
18
|
+
|
|
19
|
+
# 构建目录
|
|
20
|
+
build/
|
|
21
|
+
dist/
|
|
22
|
+
wheels/
|
|
23
|
+
target/
|
|
24
|
+
|
|
25
|
+
# 虚拟环境
|
|
26
|
+
.venv/
|
|
27
|
+
env/
|
|
28
|
+
venv/
|
|
29
|
+
ENV/
|
|
30
|
+
|
|
31
|
+
# Issue #220: `env/` above is a virtualenv pattern, but the env *domain* is
|
|
32
|
+
# repo code. Re-include only the two in-tree paths. `!dir/` must precede
|
|
33
|
+
# `!dir/**`: git cannot re-include files under an excluded parent directory.
|
|
34
|
+
# The trailing __pycache__ rules win over `!dir/**` (last match wins) so
|
|
35
|
+
# bytecode stays ignored inside the re-included trees.
|
|
36
|
+
!src/wl_cli/env/
|
|
37
|
+
!src/wl_cli/env/**
|
|
38
|
+
!tests/domains/env/
|
|
39
|
+
!tests/domains/env/**
|
|
40
|
+
# ...but only source: virtualenvs, bytecode and nested env/venv directories
|
|
41
|
+
# stay ignored anywhere inside those two re-included trees (last match wins).
|
|
42
|
+
src/wl_cli/env/**/__pycache__/
|
|
43
|
+
tests/domains/env/**/__pycache__/
|
|
44
|
+
src/wl_cli/env/**/.venv/
|
|
45
|
+
src/wl_cli/env/**/env/
|
|
46
|
+
src/wl_cli/env/**/venv/
|
|
47
|
+
src/wl_cli/env/**/ENV/
|
|
48
|
+
tests/domains/env/**/.venv/
|
|
49
|
+
tests/domains/env/**/env/
|
|
50
|
+
tests/domains/env/**/venv/
|
|
51
|
+
tests/domains/env/**/ENV/
|
|
52
|
+
|
|
53
|
+
# 依赖管理
|
|
54
|
+
.uv/
|
|
55
|
+
.uv_cache/
|
|
56
|
+
.ruff_cache/
|
|
57
|
+
.mypy_cache/
|
|
58
|
+
node_modules/
|
|
59
|
+
|
|
60
|
+
# IDE 和编辑器
|
|
61
|
+
.idea/
|
|
62
|
+
.vscode/
|
|
63
|
+
.vs/
|
|
64
|
+
*.sln
|
|
65
|
+
*.suo
|
|
66
|
+
*.ntvs*
|
|
67
|
+
*.njsproj
|
|
68
|
+
*.sw?
|
|
69
|
+
|
|
70
|
+
# 临时文件和系统文件
|
|
71
|
+
.DS_Store
|
|
72
|
+
|
|
73
|
+
# Jupyter 文件
|
|
74
|
+
.ipynb_checkpoints/
|
|
75
|
+
|
|
76
|
+
# 日志和数据文件
|
|
77
|
+
*.log
|
|
78
|
+
logs/
|
|
79
|
+
results/
|
|
80
|
+
npm-debug.log*
|
|
81
|
+
yarn-debug.log*
|
|
82
|
+
yarn-error.log*
|
|
83
|
+
dev-debug.log
|
|
84
|
+
|
|
85
|
+
# 本地配置
|
|
86
|
+
.env
|
|
87
|
+
.env.local
|
|
88
|
+
# PyPI/twine 凭据文件(历史上曾误入库,见 docs/sop-audit/2026-10-04-sop-report.md F7)
|
|
89
|
+
.pypirc
|
|
90
|
+
auto_activate_venv.sh
|
|
91
|
+
deactivate_temp.sh
|
|
92
|
+
|
|
93
|
+
# 工具和脚本(本地使用,不加入版本控制)
|
|
94
|
+
todos/
|
|
95
|
+
|
|
96
|
+
# 类型与本地生成文件
|
|
97
|
+
typings/
|
|
98
|
+
src/wl_cli/lib/sop.md
|
|
99
|
+
|
|
100
|
+
# 任务和临时文件
|
|
101
|
+
tasks.json
|
|
102
|
+
tasks/
|
|
103
|
+
**/*.token
|
|
104
|
+
|
|
105
|
+
# Git worktree 和测试工具
|
|
106
|
+
.worktrees/
|
|
107
|
+
.rpytest/flakiness.json
|
|
108
|
+
|
|
109
|
+
# agent 工具链的本地状态(每次运行都会重建,不进版本控制)
|
|
110
|
+
.codex/
|
|
111
|
+
.loopx/
|
|
112
|
+
|
|
113
|
+
# 一致性语料(票 #273):语料归需求方(wlcc),按 contract-v1 克隆取用,永不入库。
|
|
114
|
+
# CI 的 contract job 克隆到 .contract-corpus/;本地按需克隆到 tests/contract/。
|
|
115
|
+
.contract-corpus/
|
|
116
|
+
tests/contract/
|
|
@@ -1,40 +1,41 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
2
|
Name: py_wlcli
|
|
3
|
-
Version: 0.
|
|
4
|
-
|
|
3
|
+
Version: 0.8.0
|
|
4
|
+
Summary: wl_cli - Python项目
|
|
5
|
+
Project-URL: Homepage, https://gitlab.gewinnrobo.com/Humuyuan/wl-cli
|
|
6
|
+
Project-URL: Issues, https://gitlab.gewinnrobo.com/Humuyuan/wl-cli/-/issues
|
|
7
|
+
Author-email: WL Admin <wl.admin@example.com>
|
|
8
|
+
License-Expression: MIT
|
|
9
|
+
License-File: LICENSE
|
|
10
|
+
Requires-Python: >=3.11
|
|
5
11
|
Requires-Dist: click>=8.1.0
|
|
6
|
-
Requires-Dist: tqdm>=4.66.0
|
|
7
12
|
Requires-Dist: pre-commit>=4.5.1
|
|
8
|
-
Requires-Dist:
|
|
9
|
-
Requires-Dist:
|
|
10
|
-
Requires-Dist: types-toml>=0.10.8.20240310 ; extra == 'dev'
|
|
11
|
-
Requires-Dist: types-tqdm>=4.67.0.20250809 ; extra == 'dev'
|
|
12
|
-
Requires-Dist: pytest-xdist>=3.8.0 ; extra == 'dev'
|
|
13
|
-
Requires-Dist: twine>=6.2.0 ; extra == 'dev'
|
|
14
|
-
Requires-Dist: pyyaml>=6.0.0 ; extra == 'lfs'
|
|
15
|
-
Requires-Dist: watchdog>=6.0.0 ; extra == 'lfs'
|
|
16
|
-
Requires-Dist: pytest>=9.0.3 ; extra == 'test'
|
|
17
|
-
Requires-Dist: pytest-cov>=7.0.0 ; extra == 'test'
|
|
18
|
-
Requires-Dist: pytest-asyncio>=1.3.0 ; extra == 'test'
|
|
19
|
-
Requires-Dist: pyyaml>=6.0.0 ; extra == 'test'
|
|
20
|
-
Requires-Dist: watchdog>=6.0.0 ; extra == 'test'
|
|
13
|
+
Requires-Dist: toml>=0.10.2
|
|
14
|
+
Requires-Dist: tqdm>=4.66.0
|
|
21
15
|
Provides-Extra: dev
|
|
16
|
+
Requires-Dist: mypy>=1.18.2; extra == 'dev'
|
|
17
|
+
Requires-Dist: pytest-xdist>=3.8.0; extra == 'dev'
|
|
18
|
+
Requires-Dist: ruff==0.15.21; extra == 'dev'
|
|
19
|
+
Requires-Dist: twine>=6.2.0; extra == 'dev'
|
|
20
|
+
Requires-Dist: types-toml>=0.10.8.20240310; extra == 'dev'
|
|
21
|
+
Requires-Dist: types-tqdm>=4.67.0.20250809; extra == 'dev'
|
|
22
22
|
Provides-Extra: lfs
|
|
23
|
+
Requires-Dist: pyyaml>=6.0.0; extra == 'lfs'
|
|
24
|
+
Requires-Dist: watchdog>=6.0.0; extra == 'lfs'
|
|
23
25
|
Provides-Extra: test
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
Requires-
|
|
29
|
-
Description-Content-Type: text/markdown
|
|
30
|
-
Project-URL: Homepage, https://gitlab.gewinnrobo.com/Humuyuan/wl-cli
|
|
31
|
-
Project-URL: Issues, https://gitlab.gewinnrobo.com/Humuyuan/wl-cli/-/issues
|
|
26
|
+
Requires-Dist: pytest-asyncio>=1.3.0; extra == 'test'
|
|
27
|
+
Requires-Dist: pytest-cov>=7.0.0; extra == 'test'
|
|
28
|
+
Requires-Dist: pytest>=9.0.3; extra == 'test'
|
|
29
|
+
Requires-Dist: pyyaml>=6.0.0; extra == 'test'
|
|
30
|
+
Requires-Dist: watchdog>=6.0.0; extra == 'test'
|
|
31
|
+
Description-Content-Type: text/markdown
|
|
32
32
|
|
|
33
33
|
# wl_cli(`wl` CLI)
|
|
34
34
|
|
|
35
|
-
`wl_cli`
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
`wl_cli` 是一个以 Click 构建的命令行工具(入口 `wl`),面向 Python 项目的初始化、构建、
|
|
36
|
+
测试、格式化、lint、清理与质量门等日常开发工作流。发行物是纯 Python wheel
|
|
37
|
+
(`py3-none-any`),安装与运行都不需要 Rust 工具链;Rust 扩展是可选的诊断件,
|
|
38
|
+
缺失时自动回落纯 Python 实现。
|
|
38
39
|
|
|
39
40
|
## 功能概览
|
|
40
41
|
|
|
@@ -54,10 +55,23 @@ Project-URL: Issues, https://gitlab.gewinnrobo.com/Humuyuan/wl-cli/-/issues
|
|
|
54
55
|
|
|
55
56
|
## 环境要求
|
|
56
57
|
|
|
57
|
-
- Python >= 3.11
|
|
58
|
-
- 从源码构建 Rust 扩展时需要 Rust 工具链(maturin/pyo3)
|
|
58
|
+
- Python >= 3.11(纯 Python 路径,安装与运行都不需要 Rust/cargo)
|
|
59
59
|
- 包管理器推荐 [uv](https://docs.astral.sh/uv/)
|
|
60
60
|
|
|
61
|
+
### 平台支持矩阵
|
|
62
|
+
|
|
63
|
+
| 平台 | 架构 | 支持 |
|
|
64
|
+
|------|------|------|
|
|
65
|
+
| macOS | x86_64 / arm64 | ✅ |
|
|
66
|
+
| Linux(glibc) | x86_64 / aarch64 | ✅ |
|
|
67
|
+
| Linux(musl) | x86_64 / aarch64 | ✅ |
|
|
68
|
+
| Windows | x64 / arm64 | ✅ |
|
|
69
|
+
|
|
70
|
+
同一个 `py3-none-any` wheel 覆盖以上全部平台。平台报告由
|
|
71
|
+
`wl_cli.platform.platform_payload()` 统一产出
|
|
72
|
+
(`platform` / `python` / `native_extension` / `supported` / `reason`),
|
|
73
|
+
其中 `native_extension` 只作诊断——Rust 扩展可选,缺失不影响 `supported`。
|
|
74
|
+
|
|
61
75
|
## 安装
|
|
62
76
|
|
|
63
77
|
### 稳定版(PyPI)
|
|
@@ -115,11 +129,11 @@ pytest tests/ -v # 指定文件(pytest 直跑)
|
|
|
115
129
|
## 架构速览
|
|
116
130
|
|
|
117
131
|
Click CLI([src/wl_cli/cli_click.py](https://github.com/CharlieZi/wl-cli/blob/main/src/wl_cli/cli_click.py)
|
|
118
|
-
经 `setup_commands()` 直接注册)→ 各命令实现(`commands/<group>/`)→
|
|
119
|
-
Rust
|
|
132
|
+
经 `setup_commands()` 直接注册)→ 各命令实现(`commands/<group>/`)→ 业务逻辑。
|
|
133
|
+
Rust 扩展是可选的诊断件:`src/wl_cli/lib/rust_utils.py` 在 `wl_cli_native`
|
|
134
|
+
不可用时回落纯 Python;发行 wheel 不包含任何原生二进制。
|
|
120
135
|
架构演进背景见 [Click 迁移设计](https://github.com/CharlieZi/wl-cli/blob/main/docs/superpowers/specs/2026-06-02-full-click-migration-design.md)。
|
|
121
136
|
|
|
122
137
|
## 许可证
|
|
123
138
|
|
|
124
139
|
MIT,见 [LICENSE](https://github.com/CharlieZi/wl-cli/blob/main/LICENSE)。
|
|
125
|
-
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
# wl_cli(`wl` CLI)
|
|
2
2
|
|
|
3
|
-
`wl_cli`
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
`wl_cli` 是一个以 Click 构建的命令行工具(入口 `wl`),面向 Python 项目的初始化、构建、
|
|
4
|
+
测试、格式化、lint、清理与质量门等日常开发工作流。发行物是纯 Python wheel
|
|
5
|
+
(`py3-none-any`),安装与运行都不需要 Rust 工具链;Rust 扩展是可选的诊断件,
|
|
6
|
+
缺失时自动回落纯 Python 实现。
|
|
6
7
|
|
|
7
8
|
## 功能概览
|
|
8
9
|
|
|
@@ -22,10 +23,23 @@
|
|
|
22
23
|
|
|
23
24
|
## 环境要求
|
|
24
25
|
|
|
25
|
-
- Python >= 3.11
|
|
26
|
-
- 从源码构建 Rust 扩展时需要 Rust 工具链(maturin/pyo3)
|
|
26
|
+
- Python >= 3.11(纯 Python 路径,安装与运行都不需要 Rust/cargo)
|
|
27
27
|
- 包管理器推荐 [uv](https://docs.astral.sh/uv/)
|
|
28
28
|
|
|
29
|
+
### 平台支持矩阵
|
|
30
|
+
|
|
31
|
+
| 平台 | 架构 | 支持 |
|
|
32
|
+
|------|------|------|
|
|
33
|
+
| macOS | x86_64 / arm64 | ✅ |
|
|
34
|
+
| Linux(glibc) | x86_64 / aarch64 | ✅ |
|
|
35
|
+
| Linux(musl) | x86_64 / aarch64 | ✅ |
|
|
36
|
+
| Windows | x64 / arm64 | ✅ |
|
|
37
|
+
|
|
38
|
+
同一个 `py3-none-any` wheel 覆盖以上全部平台。平台报告由
|
|
39
|
+
`wl_cli.platform.platform_payload()` 统一产出
|
|
40
|
+
(`platform` / `python` / `native_extension` / `supported` / `reason`),
|
|
41
|
+
其中 `native_extension` 只作诊断——Rust 扩展可选,缺失不影响 `supported`。
|
|
42
|
+
|
|
29
43
|
## 安装
|
|
30
44
|
|
|
31
45
|
### 稳定版(PyPI)
|
|
@@ -83,8 +97,9 @@ pytest tests/ -v # 指定文件(pytest 直跑)
|
|
|
83
97
|
## 架构速览
|
|
84
98
|
|
|
85
99
|
Click CLI([src/wl_cli/cli_click.py](https://github.com/CharlieZi/wl-cli/blob/main/src/wl_cli/cli_click.py)
|
|
86
|
-
经 `setup_commands()` 直接注册)→ 各命令实现(`commands/<group>/`)→
|
|
87
|
-
Rust
|
|
100
|
+
经 `setup_commands()` 直接注册)→ 各命令实现(`commands/<group>/`)→ 业务逻辑。
|
|
101
|
+
Rust 扩展是可选的诊断件:`src/wl_cli/lib/rust_utils.py` 在 `wl_cli_native`
|
|
102
|
+
不可用时回落纯 Python;发行 wheel 不包含任何原生二进制。
|
|
88
103
|
架构演进背景见 [Click 迁移设计](https://github.com/CharlieZi/wl-cli/blob/main/docs/superpowers/specs/2026-06-02-full-click-migration-design.md)。
|
|
89
104
|
|
|
90
105
|
## 许可证
|
py_wlcli-0.8.0/VERSION
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.8.0
|
|
@@ -43,46 +43,43 @@ lfs = [
|
|
|
43
43
|
url = "https://pypi.mirrors.ustc.edu.cn/simple"
|
|
44
44
|
default = true
|
|
45
45
|
|
|
46
|
+
# Issue #226 / wlcc #321: the distribution is a pure-Python wheel
|
|
47
|
+
# (`py3-none-any`); installing it needs no Rust toolchain. VERSION stays the
|
|
48
|
+
# single source of truth and hatchling reads it directly.
|
|
46
49
|
[build-system]
|
|
47
|
-
requires = [ "
|
|
48
|
-
build-backend = "
|
|
50
|
+
requires = [ "hatchling>=1.27",]
|
|
51
|
+
build-backend = "hatchling.build"
|
|
52
|
+
|
|
53
|
+
[tool.hatch.version]
|
|
54
|
+
source = "regex"
|
|
55
|
+
path = "VERSION"
|
|
56
|
+
pattern = '(?P<version>\d+\.\d+\.\d+)'
|
|
57
|
+
|
|
58
|
+
[tool.hatch.build.targets.wheel]
|
|
59
|
+
packages = [ "src/wl_cli",]
|
|
60
|
+
# Runtime templates under vendors/ must ship inside the wheel (`wl init` copies
|
|
61
|
+
# them). Native artefacts are never part of a pure-Python wheel, even if one is
|
|
62
|
+
# left in the tree by an older local build.
|
|
63
|
+
exclude = [
|
|
64
|
+
"**/*.so",
|
|
65
|
+
"**/*.pyd",
|
|
66
|
+
"**/*.dll",
|
|
67
|
+
"**/*.dylib",
|
|
68
|
+
]
|
|
49
69
|
|
|
70
|
+
[tool.hatch.build.targets.sdist]
|
|
71
|
+
include = [
|
|
72
|
+
"/src",
|
|
73
|
+
"/VERSION",
|
|
74
|
+
"/LICENSE",
|
|
75
|
+
"/README.md",
|
|
76
|
+
"/pyproject.toml",
|
|
77
|
+
]
|
|
50
78
|
|
|
51
79
|
[project.urls]
|
|
52
80
|
Homepage = "https://gitlab.gewinnrobo.com/Humuyuan/wl-cli"
|
|
53
81
|
Issues = "https://gitlab.gewinnrobo.com/Humuyuan/wl-cli/-/issues"
|
|
54
82
|
|
|
55
|
-
[tool.maturin]
|
|
56
|
-
manifest-path = "rust/Cargo.toml"
|
|
57
|
-
module-name = "wl_cli.lib.wl_cli_native"
|
|
58
|
-
python-source = "src"
|
|
59
|
-
include = [
|
|
60
|
-
"src/wl_cli/**/*",
|
|
61
|
-
"typings/**/*",
|
|
62
|
-
"LICENSE",
|
|
63
|
-
]
|
|
64
|
-
bindings = "pyo3"
|
|
65
|
-
# 与 rust/Cargo.toml 的 pyo3 features 保持同步(lockstep):maturin 将此处特性作为 --features
|
|
66
|
-
# 透传给 cargo,与 Cargo.toml 取并集,任一处即可生效;两处必须一致。
|
|
67
|
-
# Keep in lockstep with pyo3.features in rust/Cargo.toml — maturin forwards these to
|
|
68
|
-
# cargo as --features, unioned with the Cargo.toml features; both must match.
|
|
69
|
-
features = [
|
|
70
|
-
"pyo3/extension-module",
|
|
71
|
-
"pyo3/abi3",
|
|
72
|
-
"pyo3/abi3-py311",
|
|
73
|
-
"pyo3/generate-import-lib",
|
|
74
|
-
]
|
|
75
|
-
sdist-include = [
|
|
76
|
-
"src/**/*",
|
|
77
|
-
"typings/**/*",
|
|
78
|
-
"VERSION",
|
|
79
|
-
"LICENSE",
|
|
80
|
-
]
|
|
81
|
-
sdist-exclude = [
|
|
82
|
-
"src/wl_cli/vendors/**/*",
|
|
83
|
-
]
|
|
84
|
-
python-packages = [ "wl_cli",]
|
|
85
|
-
|
|
86
83
|
[tool.ruff]
|
|
87
84
|
line-length = 88
|
|
88
85
|
target-version = "py310"
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"""The shared capability registry for the ``wl`` CLI (issues #270, #221).
|
|
2
|
+
|
|
3
|
+
Capabilities are the stable, dotted names a consumer (wlcc) probes instead of
|
|
4
|
+
grepping ``--help`` for an implementation flag (wlcc ADR-0010, decision 6):
|
|
5
|
+
``test.clean_cache`` says *what wl can do*; ``--clean-cache`` is only how it is
|
|
6
|
+
spelled today. The dotted names are the interface -- treat them as stable.
|
|
7
|
+
|
|
8
|
+
The registry lives in the shared layer rather than under ``wl_cli.env`` or
|
|
9
|
+
``wl_cli.commands`` because two commands in different domains must serve the
|
|
10
|
+
same names: ``wl env check`` (``wl_cli.env``) and the deprecated
|
|
11
|
+
``wl self capabilities`` alias (``wl_cli.commands``). The quality domain may
|
|
12
|
+
not import the env domain (#220), so one shared data owner is the only
|
|
13
|
+
arrangement that does not fork the answer.
|
|
14
|
+
|
|
15
|
+
Adding a capability is a data change here plus an entry in the surface table
|
|
16
|
+
of ``tests/test_self_capabilities_270.py`` proving some CLI surface still
|
|
17
|
+
backs it, so a name cannot outlive its implementation.
|
|
18
|
+
|
|
19
|
+
A domain may keep a domain-local view of its own entries
|
|
20
|
+
(``wl_cli.mcp.capabilities.CAPABILITIES``, #224) derived from this mapping;
|
|
21
|
+
the data itself lives here only, and ``tests/test_capability_registry.py``
|
|
22
|
+
pins that the view cannot drift.
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
from __future__ import annotations
|
|
26
|
+
|
|
27
|
+
#: Bump only when the payload *shape* changes -- never when a capability is
|
|
28
|
+
#: added. Consumers key off this; adding a capability is backwards compatible.
|
|
29
|
+
SCHEMA_VERSION = 1
|
|
30
|
+
|
|
31
|
+
#: Capability name -> first release that ships its implementation. Adding an
|
|
32
|
+
#: entry is a data change; ``since`` must never be newer than the release this
|
|
33
|
+
#: data ships in (the release bump happens outside this change).
|
|
34
|
+
CAPABILITY_SINCE: dict[str, str] = {
|
|
35
|
+
"cc.check": "0.8.0",
|
|
36
|
+
"cc.hooks": "0.8.0",
|
|
37
|
+
"cc.init": "0.8.0",
|
|
38
|
+
"cc.mcp": "0.8.0",
|
|
39
|
+
"cc.plugins": "0.8.0",
|
|
40
|
+
"cc.repair": "0.8.0",
|
|
41
|
+
"cc.settings": "0.8.0",
|
|
42
|
+
"cc.stamps": "0.8.0",
|
|
43
|
+
"cc.statusline": "0.8.0",
|
|
44
|
+
"cc.upgrade": "0.8.0",
|
|
45
|
+
"env.check": "0.8.0",
|
|
46
|
+
"env.repair": "0.8.0",
|
|
47
|
+
"mcp.gitlab": "0.8.0",
|
|
48
|
+
"mcp.k8s": "0.8.0",
|
|
49
|
+
"test.clean_cache": "0.7.0",
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
#: The advertised names, sorted for stable output. Derived from the mapping so
|
|
53
|
+
#: there is exactly one source of truth.
|
|
54
|
+
CAPABILITIES: tuple[str, ...] = tuple(sorted(CAPABILITY_SINCE))
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
def capability_names() -> list[str]:
|
|
58
|
+
"""Return the advertised capability names, sorted for stable output."""
|
|
59
|
+
return list(CAPABILITIES)
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def capability_details() -> list[dict[str, str]]:
|
|
63
|
+
"""Return ``[{"name": ..., "since": ...}, ...]`` in sorted-name order."""
|
|
64
|
+
return [{"name": name, "since": CAPABILITY_SINCE[name]} for name in CAPABILITIES]
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def capability_since() -> dict[str, str]:
|
|
68
|
+
"""Return ``{name: since}`` in sorted-name order."""
|
|
69
|
+
return {name: CAPABILITY_SINCE[name] for name in CAPABILITIES}
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
def capabilities_payload() -> dict[str, object]:
|
|
73
|
+
"""Return the legacy ``wl self capabilities --json`` payload (#270).
|
|
74
|
+
|
|
75
|
+
``wl self capabilities`` is a deprecated alias since #221 and emits the
|
|
76
|
+
``wl env check`` envelope instead, but the old shape stays importable so a
|
|
77
|
+
library consumer does not break in the same release that deprecates it.
|
|
78
|
+
"""
|
|
79
|
+
return {"schema": SCHEMA_VERSION, "capabilities": capability_names()}
|