cpp-linter 1.11.4__tar.gz → 1.12.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.
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/.github/workflows/analyze-workflows.yml +2 -2
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/.github/workflows/labeler.yml +1 -1
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/.github/workflows/release-drafter.yml +1 -1
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/.github/workflows/release.yml +5 -5
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/.github/workflows/tests.yml +10 -10
- cpp_linter-1.12.0/.github/zizmor.yml +8 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/.pre-commit-config.yaml +3 -3
- {cpp_linter-1.11.4/cpp_linter.egg-info → cpp_linter-1.12.0}/PKG-INFO +1 -1
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/cpp_linter/__init__.py +4 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/cpp_linter/_version.py +3 -3
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/cpp_linter/cli.py +27 -1
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/cpp_linter/git/__init__.py +30 -12
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/cpp_linter/rest_api/__init__.py +17 -1
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/cpp_linter/rest_api/github_api.py +6 -2
- {cpp_linter-1.11.4 → cpp_linter-1.12.0/cpp_linter.egg-info}/PKG-INFO +1 -1
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/cpp_linter.egg-info/SOURCES.txt +1 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/cspell.config.yml +3 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/docs/conf.py +1 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/test_tools_output.py +42 -2
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/test_cli_args.py +11 -3
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/uv.lock +11 -10
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/.gitattributes +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/.github/FUNDING.yml +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/.github/dependabot.yml +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/.github/release-drafter.yml +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/.github/workflows/codeql.yml +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/.github/workflows/docs.yml +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/.github/workflows/pre-commit.yml +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/.github/workflows/stale.yml +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/.gitignore +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/.readthedocs.yaml +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/CONTRIBUTING.rst +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/LICENSE +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/README.rst +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/codecov.yml +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/cpp_linter/clang_tools/__init__.py +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/cpp_linter/clang_tools/clang_format.py +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/cpp_linter/clang_tools/clang_tidy.py +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/cpp_linter/clang_tools/patcher.py +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/cpp_linter/common_fs/__init__.py +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/cpp_linter/common_fs/file_filter.py +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/cpp_linter/git/git_str.py +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/cpp_linter/loggers.py +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/cpp_linter.egg-info/dependency_links.txt +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/cpp_linter.egg-info/entry_points.txt +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/cpp_linter.egg-info/not-zip-safe +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/cpp_linter.egg-info/requires.txt +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/cpp_linter.egg-info/top_level.txt +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/docs/API-Reference/cpp_linter.clang_tools.clang_format.rst +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/docs/API-Reference/cpp_linter.clang_tools.clang_tidy.rst +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/docs/API-Reference/cpp_linter.clang_tools.patcher.rst +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/docs/API-Reference/cpp_linter.clang_tools.rst +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/docs/API-Reference/cpp_linter.cli.rst +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/docs/API-Reference/cpp_linter.common_fs.file_filter.rst +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/docs/API-Reference/cpp_linter.common_fs.rst +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/docs/API-Reference/cpp_linter.git.git_str.rst +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/docs/API-Reference/cpp_linter.git.rst +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/docs/API-Reference/cpp_linter.loggers.rst +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/docs/API-Reference/cpp_linter.rest_api.github_api.rst +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/docs/API-Reference/cpp_linter.rest_api.rst +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/docs/API-Reference/cpp_linter.rst +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/docs/_static/extra_css.css +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/docs/_static/favicon.ico +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/docs/_static/logo.png +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/docs/building_docs.rst +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/docs/contributing.rst +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/docs/index.rst +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/docs/permissions.rst +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/docs/pr_review_caveats.rst +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/noxfile.py +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/pyproject.toml +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/setup.cfg +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/setup.py +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/chocolate-doom/chocolate-doom/.clang-format +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/chocolate-doom/chocolate-doom/.clang-tidy +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/chocolate-doom/chocolate-doom/67715d6e2725322e6132e9ff99b9a2a3f3b10c83/cache/opl/opl.c +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/chocolate-doom/chocolate-doom/67715d6e2725322e6132e9ff99b9a2a3f3b10c83/cache/opl/opl_sdl.c +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/chocolate-doom/chocolate-doom/67715d6e2725322e6132e9ff99b9a2a3f3b10c83/cache/pcsound/pcsound.c +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/chocolate-doom/chocolate-doom/67715d6e2725322e6132e9ff99b9a2a3f3b10c83/cache/pcsound/pcsound_sdl.c +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/chocolate-doom/chocolate-doom/67715d6e2725322e6132e9ff99b9a2a3f3b10c83/cache/src/i_musicpack.c +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/chocolate-doom/chocolate-doom/67715d6e2725322e6132e9ff99b9a2a3f3b10c83/cache/src/i_sdlmusic.c +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/chocolate-doom/chocolate-doom/67715d6e2725322e6132e9ff99b9a2a3f3b10c83/cache/src/i_sdlsound.c +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/chocolate-doom/chocolate-doom/67715d6e2725322e6132e9ff99b9a2a3f3b10c83/cache/src/i_sound.c +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/chocolate-doom/chocolate-doom/67715d6e2725322e6132e9ff99b9a2a3f3b10c83/cache/src/net_sdl.c +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/chocolate-doom/chocolate-doom/67715d6e2725322e6132e9ff99b9a2a3f3b10c83/expected-result_0.json +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/chocolate-doom/chocolate-doom/67715d6e2725322e6132e9ff99b9a2a3f3b10c83/expected-result_1.json +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/chocolate-doom/chocolate-doom/67715d6e2725322e6132e9ff99b9a2a3f3b10c83/expected-result_2.json +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/chocolate-doom/chocolate-doom/67715d6e2725322e6132e9ff99b9a2a3f3b10c83/patch.diff +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/chocolate-doom/chocolate-doom/71091562db5b0e7853d08ffa2f110af49cc3bc0d/cache/src/hexen/info.c +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/chocolate-doom/chocolate-doom/71091562db5b0e7853d08ffa2f110af49cc3bc0d/cache/src/hexen/p_enemy.c +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/chocolate-doom/chocolate-doom/71091562db5b0e7853d08ffa2f110af49cc3bc0d/cache/src/hexen/p_local.h +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/chocolate-doom/chocolate-doom/71091562db5b0e7853d08ffa2f110af49cc3bc0d/expected-result_0.json +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/chocolate-doom/chocolate-doom/71091562db5b0e7853d08ffa2f110af49cc3bc0d/expected-result_1.json +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/chocolate-doom/chocolate-doom/71091562db5b0e7853d08ffa2f110af49cc3bc0d/expected-result_2.json +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/chocolate-doom/chocolate-doom/71091562db5b0e7853d08ffa2f110af49cc3bc0d/patch.diff +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/cpp-linter/cpp-linter/950ff0b690e1903797c303c5fc8d9f3b52f1d3c5/cache/tests/demo/demo.cpp +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/cpp-linter/cpp-linter/950ff0b690e1903797c303c5fc8d9f3b52f1d3c5/cache/tests/demo/demo.hpp +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/cpp-linter/cpp-linter/950ff0b690e1903797c303c5fc8d9f3b52f1d3c5/patch.diff +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/cpp-linter/cpp-linter/test_git_lib.patch +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/libvips/libvips/.clang-format +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/libvips/libvips/.clang-tidy +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/libvips/libvips/fe82be345a5b654a76835a7aea5a804bd9ebff0a/expected-result_0.json +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/libvips/libvips/fe82be345a5b654a76835a7aea5a804bd9ebff0a/expected-result_1.json +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/libvips/libvips/fe82be345a5b654a76835a7aea5a804bd9ebff0a/expected-result_2.json +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/libvips/libvips/fe82be345a5b654a76835a7aea5a804bd9ebff0a/patch.diff +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/shenxianpeng/test-repo/.clang-format +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/shenxianpeng/test-repo/.clang-tidy +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/shenxianpeng/test-repo/662ad4cf90084063ea9c089b8de4aff0b8959d0e/cache/p_enemy.c +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/shenxianpeng/test-repo/662ad4cf90084063ea9c089b8de4aff0b8959d0e/expected-result_0.json +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/shenxianpeng/test-repo/662ad4cf90084063ea9c089b8de4aff0b8959d0e/expected-result_1.json +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/shenxianpeng/test-repo/662ad4cf90084063ea9c089b8de4aff0b8959d0e/expected-result_2.json +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/shenxianpeng/test-repo/662ad4cf90084063ea9c089b8de4aff0b8959d0e/patch.diff +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/test_database_path.py +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/comments/pr_22.json +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/comments/pr_comments_pg1.json +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/comments/pr_comments_pg2.json +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/comments/push_8d68756375e0483c7ac2b4d6bbbece420dbbb495.json +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/comments/push_comments_8d68756375e0483c7ac2b4d6bbbece420dbbb495.json +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/comments/test_comments.py +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/demo/.clang-format +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/demo/.clang-tidy +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/demo/compile_flags.txt +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/demo/demo.cpp +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/demo/demo.hpp +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/ignored_paths/.gitmodules +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/ignored_paths/test_ignored_paths.py +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/list_changes/patch.diff +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/list_changes/pull_request_files_pg1.json +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/list_changes/pull_request_files_pg2.json +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/list_changes/push_files_pg1.json +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/list_changes/push_files_pg2.json +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/list_changes/test_get_file_changes.py +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/reviews/.clang-format +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/reviews/.clang-tidy +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/reviews/pr_27.diff +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/reviews/pr_27.json +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/reviews/pr_review_comments.json +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/reviews/pr_reviews.json +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/reviews/test_pr_review.py +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/test_comment_length.py +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/test_git_str.py +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/test_misc.py +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/test_parse_clang_tidy_stdout.py +0 -0
- {cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/test_rate_limits.py +0 -0
|
@@ -12,11 +12,11 @@ jobs:
|
|
|
12
12
|
analyze-ci:
|
|
13
13
|
runs-on: ubuntu-latest
|
|
14
14
|
steps:
|
|
15
|
-
- uses: actions/checkout@
|
|
15
|
+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
16
16
|
with:
|
|
17
17
|
persist-credentials: false
|
|
18
18
|
- name: Set up Python
|
|
19
|
-
uses: actions/setup-python@
|
|
19
|
+
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
|
20
20
|
with:
|
|
21
21
|
python-version: '3.x'
|
|
22
22
|
- name: Run zizmor
|
|
@@ -12,6 +12,6 @@ jobs:
|
|
|
12
12
|
contents: read
|
|
13
13
|
pull-requests: write
|
|
14
14
|
steps:
|
|
15
|
-
- uses: release-drafter/release-drafter@
|
|
15
|
+
- uses: release-drafter/release-drafter@6db134d15f3909ccc9eefd369f02bd1e9cffdf97 # v6.2.0
|
|
16
16
|
env:
|
|
17
17
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -16,6 +16,6 @@ jobs:
|
|
|
16
16
|
contents: write
|
|
17
17
|
pull-requests: read
|
|
18
18
|
steps:
|
|
19
|
-
- uses: release-drafter/release-drafter@
|
|
19
|
+
- uses: release-drafter/release-drafter@6db134d15f3909ccc9eefd369f02bd1e9cffdf97 # v6.2.0
|
|
20
20
|
env:
|
|
21
21
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -20,19 +20,19 @@ jobs:
|
|
|
20
20
|
build:
|
|
21
21
|
runs-on: ubuntu-latest
|
|
22
22
|
steps:
|
|
23
|
-
- uses: actions/checkout@
|
|
23
|
+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
24
24
|
# use fetch --all for setuptools_scm to work
|
|
25
25
|
with:
|
|
26
26
|
fetch-depth: 0
|
|
27
27
|
persist-credentials: false
|
|
28
28
|
- name: Set up Python
|
|
29
|
-
uses: actions/setup-python@
|
|
29
|
+
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
|
30
30
|
with:
|
|
31
31
|
python-version: '3.x'
|
|
32
32
|
- name: Build distributions
|
|
33
33
|
run: pipx run build -o dist
|
|
34
34
|
- name: Upload builds as artifacts
|
|
35
|
-
uses: actions/upload-artifact@
|
|
35
|
+
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
|
|
36
36
|
with:
|
|
37
37
|
path: dist
|
|
38
38
|
name: wheels
|
|
@@ -45,13 +45,13 @@ jobs:
|
|
|
45
45
|
id-token: write
|
|
46
46
|
steps:
|
|
47
47
|
- name: Download distributions
|
|
48
|
-
uses: actions/download-artifact@
|
|
48
|
+
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
|
|
49
49
|
with:
|
|
50
50
|
name: wheels
|
|
51
51
|
path: dist
|
|
52
52
|
- name: Set up Python
|
|
53
53
|
if: ${{ !startsWith(github.ref, 'refs/tags/') }}
|
|
54
|
-
uses: actions/setup-python@
|
|
54
|
+
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
|
55
55
|
with:
|
|
56
56
|
python-version: '3.x'
|
|
57
57
|
- name: Check distributions
|
|
@@ -36,11 +36,11 @@ jobs:
|
|
|
36
36
|
|
|
37
37
|
runs-on: ${{ matrix.os }}
|
|
38
38
|
steps:
|
|
39
|
-
- uses: actions/checkout@
|
|
39
|
+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
40
40
|
with:
|
|
41
41
|
persist-credentials: false
|
|
42
42
|
|
|
43
|
-
- uses: actions/setup-python@
|
|
43
|
+
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
|
44
44
|
with:
|
|
45
45
|
python-version: 3.x
|
|
46
46
|
|
|
@@ -60,7 +60,7 @@ jobs:
|
|
|
60
60
|
# sudo cmake --install build
|
|
61
61
|
|
|
62
62
|
- name: Install uv
|
|
63
|
-
uses: astral-sh/setup-uv@
|
|
63
|
+
uses: astral-sh/setup-uv@803947b9bd8e9f986429fa0c5a41c367cd732b41 # v7.2.1
|
|
64
64
|
with:
|
|
65
65
|
enable-cache: true
|
|
66
66
|
cache-dependency-glob: "uv.lock"
|
|
@@ -112,7 +112,7 @@ jobs:
|
|
|
112
112
|
run: uvx nox -s test-all -- -m "${PYTEST_ARGS}"
|
|
113
113
|
|
|
114
114
|
- name: Upload coverage data
|
|
115
|
-
uses: actions/upload-artifact@
|
|
115
|
+
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
|
|
116
116
|
with:
|
|
117
117
|
name: coverage-data-${{ runner.os }}-${{ matrix.version }}
|
|
118
118
|
path: .coverage*
|
|
@@ -122,23 +122,23 @@ jobs:
|
|
|
122
122
|
needs: [test]
|
|
123
123
|
runs-on: ubuntu-latest
|
|
124
124
|
steps:
|
|
125
|
-
- uses: actions/checkout@
|
|
125
|
+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
126
126
|
with:
|
|
127
127
|
persist-credentials: false
|
|
128
128
|
|
|
129
129
|
- name: Download all artifacts
|
|
130
|
-
uses: actions/download-artifact@
|
|
130
|
+
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
|
|
131
131
|
with:
|
|
132
132
|
pattern: coverage-data-*
|
|
133
133
|
merge-multiple: true
|
|
134
134
|
|
|
135
135
|
- name: Setup python
|
|
136
|
-
uses: actions/setup-python@
|
|
136
|
+
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
|
137
137
|
with:
|
|
138
138
|
python-version: '3.x'
|
|
139
139
|
|
|
140
140
|
- name: Install uv
|
|
141
|
-
uses: astral-sh/setup-uv@
|
|
141
|
+
uses: astral-sh/setup-uv@803947b9bd8e9f986429fa0c5a41c367cd732b41 # v7.2.1
|
|
142
142
|
with:
|
|
143
143
|
enable-cache: true
|
|
144
144
|
cache-dependency-glob: "uv.lock"
|
|
@@ -147,12 +147,12 @@ jobs:
|
|
|
147
147
|
run: uvx nox -s coverage
|
|
148
148
|
|
|
149
149
|
- name: Upload comprehensive coverage HTML report
|
|
150
|
-
uses: actions/upload-artifact@
|
|
150
|
+
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
|
|
151
151
|
with:
|
|
152
152
|
name: coverage-report
|
|
153
153
|
path: htmlcov/
|
|
154
154
|
|
|
155
|
-
- uses: codecov/codecov-action@
|
|
155
|
+
- uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
|
|
156
156
|
env:
|
|
157
157
|
CODECOV_TOKEN: ${{secrets.CODECOV_TOKEN}}
|
|
158
158
|
with:
|
|
@@ -20,14 +20,14 @@ repos:
|
|
|
20
20
|
args: ["--fix=lf"]
|
|
21
21
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
22
22
|
# Ruff version.
|
|
23
|
-
rev: v0.
|
|
23
|
+
rev: v0.14.10
|
|
24
24
|
hooks:
|
|
25
25
|
# Run the linter.
|
|
26
26
|
- id: ruff-check
|
|
27
27
|
# Run the formatter.
|
|
28
28
|
- id: ruff-format
|
|
29
29
|
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
30
|
-
rev: 'v1.
|
|
30
|
+
rev: 'v1.19.1'
|
|
31
31
|
hooks:
|
|
32
32
|
- id: mypy
|
|
33
33
|
additional_dependencies:
|
|
@@ -38,6 +38,6 @@ repos:
|
|
|
38
38
|
- requests-mock
|
|
39
39
|
- '.'
|
|
40
40
|
- repo: https://github.com/streetsidesoftware/cspell-cli
|
|
41
|
-
rev: v9.
|
|
41
|
+
rev: v9.4.0
|
|
42
42
|
hooks:
|
|
43
43
|
- id: cspell
|
|
@@ -50,6 +50,8 @@ def main():
|
|
|
50
50
|
files = rest_api_client.get_list_of_changed_files(
|
|
51
51
|
file_filter=global_file_filter,
|
|
52
52
|
lines_changed_only=args.lines_changed_only,
|
|
53
|
+
diff_base=args.diff_base,
|
|
54
|
+
ignore_index=args.ignore_index,
|
|
53
55
|
)
|
|
54
56
|
rest_api_client.verify_files_are_present(files)
|
|
55
57
|
else:
|
|
@@ -61,6 +63,8 @@ def main():
|
|
|
61
63
|
git_changes = rest_api_client.get_list_of_changed_files(
|
|
62
64
|
file_filter=global_file_filter,
|
|
63
65
|
lines_changed_only=0, # prevent filtering out unchanged files
|
|
66
|
+
diff_base=args.diff_base,
|
|
67
|
+
ignore_index=args.ignore_index,
|
|
64
68
|
)
|
|
65
69
|
# merge info from git changes into list of all files
|
|
66
70
|
for git_file in git_changes:
|
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '1.
|
|
32
|
-
__version_tuple__ = version_tuple = (1,
|
|
31
|
+
__version__ = version = '1.12.0'
|
|
32
|
+
__version_tuple__ = version_tuple = (1, 12, 0)
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'gb3c28b66d'
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import argparse
|
|
4
4
|
from collections import UserDict
|
|
5
|
-
from typing import Optional, List, Dict, Any, Sequence
|
|
5
|
+
from typing import Optional, List, Dict, Any, Sequence, Union
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
class Args(UserDict):
|
|
@@ -13,6 +13,10 @@ class Args(UserDict):
|
|
|
13
13
|
verbosity: bool = False
|
|
14
14
|
#: See :std:option:`--database`.
|
|
15
15
|
database: str = ""
|
|
16
|
+
#: See :std:option:`--diff-base`.
|
|
17
|
+
diff_base: Optional[Union[int, str]] = None
|
|
18
|
+
#: See :std:option:`--ignore-index`.
|
|
19
|
+
ignore_index: bool = False
|
|
16
20
|
#: See :std:option:`--style`.
|
|
17
21
|
style: str = "llvm"
|
|
18
22
|
#: See :std:option:`--tidy-checks`.
|
|
@@ -108,6 +112,28 @@ tree.
|
|
|
108
112
|
path. Otherwise, cpp-linter will have difficulty
|
|
109
113
|
parsing clang-tidy output.""",
|
|
110
114
|
)
|
|
115
|
+
_parser_args[("-b", "--diff-base")] = dict(
|
|
116
|
+
default=None,
|
|
117
|
+
type=lambda input: int(input) if input.isdigit() else str(input),
|
|
118
|
+
help="""The specific commit or git revision to use
|
|
119
|
+
as the base for any git diffs. For example, may be ``HEAD~5``
|
|
120
|
+
for the last five commits, or a branch name for the history
|
|
121
|
+
diff since the common ancestor. If given as an integer, n, it
|
|
122
|
+
will be treated as ``HEAD~n``. When not set, diff behavior
|
|
123
|
+
depends on the presence of staged files. This option only
|
|
124
|
+
applies to contexts in which GitHub CI is not present/used.
|
|
125
|
+
|
|
126
|
+
Defaults to ``%(default)s``""",
|
|
127
|
+
)
|
|
128
|
+
_parser_args[("--ignore-index",)] = dict(
|
|
129
|
+
default=False,
|
|
130
|
+
action="store_true",
|
|
131
|
+
help="""Enabling this switch will ignore
|
|
132
|
+
any staged files in the index when producing a diff.
|
|
133
|
+
Useful when used with :std:option:`--diff-base`.
|
|
134
|
+
|
|
135
|
+
Defaults to ``%(default)s``""",
|
|
136
|
+
)
|
|
111
137
|
_parser_args[("-s", "--style")] = dict(
|
|
112
138
|
default="llvm",
|
|
113
139
|
help="""The style rules to use.
|
|
@@ -26,8 +26,8 @@ from ..loggers import logger
|
|
|
26
26
|
from .git_str import parse_diff as legacy_parse_diff
|
|
27
27
|
|
|
28
28
|
|
|
29
|
-
def get_sha(repo: Repository, parent: Optional[int] = None) -> GitObject:
|
|
30
|
-
"""Uses ``git`` to fetch the full SHA hash of
|
|
29
|
+
def get_sha(repo: Repository, parent: Optional[Union[int, str]] = None) -> GitObject:
|
|
30
|
+
"""Uses ``git`` to fetch the full SHA hash of a commit.
|
|
31
31
|
|
|
32
32
|
.. note::
|
|
33
33
|
This function is only used in local development environments, not in a
|
|
@@ -36,10 +36,15 @@ def get_sha(repo: Repository, parent: Optional[int] = None) -> GitObject:
|
|
|
36
36
|
:param repo: The object representing the git repository.
|
|
37
37
|
:param parent: This parameter's default value will fetch the SHA of the last commit.
|
|
38
38
|
Set this parameter to the number of parent commits from the current tree's HEAD
|
|
39
|
-
to get the desired commit's SHA hash instead.
|
|
40
|
-
:returns: A `
|
|
39
|
+
or a valid git revision to get the desired commit's SHA hash instead.
|
|
40
|
+
:returns: A `pygit2.Object` representing the resolved commit.
|
|
41
41
|
"""
|
|
42
|
-
|
|
42
|
+
head = "HEAD"
|
|
43
|
+
if isinstance(parent, str):
|
|
44
|
+
head = parent
|
|
45
|
+
if isinstance(parent, int):
|
|
46
|
+
head += f"~{parent}"
|
|
47
|
+
return repo.revparse_single(head)
|
|
43
48
|
|
|
44
49
|
|
|
45
50
|
STAGED_STATUS = (
|
|
@@ -49,11 +54,18 @@ STAGED_STATUS = (
|
|
|
49
54
|
)
|
|
50
55
|
|
|
51
56
|
|
|
52
|
-
def get_diff(
|
|
57
|
+
def get_diff(
|
|
58
|
+
parents: Optional[Union[int, str]] = None, ignore_index: bool = False
|
|
59
|
+
) -> Diff:
|
|
53
60
|
"""Retrieve the diff info about a specified commit.
|
|
54
61
|
|
|
55
|
-
:param parents: The
|
|
56
|
-
|
|
62
|
+
:param parents: The commit or ref to use as the base of the diff.
|
|
63
|
+
If set to None, and there are staged changes to be used, then it will be HEAD and
|
|
64
|
+
the diff will consist of just the staged changes. If there are no staged changes or
|
|
65
|
+
the index is ignored, it will be HEAD~1.
|
|
66
|
+
:param ignore_index: Setting this flag to ``true`` will ignore any staged files
|
|
67
|
+
in the index when producing a diff.
|
|
68
|
+
:returns: A `pygit2.Diff` object representing the fetched diff.
|
|
57
69
|
"""
|
|
58
70
|
repo = Repository(".")
|
|
59
71
|
head = get_sha(repo)
|
|
@@ -64,12 +76,18 @@ def get_diff(parents: int = 1) -> Diff:
|
|
|
64
76
|
has_staged_files = True
|
|
65
77
|
break
|
|
66
78
|
|
|
67
|
-
|
|
79
|
+
use_index = not ignore_index and has_staged_files
|
|
80
|
+
|
|
81
|
+
if not use_index and parents is None:
|
|
82
|
+
parents = 1
|
|
83
|
+
|
|
84
|
+
base = get_sha(repo, parents)
|
|
85
|
+
|
|
86
|
+
if use_index:
|
|
68
87
|
index = repo.index
|
|
69
|
-
diff_obj = index.diff_to_tree(cast(Commit,
|
|
70
|
-
diff_name = f"HEAD...{
|
|
88
|
+
diff_obj = index.diff_to_tree(cast(Commit, base).tree)
|
|
89
|
+
diff_name = f"HEAD...{base.short_id}"
|
|
71
90
|
else:
|
|
72
|
-
base = get_sha(repo, parents) # only concerned with latest commit's diff
|
|
73
91
|
diff_obj = repo.diff(base, head)
|
|
74
92
|
diff_name = f"{head.short_id}...{base.short_id}"
|
|
75
93
|
|
|
@@ -6,7 +6,7 @@ from abc import ABC
|
|
|
6
6
|
from pathlib import PurePath
|
|
7
7
|
import sys
|
|
8
8
|
import time
|
|
9
|
-
from typing import Optional, Dict, List, Any, cast, NamedTuple
|
|
9
|
+
from typing import Optional, Dict, List, Any, cast, NamedTuple, Union
|
|
10
10
|
import requests
|
|
11
11
|
from ..common_fs import FileObj
|
|
12
12
|
from ..common_fs.file_filter import FileFilter
|
|
@@ -161,11 +161,27 @@ class RestApiClient(ABC):
|
|
|
161
161
|
self,
|
|
162
162
|
file_filter: FileFilter,
|
|
163
163
|
lines_changed_only: int,
|
|
164
|
+
diff_base: Optional[Union[int, str]] = None,
|
|
165
|
+
ignore_index: bool = False,
|
|
164
166
|
) -> List[FileObj]:
|
|
165
167
|
"""Fetch a list of the event's changed files.
|
|
166
168
|
|
|
167
169
|
:param file_filter: A `FileFilter` obj to filter files.
|
|
168
170
|
:param lines_changed_only: A value that dictates what file changes to focus on.
|
|
171
|
+
:param diff_base: The commit or ref to use as the base of the diff.
|
|
172
|
+
|
|
173
|
+
.. csv-table::
|
|
174
|
+
:header-rows: 1
|
|
175
|
+
|
|
176
|
+
"Parameter Value", "Git index state", "Scope of diff"
|
|
177
|
+
"`None` (the default)", "No staged changes", "``HEAD~1..HEAD``"
|
|
178
|
+
"`None` (the default)", "Has staged changes", "``HEAD..index``"
|
|
179
|
+
"`int` (eg ``2``) or `str` (eg ``HEAD~2``)", "No staged changes", "``HEAD~2..HEAD``"
|
|
180
|
+
"`int` (eg ``2``) or `str` (eg ``HEAD~2``)", "Has staged changes", "``HEAD~2..index``"
|
|
181
|
+
|
|
182
|
+
Use ``ignore_index`` parameter to exclude the staged changes in the local index.
|
|
183
|
+
:param ignore_index: Setting this flag to `True` will ignore any staged changes
|
|
184
|
+
in the index when producing a diff.
|
|
169
185
|
"""
|
|
170
186
|
raise NotImplementedError("must be implemented in the derivative")
|
|
171
187
|
|
|
@@ -15,7 +15,7 @@ from os import environ
|
|
|
15
15
|
from pathlib import Path
|
|
16
16
|
import urllib.parse
|
|
17
17
|
import sys
|
|
18
|
-
from typing import Dict, List, Any, cast, Optional
|
|
18
|
+
from typing import Dict, List, Any, cast, Optional, Union
|
|
19
19
|
|
|
20
20
|
from ..common_fs import FileObj, CACHE_PATH
|
|
21
21
|
from ..common_fs.file_filter import FileFilter
|
|
@@ -92,6 +92,8 @@ class GithubApiClient(RestApiClient):
|
|
|
92
92
|
self,
|
|
93
93
|
file_filter: FileFilter,
|
|
94
94
|
lines_changed_only: int,
|
|
95
|
+
diff_base: Optional[Union[int, str]] = None,
|
|
96
|
+
ignore_index: bool = False,
|
|
95
97
|
) -> List[FileObj]:
|
|
96
98
|
if environ.get("CI", "false") == "true":
|
|
97
99
|
files_link = f"{self.api_url}/repos/{self.repo}/"
|
|
@@ -114,7 +116,9 @@ class GithubApiClient(RestApiClient):
|
|
|
114
116
|
files_link, lines_changed_only, file_filter
|
|
115
117
|
)
|
|
116
118
|
return parse_diff(response.text, file_filter, lines_changed_only)
|
|
117
|
-
return parse_diff(
|
|
119
|
+
return parse_diff(
|
|
120
|
+
get_diff(diff_base, ignore_index), file_filter, lines_changed_only
|
|
121
|
+
)
|
|
118
122
|
|
|
119
123
|
def _get_changed_files_paginated(
|
|
120
124
|
self, url: Optional[str], lines_changed_only: int, file_filter: FileFilter
|
|
@@ -7,7 +7,7 @@ from pathlib import Path
|
|
|
7
7
|
import urllib.parse
|
|
8
8
|
import re
|
|
9
9
|
import shutil
|
|
10
|
-
from typing import Dict, cast, List, Optional
|
|
10
|
+
from typing import Dict, cast, List, Optional, Tuple, Union
|
|
11
11
|
import warnings
|
|
12
12
|
|
|
13
13
|
import pygit2 # type: ignore
|
|
@@ -15,7 +15,7 @@ import pytest
|
|
|
15
15
|
import requests_mock
|
|
16
16
|
|
|
17
17
|
from cpp_linter.common_fs import FileObj, CACHE_PATH
|
|
18
|
-
from cpp_linter.git import parse_diff, get_diff
|
|
18
|
+
from cpp_linter.git import parse_diff, get_diff, get_sha
|
|
19
19
|
from cpp_linter.clang_tools import capture_clang_tools_output, ClangVersions
|
|
20
20
|
from cpp_linter.clang_tools.clang_format import tally_format_advice
|
|
21
21
|
from cpp_linter.clang_tools.clang_tidy import tally_tidy_advice
|
|
@@ -172,6 +172,46 @@ def prep_tmp_dir(
|
|
|
172
172
|
return (gh_client, files)
|
|
173
173
|
|
|
174
174
|
|
|
175
|
+
@pytest.mark.parametrize(
|
|
176
|
+
"repo_commit_pair",
|
|
177
|
+
[
|
|
178
|
+
(TEST_REPO_COMMIT_PAIRS[3]),
|
|
179
|
+
],
|
|
180
|
+
ids=lambda pair: pair["repo"],
|
|
181
|
+
)
|
|
182
|
+
@pytest.mark.parametrize(
|
|
183
|
+
"ref_pair",
|
|
184
|
+
[
|
|
185
|
+
(None, "HEAD"),
|
|
186
|
+
("HEAD", "HEAD"),
|
|
187
|
+
(2, "HEAD~2"),
|
|
188
|
+
],
|
|
189
|
+
ids=["none", "HEAD", 2],
|
|
190
|
+
)
|
|
191
|
+
def test_get_sha(
|
|
192
|
+
tmp_path: Path,
|
|
193
|
+
monkeypatch: pytest.MonkeyPatch,
|
|
194
|
+
repo_commit_pair: Dict[str, str],
|
|
195
|
+
ref_pair: Tuple[Optional[Union[int, str]], str],
|
|
196
|
+
):
|
|
197
|
+
"""Test sha resolution with get_sha."""
|
|
198
|
+
repo_name, _ = repo_commit_pair["repo"], repo_commit_pair["commit"]
|
|
199
|
+
repo_cache = tmp_path.parent / repo_name / "HEAD"
|
|
200
|
+
repo_cache.mkdir(parents=True, exist_ok=True)
|
|
201
|
+
monkeypatch.chdir(str(repo_cache))
|
|
202
|
+
if not (repo_cache / ".git").exists():
|
|
203
|
+
pygit2.clone_repository(f"https://github.com/{repo_name}", ".")
|
|
204
|
+
repo_path = tmp_path / repo_name.split("/")[1]
|
|
205
|
+
shutil.copytree(str(repo_cache), str(repo_path))
|
|
206
|
+
monkeypatch.chdir(repo_path)
|
|
207
|
+
|
|
208
|
+
repo = pygit2.Repository(".")
|
|
209
|
+
our_ref, their_ref = ref_pair
|
|
210
|
+
our_sha = get_sha(repo, our_ref)
|
|
211
|
+
their_sha = repo.revparse_single(their_ref)
|
|
212
|
+
assert our_sha == their_sha
|
|
213
|
+
|
|
214
|
+
|
|
175
215
|
@pytest.mark.parametrize(
|
|
176
216
|
"repo_commit_pair",
|
|
177
217
|
[
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"""Tests related parsing input from CLI arguments."""
|
|
2
2
|
|
|
3
|
-
from typing import List, Union
|
|
3
|
+
from typing import List, Optional, Union
|
|
4
4
|
import pytest
|
|
5
5
|
from cpp_linter.cli import get_cli_parser, Args
|
|
6
6
|
|
|
@@ -11,6 +11,9 @@ from cpp_linter.cli import get_cli_parser, Args
|
|
|
11
11
|
[
|
|
12
12
|
("verbosity", "10", "verbosity", True),
|
|
13
13
|
("database", "build", "database", "build"),
|
|
14
|
+
("diff-base", "5", "diff_base", 5),
|
|
15
|
+
("diff-base", "main", "diff_base", "main"),
|
|
16
|
+
("ignore-index", None, "ignore_index", True),
|
|
14
17
|
("style", "file", "style", "file"),
|
|
15
18
|
("tidy-checks", "-*", "tidy_checks", "-*"),
|
|
16
19
|
("version", "14", "version", "14"),
|
|
@@ -41,12 +44,17 @@ from cpp_linter.cli import get_cli_parser, Args
|
|
|
41
44
|
)
|
|
42
45
|
def test_arg_parser(
|
|
43
46
|
arg_name: str,
|
|
44
|
-
arg_value: str,
|
|
47
|
+
arg_value: Optional[str],
|
|
45
48
|
attr_name: str,
|
|
46
49
|
attr_value: Union[int, str, List[str], bool, None],
|
|
47
50
|
):
|
|
48
51
|
"""parameterized test of specific args compared to their parsed value"""
|
|
49
|
-
|
|
52
|
+
if arg_value is None:
|
|
53
|
+
args = get_cli_parser().parse_args([f"--{arg_name}"], namespace=Args())
|
|
54
|
+
else:
|
|
55
|
+
args = get_cli_parser().parse_args(
|
|
56
|
+
[f"--{arg_name}={arg_value}"], namespace=Args()
|
|
57
|
+
)
|
|
50
58
|
assert getattr(args, attr_name) == attr_value
|
|
51
59
|
assert args.command is None
|
|
52
60
|
|
|
@@ -655,15 +655,15 @@ wheels = [
|
|
|
655
655
|
|
|
656
656
|
[[package]]
|
|
657
657
|
name = "filelock"
|
|
658
|
-
version = "3.20.
|
|
658
|
+
version = "3.20.3"
|
|
659
659
|
source = { registry = "https://pypi.org/simple" }
|
|
660
660
|
resolution-markers = [
|
|
661
661
|
"python_full_version >= '3.11'",
|
|
662
662
|
"python_full_version == '3.10.*'",
|
|
663
663
|
]
|
|
664
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
664
|
+
sdist = { url = "https://files.pythonhosted.org/packages/1d/65/ce7f1b70157833bf3cb851b556a37d4547ceafc158aa9b34b36782f23696/filelock-3.20.3.tar.gz", hash = "sha256:18c57ee915c7ec61cff0ecf7f0f869936c7c30191bb0cf406f1341778d0834e1", size = 19485, upload-time = "2026-01-09T17:55:05.421Z" }
|
|
665
665
|
wheels = [
|
|
666
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
666
|
+
{ url = "https://files.pythonhosted.org/packages/b5/36/7fb70f04bf00bc646cd5bb45aa9eddb15e19437a28b8fb2b4a5249fac770/filelock-3.20.3-py3-none-any.whl", hash = "sha256:4b0dda527ee31078689fc205ec4f1c1bf7d56cf88b6dc9426c4f230e46c2dce1", size = 16701, upload-time = "2026-01-09T17:55:04.334Z" },
|
|
667
667
|
]
|
|
668
668
|
|
|
669
669
|
[[package]]
|
|
@@ -907,6 +907,7 @@ wheels = [
|
|
|
907
907
|
name = "meson"
|
|
908
908
|
version = "1.9.1"
|
|
909
909
|
source = { registry = "https://pypi.org/simple" }
|
|
910
|
+
sdist = { url = "https://files.pythonhosted.org/packages/48/d8/6c1dd1c740b7d5fd73a6ad67900a09e3dd6642013f58fa9e22ae6faaffc7/meson-1.9.1.tar.gz", hash = "sha256:4e076606f2afff7881d195574bddcd8d89286f35a17b4977a216f535dc0c74ac", size = 5083044, upload-time = "2025-11-13T00:38:38.509Z" }
|
|
910
911
|
wheels = [
|
|
911
912
|
{ url = "https://files.pythonhosted.org/packages/9c/07/b48592d325cb86682829f05216e4efb2dc881762b8f1bafb48b57442307a/meson-1.9.1-py3-none-any.whl", hash = "sha256:f824ab770c041a202f532f69e114c971918ed2daff7ea56583d80642564598d0", size = 1030356, upload-time = "2025-09-22T18:39:37.458Z" },
|
|
912
913
|
]
|
|
@@ -1847,28 +1848,28 @@ wheels = [
|
|
|
1847
1848
|
|
|
1848
1849
|
[[package]]
|
|
1849
1850
|
name = "urllib3"
|
|
1850
|
-
version = "2.
|
|
1851
|
+
version = "2.6.3"
|
|
1851
1852
|
source = { registry = "https://pypi.org/simple" }
|
|
1852
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1853
|
+
sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556, upload-time = "2026-01-07T16:24:43.925Z" }
|
|
1853
1854
|
wheels = [
|
|
1854
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1855
|
+
{ url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", size = 131584, upload-time = "2026-01-07T16:24:42.685Z" },
|
|
1855
1856
|
]
|
|
1856
1857
|
|
|
1857
1858
|
[[package]]
|
|
1858
1859
|
name = "virtualenv"
|
|
1859
|
-
version = "20.
|
|
1860
|
+
version = "20.36.1"
|
|
1860
1861
|
source = { registry = "https://pypi.org/simple" }
|
|
1861
1862
|
dependencies = [
|
|
1862
1863
|
{ name = "distlib" },
|
|
1863
1864
|
{ name = "filelock", version = "3.19.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
|
|
1864
|
-
{ name = "filelock", version = "3.20.
|
|
1865
|
+
{ name = "filelock", version = "3.20.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
|
|
1865
1866
|
{ name = "platformdirs", version = "4.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
|
|
1866
1867
|
{ name = "platformdirs", version = "4.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
|
|
1867
1868
|
{ name = "typing-extensions", marker = "python_full_version < '3.11'" },
|
|
1868
1869
|
]
|
|
1869
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1870
|
+
sdist = { url = "https://files.pythonhosted.org/packages/aa/a3/4d310fa5f00863544e1d0f4de93bddec248499ccf97d4791bc3122c9d4f3/virtualenv-20.36.1.tar.gz", hash = "sha256:8befb5c81842c641f8ee658481e42641c68b5eab3521d8e092d18320902466ba", size = 6032239, upload-time = "2026-01-09T18:21:01.296Z" }
|
|
1870
1871
|
wheels = [
|
|
1871
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1872
|
+
{ url = "https://files.pythonhosted.org/packages/6a/2a/dc2228b2888f51192c7dc766106cd475f1b768c10caaf9727659726f7391/virtualenv-20.36.1-py3-none-any.whl", hash = "sha256:575a8d6b124ef88f6f51d56d656132389f961062a9177016a50e4f507bbcc19f", size = 6008258, upload-time = "2026-01-09T18:20:59.425Z" },
|
|
1872
1873
|
]
|
|
1873
1874
|
|
|
1874
1875
|
[[package]]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cpp_linter-1.11.4 → cpp_linter-1.12.0}/docs/API-Reference/cpp_linter.clang_tools.clang_format.rst
RENAMED
|
File without changes
|
{cpp_linter-1.11.4 → cpp_linter-1.12.0}/docs/API-Reference/cpp_linter.clang_tools.clang_tidy.rst
RENAMED
|
File without changes
|
{cpp_linter-1.11.4 → cpp_linter-1.12.0}/docs/API-Reference/cpp_linter.clang_tools.patcher.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cpp_linter-1.11.4 → cpp_linter-1.12.0}/docs/API-Reference/cpp_linter.common_fs.file_filter.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cpp_linter-1.11.4 → cpp_linter-1.12.0}/docs/API-Reference/cpp_linter.rest_api.github_api.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/libvips/libvips/.clang-format
RENAMED
|
File without changes
|
{cpp_linter-1.11.4 → cpp_linter-1.12.0}/tests/capture_tools_output/libvips/libvips/.clang-tidy
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|