From 40e4679338381287718a9f6641a3093183ed5422 Mon Sep 17 00:00:00 2001 From: Brendan <2bndy5@gmail.com> Date: Wed, 18 Feb 2026 20:32:07 -0800 Subject: [PATCH 1/5] refactor: install clang tools on demand In order of precedence, this patch allows installing clang tools from 1. PyPI (downloaded wheels are verified using SHA256 or Bake2b256) 2. system package manager(s) (if available) 3. static binaries (verified with accompanied SHA512 checksum) Also upgrade cargo/rust dependencies. --- .config/nextest.toml | 13 +- .github/workflows/benchmark.yml | 2 +- .github/workflows/binary-builds.yml | 2 +- .pre-commit-config.yaml | 2 +- Cargo.lock | 1080 +- Cargo.toml | 19 +- bindings/node/Cargo.toml | 6 +- bindings/node/src/lib.rs | 11 +- bindings/python/Cargo.toml | 6 +- clang-installer/Cargo.toml | 52 + clang-installer/README.md | 12 + clang-installer/src/cli.rs | 41 + clang-installer/src/downloader/caching.rs | 44 + clang-installer/src/downloader/hashing.rs | 157 + clang-installer/src/downloader/mod.rs | 146 + .../src/downloader/native_packages/mod.rs | 138 + .../src/downloader/native_packages/unix.rs | 183 + .../src/downloader/native_packages/windows.rs | 188 + clang-installer/src/downloader/pypi.rs | 548 + clang-installer/src/downloader/static_dist.rs | 174 + clang-installer/src/lib.rs | 28 + clang-installer/src/main.rs | 122 + clang-installer/src/progress_bar.rs | 162 + clang-installer/src/tool.rs | 260 + clang-installer/src/utils.rs | 71 + clang-installer/src/version.rs | 254 + clang-installer/tests/common.rs | 89 + clang-installer/tests/pypi.rs | 48 + clang-installer/tests/pypi_clang-format.json | 17494 ++++++++++++++++ clang-installer/tests/static_dist.rs | 52 + cpp-linter/Cargo.toml | 37 +- cpp-linter/src/clang_tools/clang_tidy.rs | 9 +- cpp-linter/src/clang_tools/mod.rs | 209 +- cpp-linter/src/cli/mod.rs | 3 +- cpp-linter/src/cli/structs.rs | 91 +- cpp-linter/src/common_fs/mod.rs | 72 +- cpp-linter/src/logger.rs | 1 + cpp-linter/src/rest_api/github/mod.rs | 5 +- cpp-linter/src/rest_api/mod.rs | 4 +- cpp-linter/src/run.rs | 3 +- cspell.config.yml | 7 +- docs/Cargo.toml | 4 +- nurfile | 8 +- 43 files changed, 21321 insertions(+), 536 deletions(-) create mode 100644 clang-installer/Cargo.toml create mode 100644 clang-installer/README.md create mode 100644 clang-installer/src/cli.rs create mode 100644 clang-installer/src/downloader/caching.rs create mode 100644 clang-installer/src/downloader/hashing.rs create mode 100644 clang-installer/src/downloader/mod.rs create mode 100644 clang-installer/src/downloader/native_packages/mod.rs create mode 100644 clang-installer/src/downloader/native_packages/unix.rs create mode 100644 clang-installer/src/downloader/native_packages/windows.rs create mode 100644 clang-installer/src/downloader/pypi.rs create mode 100644 clang-installer/src/downloader/static_dist.rs create mode 100644 clang-installer/src/lib.rs create mode 100644 clang-installer/src/main.rs create mode 100644 clang-installer/src/progress_bar.rs create mode 100644 clang-installer/src/tool.rs create mode 100644 clang-installer/src/utils.rs create mode 100644 clang-installer/src/version.rs create mode 100644 clang-installer/tests/common.rs create mode 100644 clang-installer/tests/pypi.rs create mode 100644 clang-installer/tests/pypi_clang-format.json create mode 100644 clang-installer/tests/static_dist.rs diff --git a/.config/nextest.toml b/.config/nextest.toml index bdc6d132..8d941a76 100644 --- a/.config/nextest.toml +++ b/.config/nextest.toml @@ -3,11 +3,19 @@ nextest-version = "0.9.77" [profile.default] # A profile to run most tests, except tests that run longer than 10 seconds -default-filter = "not test(#*rate_limit_secondary) - test(#git::test::with_*) - test(#repo_get_sha)" +default-filter = """\ + not test(#*rate_limit_secondary) \ + - test(#git::test::with_*) \ + - test(#git::test::repo_get_sha) \ + - test(#*eval_static_dist) +""" # This will flag any test that runs longer than 10 seconds. Useful when writing new tests. slow-timeout = "10s" +# show which tests were skipped +status-level = "skip" + [profile.ci] # A profile to run only tests that use clang-tidy and/or clang-format # NOTE: This profile is intended to keep CI runtime low. Locally, use default or all profiles @@ -15,9 +23,6 @@ slow-timeout = "10s" # This is all tests in tests/ folder + unit test for --extra-args. default-filter = "kind(test) + test(#*use_extra_args)" -# show which tests were skipped -status-level = "skip" - # show log output from each test success-output = "final" failure-output = "immediate-final" diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 02553ad5..20bd2381 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -60,7 +60,7 @@ jobs: fi - run: rustup update --no-self-update if: steps.cache.outputs.cache-hit != 'true' || steps.validate.outputs.cache-valid == 'false' - - run: cargo build --bin cpp-linter --release + - run: cargo build --bin cpp-linter --features bin --release if: steps.cache.outputs.cache-hit != 'true' || steps.validate.outputs.cache-valid == 'false' - name: Upload build artifact uses: actions/upload-artifact@v7 diff --git a/.github/workflows/binary-builds.yml b/.github/workflows/binary-builds.yml index 16abd40f..08265d03 100644 --- a/.github/workflows/binary-builds.yml +++ b/.github/workflows/binary-builds.yml @@ -131,7 +131,7 @@ jobs: --bin cpp-linter --release --target ${{ matrix.target }} - ${{ matrix.vendored && '--features openssl-vendored' || '' }} + --features ${{ matrix.vendored && 'bin,openssl-vendored' || 'bin' }} - name: Prepare artifacts (unix) if: runner.os != 'Windows' diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 527175e6..980224d7 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -8,7 +8,7 @@ repos: exclude: bindings/node/.*package\.json - id: check-docstring-first - id: check-added-large-files - exclude: '^\.yarn/releases/yarn.*js' + exclude: '^\.yarn/releases/yarn.*js|pypi_clang.*\.json$' - id: check-yaml exclude: docs/mkdocs.yml - id: check-toml diff --git a/Cargo.lock b/Cargo.lock index 85a3fdc5..73328546 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,12 @@ # It is not intended for manual editing. version = 4 +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + [[package]] name = "aho-corasick" version = "1.1.4" @@ -104,6 +110,28 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +[[package]] +name = "aws-lc-rs" +version = "1.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94bffc006df10ac2a68c83692d734a465f8ee6c5b384d8545a636f81d858f4bf" +dependencies = [ + "aws-lc-sys", + "zeroize", +] + +[[package]] +name = "aws-lc-sys" +version = "0.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4321e568ed89bb5a7d291a7f37997c2c0df89809d7b6d12062c81ddb54aa782e" +dependencies = [ + "cc", + "cmake", + "dunce", + "fs_extra", +] + [[package]] name = "base64" version = "0.22.1" @@ -112,15 +140,33 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "bitflags" -version = "2.10.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" +checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" + +[[package]] +name = "blake2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" +dependencies = [ + "digest", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] [[package]] name = "bumpalo" -version = "3.19.1" +version = "3.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" +checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" [[package]] name = "bytes" @@ -130,9 +176,9 @@ checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" [[package]] name = "cc" -version = "1.2.51" +version = "1.2.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a0aeaff4ff1a90589618835a598e545176939b97874f7abc7851caa0618f203" +checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2" dependencies = [ "find-msvc-tools", "jobserver", @@ -140,12 +186,24 @@ dependencies = [ "shlex", ] +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + [[package]] name = "cfg-if" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + [[package]] name = "chrono" version = "0.4.44" @@ -159,6 +217,31 @@ dependencies = [ "windows-link", ] +[[package]] +name = "clang-installer" +version = "0.1.0" +dependencies = [ + "anyhow", + "blake2", + "clap", + "colored", + "directories", + "log", + "mockito", + "regex", + "reqwest", + "semver", + "serde", + "serde_json", + "sha2", + "tempfile", + "thiserror 2.0.18", + "tokio", + "url", + "which", + "zip", +] + [[package]] name = "clap" version = "4.5.60" @@ -208,6 +291,15 @@ dependencies = [ "pyo3", ] +[[package]] +name = "cmake" +version = "0.1.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75443c44cd6b379beb8c5b45d85d0773baf31cce901fe7bb252f4eff3008ef7d" +dependencies = [ + "cc", +] + [[package]] name = "colorchoice" version = "1.0.4" @@ -223,6 +315,16 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + [[package]] name = "convert_case" version = "0.11.0" @@ -242,6 +344,16 @@ dependencies = [ "libc", ] +[[package]] +name = "core-foundation" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -254,6 +366,7 @@ version = "2.0.0-rc15" dependencies = [ "anyhow", "chrono", + "clang-installer", "clap", "colored", "fast-glob", @@ -268,10 +381,8 @@ dependencies = [ "serde", "serde_json", "tempfile", + "thiserror 2.0.18", "tokio", - "tokio-macros", - "tokio-stream", - "which", ] [[package]] @@ -294,6 +405,34 @@ dependencies = [ "tokio", ] +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "typenum", +] + [[package]] name = "ctor" version = "0.6.3" @@ -310,6 +449,38 @@ version = "0.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52560adf09603e58c9a7ee1fe1dcb95a16927b17c127f0ac02d6e768a0e25bc1" +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", + "subtle", +] + +[[package]] +name = "directories" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16f5094c54661b38d03bd7e50df373292118db60b585c08a411c6d840017fe7d" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.61.2", +] + [[package]] name = "displaydoc" version = "0.2.5" @@ -336,6 +507,12 @@ version = "0.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f678cf4a922c215c63e0de95eb1ff08a958a81d47e485cf9da1e27bf6305cfa5" +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + [[package]] name = "encoding_rs" version = "0.8.35" @@ -345,12 +522,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "env_home" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7f84e12ccf0a7ddc17a6c41c93326024c42920d7ee630d04950e6926645c0fe" - [[package]] name = "equivalent" version = "1.0.2" @@ -369,9 +540,9 @@ dependencies = [ [[package]] name = "fast-glob" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d26eec0ae9682c457cb0f85de67ad417b716ae852736a5d94c2ad6e92a997c9" +checksum = "3b9e81515b0279bf618200fd15d132e7195d2048fb46eed6f0f3c10cbc068266" dependencies = [ "arrayvec", ] @@ -384,9 +555,19 @@ checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "find-msvc-tools" -version = "0.1.6" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" + +[[package]] +name = "flate2" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645cbb3a84e60b7531617d5ae4e57f7e27308f6445f5abf653209ea76dec8dff" +checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" +dependencies = [ + "miniz_oxide", + "zlib-rs", +] [[package]] name = "fnv" @@ -394,6 +575,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + [[package]] name = "foreign-types" version = "0.3.2" @@ -418,6 +605,12 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "fs_extra" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" + [[package]] name = "futures" version = "0.3.32" @@ -506,15 +699,27 @@ dependencies = [ "slab", ] +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + [[package]] name = "getrandom" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" dependencies = [ "cfg-if", + "js-sys", "libc", "wasi", + "wasm-bindgen", ] [[package]] @@ -522,11 +727,26 @@ name = "getrandom" version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "r-efi 5.3.0", + "wasip2", + "wasm-bindgen", +] + +[[package]] +name = "getrandom" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" dependencies = [ "cfg-if", "libc", - "r-efi", + "r-efi 6.0.0", "wasip2", + "wasip3", ] [[package]] @@ -539,7 +759,7 @@ dependencies = [ "libc", "libgit2-sys", "log", - "openssl-probe", + "openssl-probe 0.1.6", "openssl-sys", "url", ] @@ -563,6 +783,15 @@ dependencies = [ "tracing", ] +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "foldhash", +] + [[package]] name = "hashbrown" version = "0.16.1" @@ -677,14 +906,13 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.19" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "727805d60e7938b76b826a6ef209eb70eaa1812794f9424d4a4e2d740662df5f" +checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" dependencies = [ "base64", "bytes", "futures-channel", - "futures-core", "futures-util", "http", "http-body", @@ -694,16 +922,18 @@ dependencies = [ "percent-encoding", "pin-project-lite", "socket2", + "system-configuration", "tokio", "tower-service", "tracing", + "windows-registry", ] [[package]] name = "iana-time-zone" -version = "0.1.64" +version = "0.1.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -804,6 +1034,12 @@ dependencies = [ "zerovec", ] +[[package]] +name = "id-arena" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" + [[package]] name = "idna" version = "1.1.0" @@ -827,19 +1063,21 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.12.1" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" dependencies = [ "equivalent", - "hashbrown", + "hashbrown 0.16.1", + "serde", + "serde_core", ] [[package]] name = "ipnet" -version = "2.11.0" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" +checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" [[package]] name = "iri-string" @@ -863,6 +1101,28 @@ version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" +[[package]] +name = "jni" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +dependencies = [ + "cesu8", + "cfg-if", + "combine", + "jni-sys", + "log", + "thiserror 1.0.69", + "walkdir", + "windows-sys 0.45.0", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + [[package]] name = "jobserver" version = "0.1.34" @@ -875,14 +1135,20 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.83" +version = "0.3.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" +checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" dependencies = [ "once_cell", "wasm-bindgen", ] +[[package]] +name = "leb128fmt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" + [[package]] name = "libc" version = "0.2.183" @@ -913,6 +1179,15 @@ dependencies = [ "windows-link", ] +[[package]] +name = "libredox" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1744e39d1d6a9948f4f388969627434e31128196de472883b39f148769bfe30a" +dependencies = [ + "libc", +] + [[package]] name = "libssh2-sys" version = "0.3.1" @@ -929,9 +1204,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.23" +version = "1.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15d118bbf3771060e7311cc7bb0545b01d08a8b4a7de949198dec1fa0ca1c0f7" +checksum = "4735e9cbde5aac84a5ce588f6b23a90b9b0b528f6c5a8db8a4aff300463a0839" dependencies = [ "cc", "libc", @@ -966,11 +1241,17 @@ version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" +[[package]] +name = "lru-slab" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" + [[package]] name = "memchr" -version = "2.7.6" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" +checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" [[package]] name = "mime" @@ -978,6 +1259,16 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", + "simd-adler32", +] + [[package]] name = "mio" version = "1.1.1" @@ -1074,14 +1365,14 @@ dependencies = [ [[package]] name = "native-tls" -version = "0.2.14" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" +checksum = "465500e14ea162429d264d44189adc38b199b62b1c21eea9f69e4b73cb03bbf2" dependencies = [ "libc", "log", "openssl", - "openssl-probe", + "openssl-probe 0.2.1", "openssl-sys", "schannel", "security-framework", @@ -1148,11 +1439,17 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" +[[package]] +name = "openssl-probe" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" + [[package]] name = "openssl-src" -version = "300.5.4+3.5.4" +version = "300.5.5+3.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507b3792995dae9b0df8a1c1e3771e8418b7c2d9f0baeba32e6fe8b06c7cb72" +checksum = "3f1787d533e03597a7934fd0a765f0d28e94ecc5fb7789f8053b1e699a56f709" dependencies = [ "cc", ] @@ -1170,6 +1467,12 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + [[package]] name = "parking_lot" version = "0.12.5" @@ -1201,9 +1504,9 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pin-project-lite" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "pin-utils" @@ -1219,9 +1522,9 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "portable-atomic" -version = "1.13.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f89776e4d69bb58bc6993e99ffa1d11f228b839984854c7daeb5d37f87cbe950" +checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" [[package]] name = "potential_utf" @@ -1241,11 +1544,21 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "prettyplease" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +dependencies = [ + "proc-macro2", + "syn", +] + [[package]] name = "proc-macro2" -version = "1.0.105" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] @@ -1318,11 +1631,67 @@ dependencies = [ "serde", ] +[[package]] +name = "quinn" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" +dependencies = [ + "bytes", + "cfg_aliases", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls", + "socket2", + "thiserror 2.0.18", + "tokio", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-proto" +version = "0.11.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" +dependencies = [ + "aws-lc-rs", + "bytes", + "getrandom 0.3.4", + "lru-slab", + "rand", + "ring", + "rustc-hash", + "rustls", + "rustls-pki-types", + "slab", + "thiserror 2.0.18", + "tinyvec", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-udp" +version = "0.5.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" +dependencies = [ + "cfg_aliases", + "libc", + "once_cell", + "socket2", + "tracing", + "windows-sys 0.60.2", +] + [[package]] name = "quote" -version = "1.0.43" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc74d9a594b72ae6656596548f56f667211f8a97b3d4c3d467150794690dc40a" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] @@ -1333,6 +1702,12 @@ version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + [[package]] name = "rand" version = "0.9.2" @@ -1355,9 +1730,9 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.9.3" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" dependencies = [ "getrandom 0.3.4", ] @@ -1372,8 +1747,19 @@ dependencies = [ ] [[package]] -name = "regex" -version = "1.12.3" +name = "redox_users" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" +dependencies = [ + "getrandom 0.2.17", + "libredox", + "thiserror 2.0.18", +] + +[[package]] +name = "regex" +version = "1.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" dependencies = [ @@ -1385,9 +1771,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" dependencies = [ "aho-corasick", "memchr", @@ -1396,9 +1782,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.8" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" +checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" [[package]] name = "reqwest" @@ -1424,10 +1810,14 @@ dependencies = [ "native-tls", "percent-encoding", "pin-project-lite", + "quinn", + "rustls", "rustls-pki-types", + "rustls-platform-verifier", "sync_wrapper", "tokio", "tokio-native-tls", + "tokio-rustls", "tower", "tower-http", "tower-service", @@ -1445,7 +1835,7 @@ checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", "cfg-if", - "getrandom 0.2.16", + "getrandom 0.2.17", "libc", "untrusted", "windows-sys 0.52.0", @@ -1472,10 +1862,11 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.36" +version = "0.23.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c665f33d38cea657d9614f766881e4d510e0eda4239891eea56b4cadcf01801b" +checksum = "758025cb5fccfd3bc2fd74708fd4682be41d99e5dff73c377c0646c6012c73a4" dependencies = [ + "aws-lc-rs", "once_cell", "rustls-pki-types", "rustls-webpki", @@ -1483,21 +1874,62 @@ dependencies = [ "zeroize", ] +[[package]] +name = "rustls-native-certs" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "612460d5f7bea540c490b2b6395d8e34a953e52b491accd6c86c8164c5932a63" +dependencies = [ + "openssl-probe 0.2.1", + "rustls-pki-types", + "schannel", + "security-framework", +] + [[package]] name = "rustls-pki-types" -version = "1.13.2" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21e6f2ab2928ca4291b86736a8bd920a277a399bba1589409d72154ff87c1282" +checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" dependencies = [ + "web-time", "zeroize", ] +[[package]] +name = "rustls-platform-verifier" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d99feebc72bae7ab76ba994bb5e121b8d83d910ca40b36e0921f53becc41784" +dependencies = [ + "core-foundation 0.10.1", + "core-foundation-sys", + "jni", + "log", + "once_cell", + "rustls", + "rustls-native-certs", + "rustls-platform-verifier-android", + "rustls-webpki", + "security-framework", + "security-framework-sys", + "webpki-root-certs", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustls-platform-verifier-android" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" + [[package]] name = "rustls-webpki" -version = "0.103.8" +version = "0.103.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52" +checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53" dependencies = [ + "aws-lc-rs", "ring", "rustls-pki-types", "untrusted", @@ -1511,9 +1943,18 @@ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "ryu" -version = "1.0.22" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a50f4cf475b65d88e057964e0e9bb1f0aa9bbb2036dc65c64596b42932536984" +checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] [[package]] name = "schannel" @@ -1532,12 +1973,12 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "security-framework" -version = "2.11.1" +version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" dependencies = [ "bitflags", - "core-foundation", + "core-foundation 0.10.1", "core-foundation-sys", "libc", "security-framework-sys", @@ -1545,9 +1986,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.15.0" +version = "2.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" +checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" dependencies = [ "core-foundation-sys", "libc", @@ -1614,12 +2055,29 @@ dependencies = [ "serde", ] +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + [[package]] name = "shlex" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +[[package]] +name = "simd-adler32" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" + [[package]] name = "similar" version = "2.7.0" @@ -1628,9 +2086,9 @@ checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa" [[package]] name = "slab" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" [[package]] name = "smallvec" @@ -1640,12 +2098,12 @@ checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "socket2" -version = "0.6.1" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" +checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -1668,9 +2126,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "2.0.114" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -1697,11 +2155,32 @@ dependencies = [ "syn", ] +[[package]] +name = "system-configuration" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" +dependencies = [ + "bitflags", + "core-foundation 0.9.4", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "target-lexicon" -version = "0.13.4" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1dd07eb858a2067e2f3c7155d54e929265c264e6f37efe3ee7a8d1b5a1dd0ba" +checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca" [[package]] name = "tempfile" @@ -1710,12 +2189,52 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82a72c767771b47409d2345987fda8628641887d5466101319899796367354a0" dependencies = [ "fastrand", - "getrandom 0.3.4", + "getrandom 0.4.2", "once_cell", "rustix", "windows-sys 0.61.2", ] +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" +dependencies = [ + "thiserror-impl 2.0.18", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "tinystr" version = "0.8.2" @@ -1726,11 +2245,26 @@ dependencies = [ "zerovec", ] +[[package]] +name = "tinyvec" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + [[package]] name = "tokio" -version = "1.49.0" +version = "1.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" +checksum = "27ad5e34374e03cfffefc301becb44e9dc3c17584f414349ebe29ed26661822d" dependencies = [ "bytes", "libc", @@ -1744,9 +2278,9 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.6.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" +checksum = "5c55a2eff8b69ce66c84f85e1da1c233edc36ceb85a2058d11b0d6a3c7e7569c" dependencies = [ "proc-macro2", "quote", @@ -1773,17 +2307,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-stream" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70" -dependencies = [ - "futures-core", - "pin-project-lite", - "tokio", -] - [[package]] name = "tokio-util" version = "0.7.18" @@ -1799,9 +2322,9 @@ dependencies = [ [[package]] name = "tower" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" dependencies = [ "futures-core", "futures-util", @@ -1867,11 +2390,23 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" +[[package]] +name = "typed-path" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e28f89b80c87b8fb0cf04ab448d5dd0dd0ade2f8891bae878de66a75a28600e" + +[[package]] +name = "typenum" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" + [[package]] name = "unicode-ident" -version = "1.0.22" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "unicode-segmentation" @@ -1879,6 +2414,12 @@ version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + [[package]] name = "untrusted" version = "0.9.0" @@ -1915,6 +2456,22 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + [[package]] name = "want" version = "0.3.1" @@ -1932,18 +2489,27 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasip2" -version = "1.0.1+wasi-0.2.4" +version = "1.0.2+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" dependencies = [ "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.106" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" +checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" dependencies = [ "cfg-if", "once_cell", @@ -1954,11 +2520,12 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.56" +version = "0.4.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c" +checksum = "e9c5522b3a28661442748e09d40924dfb9ca614b21c00d3fd135720e48b67db8" dependencies = [ "cfg-if", + "futures-util", "js-sys", "once_cell", "wasm-bindgen", @@ -1967,9 +2534,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.106" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" +checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1977,9 +2544,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.106" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" +checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" dependencies = [ "bumpalo", "proc-macro2", @@ -1990,32 +2557,92 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.106" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" +checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" dependencies = [ "unicode-ident", ] +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser", +] + +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap", + "wasm-encoder", + "wasmparser", +] + +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags", + "hashbrown 0.15.5", + "indexmap", + "semver", +] + [[package]] name = "web-sys" -version = "0.3.83" +version = "0.3.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "854ba17bb104abfb26ba36da9729addc7ce7f06f5c0f90f3c391f8461cca21f9" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" dependencies = [ "js-sys", "wasm-bindgen", ] +[[package]] +name = "webpki-root-certs" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "804f18a4ac2676ffb4e8b5b5fa9ae38af06df08162314f96a68d2a363e21a8ca" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "which" -version = "8.0.0" +version = "8.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fabb953106c3c8eea8306e4393700d7657561cb43122571b172bbfb7c7ba1d" +checksum = "81995fafaaaf6ae47a7d0cc83c67caf92aeb7e5331650ae6ff856f7c0c60c459" dependencies = [ - "env_home", - "rustix", - "winsafe", + "libc", +] + +[[package]] +name = "winapi-util" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +dependencies = [ + "windows-sys 0.61.2", ] [[package]] @@ -2059,6 +2686,17 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" +[[package]] +name = "windows-registry" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" +dependencies = [ + "windows-link", + "windows-result", + "windows-strings", +] + [[package]] name = "windows-result" version = "0.4.1" @@ -2077,6 +2715,15 @@ dependencies = [ "windows-link", ] +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + [[package]] name = "windows-sys" version = "0.52.0" @@ -2104,6 +2751,21 @@ dependencies = [ "windows-link", ] +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + [[package]] name = "windows-targets" version = "0.52.6" @@ -2137,6 +2799,12 @@ dependencies = [ "windows_x86_64_msvc 0.53.1", ] +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" @@ -2149,6 +2817,12 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + [[package]] name = "windows_aarch64_msvc" version = "0.52.6" @@ -2161,6 +2835,12 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + [[package]] name = "windows_i686_gnu" version = "0.52.6" @@ -2185,6 +2865,12 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + [[package]] name = "windows_i686_msvc" version = "0.52.6" @@ -2197,6 +2883,12 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + [[package]] name = "windows_x86_64_gnu" version = "0.52.6" @@ -2209,6 +2901,12 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" @@ -2221,6 +2919,12 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + [[package]] name = "windows_x86_64_msvc" version = "0.52.6" @@ -2234,16 +2938,92 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] -name = "winsafe" -version = "0.0.19" +name = "wit-bindgen" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +dependencies = [ + "wit-bindgen-rust-macro", +] [[package]] -name = "wit-bindgen" -version = "0.46.0" +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck", + "wit-parser", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck", + "indexmap", + "prettyplease", + "syn", + "wasm-metadata", + "wit-bindgen-core", + "wit-component", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn", + "wit-bindgen-core", + "wit-bindgen-rust", +] + +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags", + "indexmap", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder", + "wasm-metadata", + "wasmparser", + "wit-parser", +] + +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser", +] [[package]] name = "writeable" @@ -2276,18 +3056,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.32" +version = "0.8.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fabae64378cb18147bb18bca364e63bdbe72a0ffe4adf0addfec8aa166b2c56" +checksum = "96e13bc581734df6250836c59a5f44f3c57db9f9acb9dc8e3eaabdaf6170254d" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.32" +version = "0.8.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9c2d862265a8bb4471d87e033e730f536e2a285cc7cb05dbce09a2a97075f90" +checksum = "3545ea9e86d12ab9bba9fcd99b54c1556fd3199007def5a03c375623d05fac1c" dependencies = [ "proc-macro2", "quote", @@ -2354,8 +3134,40 @@ dependencies = [ "syn", ] +[[package]] +name = "zip" +version = "8.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b680f2a0cd479b4cff6e1233c483fdead418106eae419dc60200ae9850f6d004" +dependencies = [ + "crc32fast", + "flate2", + "indexmap", + "memchr", + "typed-path", + "zopfli", +] + +[[package]] +name = "zlib-rs" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be3d40e40a133f9c916ee3f9f4fa2d9d63435b5fbe1bfc6d9dae0aa0ada1513" + [[package]] name = "zmij" -version = "1.0.12" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" + +[[package]] +name = "zopfli" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fc5a66a20078bf1251bde995aa2fdcc4b800c70b5d92dd2c62abc5c60f679f8" +checksum = "f05cd8797d63865425ff89b5c4a48804f35ba0ce8d125800027ad6017d2b5249" +dependencies = [ + "bumpalo", + "crc32fast", + "log", + "simd-adler32", +] diff --git a/Cargo.toml b/Cargo.toml index 7227ea3c..b372f628 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [workspace] -members = ["cpp-linter", "bindings/python", "bindings/node", "docs"] +members = ["cpp-linter", "bindings/python", "bindings/node", "docs", "clang-installer"] resolver = "2" [workspace.package] @@ -14,7 +14,24 @@ description = "Run clang-format and clang-tidy on a batch of files." homepage = "https://cpp-linter.github.io/cpp-linter-rs" license = "MIT" edition = "2024" +repository = "https://github.com/cpp-linter/cpp-linter-rs" [profile.release] lto = true strip = "symbols" + +[workspace.dependencies] +anyhow = "1.0.102" +clap = { version = "4.5.60", features = ["derive"] } +colored = "3.1.1" +log = { version = "0.4.29", features = ["std"] } +mockito = "1.7.2" +pyo3 = {version = "0.28.2", features = ["extension-module"] } +regex = "1.12.3" +reqwest = { version = "0.13.2", default-features = false, features = ["http2", "charset"] } +thiserror = "2.0.18" +semver = "1.0.27" +serde = { version = "1.0.228", features = ["derive"] } +serde_json = "1.0.149" +tempfile = "3.26.0" +tokio = "1.50.0" diff --git a/bindings/node/Cargo.toml b/bindings/node/Cargo.toml index 45becc49..e74b3f1c 100644 --- a/bindings/node/Cargo.toml +++ b/bindings/node/Cargo.toml @@ -19,11 +19,11 @@ bench = false # Default enable napi4 feature, see https://nodejs.org/api/n-api.html#node-api-version-matrix napi = { version = "3.8.3", default-features = false, features = ["napi4", "async"] } napi-derive = "3.5.2" -cpp-linter = { path = "../../cpp-linter" } -anyhow = "1.0.102" +cpp-linter = { path = "../../cpp-linter", features = ["bin"] } +anyhow = { workspace = true } [features] openssl-vendored = ["cpp-linter/openssl-vendored"] [build-dependencies] -napi-build = "2.2.3" +napi-build = "2.3.1" diff --git a/bindings/node/src/lib.rs b/bindings/node/src/lib.rs index b6bd5cae..45a27291 100644 --- a/bindings/node/src/lib.rs +++ b/bindings/node/src/lib.rs @@ -1,11 +1,14 @@ #[macro_use] extern crate napi_derive; use ::cpp_linter::run::run_main; -use napi::bindgen_prelude::*; +use napi::{bindgen_prelude::*, tokio}; #[napi] -pub async fn main(args: Vec) -> Result<()> { - run_main(args) - .await +pub fn main(args: Vec) -> Result<()> { + tokio::runtime::Builder::new_multi_thread() + .enable_all() + .build() + .unwrap() + .block_on(run_main(args)) .map_err(|e| Error::new(Status::GenericFailure, e.to_string())) } diff --git a/bindings/python/Cargo.toml b/bindings/python/Cargo.toml index b56842c4..da377946 100644 --- a/bindings/python/Cargo.toml +++ b/bindings/python/Cargo.toml @@ -17,9 +17,9 @@ crate-type = ["cdylib"] bench = false [dependencies] -pyo3 = { version = "0.28.2", features = ["extension-module", "abi3-py39"] } -cpp-linter = { path = "../../cpp-linter" } -tokio = "1.49.0" +pyo3 = { workspace = true, features = ["abi3-py39"] } +cpp-linter = { path = "../../cpp-linter", features = ["bin"] } +tokio = { workspace = true } [features] openssl-vendored = ["cpp-linter/openssl-vendored"] diff --git a/clang-installer/Cargo.toml b/clang-installer/Cargo.toml new file mode 100644 index 00000000..f04b3bc6 --- /dev/null +++ b/clang-installer/Cargo.toml @@ -0,0 +1,52 @@ +[package] +name = "clang-installer" +version = "0.1.0" +description = "A utility for installing specific versions of clang-format and clang-tidy, used by cpp-linter." +readme = "README.md" +keywords = ["clang-tidy", "clang-format", "cpp-linter"] +categories = ["command-line-utilities", "development-tools", "filesystem"] +authors.workspace = true +homepage.workspace = true +license.workspace = true +edition.workspace = true +repository.workspace = true + +[[bin]] +path = "src/main.rs" +name = "clang-tools" +test = false +bench = false +required-features = ["bin"] + +[dependencies] +anyhow = { workspace = true, optional = true } +blake2 = "0.10.6" +clap = { workspace = true, features = ["derive"], optional = true } +colored = { workspace = true, optional = true } +directories = "6.0.0" +log = { workspace = true } +regex = { workspace = true } +reqwest = { workspace = true } +semver = { workspace = true } +serde = { workspace = true } +serde_json = { workspace = true } +sha2 = "0.10.9" +thiserror = { workspace = true } +tokio = { workspace = true, features = ["macros"], optional = true } +url = "2.5.8" +which = "8.0.2" +zip = { version = "8.2.0", default-features = false, features = ["deflate"] } + +[dev-dependencies] +colored = { workspace = true } +mockito = { workspace = true } +reqwest = { workspace = true, default-features = true } +tempfile = { workspace = true } +tokio = { workspace = true, features = ["macros", "rt-multi-thread"] } + +[features] +bin = ["clap", "tokio", "anyhow", "colored"] +clap = ["dep:clap"] +tokio = ["dep:tokio"] +anyhow = ["dep:anyhow"] +colored = ["dep:colored"] diff --git a/clang-installer/README.md b/clang-installer/README.md new file mode 100644 index 00000000..d0aae38d --- /dev/null +++ b/clang-installer/README.md @@ -0,0 +1,12 @@ +# clang-installer + +A Rust crate to ensure clang-format and/or clang-tidy are installed. + +This is a utility for cpp-linter CLI, +thus its API is considered internal to cpp-linter crate. + +To run the binary for this crate: + +```text +cargo run --bin clang-tools --features bin -- --help +``` diff --git a/clang-installer/src/cli.rs b/clang-installer/src/cli.rs new file mode 100644 index 00000000..7ca392d4 --- /dev/null +++ b/clang-installer/src/cli.rs @@ -0,0 +1,41 @@ +use crate::{ClangTool, RequestedVersion}; +use std::path::PathBuf; +#[cfg(feature = "clap")] +use std::str::FromStr; + +#[cfg_attr(feature = "clap", derive(clap::Parser))] +#[derive(Debug)] +pub struct CliOptions { + /// The desired version of clang to install. + #[cfg_attr( + feature = "clap", + arg( + short, + long, + default_missing_value = "CPP-LINTER-VERSION", + num_args = 0..=1, + value_parser = RequestedVersion::from_str, + default_value = "", + ) + )] + pub version: Option, + /// The clang tool to install. + #[cfg_attr( + feature = "clap", + arg( + short, + long, + value_delimiter = ' ', + default_value = "clang-format clang-tidy", + ) + )] + pub tool: Option>, + /// The directory where the clang tools should be installed. + #[cfg_attr(feature = "clap", arg(short, long))] + pub directory: Option, + /// Force overwriting symlink to the installed binary. + /// + /// This will only overwrite an existing symlink. + #[cfg_attr(feature = "clap", arg(short, long))] + pub force: bool, +} diff --git a/clang-installer/src/downloader/caching.rs b/clang-installer/src/downloader/caching.rs new file mode 100644 index 00000000..632e36c5 --- /dev/null +++ b/clang-installer/src/downloader/caching.rs @@ -0,0 +1,44 @@ +use std::{ + env, + path::{Path, PathBuf}, + time::{Duration, SystemTime}, +}; + +use directories::ProjectDirs; + +/// A trait for caching downloaded data to avoid unnecessary network requests. +pub trait Cacher { + /// Returns the path to the cache directory. + /// + /// The cache directory can be overridden by setting the `CPP_LINTER_CACHE` environment variable. + /// If the environment variable is not set, it defaults to a platform-specific cache directory provided by the [`directories`] crate. + /// If executed on a platform that is not supported by the [`directories`] crate, it falls back to a `.cpp-linter_cache` directory in the working directory. + fn get_cache_dir() -> PathBuf { + env::var("CPP_LINTER_CACHE").map(PathBuf::from).unwrap_or( + ProjectDirs::from("", "cpp-linter", "cpp-linter") + .map(|d| d.cache_dir().to_path_buf()) + .unwrap_or(PathBuf::from(".cpp-linter_cache")), + ) + } + + /// Checks if the given `cache_file` is valid based on its "last modified" time and the specified `max_age`. + /// + /// If `max_age` is `None` and the `cache_file` exists, then it is considered valid regardless of its age. + /// + /// Returns false if the cache does not exist or if it is older than the specified `max_age`. + fn is_cache_valid(cache_file: &Path, max_age: Option) -> bool { + let now = SystemTime::now(); + cache_file.exists() && { + cache_file + .metadata() + .and_then(|metadata| metadata.modified()) + .map(|modified_time| { + max_age.is_none_or(|age| { + now.duration_since(modified_time) + .is_ok_and(|duration| duration < age) + }) + }) + .unwrap_or(false) + } + } +} diff --git a/clang-installer/src/downloader/hashing.rs b/clang-installer/src/downloader/hashing.rs new file mode 100644 index 00000000..a14c9a19 --- /dev/null +++ b/clang-installer/src/downloader/hashing.rs @@ -0,0 +1,157 @@ +use super::DownloadError; + +use std::{fs, io::Read, path::Path}; + +/// Represents the supported hash algorithms for file integrity checking. +/// +/// Each variant holds the expected checksum value as a string, +/// which is used for verification. +/// +/// Note, MD5 is intentionally excluded due to security weaknesses. +/// As such, MD5 is not recommended for file integrity checks. +#[derive(Debug, Clone)] +pub enum HashAlgorithm { + /// SHA-256 hash algorithm with the expected checksum value. + Sha256(String), + /// BLAKE2b-256 hash algorithm with the expected checksum value. + Blake2b256(String), + /// SHA-512 hash algorithm with the expected checksum value. + Sha512(String), +} + +impl HashAlgorithm { + /// Verify a given file (located at `file_path`) against the expected checksum value. + /// + /// This method reads the file in chunks (of 1024 bytes) to compute the hash, + /// thus no extraneous memory is allocated when reading the file's entire contents. + /// + /// Note, a progress bar is displayed to stdout. + pub fn verify(&self, file_path: &Path) -> Result<(), DownloadError> { + let mut file_reader = fs::OpenOptions::new().read(true).open(file_path)?; + let mut buf = [0u8; 1024]; + match self { + HashAlgorithm::Sha256(expected) => { + use sha2::{Digest, Sha256}; + + let mut hasher = Sha256::new(); + while let Ok(bytes_read) = file_reader.read(&mut buf) { + if bytes_read == 0 { + break; + } + hasher.update(&buf[..bytes_read]); + } + let actual = format!("{:x}", hasher.finalize()); + if actual == *expected { + Ok(()) + } else { + Err(DownloadError::HashMismatch { + expected: expected.clone(), + actual, + }) + } + } + HashAlgorithm::Blake2b256(expected) => { + use blake2::{Blake2b, Digest, digest::consts::U32}; + + let mut hasher = Blake2b::::new(); + while let Ok(bytes_read) = file_reader.read(&mut buf) { + if bytes_read == 0 { + break; + } + hasher.update(&buf[..bytes_read]); + } + let actual = format!("{:x}", hasher.finalize()); + if actual == *expected { + Ok(()) + } else { + Err(DownloadError::HashMismatch { + expected: expected.clone(), + actual, + }) + } + } + HashAlgorithm::Sha512(expected) => { + use sha2::{Digest, Sha512}; + + let mut hasher = Sha512::new(); + while let Ok(bytes_read) = file_reader.read(&mut buf) { + if bytes_read == 0 { + break; + } + hasher.update(&buf[..bytes_read]); + } + let actual = format!("{:x}", hasher.finalize()); + if actual == *expected { + Ok(()) + } else { + Err(DownloadError::HashMismatch { + expected: expected.clone(), + actual, + }) + } + } + } + } +} + +#[cfg(test)] +mod test { + use std::fs; + + use super::HashAlgorithm; + use tempfile::NamedTempFile; + + const CONTENT: &[u8] = b"hello world"; + const INVALID_CHECKSUM: &str = "deadbeef"; + + #[test] + fn sha256() { + use sha2::Digest; + + let mut temp_file = NamedTempFile::new().unwrap(); + fs::write(&mut temp_file, CONTENT).unwrap(); + let hasher = sha2::Sha256::new().chain_update(CONTENT); + let expected = format!("{:x}", hasher.finalize()); + let hash_algorithm = HashAlgorithm::Sha256(expected); + assert!(hash_algorithm.verify(temp_file.path()).is_ok()); + assert!( + HashAlgorithm::Sha256(INVALID_CHECKSUM.to_string()) + .verify(temp_file.path()) + .is_err() + ); + } + + #[test] + fn sha512() { + use sha2::Digest; + + let mut temp_file = NamedTempFile::new().unwrap(); + fs::write(&mut temp_file, CONTENT).unwrap(); + let hasher = sha2::Sha512::new().chain_update(CONTENT); + let expected = format!("{:x}", hasher.finalize()); + let hash_algorithm = HashAlgorithm::Sha512(expected); + assert!(hash_algorithm.verify(temp_file.path()).is_ok()); + assert!( + HashAlgorithm::Sha512(INVALID_CHECKSUM.to_string()) + .verify(temp_file.path()) + .is_err() + ); + } + + #[test] + fn blake2b256() { + use blake2::{Blake2b, Digest, digest::consts::U32}; + + let mut temp_file = NamedTempFile::new().unwrap(); + fs::write(&mut temp_file, CONTENT).unwrap(); + let hasher = Blake2b::::new().chain_update(CONTENT); + let expected = format!("{:x}", hasher.finalize()); + let hash_algorithm = HashAlgorithm::Blake2b256(expected); + assert!(hash_algorithm.verify(temp_file.path()).is_ok()); + assert!( + HashAlgorithm::Blake2b256(INVALID_CHECKSUM.to_string()) + .verify(temp_file.path()) + .is_err() + ); + } +} diff --git a/clang-installer/src/downloader/mod.rs b/clang-installer/src/downloader/mod.rs new file mode 100644 index 00000000..6d935ad4 --- /dev/null +++ b/clang-installer/src/downloader/mod.rs @@ -0,0 +1,146 @@ +use reqwest::ClientBuilder; +use std::{ + fs, + io::Write, + path::Path, + time::{Duration, SystemTime}, +}; +use url::Url; + +use crate::progress_bar::ProgressBar; + +pub mod caching; +pub mod hashing; +pub mod native_packages; +pub mod pypi; +pub mod static_dist; + +#[derive(Debug, thiserror::Error)] +pub enum DownloadError { + #[error("Request error: {0}")] + RequestError(#[from] reqwest::Error), + #[error("IO error: {0}")] + IoError(#[from] std::io::Error), + #[error("Hash mismatch for downloaded file. Expected: {expected}, Actual: {actual}")] + HashMismatch { expected: String, actual: String }, +} + +/// Downloads data from the specified URL and returns the response. +/// +/// If the response's status code indicates an error, then the error will be returned. +/// If the erroneous response's body is UTF-8 text, then it will be included in the logged error. +async fn download(url: &Url, cache_path: &Path, timeout: u64) -> Result<(), DownloadError> { + let client = ClientBuilder::new() + .timeout(Duration::from_secs(timeout)) + .build()?; + if let Some(cache_parent) = cache_path.parent() { + fs::create_dir_all(cache_parent)?; + } + let mut cache_file = fs::OpenOptions::new() + .write(true) + .create(true) + .truncate(true) + .open(cache_path)?; + let mut response = client.get(url.clone()).send().await?; + if let Err(e) = response.error_for_status_ref() { + if let Ok(body) = response.text().await + && !body.is_empty() + { + log::error!("Failed to download data from {url}:\n{body}"); + } else { + log::error!("Failed to download data from {url}"); + } + return Err(e.into()); + } + let content_len = response.content_length(); + let mut progress_bar = ProgressBar::new(content_len, "Downloading"); + progress_bar.render()?; + while let Some(chunk) = response.chunk().await? { + let chunk_len = chunk.len() as u64; + progress_bar.inc(chunk_len)?; + cache_file.write_all(&chunk)?; + } + progress_bar.finish()?; + cache_file.flush()?; + cache_file.set_modified(SystemTime::now())?; + Ok(()) +} + +#[cfg(test)] +mod tests { + use crate::DownloadError; + + use super::download; + use mockito::Server; + use tempfile::NamedTempFile; + use url::Url; + struct TestLogger; + + impl log::Log for TestLogger { + fn enabled(&self, _metadata: &log::Metadata) -> bool { + true + } + + fn log(&self, record: &log::Record) { + println!("[{}] - {}", record.level(), record.args()); + } + + fn flush(&self) {} + } + + fn initialize_logger() { + let logger: TestLogger = TestLogger; + if let Err(e) = log::set_boxed_logger(Box::new(logger)) + .map(|()| log::set_max_level(log::LevelFilter::Info)) + { + // logger singleton already instantiated. + // we'll just use whatever the current config is. + log::debug!("{e:?}"); + } + } + + #[tokio::test] + async fn fail_download() { + initialize_logger(); + assert!(log::log_enabled!(log::Level::Info)); + let mut server = Server::new_async().await; + let url_path = "/test"; + let url = Url::parse(server.url().as_str()) + .unwrap() + .join(url_path) + .unwrap(); + let mock = server + .mock("GET", url_path) + .with_status(500) + .with_body("Intentionally failed request") + .create(); + let tmp_file = NamedTempFile::new().unwrap(); + let err = download(&url, tmp_file.path(), 1).await.unwrap_err(); + println!("{}", err.to_string()); + assert!(matches!(err, DownloadError::RequestError(_))); + mock.assert(); + log::logger().flush(); + } + + #[tokio::test] + async fn fail_download_no_body() { + initialize_logger(); + let mut server = Server::new_async().await; + let url_path = "/test"; + let url = Url::parse(server.url().as_str()) + .unwrap() + .join(url_path) + .unwrap(); + // to trigger the abridged log::error!() call, the body must be non-UTF-8. + let mock = server + .mock("GET", url_path) + .with_status(500) + // .with_body(b"\xC0") + .create(); + let tmp_file = NamedTempFile::new().unwrap(); + let err = download(&url, tmp_file.path(), 1).await.unwrap_err(); + println!("{}", err.to_string()); + assert!(matches!(err, DownloadError::RequestError(_))); + mock.assert(); + } +} diff --git a/clang-installer/src/downloader/native_packages/mod.rs b/clang-installer/src/downloader/native_packages/mod.rs new file mode 100644 index 00000000..004495e6 --- /dev/null +++ b/clang-installer/src/downloader/native_packages/mod.rs @@ -0,0 +1,138 @@ +use std::fmt::Display; + +use semver::{Version, VersionReq}; + +use crate::{ + ClangTool, RequestedVersion, + version::{ClangVersion, GetToolError}, +}; + +mod unix; +mod windows; + +#[derive(Debug, thiserror::Error)] +pub enum PackageManagerError { + #[error("IO error: {0}")] + Io(#[from] std::io::Error), + #[error("{manager} failed to install {package} package: {stderr}")] + InstallationError { + manager: String, + package: String, + stderr: String, + }, +} + +pub trait PackageManager { + /// Checks if the package manager is installed on the system. + fn is_installed(&self) -> bool; + + /// Returns the name of the package for the specified tool. + /// + /// Because different package managers handle package version differently, + /// this only returns the package's base name. Instead, the version is + /// handled by the [`Self::is_installed_package`] and [`Self::install_package()`]. + fn get_package_name(&self, tool: &ClangTool) -> String; + + /// Lists the supported package managers on the system. + fn list_managers() -> Vec + where + Self: Sized; + + /// Checks if the specified package is installed using the package manager. + fn is_installed_package(&self, package_name: &str, version: Option<&Version>) -> bool; + + /// Installs the specified package using the package manager. + fn install_package( + &self, + package_name: &str, + version: Option<&Version>, + ) -> Result<(), PackageManagerError>; +} + +pub fn get_available_package_managers() -> Vec { + let mut managers = Vec::new(); + #[cfg(target_os = "windows")] + let possibles = windows::WindowsPackageManager::list_managers(); + #[cfg(unix)] + let possibles = unix::UnixPackageManager::list_managers(); + for manager in possibles { + if manager.is_installed() { + managers.push(manager); + } + } + managers +} + +pub fn try_install_package( + tool: &ClangTool, + version_req: &VersionReq, +) -> Result, GetToolError> { + let os_pkg_managers = get_available_package_managers(); + if os_pkg_managers.is_empty() { + log::error!("No supported package managers found on the system."); + return Ok(None); + } else { + let min_version = get_min_ver(version_req).ok_or(GetToolError::VersionMajorRequired)?; + for mgr in os_pkg_managers { + log::info!("Trying to install {tool} v{min_version} using {mgr} package manager."); + let pkg_name = mgr.get_package_name(tool); + if mgr.is_installed_package(&pkg_name, Some(&min_version)) { + let path = + tool.get_exe_path(&RequestedVersion::Requirement(version_req.clone()))?; + let version = tool.capture_version(&path)?; + log::info!( + "Found {tool} version matching {version_req} installed via {mgr} package manager." + ); + return Ok(Some(ClangVersion { version, path })); + } else { + log::info!( + "{mgr} package manager does not have a version of {tool} matching {version_req} installed." + ); + match mgr.install_package(&pkg_name, Some(&min_version)) { + Ok(()) => { + log::info!( + "Successfully installed {tool} v{min_version} using {mgr} package manager." + ); + let path = tool.get_exe_path(&RequestedVersion::SystemDefault)?; + let version = tool.capture_version(&path)?; + if version_req.matches(&version) { + log::info!( + "Installed {tool} version {version} matches the requirement {version_req}." + ); + return Ok(Some(ClangVersion { version, path })); + } else { + log::error!( + "Installed {tool} version {version} does not match the requirement {version_req}." + ); + } + } + Err(e) => { + log::error!( + "Failed to install {tool} v{min_version} using {mgr} package manager: {e}" + ); + } + } + } + } + } + Ok(None) +} + +fn get_min_ver(version_req: &VersionReq) -> Option { + let mut result = None; + for cmp in &version_req.comparators { + if matches!(cmp.op, semver::Op::Exact | semver::Op::Caret) { + let ver = Version { + major: cmp.major, + minor: cmp.minor.unwrap_or(0), + patch: cmp.patch.unwrap_or(0), + pre: cmp.pre.clone(), + build: Default::default(), + }; + if result.as_ref().is_none_or(|r| ver < *r) { + result = Some(ver); + } + } + } + result +} diff --git a/clang-installer/src/downloader/native_packages/unix.rs b/clang-installer/src/downloader/native_packages/unix.rs new file mode 100644 index 00000000..d4545550 --- /dev/null +++ b/clang-installer/src/downloader/native_packages/unix.rs @@ -0,0 +1,183 @@ +#![cfg(unix)] +use std::{fmt::Display, process::Command}; + +use semver::Version; + +use crate::ClangTool; + +use super::{PackageManager, PackageManagerError}; + +/// Supported package managers on Linux and MacOS. +pub enum UnixPackageManager { + /// Debian-based distributions (Ubuntu, etc.) + #[cfg(target_os = "linux")] + Apt, + /// RedHat-based distributions (Fedora, etc.) + #[cfg(target_os = "linux")] + Dnf, + /// Arch-based distributions (Arch, Manjaro, etc.) + #[cfg(target_os = "linux")] + PacMan, + /// Homebrew (Linux or MacOS) + Homebrew, +} + +impl Display for UnixPackageManager { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + #[cfg(target_os = "linux")] + UnixPackageManager::Apt => write!(f, "Apt"), + #[cfg(target_os = "linux")] + UnixPackageManager::Dnf => write!(f, "Dnf"), + #[cfg(target_os = "linux")] + UnixPackageManager::PacMan => write!(f, "PacMan"), + UnixPackageManager::Homebrew => write!(f, "Homebrew"), + } + } +} + +impl UnixPackageManager { + fn as_str(&self) -> &'static str { + match self { + #[cfg(target_os = "linux")] + UnixPackageManager::Apt => "apt", + #[cfg(target_os = "linux")] + UnixPackageManager::Dnf => "dnf", + #[cfg(target_os = "linux")] + UnixPackageManager::PacMan => "pacman", + UnixPackageManager::Homebrew => "brew", + } + } + + fn pkg_name_with_version(&self, package_name: &str, version: Option<&Version>) -> String { + match self { + #[cfg(target_os = "linux")] + UnixPackageManager::Apt | UnixPackageManager::Dnf => { + if let Some(ver) = version { + format!("{package_name}-{}", ver.major) + } else { + package_name.to_string() + } + } + #[cfg(target_os = "linux")] + UnixPackageManager::PacMan => { + if let Some(ver) = version { + format!("{package_name}{}", ver.major) + } else { + package_name.to_string() + } + } + UnixPackageManager::Homebrew => { + if let Some(ver) = version { + format!("{package_name}@{}", ver.major) + } else { + package_name.to_string() + } + } + } + } +} + +impl PackageManager for UnixPackageManager { + fn is_installed(&self) -> bool { + which::which(self.as_str()).is_ok() + } + + fn list_managers() -> Vec + where + Self: Sized, + { + #[cfg(target_os = "linux")] + { + vec![Self::Apt, Self::Dnf, Self::PacMan, Self::Homebrew] + } + #[cfg(not(target_os = "linux"))] + { + vec![Self::Homebrew] + } + } + + #[cfg_attr( + not(target_os = "linux"), + allow( + unused_variables, + reason = "`tool` param only used for linux package managers" + ) + )] + fn get_package_name(&self, tool: &ClangTool) -> String { + match self { + #[cfg(target_os = "linux")] + Self::Apt => tool.to_string(), + #[cfg(target_os = "linux")] + Self::Dnf | Self::PacMan => "clang".to_string(), + Self::Homebrew => "llvm".to_string(), + } + } + + fn install_package( + &self, + package_name: &str, + version: Option<&Version>, + ) -> Result<(), PackageManagerError> { + let mut args = vec![]; + let package_id = self.pkg_name_with_version(package_name, version); + match self { + #[cfg(target_os = "linux")] + UnixPackageManager::Apt | UnixPackageManager::Dnf => { + args.extend(["install", "-y"]); + } + #[cfg(target_os = "linux")] + UnixPackageManager::PacMan => { + args.extend(["-S", "-y"]); + } + UnixPackageManager::Homebrew => { + args.push("install"); + } + } + let output = Command::new(self.as_str()) + .args(args) + .arg(package_id.as_str()) + .output()?; + if output.status.success() { + Ok(()) + } else { + Err(PackageManagerError::InstallationError { + manager: self.as_str().to_string(), + package: package_id, + stderr: String::from_utf8_lossy(&output.stderr).to_string(), + }) + } + } + + fn is_installed_package(&self, package_name: &str, version: Option<&Version>) -> bool { + let mut cmd = Command::new(self.as_str()); + let package_id = self.pkg_name_with_version(package_name, version); + match self { + #[cfg(target_os = "linux")] + UnixPackageManager::Apt => { + let output = cmd + .args(["list", "--installed", package_id.as_str()]) + .output(); + output.is_ok_and(|out| out.status.success()) + } + #[cfg(target_os = "linux")] + UnixPackageManager::Dnf => { + let output = cmd.arg("list").arg(package_id.as_str()).output(); + output.is_ok_and(|out| out.status.success()) + } + #[cfg(target_os = "linux")] + UnixPackageManager::PacMan => { + let output = cmd.arg("-Qs").arg(package_id.as_str()).output(); + output.is_ok_and(|out| out.status.success()) + } + UnixPackageManager::Homebrew => { + let output = cmd + .arg("list") + .arg("--versions") + .arg(package_id.as_str()) + .output(); + output.is_ok_and(|out| out.status.success()) + } + } + } +} diff --git a/clang-installer/src/downloader/native_packages/windows.rs b/clang-installer/src/downloader/native_packages/windows.rs new file mode 100644 index 00000000..e07078b2 --- /dev/null +++ b/clang-installer/src/downloader/native_packages/windows.rs @@ -0,0 +1,188 @@ +#![cfg(target_os = "windows")] +use std::{fmt::Display, process::Command}; + +use semver::{Comparator, Version}; + +use crate::ClangTool; + +use super::{PackageManager, PackageManagerError}; + +/// Supported package managers on Windows. +#[derive(Debug, Clone, Copy)] +pub enum WindowsPackageManager { + /// Chocolatey + Chocolatey, + /// Winget (Windows Package Manager) + /// + /// Only available on Windows 10 1809 and later. + /// Not available on Window Enterprise/Server editions. + Winget, + // Scoop, +} +impl Display for WindowsPackageManager { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + WindowsPackageManager::Chocolatey => write!(f, "Chocolatey"), + WindowsPackageManager::Winget => write!(f, "Winget"), + // WindowsPackageManager::Scoop => write!(f, "Scoop"), + } + } +} +impl WindowsPackageManager { + fn as_str(&self) -> &'static str { + match self { + WindowsPackageManager::Chocolatey => "choco", + WindowsPackageManager::Winget => "winget", + // WindowsPackageManager::Scoop => "scoop", + } + } +} + +impl PackageManager for WindowsPackageManager { + fn is_installed(&self) -> bool { + Command::new(self.as_str()) + .arg("--version") + .output() + .is_ok() + } + + fn list_managers() -> Vec + where + Self: Sized, + { + vec![Self::Chocolatey, Self::Winget] + } + + fn is_installed_package(&self, package_name: &str, version: Option<&Version>) -> bool { + let mut cmd = Command::new(self.as_str()); + let ver_cmp = version.map(|v| Comparator { + op: semver::Op::Caret, + major: v.major, + minor: Some(v.minor), + patch: Some(v.patch), + pre: v.pre.clone(), + }); + match self { + WindowsPackageManager::Chocolatey => { + let output = cmd.arg("list").arg(package_name).output(); + if let Ok(out) = output + && out.status.success() + { + let stdout = String::from_utf8_lossy(&out.stdout).to_string(); + // skip line about chocolatey version + let lines = stdout.lines().skip(1); + for line in lines { + // packages are listed as ` ` + let mut l = line.split(' '); + if let Some(name) = l.next() + && name == package_name + { + // found the package, check version + if let Some(ver_cmp) = ver_cmp.clone() { + if let Some(ver_str) = l.next() + && let Ok(ver) = Version::parse(ver_str) + { + return ver_cmp.matches(&ver); + } else { + // version not found or invalid, treat as not installed + return false; + } + } else { + // version not specified, just check if package is listed + return true; + } + } + } + } + false + } + WindowsPackageManager::Winget => { + let output = cmd.arg("list").arg("--id").arg(package_name).output(); + if let Ok(out) = output + && out.status.success() + { + // skip first 2 lines of table header and divider + let stdout = String::from_utf8_lossy(&out.stdout).to_string(); + let lines = stdout.lines().skip(2); + for line in lines { + // packages are listed as ` ` + let mut l = line.split(' ').skip(1); + if let Some(name) = l.next() + && name == package_name + { + // found the package, check version + if let Some(ver_cmp) = ver_cmp.clone() { + // skip id and get version + l.next(); + if let Some(ver_str) = l.next() + && let Ok(ver) = Version::parse(ver_str) + { + return ver_cmp.matches(&ver); + } else { + // version not found or invalid, treat as not installed + return false; + } + } else { + // version not specified, just check if package is listed + return true; + } + } + } + } + false + } + } + } + + fn get_package_name(&self, _tool: &ClangTool) -> String { + match self { + WindowsPackageManager::Chocolatey => "llvm".to_string(), + WindowsPackageManager::Winget => "LLVM.LLVM".to_string(), + } + } + + fn install_package( + &self, + package_name: &str, + version: Option<&Version>, + ) -> Result<(), PackageManagerError> { + let mut cmd = Command::new(self.as_str()); + match self { + Self::Chocolatey => { + cmd.arg("install").arg(package_name).arg("-y"); + if let Some(version) = version { + cmd.arg("--version").arg(version.to_string()); + } + let output = cmd.output()?; + if output.status.success() { + Ok(()) + } else { + Err(PackageManagerError::InstallationError { + manager: self.as_str().to_string(), + package: package_name.to_string(), + stderr: String::from_utf8_lossy(&output.stderr).to_string(), + }) + } + } + Self::Winget => { + let mut cmd = Command::new("winget"); + cmd.arg("install").arg("--id").arg(package_name); + if let Some(version) = version { + // winget does not allow installing an older version of a package that + // is already installed (with a newer version). So use `--force` to reinstall the specified version. + cmd.arg("--version").arg(version.to_string()).arg("--force"); + } + let output = cmd.output().map_err(PackageManagerError::Io)?; + if output.status.success() { + Ok(()) + } else { + Err(PackageManagerError::InstallationError { + manager: self.as_str().to_string(), + package: package_name.to_string(), + stderr: String::from_utf8_lossy(&output.stderr).to_string(), + }) + } + } + } + } +} diff --git a/clang-installer/src/downloader/pypi.rs b/clang-installer/src/downloader/pypi.rs new file mode 100644 index 00000000..9d3888ed --- /dev/null +++ b/clang-installer/src/downloader/pypi.rs @@ -0,0 +1,548 @@ +use super::{DownloadError, caching::Cacher, download, hashing::HashAlgorithm}; +use crate::{ClangTool, progress_bar::ProgressBar}; + +use semver::{Version, VersionReq}; +use serde::{Deserialize, de::Visitor}; +use std::{ + collections::HashMap, + fs, + io::{Read, Write}, + path::PathBuf, + str::FromStr, + time::Duration, +}; +use url::Url; +use zip::{ZipArchive, result::ZipError}; + +#[derive(Debug, thiserror::Error)] +pub enum PyPiDownloadError { + /// Errors that occur during HTTP requests. + #[error("HTTP request error: {0}")] + DownloadCache(#[from] DownloadError), + + /// Errors that occur when parsing version strings. + #[error("Invalid version string")] + InvalidVersion, + + /// Error indicating that no suitable version was found on PyPI for the given requirement and system compatibility. + #[error("No version on PyPI satisfies the given requirement")] + NoVersionFound, + + /// Errors that occur when deserializing JSON responses. + #[error("Deserialization error: {0}")] + Deserialization(#[from] serde_json::Error), + + /// Errors that occur when parsing wheel filenames. + #[error("Invalid wheel name: {0}")] + InvalidWheelName(String), + + /// Errors that occur when parsing URLs. + #[error("Invalid URL: {0}")] + InvalidUrl(#[from] url::ParseError), + + /// Errors that occur when reading from the cache. + #[error("Cache read error: {0}")] + ReadCache(#[from] std::io::Error), + + /// Errors that occur when reading a ZIP archive from the cache. + #[error("ZIP archive error: {0}")] + ZipArchive(#[from] ZipError), + + /// Error that indicates the expected executable was not found in the downloaded wheel. + #[error("Expected executable not found in the downloaded wheel")] + ExecutableNotFound, +} + +/// Represents the information of a package on PyPI +#[derive(Debug, Deserialize)] +struct PyPiProjectInfo { + /// A mapping from version strings to a list of release information for that version. + releases: HashMap>, +} + +struct HashAlgorithmVisitor; +impl<'de> Visitor<'de> for HashAlgorithmVisitor { + type Value = Vec; + + fn visit_map(self, mut map: A) -> Result + where + A: serde::de::MapAccess<'de>, + { + let mut result = vec![]; + while let Some((key, value)) = map.next_entry::()? { + match key.as_str() { + "sha256" => result.push(HashAlgorithm::Sha256(value.to_lowercase())), + "blake2b_256" => result.push(HashAlgorithm::Blake2b256(value.to_lowercase())), + _ => (), + } + } + Ok(result) + } + + fn expecting(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result { + formatter.write_str("a map of hash algorithms names to their corresponding checksum values") + } +} + +fn deserialize_digests<'de, D>(digest_map: D) -> Result, D::Error> +where + D: serde::Deserializer<'de>, +{ + digest_map.deserialize_map(HashAlgorithmVisitor) +} + +/// Represents the information of a single release of a package on PyPI. +#[derive(Debug, Deserialize, Clone)] +struct PyPiReleaseInfo { + /// The URL to download the release. + url: String, + + /// The filename of the release. + filename: String, + + /// The size of the release in bytes. + size: u64, + + /// A mapping from digest algorithm names to their corresponding hash values. + #[serde(deserialize_with = "deserialize_digests")] + digests: Vec, + + /// Indicates whether the release has been yanked. + yanked: bool, +} + +/// Represents the C library used by a Linux wheel, which can be either glibc or musl. +#[derive(Debug, PartialEq, Eq)] +enum LinuxLibC { + Glibc { version: Version }, + Musl { version: Version }, +} + +impl LinuxLibC { + /// Checks if the [LinuxLibC] is compatible with the current system. + pub fn is_compatible_with_system(&self) -> bool { + match self { + #[cfg(target_env = "musl")] + LinuxLibC::Musl { .. } => true, + #[cfg(not(target_env = "musl"))] + LinuxLibC::Glibc { .. } => true, + _ => false, + } + } +} + +/// Represents the operating system of a wheel's target platform. +#[derive(Debug, PartialEq, Eq)] +enum PlatformOs { + Windows, + MacOS, + Linux { lib_c: LinuxLibC }, +} + +impl PlatformOs { + /// Checks if the [PlatformOs] is compatible with the current system. + pub fn is_compatible_with_system(&self) -> bool { + match self { + PlatformOs::Windows => std::env::consts::OS == "windows", + PlatformOs::MacOS => std::env::consts::OS == "macos", + PlatformOs::Linux { lib_c } => { + std::env::consts::OS == "linux" && lib_c.is_compatible_with_system() + } + } + } +} + +/// Represents the platform tag of a Python wheel's filename. +/// +/// This is the last segment of the wheel filename, +/// which indicates the target platform for the wheel. +#[derive(Debug)] +struct PlatformTag { + /// The operating system for which the wheel is built. + os: PlatformOs, + + /// The machine architecture for which the wheel is built. + arch: String, +} + +impl PlatformTag { + /// Checks if the platform tag is compatible with the current system. + pub fn is_compatible_with_system(&self) -> bool { + self.os.is_compatible_with_system() && { + let sys_arch = std::env::consts::ARCH; + match std::env::consts::OS { + "windows" => match sys_arch { + "x86_64" => self.arch == "amd64", + "aarch64" => self.arch == "arm64", + "x86" => self.arch == "x86", + _ => false, + }, + "macos" => match sys_arch { + "x86_64" => self.arch == "x86_64", + "aarch64" => self.arch == "arm64", + _ => false, + }, + "linux" => self.arch == sys_arch, + _ => false, + } + } + } +} + +impl FromStr for PlatformTag { + type Err = PyPiDownloadError; + + /// Parses the platform tag from a wheel filename. + /// + /// The input string can be the platform tag itself, not the entire wheel filename. + fn from_str(s: &str) -> Result { + let s = if s.contains(".manylinux") { + s.split('.') + .find(|part| part.starts_with("manylinux_")) + .ok_or(PyPiDownloadError::InvalidWheelName(s.to_string()))? + } else { + s + }; + if s == "win32" { + Ok(Self { + os: PlatformOs::Windows, + arch: "x86".to_string(), + }) + } else if s.starts_with("win") { + let (_, arch) = s + .split_once('_') + .ok_or(PyPiDownloadError::InvalidWheelName(s.to_string()))?; + Ok(Self { + os: PlatformOs::Windows, + arch: arch.to_string(), + }) + } else if s.starts_with("manylinux1") { + let (_, arch) = s + .split_once('_') + .ok_or(PyPiDownloadError::InvalidWheelName(s.to_string()))?; + Ok(Self { + os: PlatformOs::Linux { + lib_c: LinuxLibC::Glibc { + version: Version::new(2, 5, 0), + }, + }, + arch: arch.to_string(), + }) + } else if s.starts_with("musllinux") + || s.starts_with("manylinux_") + || s.starts_with("macosx") + { + let mut parts = s.splitn(4, '_'); + let os = parts + .next() + .ok_or(PyPiDownloadError::InvalidWheelName(s.to_string()))?; + let lib_c_ver = Version::new( + parts + .next() + .ok_or(PyPiDownloadError::InvalidWheelName(s.to_string()))? + .parse::() + .unwrap_or(1), + parts + .next() + .ok_or(PyPiDownloadError::InvalidWheelName(s.to_string()))? + .parse::() + .unwrap_or(1), + 0, + ); + let arch = parts + .next() + .ok_or(PyPiDownloadError::InvalidWheelName(s.to_string()))?; + if os == "macosx" { + Ok(Self { + os: PlatformOs::MacOS, + arch: arch.to_string(), + }) + } else if os.starts_with("musl") { + Ok(Self { + os: PlatformOs::Linux { + lib_c: LinuxLibC::Musl { version: lib_c_ver }, + }, + arch: arch.to_string(), + }) + } else { + Ok(Self { + os: PlatformOs::Linux { + lib_c: LinuxLibC::Glibc { version: lib_c_ver }, + }, + arch: arch.to_string(), + }) + } + } else { + Err(PyPiDownloadError::InvalidWheelName(s.to_string())) + } + } +} + +/// Represents the tags of a Python wheel's filename. +/// +/// See [PyPA docs](https://packaging.python.org/en/latest/specifications/binary-distribution-format/#file-format) +/// for more details. +/// +/// ```txt +/// {distribution}-{version}(-{build tag})?-{python tag}-{abi tag}-{platform tag}.whl +/// ``` +#[derive(Debug)] +struct WheelTags { + /// The version of the package for which the wheel is built. + /// + /// For clang-format and clang-tidy wheels, this corresponds to the version of the clang tool. + version: Version, + + /// The platform tag indicates the wheel's target platform. + platform: PlatformTag, +} + +impl FromStr for WheelTags { + type Err = PyPiDownloadError; + + /// Parses a wheel filename into its tags. + /// + /// Does not support source distribution names. + /// Only keeps information relevant to system compatibility checks. + fn from_str(s: &str) -> Result { + let mut iter = s.trim_end_matches(".whl").split('-'); + let tags_len = iter.clone().count(); + if tags_len < 5 { + return Err(PyPiDownloadError::InvalidWheelName(s.to_string())); + } + iter.next(); // already know the package name + + // The exact version (PEP 440 compatible) should comply with semver parsing. + let version = Version::parse( + iter.next() + .ok_or(PyPiDownloadError::InvalidWheelName(s.to_string()))?, + ) + .map_err(|_| PyPiDownloadError::InvalidVersion)?; + let platform = PlatformTag::from_str(iter.next_back().unwrap())?; + + // The remaining tags are not used for compatibility checks. + // These binary wheels come with the executable within, so + // we don't need to validate python version nor abi tags here. + // optional build tag is not used in clang_format or clang_tidy wheel deployments + + Ok(Self { version, platform }) + } +} + +impl WheelTags { + /// Checks if the wheel tags indicate compatibility with the current system. + pub fn is_compatible_with_system(&self) -> bool { + self.platform.is_compatible_with_system() + } +} +pub struct PyPiDownloader; + +impl Cacher for PyPiDownloader {} + +const PYPI_JSON_API_URL: &str = "https://pypi.org"; + +impl PyPiDownloader { + /// Returns the best available release info from PyPI for the given tool and minimum version. + fn get_best_pypi_release( + clang_tool: &ClangTool, + pypi_info: &PyPiProjectInfo, + version: &VersionReq, + ) -> Result<(Version, PyPiReleaseInfo), PyPiDownloadError> { + let mut result = None; + + for (ver_str, releases) in &pypi_info.releases { + let ver = match Version::parse(ver_str) { + Ok(v) => v, + Err(_) => continue, + }; + if version.matches(&ver) { + for release in releases { + if !release.filename.ends_with(".whl") { + continue; + } + let wheel_tags = WheelTags::from_str(&release.filename)?; + if !release.yanked && wheel_tags.is_compatible_with_system() { + log::debug!( + "Found {clang_tool} (size: {}, digest: {:?}); {wheel_tags:?}", + release.size, + release.digests + ); + if result.as_ref().is_none_or(|(v, _)| *v < ver) { + result = Some((wheel_tags.version.clone(), release)); + } + } + } + } + } + result + .map(|(a, b)| (a, b.to_owned())) + .ok_or(PyPiDownloadError::NoVersionFound) + } + + async fn get_pypi_release_info( + clang_tool: &ClangTool, + ) -> Result { + let cache_file = Self::get_cache_dir() + .join("pypi") + .join(format!("{clang_tool}_pypi.json")); + + // PyPI package info cache should not be refreshed unless it is more than 10 minutes old. + // This is behavior recommended by PyPI response header `Cache-Control: max-age=600`. + // Instead of caching the `Cache-Control` header, we'll just check the cached file's "last modified" time. + let cache_valid = Self::is_cache_valid(&cache_file, Some(Duration::from_mins(10))); + let body = if cache_valid { + log::info!( + "Using cached PyPI info for {clang_tool} from {}", + cache_file.to_string_lossy() + ); + std::fs::read_to_string(cache_file)? + } else { + let api_url = format!("{PYPI_JSON_API_URL}/pypi/{clang_tool}/"); + let endpoint = Url::parse(&api_url)?.join("json")?; + log::info!("Fetching PyPI info for {clang_tool} from {endpoint}"); + download(&endpoint, &cache_file, 10).await?; + std::fs::read_to_string(cache_file)? + }; + Ok(serde_json::from_str(body.as_str())?) + } + + /// Downloads the specified `clang_tool` and `version` from PyPI. + /// + /// Determines the best available release based on the version requirement and system compatibility, + /// then downloads the wheel file and caches it locally. + pub async fn download_tool( + clang_tool: &ClangTool, + version: &VersionReq, + ) -> Result { + let info = Self::get_pypi_release_info(clang_tool).await?; + let (ver, info) = Self::get_best_pypi_release(clang_tool, &info, version)?; + let cached_filename = format!("{clang_tool}_{ver}.whl"); + let cached_dir = Self::get_cache_dir(); + let cached_wheel = cached_dir.join("pypi").join(&cached_filename); + if Self::is_cache_valid(&cached_wheel, None) { + log::info!( + "Using cached wheel for {clang_tool} version {ver} from {}", + cached_wheel.to_string_lossy() + ); + } else { + log::info!("Downloading {clang_tool} version {ver} from {}", info.url); + download(&Url::parse(&info.url)?, &cached_wheel, 60).await?; + } + if let Some(digest) = info.digests.first() { + log::info!("Verifying wheel file integrity with digest: {digest:?}"); + digest.verify(&cached_wheel)?; + } + let extracted_bin = cached_dir.join(format!( + "bin/{clang_tool}-{}{}", + ver.major, + if cfg!(windows) { ".exe" } else { "" } + )); + Self::extract_bin(clang_tool, &cached_wheel, &extracted_bin)?; + Ok(extracted_bin) + } + + fn extract_bin( + clang_tool: &ClangTool, + wheel_path: &PathBuf, + extracted_bin: &PathBuf, + ) -> Result<(), PyPiDownloadError> { + let mut archive = fs::File::open(wheel_path) + .map_err(ZipError::from) + .and_then(ZipArchive::new)?; + let expected_zip_path = format!( + "{}/data/bin/{}{}", + clang_tool.as_str().replace('-', "_"), + clang_tool.as_str(), + if cfg!(windows) { ".exe" } else { "" } + ); + for i in 0..archive.len() { + let mut file = archive.by_index(i)?; + if file.name() == expected_zip_path { + if let Some(parent) = extracted_bin.parent() { + fs::create_dir_all(parent)?; + } + let file_size = file.size(); + let mut out = fs::OpenOptions::new() + .write(true) + .create(true) + .truncate(true) + .open(extracted_bin)?; + let mut buffer = [0; EXTRACTED_CHUNK_SIZE as usize]; + let mut total_extracted = 0; + let mut progress_bar = + ProgressBar::new(Some(file_size), "Extracting binary from wheel"); + while total_extracted < file_size { + let bytes_read = file.read(&mut buffer)?; + if bytes_read == 0 { + break; + } + total_extracted += bytes_read as u64; + out.write_all(&buffer[..bytes_read])?; + progress_bar.inc(bytes_read as u64)?; + } + progress_bar.finish()?; + #[cfg(unix)] + { + // Make the extracted binary executable on Unix-like systems. + use std::os::unix::fs::PermissionsExt; + let mut perms = out.metadata()?.permissions(); + perms.set_mode(0o755); + out.set_permissions(perms)?; + } + return Ok(()); + } + } + log::error!("Failed to find expected binary in the wheel: {expected_zip_path}"); + Err(PyPiDownloadError::ExecutableNotFound) + } +} + +const EXTRACTED_CHUNK_SIZE: u64 = 1024; + +#[cfg(test)] +mod test { + use std::str::FromStr; + + use super::{PlatformTag, PyPiReleaseInfo, WheelTags}; + + #[test] + fn bad_json_digest() { + let json = r#" + { + "url": "https://files.pythonhosted.org/packages/xx/yy/clang_format-17.0.0-py3-none-manylinux_2_17_x86_64.whl", + "filename": "clang_format-17.0.0-py3-none-manylinux_2_17_x86_64.whl", + "size": 12345678, + "digests": ["sha256"], + "yanked": false + } + "#; + let result = serde_json::from_str::(json).unwrap_err(); + println!("{}", result.to_string()); + } + + #[test] + fn manylinux1_tag() { + let tag = "manylinux1_x86_64"; + let platform_tag = PlatformTag::from_str(tag).unwrap(); + assert_eq!(platform_tag.arch.as_str(), "x86_64"); + + let bad_tag = "manylinux1-x86-64"; + let err = PlatformTag::from_str(bad_tag).unwrap_err(); + println!("{}", err.to_string()); + } + + #[test] + fn unknown_platform_tag() { + let bad_tag = "unknown_platform"; + let err = PlatformTag::from_str(bad_tag).unwrap_err(); + println!("{}", err.to_string()); + } + + #[test] + fn bad_wheel_tags() { + // should have at least 5 hyphenated segments. + let bad_wheel_name = "clang_format-17.0.0-py3-none_manylinux_2_17_x86_64.whl"; + let err = WheelTags::from_str(bad_wheel_name).unwrap_err(); + println!("{}", err.to_string()); + } +} diff --git a/clang-installer/src/downloader/static_dist.rs b/clang-installer/src/downloader/static_dist.rs new file mode 100644 index 00000000..d08aee2e --- /dev/null +++ b/clang-installer/src/downloader/static_dist.rs @@ -0,0 +1,174 @@ +//! A module to download static binaries from cpp-linter/clang-tools-static-binaries. + +use std::{ + env::consts, + fs, + ops::RangeInclusive, + path::{Path, PathBuf}, +}; + +use semver::{Version, VersionReq}; +use url::Url; + +use crate::{ + Cacher, ClangTool, DownloadError, + downloader::{download, hashing::HashAlgorithm}, +}; + +#[derive(Debug, thiserror::Error)] +pub enum StaticDistDownloadError { + #[error("Failed to download static binary: {0}")] + DownloadError(#[from] DownloadError), + #[error("The requested version does not match any available versions")] + UnsupportedVersion, + #[error("The static binaries are only built for x86_64 (amd64) architecture")] + UnsupportedArchitecture, + #[error("Failed to parse the URL: {0}")] + UrlParseError(#[from] url::ParseError), + #[error("Failed to read or write cache file: {0}")] + IoError(#[from] std::io::Error), + #[error("Failed to parse the SHA512 sum file")] + Sha512Corruption, +} + +pub struct StaticDistDownloader; + +impl Cacher for StaticDistDownloader {} + +impl StaticDistDownloader { + /// Finds a suitable version from `req_ver` within the range of available clang tools versions. + /// + /// The available versions are determined by the `MIN_CLANG_TOOLS_VERSION` and + /// `MAX_CLANG_TOOLS_VERSION` environment variables (inclusive) at compile time. + fn find_suitable_version(req_ver: &VersionReq) -> Option { + let min_clang_tools_version: u8 = option_env!("MIN_CLANG_TOOLS_VERSION") + .unwrap_or("9") + .parse() + .expect("Invalid MIN_CLANG_TOOLS_VERSION env var value"); + let max_clang_tools_version: u8 = option_env!("MAX_CLANG_TOOLS_VERSION") + .unwrap_or("21") + .parse() + .expect("Invalid MAX_CLANG_TOOLS_VERSION env var value"); + let clang_tools_versions: RangeInclusive = + min_clang_tools_version..=max_clang_tools_version; + let outlier = Version::new(12, 0, 1); + for ver in clang_tools_versions + .map(|v| Version::new(v as u64, 0, 0)) + .rev() + { + if ver.major == 12 && req_ver.matches(&outlier) { + return Some(outlier); + } else if req_ver.matches(&ver) { + return Some(ver); + } + } + None + } + + /// Verifies the SHA512 checksum of the downloaded file. + /// + /// The expected checksum is extracted from another downloaded `*.sha512sum` file + /// (pointed to by `sha512_path`). + fn verify_sha512(file_path: &Path, sha512_path: &Path) -> Result<(), StaticDistDownloadError> { + let checksum_file_content = fs::read_to_string(sha512_path)?; + let expected = checksum_file_content + .split(' ') + .next() + .ok_or(StaticDistDownloadError::Sha512Corruption)?; + HashAlgorithm::Sha512(expected.to_string()).verify(file_path)?; + Ok(()) + } + + /// Downloads the `requested_version` of the specified `tool` from a distribution of statically linked binaries. + /// + /// The distribution is maintained at https://github.com/cpp-linter/clang-tools-static-binaries. + /// Supported platforms includes Windows, Linux, and MacOS. + /// Supported architectures is limited to `x86_64` (`amd64`). + pub async fn download_tool( + tool: &ClangTool, + requested_version: &VersionReq, + ) -> Result { + if consts::ARCH != "x86_64" { + return Err(StaticDistDownloadError::UnsupportedArchitecture); + } + let ver = Self::find_suitable_version(requested_version) + .ok_or(StaticDistDownloadError::UnsupportedVersion)?; + let ver_str = if ver.minor == 0 && ver.patch == 0 { + ver.major.to_string() + } else { + ver.to_string() + }; + let suffix = if cfg!(target_os = "windows") { + ".exe" + } else { + "" + }; + let clang_tools_repo: &str = option_env!("CLANG_TOOLS_REPO") + .unwrap_or("https://github.com/cpp-linter/clang-tools-static-binaries"); + let clang_tools_tag: &str = option_env!("CLANG_TOOLS_TAG").unwrap_or("master-6e612956"); + + let base_url = format!( + "{clang_tools_repo}/releases/download/{clang_tools_tag}/{tool}-{ver_str}_{}-amd64", + if cfg!(target_os = "windows") { + "windows" + } else if cfg!(target_os = "macos") { + "macos" + } else { + "linux" + }, + ); + let url = Url::parse(format!("{base_url}{suffix}").as_str())?; + let cache_path = Self::get_cache_dir(); + let download_path = cache_path + .join("bin") + .join(format!("{tool}-{ver_str}{suffix}").as_str()); + if download_path.exists() { + log::info!( + "Using cached static binary for {tool} version {ver_str} from {:?}", + download_path.to_string_lossy() + ); + } else { + log::info!("Downloading static binary for {tool} version {ver_str} from {url}"); + download(&url, &download_path, 60 * 2).await?; + } + let sha512_cache_path = cache_path + .join("static_dist") + .join(format!("{tool}-{ver_str}.sha512").as_str()); + if sha512_cache_path.exists() { + log::info!( + "Using cached SHA512 checksum for {tool} version {ver_str} from {:?}", + sha512_cache_path.to_string_lossy() + ); + } else { + let sha512_url = Url::parse(format!("{base_url}.sha512sum").as_str())?; + log::info!( + "Downloading SHA512 checksum for {tool} version {ver_str} from {sha512_url}" + ); + download(&sha512_url, &sha512_cache_path, 10).await?; + #[cfg(unix)] + { + // Make the extracted binary executable on Unix-like systems. + use std::os::unix::fs::PermissionsExt; + let out = fs::OpenOptions::new().write(true).open(&download_path)?; + let mut perms = out.metadata()?.permissions(); + perms.set_mode(0o755); + out.set_permissions(perms)?; + } + } + Self::verify_sha512(&download_path, &sha512_cache_path)?; + Ok(download_path) + } +} + +#[cfg(test)] +mod tests { + use super::StaticDistDownloader; + use semver::VersionReq; + + #[test] + fn find_none() { + let req_ver = VersionReq::parse("=8").unwrap(); + let suitable_version = StaticDistDownloader::find_suitable_version(&req_ver); + assert_eq!(suitable_version, None); + } +} diff --git a/clang-installer/src/lib.rs b/clang-installer/src/lib.rs new file mode 100644 index 00000000..5a8edc2f --- /dev/null +++ b/clang-installer/src/lib.rs @@ -0,0 +1,28 @@ +#![doc( + html_logo_url = "https://raw.githubusercontent.com/cpp-linter/cpp-linter-rs/main/docs/docs/images/logo.png" +)] +#![doc( + html_favicon_url = "https://github.com/cpp-linter/cpp-linter-rs/raw/main/docs/docs/images/favicon.ico" +)] +#![doc = include_str!("../README.md")] +mod downloader; +pub use downloader::{ + DownloadError, + caching::Cacher, + pypi::{PyPiDownloadError, PyPiDownloader}, + static_dist::{StaticDistDownloadError, StaticDistDownloader}, +}; + +mod tool; +pub use tool::ClangTool; + +pub mod utils; + +mod version; +pub use version::RequestedVersion; + +mod cli; +pub use cli::CliOptions; + +mod progress_bar; +pub use progress_bar::ProgressBar; diff --git a/clang-installer/src/main.rs b/clang-installer/src/main.rs new file mode 100644 index 00000000..1977fb4f --- /dev/null +++ b/clang-installer/src/main.rs @@ -0,0 +1,122 @@ +use anyhow::Result; +use clang_installer::{CliOptions, RequestedVersion}; +use clap::Parser; +use colored::{Colorize, control::set_override}; +use log::{Level, LevelFilter, Log, Metadata, Record}; + +use std::{ + collections::HashMap, + env, + io::{Write, stdout}, +}; + +struct SimpleLogger; + +impl SimpleLogger { + fn level_color(level: &Level) -> String { + let name = format!("{:>5}", level.as_str().to_uppercase()); + match level { + Level::Error => name.red().bold().to_string(), + Level::Warn => name.yellow().bold().to_string(), + Level::Info => name.green().bold().to_string(), + Level::Debug => name.blue().bold().to_string(), + Level::Trace => name.magenta().bold().to_string(), + } + } +} + +impl Log for SimpleLogger { + fn enabled(&self, metadata: &Metadata) -> bool { + metadata.level() <= log::max_level() + } + + fn log(&self, record: &Record) { + let mut stdout = stdout().lock(); + if record.target() == "CI_LOG_GROUPING" { + // this log is meant to manipulate a CI workflow's log grouping + writeln!(stdout, "{}", record.args()).expect("Failed to write log command to stdout"); + stdout + .flush() + .expect("Failed to flush log command in stdout"); + } else if self.enabled(record.metadata()) { + let module = record.module_path(); + if module + .is_none_or(|v| v.starts_with("clang_installer") || v.starts_with("clang_tools")) + { + writeln!( + stdout, + "[{}]: {}", + Self::level_color(&record.level()), + record.args() + ) + .expect("Failed to write log message to stdout"); + } else if let Some(module) = module { + writeln!( + stdout, + "[{}]{{{}:{}}}: {}", + Self::level_color(&record.level()), + module, + record.line().unwrap_or_default(), + record.args() + ) + .expect("Failed to write detailed log message to stdout"); + } + stdout + .flush() + .expect("Failed to flush log message in stdout"); + } + } + + fn flush(&self) {} +} + +/// A function to initialize the private `LOGGER`. +/// +/// The logging level defaults to [`LevelFilter::Info`]. +/// This logs a debug message about [`SetLoggerError`](struct@log::SetLoggerError) +/// if the `LOGGER` is already initialized. +pub fn initialize_logger() { + let logger: SimpleLogger = SimpleLogger; + if env::var("CPP_LINTER_COLOR") + .as_deref() + .is_ok_and(|v| matches!(v, "on" | "1" | "true")) + { + set_override(true); + } + if let Err(e) = + log::set_boxed_logger(Box::new(logger)).map(|()| log::set_max_level(LevelFilter::Info)) + { + // logger singleton already instantiated. + // we'll just use whatever the current config is. + log::debug!("{e:?}"); + } +} + +#[tokio::main] +async fn main() -> Result<()> { + initialize_logger(); + let options = CliOptions::parse(); + log::debug!("{:?}", options); + + let tool = options + .tool + .expect("--tool should have a default value: [clang-format, clang-tidy]"); + match options.version.unwrap_or(RequestedVersion::default()) { + RequestedVersion::NoValue => { + log::info!( + "clang-tools(-installer) version: {}", + env!("CARGO_PKG_VERSION") + ); + } + req_ver => { + let mut map_tools = HashMap::new(); + for t in tool { + if let Some(version) = req_ver.eval_tool(&t, options.force).await? { + map_tools.entry(t).or_insert(version); + } + } + log::info!("Finished! \n{map_tools:#?}"); + } + } + Ok(()) +} diff --git a/clang-installer/src/progress_bar.rs b/clang-installer/src/progress_bar.rs new file mode 100644 index 00000000..ed719923 --- /dev/null +++ b/clang-installer/src/progress_bar.rs @@ -0,0 +1,162 @@ +use std::io::{IsTerminal, Result, Write, stdin, stdout}; + +/// A simple progress bar implementation that supports both interactive and non-interactive terminals. +pub struct ProgressBar { + /// The `total` size of the task being tracked, if known. + total: Option, + /// The `current` progress towards the `total`. + current: u64, + /// The number of `steps` completed in the progress bar. + /// + /// This is primarily used for tracking how many times the progress has changed. + /// When `total` is unknown, this is the only way to track progress, and it will be incremented on every update.. + steps: u32, + /// A mutex lock on the stdout. + /// + /// Using this instead of `print!()` allows for faster writes to stdout and + /// prevents other threads from interrupting the output of the progress bar. + stdout_handle: std::io::StdoutLock<'static>, + /// Is the terminal session interactive? + is_interactive: bool, + /// The leading prompt to display before the progress bar (e.g. "Downloading") + /// + /// Note, an indentation is prefixed to this (to align better with `log::log!()` prefixes), + /// and a space is added to separate the prompt from the progress bar. + prompt: String, +} + +impl ProgressBar { + const BAR_CHAR: &str = "#"; + const EMPTY_CHAR: &str = "-"; + const MAX_BAR_WIDTH: u32 = 20; + const LOG_INDENT: &str = " "; + + /// Creates a new `ProgressBar` instance. + /// + /// This is considered infallible, but it is recommended to call [`Self::render()`] immediately after instantiation. + /// ``` + /// use clang_installer::ProgressBar; + /// let mut progress_bar = ProgressBar::new(Some(100), "Downloading"); + /// progress_bar.render().unwrap(); // render 0% state + /// progress_bar.inc(50).unwrap(); // render 50% state + /// progress_bar.inc(50).unwrap(); // render 100% state + /// progress_bar.finish().unwrap(); // clean up and write a line break (move to next line) + /// // stdout lock is released when `progress_bar` goes out of scope + /// ``` + pub fn new(total: Option, prompt: &str) -> Self { + Self { + total, + current: 0, + steps: 0, + stdout_handle: stdout().lock(), + is_interactive: stdin().is_terminal(), + prompt: prompt.to_string(), + } + } + + /// Increments the progress by the specified `delta` and updates the display. + /// + /// If the `total` is known, then the progress bar will be updated based on the percentage of `current` to `total`. + /// If the `total` is unknown, then the progress bar will simply increment by one step for each call to this method. + pub fn inc(&mut self, delta: u64) -> Result<()> { + self.current += delta; + self.render() + } + + /// Finishes the progress bar and moves to the next line. + pub fn finish(&mut self) -> Result<()> { + writeln!(&mut self.stdout_handle)?; // Move to the next line after finishing + self.stdout_handle.flush() + } + + /// Renders the progress bar based on the current state. + /// + /// This should only be invoked once after [`Self::new()`]. + /// Subsequent updates should be made using [`Self::inc()`], which will call this method internally. + pub fn render(&mut self) -> Result<()> { + let advance_bar = self.total.map(|total| { + let progress = self.current as f64 / total as f64; + + (progress * Self::MAX_BAR_WIDTH as f64).floor() as u32 + }); + if let Some(new_steps) = advance_bar + && new_steps > self.steps + { + // self.total is Some() known value + if self.is_interactive { + // rewrite entire line including prompt + let mut out = format!("{}{} ", Self::LOG_INDENT, self.prompt); + for _ in 0..new_steps { + out.push_str(Self::BAR_CHAR); + } + for _ in new_steps..Self::MAX_BAR_WIDTH { + out.push_str(Self::EMPTY_CHAR); + } + out.push('\r'); + write!(&mut self.stdout_handle, "{}", out)?; + } else { + // only write chars to line (without new line) + let mut out = if self.current == 0 { + format!("{}{} ", Self::LOG_INDENT, self.prompt) + } else { + String::new() + }; + for _ in self.steps..new_steps { + out.push_str(Self::BAR_CHAR); + } + write!(&mut self.stdout_handle, "{}", out)?; + } + self.steps = new_steps; + self.stdout_handle.flush()?; + } else if self.total.is_none() { + // self.total is None (unknown value) + // in this case we'll use self.steps to record how many chunks were processed + self.steps += 1; + if self.is_interactive { + // rewrite entire line including prompt + let mut out = format!("{}{} ", Self::LOG_INDENT, self.prompt); + for _ in 0..self.steps { + out.push_str(Self::BAR_CHAR); + } + out.push('\r'); // Move cursor back to the beginning of the line + write!(&mut self.stdout_handle, "{}", out)?; + } else { + // only write chars to line (without new line) + if self.steps == 1 { + write!( + &mut self.stdout_handle, + "{}{} ", + Self::LOG_INDENT, + self.prompt + )?; + } + write!(&mut self.stdout_handle, "{}", Self::BAR_CHAR)?; + } + self.stdout_handle.flush()?; + } + Ok(()) + } +} + +#[cfg(test)] +mod tests { + use super::ProgressBar; + + #[test] + fn no_total() { + let mut progress_bar = ProgressBar::new(None, "Processing"); + for _ in 0..5 { + progress_bar.inc(1).unwrap(); + } + progress_bar.finish().unwrap(); + } + + #[test] + fn with_total() { + let mut progress_bar = ProgressBar::new(Some(100), "Processing"); + for _ in 0..100 { + progress_bar.inc(1).unwrap(); + } + progress_bar.finish().unwrap(); + } +} diff --git a/clang-installer/src/tool.rs b/clang-installer/src/tool.rs new file mode 100644 index 00000000..7c6596c3 --- /dev/null +++ b/clang-installer/src/tool.rs @@ -0,0 +1,260 @@ +use std::{ + env::current_dir, + fmt::{self, Display, Formatter}, + fs, + path::{Path, PathBuf}, + process::Command, +}; + +use regex::Regex; +use semver::Version; +use which::{which, which_in}; + +use crate::RequestedVersion; + +/// Error that occur when trying to get the path to a clang tool executable. +#[derive(Debug, thiserror::Error)] +pub enum GetClangPathError { + /// Failed to access current working directory. + #[error("Failed to access current working directory: {0}")] + InvalidCurrentDirectory(#[from] std::io::Error), + + /// Failed to find the clang tool binary by searching for the provided name. + #[error("Failed to find the {0} binary by searching for the provided name: {1}")] + NotFoundByName(ClangTool, which::Error), + + /// Failed to find the clang tool binary by searching for the provided version requirement. + #[error("Failed to find the {0} binary by searching for the provided version requirement: {1}")] + NotFoundByVersion(ClangTool, which::Error), + + /// Failed to find the clang tool binary by searching for the provided path. + #[error("Failed to find the {0} binary by searching for the provided path: {1}")] + NotFoundByPath(ClangTool, which::Error), +} + +/// Error that occur when trying to get the version number of a clang tool executable's output. +#[derive(Debug, thiserror::Error)] +pub enum GetClangVersionError { + /// Failed to run the clang tool executable with `--version` flag. + #[error("Failed to run `{0} --version` flag: {1}")] + Command(PathBuf, std::io::Error), + + /// Regex pattern failed to compile. + #[error("Regex pattern failed to compile: {0}")] + RegexCompile(#[from] regex::Error), + + /// Failed to parse the version number from the output of `clang-tool --version`. + #[error("Failed to parse the version number from the `--version` output")] + VersionParse, + + /// Failed to parse the version number from the output of `clang-tool --version` into a [`semver::Version`]. + #[error("Failed to parse the version number from the `--version` output: {0}")] + SemVerParse(#[from] semver::Error), +} + +#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)] +#[cfg_attr(feature = "clap", derive(clap::ValueEnum))] +pub enum ClangTool { + ClangTidy, + ClangFormat, +} + +impl Display for ClangTool { + fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { + write!(f, "{}", self.as_str()) + } +} + +impl ClangTool { + /// Get the string representation of the clang tool's name. + pub const fn as_str(&self) -> &'static str { + match self { + ClangTool::ClangTidy => "clang-tidy", + ClangTool::ClangFormat => "clang-format", + } + } + + /// Fetch the path to an executable clang tool for the specified `version`. + /// + /// If the executable is not found using the specified `version`, then the tool is + /// sought only by it's name ([`Self::as_str()`]). + /// + /// The only reason this function would return an error is if the specified tool is not + /// installed or present on the system (nor in the `PATH` environment variable). + pub fn get_exe_path(&self, version: &RequestedVersion) -> Result { + let name = self.as_str(); + match version { + RequestedVersion::Path(path_buf) => which_in( + name, + Some(path_buf), + current_dir().map_err(GetClangPathError::InvalidCurrentDirectory)?, + ) + .map_err(|e| GetClangPathError::NotFoundByPath(*self, e)), + // Thus, we should use whatever is installed and added to $PATH. + RequestedVersion::SystemDefault | RequestedVersion::NoValue => { + which(name).map_err(|e| GetClangPathError::NotFoundByName(*self, e)) + } + RequestedVersion::Requirement(req) => { + // `req.comparators` has at least a major version number for each comparator. + // We need to start with the highest major version number first, then + // decrement to the lowest that satisfies the requirement. + + // find the highest major version from requirement's boundaries. + let mut it = req.comparators.iter(); + let mut highest_major = it.next().map(|v| v.major).unwrap_or_default() + 1; + for n in it { + if n.major > highest_major { + // +1 because we aren't checking the comparator's operator here. + highest_major = n.major + 1; + } + } + + // aggregate by decrementing through major versions that satisfy the requirement. + let mut majors = vec![]; + while highest_major > 0 { + // check if the current major version satisfies the requirement. + if req.matches(&Version::new(highest_major, 0, 0)) { + majors.push(highest_major); + } + highest_major -= 1; + } + + // now we're ready to search for the binary exe with the major version suffixed. + for major in majors { + if let Ok(cmd) = which(format!("{self}-{major}")) { + return Ok(cmd); + } + } + // failed to find a binary where the major version number is suffixed to the tool name. + + // This line essentially ignores the version specified as a fail-safe. + // + // On Windows, the version's major number is typically not appended to the name of + // the executable (or symlink for executable), so this is useful in that scenario. + // + // On Unix systems, this line is not likely reached. Typically, installing clang + // will produce a symlink to the executable with the major version appended to the + // name. + which(name).map_err(|e| GetClangPathError::NotFoundByVersion(*self, e)) + } + } + } + + /// Run `clang-tool --version`, then extract and return the version number. + pub fn capture_version(&self, path: &Path) -> Result { + let output = Command::new(path) + .arg("--version") + .output() + .map_err(|e| GetClangVersionError::Command(path.to_path_buf(), e))?; + let stdout = String::from_utf8_lossy(&output.stdout); + let version_pattern = Regex::new(r"(?i)version[^\d]*([\d.]+)")?; + let captures = version_pattern + .captures(&stdout) + .ok_or(GetClangVersionError::VersionParse)?; + let result = captures.get(1).ok_or(GetClangVersionError::VersionParse)?; + let version = Version::parse(result.as_str())?; + Ok(version) + } + + pub fn symlink_bin( + &self, + bin: &PathBuf, + symlink_path: &PathBuf, + force: bool, + ) -> std::io::Result<()> { + if symlink_path.exists() && !force { + log::warn!( + "Symlink for {self} already exists at {}. Use --force to overwrite it.", + symlink_path.to_string_lossy() + ); + } else { + if symlink_path.exists() { + log::info!( + "Overwriting existing symlink for {self} at {}", + symlink_path.to_string_lossy() + ); + fs::remove_file(symlink_path)?; + } + log::info!("Creating symlink for {self} at {symlink_path:?}"); + #[cfg(windows)] + std::os::windows::fs::symlink_file(bin, symlink_path)?; + #[cfg(unix)] + std::os::unix::fs::symlink(bin, symlink_path)?; + } + // check if the symlink is valid and points to an existing file. + let symlink = fs::read_link(symlink_path)?; + log::info!( + "Symlink {} points to {}", + symlink_path.to_string_lossy(), + symlink.to_string_lossy() + ); + Ok(()) + } +} + +#[cfg(test)] +mod tests { + use std::{path::PathBuf, str::FromStr}; + + use which::which; + + use super::ClangTool; + use crate::RequestedVersion; + + const CLANG_FORMAT: ClangTool = ClangTool::ClangFormat; + + #[test] + fn get_exe_by_version() { + let requirement = ">=9, <22"; + let req_version = RequestedVersion::from_str(requirement).unwrap(); + let tool_exe = CLANG_FORMAT.get_exe_path(&req_version); + println!("tool_exe: {:?}", tool_exe); + assert!(tool_exe.is_ok_and(|val| { + val.file_name() + .unwrap() + .to_string_lossy() + .to_string() + .contains(CLANG_FORMAT.as_str()) + })); + } + + #[test] + fn get_exe_by_default() { + let tool_exe = CLANG_FORMAT.get_exe_path(&RequestedVersion::from_str("").unwrap()); + println!("tool_exe: {:?}", tool_exe); + assert!(tool_exe.is_ok_and(|val| { + val.file_name() + .unwrap() + .to_string_lossy() + .to_string() + .contains(CLANG_FORMAT.as_str()) + })); + } + + #[test] + fn get_exe_by_path() { + static TOOL_NAME: &'static str = CLANG_FORMAT.as_str(); + let clang_version = which(TOOL_NAME).unwrap(); + let bin_path = clang_version.parent().unwrap().to_str().unwrap(); + println!("binary exe path: {bin_path}"); + let tool_exe = CLANG_FORMAT + .get_exe_path(&RequestedVersion::from_str(bin_path).unwrap()) + .unwrap(); + println!("tool_exe: {:?}", tool_exe); + assert!( + tool_exe + .file_name() + .unwrap() + .to_string_lossy() + .to_string() + .contains(TOOL_NAME) + ); + } + + #[test] + fn get_exe_by_invalid_path() { + let tool_exe = + CLANG_FORMAT.get_exe_path(&RequestedVersion::Path(PathBuf::from("non-existent-path"))); + assert!(tool_exe.is_err()); + } +} diff --git a/clang-installer/src/utils.rs b/clang-installer/src/utils.rs new file mode 100644 index 00000000..d534a2f6 --- /dev/null +++ b/clang-installer/src/utils.rs @@ -0,0 +1,71 @@ +use std::path::{Component, Path, PathBuf}; + +/// This was copied from [cargo source code](https://github.com/rust-lang/cargo/blob/8cc0cb136772b8f54eafe0d163fcb7226a06af0c/crates/cargo-util/src/paths.rs#L84). +/// +/// NOTE: Rust [std::path] crate has no native functionality equivalent to this. +pub fn normalize_path(path: &Path) -> PathBuf { + let mut components = path.components().peekable(); + let mut ret = if let Some(c @ Component::Prefix(..)) = components.peek().cloned() { + components.next(); + PathBuf::from(c.as_os_str()) + } else { + PathBuf::new() + }; + + for component in components { + match component { + Component::Prefix(..) => unreachable!(), + Component::RootDir => { + ret.push(component.as_os_str()); + } + Component::CurDir => {} + Component::ParentDir => { + ret.pop(); + } + Component::Normal(c) => { + ret.push(c); + } + } + } + ret +} + +#[cfg(test)] +mod tests { + use std::{env::current_dir, path::PathBuf}; + + use super::normalize_path; + + #[test] + fn normalize_redirects() { + let mut src = current_dir().unwrap(); + src.push(".."); + src.push( + current_dir() + .unwrap() + .strip_prefix(current_dir().unwrap().parent().unwrap()) + .unwrap(), + ); + println!("relative path = {}", src.to_str().unwrap()); + assert_eq!(normalize_path(&src), current_dir().unwrap()); + } + + #[test] + fn normalize_no_root() { + let src = PathBuf::from(concat!("../", env!("CARGO_PKG_NAME"))); + let mut cur_dir = current_dir().unwrap(); + cur_dir = cur_dir + .strip_prefix(current_dir().unwrap().parent().unwrap()) + .unwrap() + .to_path_buf(); + println!("relative path = {}", src.to_str().unwrap()); + assert_eq!(normalize_path(&src), cur_dir); + } + + #[test] + fn normalize_current_redirect() { + let src = PathBuf::from("tests/./ignored_paths"); + println!("relative path = {}", src.to_str().unwrap()); + assert_eq!(normalize_path(&src), PathBuf::from("tests/ignored_paths")); + } +} diff --git a/clang-installer/src/version.rs b/clang-installer/src/version.rs new file mode 100644 index 00000000..8e1b6655 --- /dev/null +++ b/clang-installer/src/version.rs @@ -0,0 +1,254 @@ +use std::{path::PathBuf, str::FromStr}; + +use crate::{ + ClangTool, PyPiDownloadError, PyPiDownloader, + downloader::{native_packages::try_install_package, static_dist::StaticDistDownloader}, + tool::{GetClangPathError, GetClangVersionError}, + utils::normalize_path, +}; +use semver::{Version, VersionReq}; + +#[derive(Debug, Clone)] +pub struct ClangVersion { + pub version: Version, + pub path: PathBuf, +} + +#[derive(Debug, Clone, PartialEq, Eq, Default)] +pub enum RequestedVersion { + /// A specific path to the clang tool binary. + Path(PathBuf), + + /// Whatever the system default uses (if any). + #[default] + SystemDefault, + + /// A specific version requirement for the clang tool binary. + /// + /// For example, `=12.0.1`, `>=10.0.0, <13.0.0`. + Requirement(VersionReq), + + /// A sentinel when no value is given. + /// + /// This is used internally to differentiate when the user intended + /// to invoke the `version` subcommand instead. + NoValue, +} + +#[derive(Debug, thiserror::Error)] +pub enum GetToolError { + #[error("No executable found for the specified version requirement")] + NotFound, + #[error("Failed to parse version: {0}")] + VersionParseError(String), + #[error("The version requirement does not specify a major version")] + VersionMajorRequired, + #[error("Binary executable in cache has no parent directory")] + ExecutablePathNoParent, + #[error("Failed to capture the clang version from `--version` output: {0}")] + GetClangVersion(#[from] GetClangVersionError), + #[error("Failed to get the clang executable path: {0}")] + GetClangPathError(#[from] GetClangPathError), + #[error("Failed to create symlink for the downloaded binary: {0}")] + SymlinkError(std::io::Error), + #[error("Failed to download tool from PyPi: {0}")] + PyPiDownloadError(#[from] PyPiDownloadError), +} + +impl RequestedVersion { + pub async fn eval_tool( + &self, + tool: &ClangTool, + overwrite_symlink: bool, + ) -> Result, GetToolError> { + match self { + RequestedVersion::Path(_) => { + let exec_path = tool.get_exe_path(self)?; + let version = tool.capture_version(&exec_path)?; + log::info!( + "Found {tool} version {version} at path: {:?}", + exec_path.to_string_lossy() + ); + Ok(Some(ClangVersion { + version, + path: exec_path, + })) + } + RequestedVersion::SystemDefault => { + let path = tool.get_exe_path(&RequestedVersion::SystemDefault)?; + let version = tool.capture_version(&path)?; + log::info!( + "Found {tool} version {version} at path: {:?}", + path.to_string_lossy() + ); + Ok(Some(ClangVersion { version, path })) + } + RequestedVersion::Requirement(version_req) => { + let bin = match PyPiDownloader::download_tool(tool, version_req).await { + Ok(bin) => bin, + Err(e) => { + log::error!("Failed to download {tool} from PyPi: {e}"); + if let Some(result) = try_install_package(tool, version_req)? { + return Ok(Some(result)); + } + log::info!("Falling back to downloading {tool} static binaries."); + match StaticDistDownloader::download_tool(tool, version_req).await { + Ok(bin) => bin, + Err(e) => { + log::error!( + "Failed to download {tool} from static distribution: {e}" + ); + return Err(GetToolError::NotFound); + } + } + } + }; + let bin_dir = bin.parent().ok_or(GetToolError::ExecutablePathNoParent)?; + let symlink_path = + bin_dir.join(format!("{tool}{}", if cfg!(windows) { ".exe" } else { "" })); + tool.symlink_bin(&bin, &symlink_path, overwrite_symlink) + .map_err(GetToolError::SymlinkError)?; + let version = tool.capture_version(&bin)?; + Ok(Some(ClangVersion { version, path: bin })) + } + RequestedVersion::NoValue => { + log::info!( + "{} version: {}", + option_env!("CARGO_BIN_NAME").unwrap_or(env!("CARGO_PKG_NAME")), + env!("CARGO_PKG_VERSION") + ); + Ok(None) + } + } + } +} + +#[derive(Debug, thiserror::Error)] +pub enum RequestedVersionParsingError { + #[error("The specified version is not a proper version requirement or a valid path: {0}")] + InvalidInput(String), + #[error("Unknown parent directory of the given file path for `--version`: {0}")] + InvalidPath(String), + #[error("Failed to canonicalize path '{0}': {1:?}")] + NonCanonicalPath(String, std::io::Error), +} + +impl FromStr for RequestedVersion { + type Err = RequestedVersionParsingError; + + fn from_str(input: &str) -> Result { + if input.is_empty() { + Ok(Self::SystemDefault) + } else if input == "CPP-LINTER-VERSION" { + Ok(Self::NoValue) + } else if let Ok(req) = VersionReq::parse(input) { + Ok(Self::Requirement(req)) + } else { + let path = PathBuf::from(input); + if !path.exists() { + return Err(RequestedVersionParsingError::InvalidInput( + input.to_string(), + )); + } + let path = if !path.is_dir() { + path.parent() + .ok_or(RequestedVersionParsingError::InvalidPath(input.to_string()))? + .to_path_buf() + } else { + path + }; + let path = match path.canonicalize() { + Ok(p) => Ok(normalize_path(&p)), + Err(e) => Err(RequestedVersionParsingError::NonCanonicalPath( + input.to_string(), + e, + )), + }?; + Ok(Self::Path(path)) + } + } +} + +#[cfg(test)] +mod tests { + use std::{path::PathBuf, str::FromStr}; + + use semver::VersionReq; + use tempfile::TempDir; + + use super::RequestedVersion; + use crate::{ClangTool, utils::normalize_path}; + + // See also crate::tool::tests module for other `RequestedVersion::from_str()` tests. + + #[test] + fn validate_version_path() { + let this_path_str = "src/version.rs"; + let this_path = PathBuf::from(this_path_str); + let this_canonical = this_path.canonicalize().unwrap(); + let parent = this_canonical.parent().unwrap(); + let expected = normalize_path(parent); + let req_ver = RequestedVersion::from_str(this_path_str).unwrap(); + if let RequestedVersion::Path(parsed) = req_ver { + assert_eq!(&parsed, &expected); + } + + assert!(RequestedVersion::from_str("file.rs").is_err()); + } + + #[test] + fn validate_version_exact() { + let req_ver = RequestedVersion::from_str("12").unwrap(); + if let RequestedVersion::Requirement(req) = req_ver { + assert_eq!(req.to_string(), "^12"); + } + } + + #[tokio::test] + async fn eval_no_value() { + let result = RequestedVersion::NoValue + .eval_tool(&ClangTool::ClangFormat, false) + .await + .unwrap(); + assert!(result.is_none()); + } + + #[tokio::test] + async fn eval_download_path() { + let tmp_cache_dir = TempDir::new().unwrap(); + unsafe { + std::env::set_var("CPP_LINTER_CACHE", tmp_cache_dir.path()); + } + let tool = ClangTool::ClangFormat; + let version_req = VersionReq::parse("17").unwrap(); + let clang_path = RequestedVersion::Requirement(version_req.clone()) + .eval_tool(&tool, false) + .await + .unwrap() + .unwrap(); + let req_ver = RequestedVersion::Path(clang_path.path.parent().unwrap().to_owned()); + let result = req_ver.eval_tool(&tool, false).await.unwrap().unwrap(); + assert!(version_req.matches(&result.version)); + assert_eq!(result.version, clang_path.version); + assert_eq!(result.path.parent(), clang_path.path.parent()); + } + + /// WARNING: This test should only run in CI. + /// It is designed to use the system's package manager to install clang-tidy. + /// If successful, clang-tidy will be installed globally, which may be undesirable. + #[tokio::test] + async fn eval_static_dist() { + let tmp_cache_dir = TempDir::new().unwrap(); + unsafe { + std::env::set_var("CPP_LINTER_CACHE", tmp_cache_dir.path()); + } + let tool = ClangTool::ClangTidy; + let version_req = VersionReq::parse("=12.0.1").unwrap(); + let clang_path = RequestedVersion::Requirement(version_req.clone()) + .eval_tool(&tool, false) + .await + .unwrap() + .unwrap(); + assert!(version_req.matches(&clang_path.version)); + } +} diff --git a/clang-installer/tests/common.rs b/clang-installer/tests/common.rs new file mode 100644 index 00000000..55c83fa8 --- /dev/null +++ b/clang-installer/tests/common.rs @@ -0,0 +1,89 @@ +use std::{ + env, + io::{Write, stdout}, +}; + +use colored::{Colorize, control::set_override}; +use log::{Level, LevelFilter, Log, Metadata, Record}; + +struct SimpleLogger; + +impl SimpleLogger { + fn level_color(level: &Level) -> String { + let name = format!("{:>5}", level.as_str().to_uppercase()); + match level { + Level::Error => name.red().bold().to_string(), + Level::Warn => name.yellow().bold().to_string(), + Level::Info => name.green().bold().to_string(), + Level::Debug => name.blue().bold().to_string(), + Level::Trace => name.magenta().bold().to_string(), + } + } +} + +impl Log for SimpleLogger { + fn enabled(&self, metadata: &Metadata) -> bool { + metadata.level() <= log::max_level() + } + + fn log(&self, record: &Record) { + let mut stdout = stdout().lock(); + if record.target() == "CI_LOG_GROUPING" { + // this log is meant to manipulate a CI workflow's log grouping + writeln!(stdout, "{}", record.args()).expect("Failed to write log command to stdout"); + stdout + .flush() + .expect("Failed to flush log command in stdout"); + } else if self.enabled(record.metadata()) { + let module = record.module_path(); + if module + .is_none_or(|v| v.starts_with("clang_installer") || v.starts_with("clang_tools")) + { + writeln!( + stdout, + "[{}]: {}", + Self::level_color(&record.level()), + record.args() + ) + .expect("Failed to write log message to stdout"); + } else if let Some(module) = module { + writeln!( + stdout, + "[{}]{{{}:{}}}: {}", + Self::level_color(&record.level()), + module, + record.line().unwrap_or_default(), + record.args() + ) + .expect("Failed to write detailed log message to stdout"); + } + stdout + .flush() + .expect("Failed to flush log message in stdout"); + } + } + + fn flush(&self) {} +} + +/// A function to initialize the private `LOGGER`. +/// +/// The logging level defaults to [`LevelFilter::Info`]. +/// This logs a debug message about [`SetLoggerError`](struct@log::SetLoggerError) +/// if the `LOGGER` is already initialized. +pub fn initialize_logger() { + let logger: SimpleLogger = SimpleLogger; + if env::var("CPP_LINTER_COLOR") + .as_deref() + .is_ok_and(|v| matches!(v, "on" | "1" | "true")) + { + set_override(true); + } + if let Err(e) = + log::set_boxed_logger(Box::new(logger)).map(|()| log::set_max_level(LevelFilter::Info)) + { + // logger singleton already instantiated. + // we'll just use whatever the current config is. + log::debug!("{e:?}"); + } +} diff --git a/clang-installer/tests/pypi.rs b/clang-installer/tests/pypi.rs new file mode 100644 index 00000000..246dfba0 --- /dev/null +++ b/clang-installer/tests/pypi.rs @@ -0,0 +1,48 @@ +use std::{env, process::Command}; + +use semver::VersionReq; + +use clang_installer::{ClangTool, PyPiDownloader}; +use tempfile::TempDir; +mod common; + +async fn setup() { + common::initialize_logger(); + log::set_max_level(log::LevelFilter::Debug); + + let tmp_cache_dir = TempDir::new().unwrap(); + // Override cache directory to ensure test isolation and avoid interference with other tests' caches + unsafe { + env::set_var("CPP_LINTER_CACHE", tmp_cache_dir.path()); + } + + let tool = ClangTool::ClangFormat; + let version_req = VersionReq::parse("17").unwrap(); + + let result = PyPiDownloader::download_tool(&tool, &version_req) + .await + .unwrap(); + println!( + "Downloaded clang-format from PyPI at: {:?}", + result.to_string_lossy() + ); + assert!( + Command::new(&result) + .arg("--help") + .output() + .unwrap() + .status + .success() + ); + + // retry using cache + let cache_result = PyPiDownloader::download_tool(&tool, &version_req) + .await + .unwrap(); + assert_eq!(result, cache_result); +} + +#[tokio::test] +async fn download_clang_format() { + setup().await; +} diff --git a/clang-installer/tests/pypi_clang-format.json b/clang-installer/tests/pypi_clang-format.json new file mode 100644 index 00000000..7c9eef4e --- /dev/null +++ b/clang-installer/tests/pypi_clang-format.json @@ -0,0 +1,17494 @@ +{ + "info": { + "author": null, + "author_email": "Dominic Kempf ", + "bugtrack_url": null, + "classifiers": [ + "Intended Audience :: Developers", + "License :: OSI Approved :: Apache Software License", + "Operating System :: OS Independent", + "Programming Language :: C", + "Programming Language :: C++", + "Topic :: Software Development :: Quality Assurance" + ], + "description": "# clang-format Python distribution\n\n[![PyPI Release](https://img.shields.io/pypi/v/clang-format.svg)](https://pypi.org/project/clang-format)\n\nThis project packages the `clang-format` utility as a Python package. It allows you to install `clang-format` directly from PyPI:\n\n```\npython -m pip install clang-format\n```\n\nThis projects intends to release a new PyPI package for each major and minor release of `clang-format`.\n\n## Use with pipx\n\nYou can use `pipx` to run clang-format, as well. For example, `pipx run clang-format ` will run clang-format without any previous install required on any machine with pipx (including all default GitHub Actions / Azure runners, avoiding requiring a pre-install step or even `actions/setup-python`).\n\n## Use from pre-commit\n\nA [pre-commit](https://pre-commit.com) hook is also [provided](https://github.com/pre-commit/mirrors-clang-format), use like this:\n\n```yaml\n- repo: https://github.com/pre-commit/mirrors-clang-format\n rev: v21.1.2\n hooks:\n - id: clang-format\n types_or: [c++, c, cuda]\n```\n\nIn contrast to many other pre-commit hooks, the versioning of the hook matches the versioning of `clang-format`.\n\nIf you are required to stick with a given major/minor version of `clang-format` with your pre-commit-hook, you can use [this alternative hook repository](https://github.com/ssciwr/clang-format-hook) that also receives backports of older versions of clang-format.\nCurrently, all major/minor versions of LLVM >= 10 are supported.\nIt is best to subscribe to releases of the hook repository to get notified of new backport releases, as `pre-commit`'s auto-upgrade functionality will not work in that case.\n\n## Building new releases\n\nThe [clang-format-wheel repository](https://github.com/ssciwr/clang-format-wheel) provides the logic to build and publish binary wheels of the `clang-format` utility.\n\nIn order to add a new release, the following steps are necessary:\n\n* Edit the [version file](https://github.com/ssciwr/clang-format-wheel/blob/main/clang-format_version.txt)\n * In the form `llvm_version.wheel_version`, e.g. `18.0.2.1`\n* Tag the commit with this version to trigger the [GitHub Actions release workflow](https://github.com/ssciwr/clang-format-wheel/actions/workflows/release.yml)\n * e.g. `git tag v18.0.2.1 && git push origin v18.0.2.1`\n\nAlternatively, the workflow can be triggered manually:\n\nOn manual triggers, the following input variables are available:\n* `llvm_version`: Override the LLVM version (default: `\"\"`)\n* `wheel_version`: Override the wheel packaging version (default `\"0\"`)\n* `skip_emulation`: Set which emulation builds to skip, e.g. `\"qemu\"` (default: `\"\"`)\n* `deploy_to_testpypi`: Whether to deploy to TestPyPI instead of PyPI (default: `false`)\n\nThe repository with the precommit hook is automatically updated using a scheduled Github Actions workflow.\n\n## Acknowledgements\n\nThis repository extends the great work of several other projects:\n\n* `clang-format` itself is [provided by the LLVM project](https://github.com/llvm/llvm-project) under the Apache 2.0 License with LLVM exceptions.\n* The build logic is based on [scikit-build-core](https://github.com/scikit-build/scikit-build-core) which greatly reduces the amount of low level code necessary to package `clang-format`.\n* The `scikit-build` packaging examples of [CMake](https://github.com/scikit-build/cmake-python-distributions) and [Ninja](https://github.com/scikit-build/ninja-python-distributions) were very helpful in packaging `clang-format`.\n* The CI build process is controlled by [cibuildwheel](https://github.com/pypa/cibuildwheel) which makes building wheels across a number of platforms a pleasant experience (!)\n\nSpecial thanks goes to mgevaert who initiated this project and maintained it until 2021.\n\nWe are grateful for the generous provisioning with CI resources that GitHub currently offers to Open Source projects.\n", + "description_content_type": "text/markdown", + "docs_url": null, + "download_url": null, + "downloads": { + "last_day": -1, + "last_month": -1, + "last_week": -1 + }, + "dynamic": null, + "home_page": null, + "keywords": null, + "license": "Apache 2.0", + "license_expression": null, + "license_files": null, + "maintainer": null, + "maintainer_email": null, + "name": "clang-format", + "package_url": "https://pypi.org/project/clang-format/", + "platform": null, + "project_url": "https://pypi.org/project/clang-format/", + "project_urls": { + "Clang": "http://clang.llvm.org/", + "Documentation": "https://clang.llvm.org/docs/ClangFormat.html", + "Download": "https://github.com/llvm/llvm-project/releases", + "Source": "https://github.com/ssciwr/clang-format-wheel" + }, + "provides_extra": null, + "release_url": "https://pypi.org/project/clang-format/21.1.2/", + "requires_dist": null, + "requires_python": null, + "summary": "Clang-Format is an LLVM-based code formatting tool", + "version": "21.1.2", + "yanked": false, + "yanked_reason": null + }, + "last_serial": 31438769, + "releases": { + "10.0.1": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "4e7c9bb87b8bae9ac577d1c54d769fca4b48916299b7ab106f11f097b90fd9b3", + "md5": "dc5803318f2b066ba8100eda59ff76e4", + "sha256": "cdd3f78206fa6e6e9e3a18daaba11d5816a5cb0b7f5858c028fdff7d1d066b24" + }, + "downloads": -1, + "filename": "clang_format-10.0.1-py2.py3-none-macosx_10_9_universal2.whl", + "has_sig": false, + "md5_digest": "dc5803318f2b066ba8100eda59ff76e4", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 859064, + "upload_time": "2021-09-27T19:06:33", + "upload_time_iso_8601": "2021-09-27T19:06:33.458221Z", + "url": "https://files.pythonhosted.org/packages/4e/7c/9bb87b8bae9ac577d1c54d769fca4b48916299b7ab106f11f097b90fd9b3/clang_format-10.0.1-py2.py3-none-macosx_10_9_universal2.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "a94dceb0d28ece88c6ff29f8ce776657107642a785f38e5be056fcfa31d0c18a", + "md5": "965ec57c512ebc7b4ae42a6e7706a8e2", + "sha256": "8d9b96c63becdbebfe7f9f79911a1187836622de4249d974666a7779468489f2" + }, + "downloads": -1, + "filename": "clang_format-10.0.1-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "has_sig": false, + "md5_digest": "965ec57c512ebc7b4ae42a6e7706a8e2", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1097050, + "upload_time": "2021-09-27T19:06:34", + "upload_time_iso_8601": "2021-09-27T19:06:34.814792Z", + "url": "https://files.pythonhosted.org/packages/a9/4d/ceb0d28ece88c6ff29f8ce776657107642a785f38e5be056fcfa31d0c18a/clang_format-10.0.1-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "b4c7722b428d302af62afe8b485b229ede1937b83f0a024f0d45980e8f186d21", + "md5": "c8b955d35bc8a03c3d397d508593ca02", + "sha256": "9b50fd165bc735f19a0aefb8eb829abc093d4b9d1102669c9d39c19ba31bef91" + }, + "downloads": -1, + "filename": "clang_format-10.0.1-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "has_sig": false, + "md5_digest": "c8b955d35bc8a03c3d397d508593ca02", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 986030, + "upload_time": "2021-09-27T19:06:36", + "upload_time_iso_8601": "2021-09-27T19:06:36.218103Z", + "url": "https://files.pythonhosted.org/packages/b4/c7/722b428d302af62afe8b485b229ede1937b83f0a024f0d45980e8f186d21/clang_format-10.0.1-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "b4263545cb69fe1affb2e259222bb11c7775cc8e1cdf707824d3480dbd51b297", + "md5": "4abd62282d3bc850545ddddbf43b0940", + "sha256": "146161362fbbd4513008043c6e6aba381bf32914f7061b6781276f1d3b16b1cd" + }, + "downloads": -1, + "filename": "clang_format-10.0.1-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "4abd62282d3bc850545ddddbf43b0940", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1893020, + "upload_time": "2021-09-27T19:06:37", + "upload_time_iso_8601": "2021-09-27T19:06:37.255969Z", + "url": "https://files.pythonhosted.org/packages/b4/26/3545cb69fe1affb2e259222bb11c7775cc8e1cdf707824d3480dbd51b297/clang_format-10.0.1-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "daa52ec8b5103064ebe4001b68ad1bc9abbd3d5e6e87aa96100019ef35875aba", + "md5": "7a9d29e0108fc32517b074aab2f805ec", + "sha256": "d3121157d188f21ccd1cd37f91d03150ad98f2fbb197737cf241e1d1b2a99246" + }, + "downloads": -1, + "filename": "clang_format-10.0.1-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "7a9d29e0108fc32517b074aab2f805ec", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1893024, + "upload_time": "2021-09-27T19:06:39", + "upload_time_iso_8601": "2021-09-27T19:06:39.030784Z", + "url": "https://files.pythonhosted.org/packages/da/a5/2ec8b5103064ebe4001b68ad1bc9abbd3d5e6e87aa96100019ef35875aba/clang_format-10.0.1-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "236573a9af944aa3d8099f6664565f8a1f1be2a0c9537c4129cd022130fdeccd", + "md5": "162ba801aa9542a6b90d84570d78f90b", + "sha256": "beab968d1857e2cb4c2907e8cc6dcd7fb0ee6e9a37bbfaa014fc008b2bb268cc" + }, + "downloads": -1, + "filename": "clang-format-10.0.1.tar.gz", + "has_sig": false, + "md5_digest": "162ba801aa9542a6b90d84570d78f90b", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 7987, + "upload_time": "2021-09-27T19:06:40", + "upload_time_iso_8601": "2021-09-27T19:06:40.253910Z", + "url": "https://files.pythonhosted.org/packages/23/65/73a9af944aa3d8099f6664565f8a1f1be2a0c9537c4129cd022130fdeccd/clang-format-10.0.1.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "10.0.1.1": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "53e0a056a996290c5b288c0b63ac884c095b9ab4fb3c4f29706d551c3130e070", + "md5": "7bd4512641ecb9c08ee43da9809bd28f", + "sha256": "222d6ca46ea8a68db1874ba7772f42efb6ffad4cdadf660da11d3e99a283ca4a" + }, + "downloads": -1, + "filename": "clang_format-10.0.1.1-py2.py3-none-macosx_10_9_universal2.whl", + "has_sig": false, + "md5_digest": "7bd4512641ecb9c08ee43da9809bd28f", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 859489, + "upload_time": "2022-02-17T14:39:31", + "upload_time_iso_8601": "2022-02-17T14:39:31.914660Z", + "url": "https://files.pythonhosted.org/packages/53/e0/a056a996290c5b288c0b63ac884c095b9ab4fb3c4f29706d551c3130e070/clang_format-10.0.1.1-py2.py3-none-macosx_10_9_universal2.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "8a1a2055e3765e1f60cb08a398fe13944489168c96eceaf3abcee89fd9275f94", + "md5": "a6b470a1d8bb468f059955ce1c9177ba", + "sha256": "402886a26608ea78d1f759aef71ba5d2f0459ebf2109aca88053e3dbd1fc8254" + }, + "downloads": -1, + "filename": "clang_format-10.0.1.1-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "has_sig": false, + "md5_digest": "a6b470a1d8bb468f059955ce1c9177ba", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1097536, + "upload_time": "2022-02-17T14:39:33", + "upload_time_iso_8601": "2022-02-17T14:39:33.484890Z", + "url": "https://files.pythonhosted.org/packages/8a/1a/2055e3765e1f60cb08a398fe13944489168c96eceaf3abcee89fd9275f94/clang_format-10.0.1.1-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "e54e51b96a7905d1e254bbb1df4894a22d0af1ffd4b2e9add5f6fba0cbdfeb2d", + "md5": "46a9c2dab6780aa8516a20e0e4356e79", + "sha256": "aae62178afdd482c7b1171d666ef29baf22a583e71ade743093929db4ac245b4" + }, + "downloads": -1, + "filename": "clang_format-10.0.1.1-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "has_sig": false, + "md5_digest": "46a9c2dab6780aa8516a20e0e4356e79", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 986471, + "upload_time": "2022-02-17T14:39:34", + "upload_time_iso_8601": "2022-02-17T14:39:34.759649Z", + "url": "https://files.pythonhosted.org/packages/e5/4e/51b96a7905d1e254bbb1df4894a22d0af1ffd4b2e9add5f6fba0cbdfeb2d/clang_format-10.0.1.1-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "575435f1baf05ad2a6cc1863d438530745f8b2d2fb27b3bb83d045750c78503a", + "md5": "20dca15c575ab18b61e50f073e00dbc4", + "sha256": "0df136ac7b5ca9aacec29f656dc7932031a0992594c96f0f386ab757db63c536" + }, + "downloads": -1, + "filename": "clang_format-10.0.1.1-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "20dca15c575ab18b61e50f073e00dbc4", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 998451, + "upload_time": "2022-02-17T14:39:36", + "upload_time_iso_8601": "2022-02-17T14:39:36.228893Z", + "url": "https://files.pythonhosted.org/packages/57/54/35f1baf05ad2a6cc1863d438530745f8b2d2fb27b3bb83d045750c78503a/clang_format-10.0.1.1-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "1d6b52a11a066f0a643a64f4075abdedafa5612c9e2d3110b6f284d825e6514e", + "md5": "f5dd99748b54b3dfd01d59e8b399c341", + "sha256": "dc60fef84b74a3375cd768a39bdf145b268555b6998ca496588cd7471d0ed983" + }, + "downloads": -1, + "filename": "clang_format-10.0.1.1-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "f5dd99748b54b3dfd01d59e8b399c341", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1616850, + "upload_time": "2022-02-17T14:39:37", + "upload_time_iso_8601": "2022-02-17T14:39:37.508890Z", + "url": "https://files.pythonhosted.org/packages/1d/6b/52a11a066f0a643a64f4075abdedafa5612c9e2d3110b6f284d825e6514e/clang_format-10.0.1.1-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "bfab008855a4cf65da825b5aa15c3971d591bfcb674d100b5ecc68edca1d8085", + "md5": "cf9da41d142c79d1bed1b9e3fd506b7e", + "sha256": "4696ce1dff189402ea64b9c1158b5058ef1fe2f06d78332a23980871f4c76234" + }, + "downloads": -1, + "filename": "clang_format-10.0.1.1-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "cf9da41d142c79d1bed1b9e3fd506b7e", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1006431, + "upload_time": "2022-02-17T14:39:39", + "upload_time_iso_8601": "2022-02-17T14:39:39.116177Z", + "url": "https://files.pythonhosted.org/packages/bf/ab/008855a4cf65da825b5aa15c3971d591bfcb674d100b5ecc68edca1d8085/clang_format-10.0.1.1-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "209ef13aa219298ccbae3691624a3014ddd2d269950fa78aaaf1976052098a89", + "md5": "22195938d1da1e3489ffac347995e7a2", + "sha256": "d5e2807a3e2a5bfb07051a42deb93f4488661acaf02f2d99b5811fa4a43e20c1" + }, + "downloads": -1, + "filename": "clang_format-10.0.1.1-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "22195938d1da1e3489ffac347995e7a2", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 724623, + "upload_time": "2022-02-17T14:39:40", + "upload_time_iso_8601": "2022-02-17T14:39:40.176887Z", + "url": "https://files.pythonhosted.org/packages/20/9e/f13aa219298ccbae3691624a3014ddd2d269950fa78aaaf1976052098a89/clang_format-10.0.1.1-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "17da8a32527c09b77fba26aae1a40837c35b42c321d5e7917862c466532f39c2", + "md5": "f209dd51c2e993210abad292d4d03a05", + "sha256": "fa1eb6ef143a072b0b350c9b4c74374fa88d93d5ddd8f4e6ad24b04442105990" + }, + "downloads": -1, + "filename": "clang_format-10.0.1.1-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "f209dd51c2e993210abad292d4d03a05", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 888808, + "upload_time": "2022-02-17T14:39:41", + "upload_time_iso_8601": "2022-02-17T14:39:41.617700Z", + "url": "https://files.pythonhosted.org/packages/17/da/8a32527c09b77fba26aae1a40837c35b42c321d5e7917862c466532f39c2/clang_format-10.0.1.1-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "65f66c33182b04fe9074beb3ea57b71d069692858087283a786aa9db53b634d0", + "md5": "272e703521d5a88b6b196e7399eea853", + "sha256": "016480cc99ff8fa9342672608b2e68f9eca9310407d248b1e7d8679c22dc6344" + }, + "downloads": -1, + "filename": "clang-format-10.0.1.1.tar.gz", + "has_sig": false, + "md5_digest": "272e703521d5a88b6b196e7399eea853", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 8443, + "upload_time": "2022-02-17T14:39:42", + "upload_time_iso_8601": "2022-02-17T14:39:42.917013Z", + "url": "https://files.pythonhosted.org/packages/65/f6/6c33182b04fe9074beb3ea57b71d069692858087283a786aa9db53b634d0/clang-format-10.0.1.1.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "11.0.1": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "960bd7a1f4cbabab240a1efd3fd4b6ca394f957c8e140f2e7325063be42da48a", + "md5": "fee8e94a69ac7dff54c00a639b1beb2c", + "sha256": "cc3165c67df81ec1daa99d7e922f5bdd02d9e65c12242b3367967b145e5df463" + }, + "downloads": -1, + "filename": "clang_format-11.0.1-py2.py3-none-macosx_10_9_universal2.whl", + "has_sig": false, + "md5_digest": "fee8e94a69ac7dff54c00a639b1beb2c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 889140, + "upload_time": "2021-09-27T19:51:18", + "upload_time_iso_8601": "2021-09-27T19:51:18.586082Z", + "url": "https://files.pythonhosted.org/packages/96/0b/d7a1f4cbabab240a1efd3fd4b6ca394f957c8e140f2e7325063be42da48a/clang_format-11.0.1-py2.py3-none-macosx_10_9_universal2.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "bb44c4cee654285b087cfd0933526742d4f1400f8ef2ae30c4cc27125134ef01", + "md5": "23d78106f3dd8b84f1839c5312143e11", + "sha256": "a6f08bf948857205b3c6d8efe885658a46533797c4a822c03ba4004bc18e830f" + }, + "downloads": -1, + "filename": "clang_format-11.0.1-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "has_sig": false, + "md5_digest": "23d78106f3dd8b84f1839c5312143e11", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1116050, + "upload_time": "2021-09-27T19:51:24", + "upload_time_iso_8601": "2021-09-27T19:51:24.247309Z", + "url": "https://files.pythonhosted.org/packages/bb/44/c4cee654285b087cfd0933526742d4f1400f8ef2ae30c4cc27125134ef01/clang_format-11.0.1-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "1f3e8d4b80c18fe32c9225cdd19a6d8770713ab0f852f163abebbc26b2c132c8", + "md5": "18d27e083e799b1c21e65b9179ec40f1", + "sha256": "47ea0da184a602b06bef2cfd4590137b08aa67f3e8eab7b33a6dc48e1a28fe40" + }, + "downloads": -1, + "filename": "clang_format-11.0.1-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "has_sig": false, + "md5_digest": "18d27e083e799b1c21e65b9179ec40f1", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1007359, + "upload_time": "2021-09-27T19:51:25", + "upload_time_iso_8601": "2021-09-27T19:51:25.206896Z", + "url": "https://files.pythonhosted.org/packages/1f/3e/8d4b80c18fe32c9225cdd19a6d8770713ab0f852f163abebbc26b2c132c8/clang_format-11.0.1-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "4928cc3effc16f6d8b1321141e228b3b05525110830d8f97cc6966e356264d4c", + "md5": "45fd496b2b1b496999cbda54662cfdf2", + "sha256": "462bee159286fc75a972660ac2d17337717c1593639a1f12a9d9751624877c0f" + }, + "downloads": -1, + "filename": "clang_format-11.0.1-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "45fd496b2b1b496999cbda54662cfdf2", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1996165, + "upload_time": "2021-09-27T19:51:26", + "upload_time_iso_8601": "2021-09-27T19:51:26.078808Z", + "url": "https://files.pythonhosted.org/packages/49/28/cc3effc16f6d8b1321141e228b3b05525110830d8f97cc6966e356264d4c/clang_format-11.0.1-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "e0e1db42d5ce564cbde759ce73ab27d9e1e53ab64f28a620a5eb0f1e31d7729a", + "md5": "d7651faf06c51b27e50ebb452f597ce8", + "sha256": "7de5848f098ec6a9935222ade8b097a842a7375897de5cbe3c073c7627d47024" + }, + "downloads": -1, + "filename": "clang_format-11.0.1-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "d7651faf06c51b27e50ebb452f597ce8", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1996168, + "upload_time": "2021-09-27T19:51:27", + "upload_time_iso_8601": "2021-09-27T19:51:27.098799Z", + "url": "https://files.pythonhosted.org/packages/e0/e1/db42d5ce564cbde759ce73ab27d9e1e53ab64f28a620a5eb0f1e31d7729a/clang_format-11.0.1-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "f8a4bb2e874b573eeb040ec904e8e42d6f5c9a1f12e2020af1b07348c77de510", + "md5": "653cee469787ea4310ccd4c456815d3f", + "sha256": "7e62439218c38126f9234bc0fdfa85cb2ef5798219190acc911962f0b0a0abfc" + }, + "downloads": -1, + "filename": "clang-format-11.0.1.tar.gz", + "has_sig": false, + "md5_digest": "653cee469787ea4310ccd4c456815d3f", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 7984, + "upload_time": "2021-09-27T19:51:34", + "upload_time_iso_8601": "2021-09-27T19:51:34.787327Z", + "url": "https://files.pythonhosted.org/packages/f8/a4/bb2e874b573eeb040ec904e8e42d6f5c9a1f12e2020af1b07348c77de510/clang-format-11.0.1.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "11.0.1.1": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "03df347ae0aec365dc9431fdbacd059855e8988f608757c8241a6d26f0b44370", + "md5": "db41ac46223b64f02ba1266e22e909eb", + "sha256": "0a0ea9807703fc30ed3bd2380258aa6f20ed43da0bab5365e952dbce9537025a" + }, + "downloads": -1, + "filename": "clang_format-11.0.1.1-py2.py3-none-macosx_10_9_universal2.whl", + "has_sig": false, + "md5_digest": "db41ac46223b64f02ba1266e22e909eb", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 889586, + "upload_time": "2022-02-17T20:10:06", + "upload_time_iso_8601": "2022-02-17T20:10:06.352244Z", + "url": "https://files.pythonhosted.org/packages/03/df/347ae0aec365dc9431fdbacd059855e8988f608757c8241a6d26f0b44370/clang_format-11.0.1.1-py2.py3-none-macosx_10_9_universal2.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "10253e158143713530d888fb91da6765b602a11dc0b92837155f5f1e1b8b88e8", + "md5": "c40b82f2bc5974bc567e854e0f179542", + "sha256": "8f35614c66e848f584bee67b65611849a2188103d8f155229eb5bcd3516b92f1" + }, + "downloads": -1, + "filename": "clang_format-11.0.1.1-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "has_sig": false, + "md5_digest": "c40b82f2bc5974bc567e854e0f179542", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1116495, + "upload_time": "2022-02-17T20:10:07", + "upload_time_iso_8601": "2022-02-17T20:10:07.608797Z", + "url": "https://files.pythonhosted.org/packages/10/25/3e158143713530d888fb91da6765b602a11dc0b92837155f5f1e1b8b88e8/clang_format-11.0.1.1-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "9b5c71a87be95e73097f2103843206d5ea9637692638c0877fe19877facde6c9", + "md5": "b68fe7d9631dc888af7f71849826f4fd", + "sha256": "022eec1067db92375e1c031059f5202309e9b458d30fd694c69c0da33e1b17f4" + }, + "downloads": -1, + "filename": "clang_format-11.0.1.1-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "has_sig": false, + "md5_digest": "b68fe7d9631dc888af7f71849826f4fd", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1007804, + "upload_time": "2022-02-17T20:10:08", + "upload_time_iso_8601": "2022-02-17T20:10:08.713495Z", + "url": "https://files.pythonhosted.org/packages/9b/5c/71a87be95e73097f2103843206d5ea9637692638c0877fe19877facde6c9/clang_format-11.0.1.1-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "07a2a5ec8aaa841901d31f44b46e69ce38eb954f98dca7c7e1a6d5f5025948b3", + "md5": "daca5d0db8cc3a78feb750a6639ac056", + "sha256": "197c63fca53608114a54c1a0d0dc822513cfd8ed6129184ee7c46d570e12e0c2" + }, + "downloads": -1, + "filename": "clang_format-11.0.1.1-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "daca5d0db8cc3a78feb750a6639ac056", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1026189, + "upload_time": "2022-02-17T20:10:10", + "upload_time_iso_8601": "2022-02-17T20:10:10.025058Z", + "url": "https://files.pythonhosted.org/packages/07/a2/a5ec8aaa841901d31f44b46e69ce38eb954f98dca7c7e1a6d5f5025948b3/clang_format-11.0.1.1-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "2173f8808e3751ed490d1c2524403b05d7bbe3efb34b1b86564f058650de1fa3", + "md5": "97d98ab3125e4c2dff04b26b44654252", + "sha256": "3a34b43f416d55e67710caee4641b2be4d514f559884edd21db432da51bbf881" + }, + "downloads": -1, + "filename": "clang_format-11.0.1.1-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "97d98ab3125e4c2dff04b26b44654252", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1698051, + "upload_time": "2022-02-17T20:10:11", + "upload_time_iso_8601": "2022-02-17T20:10:11.294337Z", + "url": "https://files.pythonhosted.org/packages/21/73/f8808e3751ed490d1c2524403b05d7bbe3efb34b1b86564f058650de1fa3/clang_format-11.0.1.1-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "3c62256f565ad6c672e7f130f7ced7b3f257571ed03367c13304ba867ef682c8", + "md5": "55ab6e39687f6a175842bbb3fa19df78", + "sha256": "b52261c86436870a7385a4bba513570629a04d1a0cdd2fe5561ea56972224cf5" + }, + "downloads": -1, + "filename": "clang_format-11.0.1.1-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "55ab6e39687f6a175842bbb3fa19df78", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1026062, + "upload_time": "2022-02-17T20:10:12", + "upload_time_iso_8601": "2022-02-17T20:10:12.502389Z", + "url": "https://files.pythonhosted.org/packages/3c/62/256f565ad6c672e7f130f7ced7b3f257571ed03367c13304ba867ef682c8/clang_format-11.0.1.1-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "6581aba3b46668c8c1fd150343275a2d26a6b3010372249a26cf848ff08613f3", + "md5": "d193e9b653fd0899ebf0584eb1ed1098", + "sha256": "2c120fe194a9d16f451e30e2279ffa2394cca05e97e339d4a356b8f3b2a99ef7" + }, + "downloads": -1, + "filename": "clang_format-11.0.1.1-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "d193e9b653fd0899ebf0584eb1ed1098", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 742526, + "upload_time": "2022-02-17T20:10:13", + "upload_time_iso_8601": "2022-02-17T20:10:13.565851Z", + "url": "https://files.pythonhosted.org/packages/65/81/aba3b46668c8c1fd150343275a2d26a6b3010372249a26cf848ff08613f3/clang_format-11.0.1.1-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "b728e7519e2754f41dd64db5491cae7df47dec08a4617101dac94496dc32dc7d", + "md5": "141dfd189bea45d2147a7ef8149ac6fd", + "sha256": "6f3cbd3fe116295a02163cb7a188144a72d97587f14daaf8b152db3889920af6" + }, + "downloads": -1, + "filename": "clang_format-11.0.1.1-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "141dfd189bea45d2147a7ef8149ac6fd", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 910632, + "upload_time": "2022-02-17T20:10:14", + "upload_time_iso_8601": "2022-02-17T20:10:14.565371Z", + "url": "https://files.pythonhosted.org/packages/b7/28/e7519e2754f41dd64db5491cae7df47dec08a4617101dac94496dc32dc7d/clang_format-11.0.1.1-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "ec537109816f964f69115627e4c63ddb6c96ffd67d93251401cad4a60c7974db", + "md5": "e8dab1931f5856331a4a690c98251f06", + "sha256": "b4d073d1809f8aaee9183d5f9843abe4b070784a89a074a7fa5a59739a250f0c" + }, + "downloads": -1, + "filename": "clang-format-11.0.1.1.tar.gz", + "has_sig": false, + "md5_digest": "e8dab1931f5856331a4a690c98251f06", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 8437, + "upload_time": "2022-02-17T20:10:16", + "upload_time_iso_8601": "2022-02-17T20:10:16.079552Z", + "url": "https://files.pythonhosted.org/packages/ec/53/7109816f964f69115627e4c63ddb6c96ffd67d93251401cad4a60c7974db/clang-format-11.0.1.1.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "11.0.1.2": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "75bdb81faeab5bed833f0d0405554bcf36e626088c730c68b9ea79a66fc7af2d", + "md5": "d627a8e7ba62f08b656fec6652ec30cd", + "sha256": "e68130082008828b52bb9b66734f2a46b4d3b2446f87ceb01f3246be3abe04ea" + }, + "downloads": -1, + "filename": "clang_format-11.0.1.2-py2.py3-none-macosx_10_9_universal2.whl", + "has_sig": false, + "md5_digest": "d627a8e7ba62f08b656fec6652ec30cd", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 889892, + "upload_time": "2022-05-05T18:30:45", + "upload_time_iso_8601": "2022-05-05T18:30:45.115407Z", + "url": "https://files.pythonhosted.org/packages/75/bd/b81faeab5bed833f0d0405554bcf36e626088c730c68b9ea79a66fc7af2d/clang_format-11.0.1.2-py2.py3-none-macosx_10_9_universal2.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "88f752c03628eeee97655d2002a0db4dcae42a2b9235465d2ceca51b16e663c1", + "md5": "d37ca58a84c4510b95b045b946c93ddc", + "sha256": "d2fb8fdc52283c409fb363c268659c43adedc4b36310e4804b2cfa7e055d46fb" + }, + "downloads": -1, + "filename": "clang_format-11.0.1.2-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "has_sig": false, + "md5_digest": "d37ca58a84c4510b95b045b946c93ddc", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1116805, + "upload_time": "2022-05-05T18:30:46", + "upload_time_iso_8601": "2022-05-05T18:30:46.587627Z", + "url": "https://files.pythonhosted.org/packages/88/f7/52c03628eeee97655d2002a0db4dcae42a2b9235465d2ceca51b16e663c1/clang_format-11.0.1.2-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "cd23471a02bbfcbf6cb426fc9656c39d58dc537bda0692b42bee1e813765716e", + "md5": "0aa687fb2b913d49e15d7b839f9c31dd", + "sha256": "f8e817977c0009681d65476298de02bf4daf5f93749d666a56ca41c47e306f52" + }, + "downloads": -1, + "filename": "clang_format-11.0.1.2-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "has_sig": false, + "md5_digest": "0aa687fb2b913d49e15d7b839f9c31dd", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1008110, + "upload_time": "2022-05-05T18:30:47", + "upload_time_iso_8601": "2022-05-05T18:30:47.898574Z", + "url": "https://files.pythonhosted.org/packages/cd/23/471a02bbfcbf6cb426fc9656c39d58dc537bda0692b42bee1e813765716e/clang_format-11.0.1.2-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "e7bcd8d4b60a0340e505871da7a2f7bde1c9202f7201da460f13d44b51cea412", + "md5": "d2a6d680fd99527369aacf9711a95103", + "sha256": "3e9f80726e54d021733404b0a863634084be0da3a843e3f69747b5ee6eaa0172" + }, + "downloads": -1, + "filename": "clang_format-11.0.1.2-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "d2a6d680fd99527369aacf9711a95103", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1026491, + "upload_time": "2022-05-05T18:30:49", + "upload_time_iso_8601": "2022-05-05T18:30:49.320003Z", + "url": "https://files.pythonhosted.org/packages/e7/bc/d8d4b60a0340e505871da7a2f7bde1c9202f7201da460f13d44b51cea412/clang_format-11.0.1.2-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "25ffdc24fff2230de9c697e36789585461868bc0173578de239d45a2f0d1554b", + "md5": "6f67f35abc463bd95840124c51b7af3f", + "sha256": "85e29995a5a17674abc7f1ff1ab01a748d631b804ccfd63de025b466f54fc015" + }, + "downloads": -1, + "filename": "clang_format-11.0.1.2-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "6f67f35abc463bd95840124c51b7af3f", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1698356, + "upload_time": "2022-05-05T18:30:50", + "upload_time_iso_8601": "2022-05-05T18:30:50.804800Z", + "url": "https://files.pythonhosted.org/packages/25/ff/dc24fff2230de9c697e36789585461868bc0173578de239d45a2f0d1554b/clang_format-11.0.1.2-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "d29acb49027a546d3631520b593352f4842557e9924351838a07049ad7092a77", + "md5": "b24b3bb4c565a29a009a4f7c9849edc1", + "sha256": "334d9eeabf7cd091bdb17d6c37aed67fa8b4acf7deb3b2442735559b2fd2b401" + }, + "downloads": -1, + "filename": "clang_format-11.0.1.2-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "b24b3bb4c565a29a009a4f7c9849edc1", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1026366, + "upload_time": "2022-05-05T18:30:52", + "upload_time_iso_8601": "2022-05-05T18:30:52.033636Z", + "url": "https://files.pythonhosted.org/packages/d2/9a/cb49027a546d3631520b593352f4842557e9924351838a07049ad7092a77/clang_format-11.0.1.2-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "c4689b8c3c7d44a1fd5afe202b572489ede4ae355d41ae3c365eabe023e1ead5", + "md5": "bd6d438133cf9e592cbb1a321ad17734", + "sha256": "5f0228c8400e9a50929009ebbf46fdb4c16617e82e2376ce462c25d0a5c45053" + }, + "downloads": -1, + "filename": "clang_format-11.0.1.2-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "bd6d438133cf9e592cbb1a321ad17734", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 754415, + "upload_time": "2022-05-05T18:30:53", + "upload_time_iso_8601": "2022-05-05T18:30:53.470265Z", + "url": "https://files.pythonhosted.org/packages/c4/68/9b8c3c7d44a1fd5afe202b572489ede4ae355d41ae3c365eabe023e1ead5/clang_format-11.0.1.2-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "53964cb79a19531ce8f4b08ef456fc0dbbac90d42cb8e3a7d7ea4564048a041d", + "md5": "5d608a62467992195f367b46268e4ff3", + "sha256": "536cf48f7c12535f4c4e3fed9a88e594a329892f6bb0cc026633a90503378069" + }, + "downloads": -1, + "filename": "clang_format-11.0.1.2-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "5d608a62467992195f367b46268e4ff3", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 915447, + "upload_time": "2022-05-05T18:30:54", + "upload_time_iso_8601": "2022-05-05T18:30:54.680767Z", + "url": "https://files.pythonhosted.org/packages/53/96/4cb79a19531ce8f4b08ef456fc0dbbac90d42cb8e3a7d7ea4564048a041d/clang_format-11.0.1.2-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "1453c27ae4a9174c3d69b4d983e68986086c9d89698caa8d39794e88ca85307f", + "md5": "a51139bfae6214c04214f0d97ab54a64", + "sha256": "82a9f2584142bdbdc71a5f43a26f6d5ebc1276b134a962b14906cc5d640d074e" + }, + "downloads": -1, + "filename": "clang-format-11.0.1.2.tar.gz", + "has_sig": false, + "md5_digest": "a51139bfae6214c04214f0d97ab54a64", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 9631, + "upload_time": "2022-05-05T18:30:56", + "upload_time_iso_8601": "2022-05-05T18:30:56.038037Z", + "url": "https://files.pythonhosted.org/packages/14/53/c27ae4a9174c3d69b4d983e68986086c9d89698caa8d39794e88ca85307f/clang-format-11.0.1.2.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "11.1.0": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "8af51d63d47896cbd8c25075fd4dada011a9b06df9d3af6ed9ed47275c462364", + "md5": "191ad826a0e28bda8699bd2804f7201b", + "sha256": "c0feccbe91e89bb4e866d51118e119902c04be11b0dc93af693b5da8f9e3818a" + }, + "downloads": -1, + "filename": "clang_format-11.1.0-py2.py3-none-macosx_10_9_universal2.whl", + "has_sig": false, + "md5_digest": "191ad826a0e28bda8699bd2804f7201b", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 889140, + "upload_time": "2021-09-27T20:33:34", + "upload_time_iso_8601": "2021-09-27T20:33:34.814725Z", + "url": "https://files.pythonhosted.org/packages/8a/f5/1d63d47896cbd8c25075fd4dada011a9b06df9d3af6ed9ed47275c462364/clang_format-11.1.0-py2.py3-none-macosx_10_9_universal2.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "65ea3dacbe855124094332d097ac7d23ba36b6fa7722303ed0d5c5660799cab9", + "md5": "9bf80c1d751b26ba9e54d21645513104", + "sha256": "f1083d728bcd728ebddc49c9225f33cd2d213b3b6c36d9df5c94af2af0c10277" + }, + "downloads": -1, + "filename": "clang_format-11.1.0-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "has_sig": false, + "md5_digest": "9bf80c1d751b26ba9e54d21645513104", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1116048, + "upload_time": "2021-09-27T20:33:36", + "upload_time_iso_8601": "2021-09-27T20:33:36.879689Z", + "url": "https://files.pythonhosted.org/packages/65/ea/3dacbe855124094332d097ac7d23ba36b6fa7722303ed0d5c5660799cab9/clang_format-11.1.0-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "4dfbafd60536781864385b742b1f3aa60b9959fdc63e652f63fce15dee0d17ec", + "md5": "8152df2d4b8936cb828b39492f1fd9c4", + "sha256": "0da463012d74ad3335b6bccdb6f0721b12beac6acacc9694e2abcfc241695683" + }, + "downloads": -1, + "filename": "clang_format-11.1.0-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "has_sig": false, + "md5_digest": "8152df2d4b8936cb828b39492f1fd9c4", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1007357, + "upload_time": "2021-09-27T20:33:38", + "upload_time_iso_8601": "2021-09-27T20:33:38.252623Z", + "url": "https://files.pythonhosted.org/packages/4d/fb/afd60536781864385b742b1f3aa60b9959fdc63e652f63fce15dee0d17ec/clang_format-11.1.0-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "c2a0f7cef35d0d019b60333ce9acf4ebaadec1b208752e3e462a19e1a909feab", + "md5": "e8b41ab6012f3ed33eba45ac78798b11", + "sha256": "06c0a8081b2e69d7eb1aba446e579cbc0bddd9411a5b28222de9311c523ea081" + }, + "downloads": -1, + "filename": "clang_format-11.1.0-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "e8b41ab6012f3ed33eba45ac78798b11", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1996165, + "upload_time": "2021-09-27T20:33:39", + "upload_time_iso_8601": "2021-09-27T20:33:39.602780Z", + "url": "https://files.pythonhosted.org/packages/c2/a0/f7cef35d0d019b60333ce9acf4ebaadec1b208752e3e462a19e1a909feab/clang_format-11.1.0-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "1d9c7b1621ea1131fe085dbd47f1ba9e1f515c4334b0f64b07e974c5c856ee9b", + "md5": "59709dd19d224dab5c0f5ee4748cf2d1", + "sha256": "e6986ae619fafeaa7924f6c745518d895ca1b2b7e2fcc3cb9b57d0d7a6aa305b" + }, + "downloads": -1, + "filename": "clang_format-11.1.0-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "59709dd19d224dab5c0f5ee4748cf2d1", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1996168, + "upload_time": "2021-09-27T20:33:40", + "upload_time_iso_8601": "2021-09-27T20:33:40.715146Z", + "url": "https://files.pythonhosted.org/packages/1d/9c/7b1621ea1131fe085dbd47f1ba9e1f515c4334b0f64b07e974c5c856ee9b/clang_format-11.1.0-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "07d337cfc13aaa8edf27251aa07455a6f8c0ea95bf591a2822fa77083df5ac70", + "md5": "11350a245097a9111333d19530eb3780", + "sha256": "4f6d9d33bf52a1e23d5eda47b09707591d3eb19f1a2e40de12f924a71f425962" + }, + "downloads": -1, + "filename": "clang-format-11.1.0.tar.gz", + "has_sig": false, + "md5_digest": "11350a245097a9111333d19530eb3780", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 7987, + "upload_time": "2021-09-27T20:33:41", + "upload_time_iso_8601": "2021-09-27T20:33:41.725354Z", + "url": "https://files.pythonhosted.org/packages/07/d3/37cfc13aaa8edf27251aa07455a6f8c0ea95bf591a2822fa77083df5ac70/clang-format-11.1.0.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "11.1.0.1": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "08ff8ce1d4da31b1689418cb41db0c6c5a5495a445d8ac110429ffce36c713a7", + "md5": "956ce6ee0c1fccd2844b8fa963dcb6fe", + "sha256": "95f22a41d9e2eb2972f8cb547b2c621ab6862067c14ab22946d5607fff005dc7" + }, + "downloads": -1, + "filename": "clang_format-11.1.0.1-py2.py3-none-macosx_10_9_universal2.whl", + "has_sig": false, + "md5_digest": "956ce6ee0c1fccd2844b8fa963dcb6fe", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 889586, + "upload_time": "2022-02-17T23:56:39", + "upload_time_iso_8601": "2022-02-17T23:56:39.987637Z", + "url": "https://files.pythonhosted.org/packages/08/ff/8ce1d4da31b1689418cb41db0c6c5a5495a445d8ac110429ffce36c713a7/clang_format-11.1.0.1-py2.py3-none-macosx_10_9_universal2.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "cc9036525bed3d15bec079ce496e83d029b84dcb6e5d968ddc34f1c3dc37d6f9", + "md5": "5e99269f25c7ac9ad1d0efba52fbb21f", + "sha256": "7ad10d9bd88d5fca58ed701144cbc9d4e3995a51554db70c341edef2f0c939df" + }, + "downloads": -1, + "filename": "clang_format-11.1.0.1-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "has_sig": false, + "md5_digest": "5e99269f25c7ac9ad1d0efba52fbb21f", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1116499, + "upload_time": "2022-02-17T23:56:41", + "upload_time_iso_8601": "2022-02-17T23:56:41.243672Z", + "url": "https://files.pythonhosted.org/packages/cc/90/36525bed3d15bec079ce496e83d029b84dcb6e5d968ddc34f1c3dc37d6f9/clang_format-11.1.0.1-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "ccc626bfbcf434a9c89073c95c1b970dc8e9c89749850c094d098e64c08b2735", + "md5": "528a6bd15b8ecd0190c76f403a4dd6f6", + "sha256": "b474905f60cf2866d00ba8cc3d1f7c10e8aaebc425c5323f8db18c03a280f61c" + }, + "downloads": -1, + "filename": "clang_format-11.1.0.1-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "has_sig": false, + "md5_digest": "528a6bd15b8ecd0190c76f403a4dd6f6", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1007803, + "upload_time": "2022-02-17T23:56:42", + "upload_time_iso_8601": "2022-02-17T23:56:42.974400Z", + "url": "https://files.pythonhosted.org/packages/cc/c6/26bfbcf434a9c89073c95c1b970dc8e9c89749850c094d098e64c08b2735/clang_format-11.1.0.1-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "c1a7f11972623ae28e733a146f6b5ab51a87f5ee87b0b4cbb4d2973a80252e98", + "md5": "282ea6ea67a5c03f0db10cceac648238", + "sha256": "3e54d3b8afebc062bda6116b38f65cae6240e175ee0ab418cd818296234d1045" + }, + "downloads": -1, + "filename": "clang_format-11.1.0.1-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "282ea6ea67a5c03f0db10cceac648238", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1026193, + "upload_time": "2022-02-17T23:56:44", + "upload_time_iso_8601": "2022-02-17T23:56:44.007964Z", + "url": "https://files.pythonhosted.org/packages/c1/a7/f11972623ae28e733a146f6b5ab51a87f5ee87b0b4cbb4d2973a80252e98/clang_format-11.1.0.1-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "9824f9270f3f2b2fb99920cf211868433195cf9ce166f886905466dcfc317ffc", + "md5": "845e27d6c82c1fe328e69af8194ce7e9", + "sha256": "61f8e9a605e03b44150874c165c2ec8a56fc898ad6ed9f013819946ccb284e57" + }, + "downloads": -1, + "filename": "clang_format-11.1.0.1-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "845e27d6c82c1fe328e69af8194ce7e9", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1698053, + "upload_time": "2022-02-17T23:56:45", + "upload_time_iso_8601": "2022-02-17T23:56:45.196676Z", + "url": "https://files.pythonhosted.org/packages/98/24/f9270f3f2b2fb99920cf211868433195cf9ce166f886905466dcfc317ffc/clang_format-11.1.0.1-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "853265d7dd87202e35abd5f44090c536afd120a363e992cac6774d1ea907e470", + "md5": "14c71677f98862d0a052adf2ca883bdc", + "sha256": "42330d50d2a0dec22374368c9f2d9ae6084062f8ac649a13e6d9c5871e4dab37" + }, + "downloads": -1, + "filename": "clang_format-11.1.0.1-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "14c71677f98862d0a052adf2ca883bdc", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1026062, + "upload_time": "2022-02-17T23:56:46", + "upload_time_iso_8601": "2022-02-17T23:56:46.636736Z", + "url": "https://files.pythonhosted.org/packages/85/32/65d7dd87202e35abd5f44090c536afd120a363e992cac6774d1ea907e470/clang_format-11.1.0.1-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "d0d45c228fcf2d8f3792de24123d63275857bcca0dbfae3ea77bded622de4f1d", + "md5": "11aa31826f434c2bc43dd2ae5ee583e2", + "sha256": "0ebc9b51db01baa31f7c0e07705711adcfa5475ed31323174f110dfc61b1aa2b" + }, + "downloads": -1, + "filename": "clang_format-11.1.0.1-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "11aa31826f434c2bc43dd2ae5ee583e2", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 742530, + "upload_time": "2022-02-17T23:56:48", + "upload_time_iso_8601": "2022-02-17T23:56:48.292723Z", + "url": "https://files.pythonhosted.org/packages/d0/d4/5c228fcf2d8f3792de24123d63275857bcca0dbfae3ea77bded622de4f1d/clang_format-11.1.0.1-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "93b7ddc54c9f4c86b3280f4334d7af2ddb18fb33d1ed93721873328f516f782e", + "md5": "0d027f069cb7c5bec99de374d1a9701a", + "sha256": "d26620fa30e2289e4e6aaa5d607cde281d6c24e388f970b245b439ad48d75191" + }, + "downloads": -1, + "filename": "clang_format-11.1.0.1-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "0d027f069cb7c5bec99de374d1a9701a", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 910643, + "upload_time": "2022-02-17T23:56:49", + "upload_time_iso_8601": "2022-02-17T23:56:49.256886Z", + "url": "https://files.pythonhosted.org/packages/93/b7/ddc54c9f4c86b3280f4334d7af2ddb18fb33d1ed93721873328f516f782e/clang_format-11.1.0.1-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "3830267c46f17b536b5e93b47aee4231a0270115a04c71243115fa3c7cbc953d", + "md5": "44dc9ed5dfef15885248c54ff7edda0f", + "sha256": "0d1ec838fc335d3102888bbbcd0bd0774a0f459ce1af1c233cbd7aefaa055e7d" + }, + "downloads": -1, + "filename": "clang-format-11.1.0.1.tar.gz", + "has_sig": false, + "md5_digest": "44dc9ed5dfef15885248c54ff7edda0f", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 8451, + "upload_time": "2022-02-17T23:56:50", + "upload_time_iso_8601": "2022-02-17T23:56:50.224784Z", + "url": "https://files.pythonhosted.org/packages/38/30/267c46f17b536b5e93b47aee4231a0270115a04c71243115fa3c7cbc953d/clang-format-11.1.0.1.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "11.1.0.2": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "654930d3b2d22afca814264faf081b138c160544384b6aa7b11a0bf7a4a37723", + "md5": "740753cf5a9c8a3a9b01bc4866efe316", + "sha256": "20fe347c657d3e0649c8a332506d70ed2c11fc54af121ef455506df2ad79f721" + }, + "downloads": -1, + "filename": "clang_format-11.1.0.2-py2.py3-none-macosx_10_9_universal2.whl", + "has_sig": false, + "md5_digest": "740753cf5a9c8a3a9b01bc4866efe316", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 889893, + "upload_time": "2022-05-05T22:53:23", + "upload_time_iso_8601": "2022-05-05T22:53:23.147002Z", + "url": "https://files.pythonhosted.org/packages/65/49/30d3b2d22afca814264faf081b138c160544384b6aa7b11a0bf7a4a37723/clang_format-11.1.0.2-py2.py3-none-macosx_10_9_universal2.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "6f664cf68f53fad7ba798a06a5013080a1e81f36ea7888ae8555e99cc1fee71f", + "md5": "f200f416cfddf3973dbe683ffbda68f9", + "sha256": "11cb4c357466ca64b64ecbcf518ec0a3a0d10ec78eefa2428ba4efa5af414a17" + }, + "downloads": -1, + "filename": "clang_format-11.1.0.2-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "has_sig": false, + "md5_digest": "f200f416cfddf3973dbe683ffbda68f9", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1116803, + "upload_time": "2022-05-05T22:53:24", + "upload_time_iso_8601": "2022-05-05T22:53:24.626893Z", + "url": "https://files.pythonhosted.org/packages/6f/66/4cf68f53fad7ba798a06a5013080a1e81f36ea7888ae8555e99cc1fee71f/clang_format-11.1.0.2-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "b4578b83b9cfd7989eecfccab6400621215f7a7f6c337e22491d70fea5b3336f", + "md5": "d63001422df37bb7d1c70a8ffcf98d81", + "sha256": "766f3b3cde18e3b2118baddd5b348059de4b9d0fcd39cb33cc228a28e8b07a98" + }, + "downloads": -1, + "filename": "clang_format-11.1.0.2-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "has_sig": false, + "md5_digest": "d63001422df37bb7d1c70a8ffcf98d81", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1008110, + "upload_time": "2022-05-05T22:53:25", + "upload_time_iso_8601": "2022-05-05T22:53:25.945297Z", + "url": "https://files.pythonhosted.org/packages/b4/57/8b83b9cfd7989eecfccab6400621215f7a7f6c337e22491d70fea5b3336f/clang_format-11.1.0.2-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "23371d2944c2cff4daad30fbdb589ba67ff8ae2ef92e8ef4e9abfe7db473d252", + "md5": "0a632c19ca768118d80d72e3113276e2", + "sha256": "9ad459aa482b65db737f63c02ba572d0a88fc20418e79d2d2e43f9e503b2c572" + }, + "downloads": -1, + "filename": "clang_format-11.1.0.2-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "0a632c19ca768118d80d72e3113276e2", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1026495, + "upload_time": "2022-05-05T22:53:27", + "upload_time_iso_8601": "2022-05-05T22:53:27.001882Z", + "url": "https://files.pythonhosted.org/packages/23/37/1d2944c2cff4daad30fbdb589ba67ff8ae2ef92e8ef4e9abfe7db473d252/clang_format-11.1.0.2-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "38863dc04880e9b07d11fc0cd1ef6a6e7eb601fa0cd0e438071e52ff1d00e258", + "md5": "19ede0a6ccb3f4080421d3cf85179d03", + "sha256": "414064787e76948af0c12c7508329418b9b6d451fb717626c99c0afea9cc1703" + }, + "downloads": -1, + "filename": "clang_format-11.1.0.2-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "19ede0a6ccb3f4080421d3cf85179d03", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1698360, + "upload_time": "2022-05-05T22:53:28", + "upload_time_iso_8601": "2022-05-05T22:53:28.097846Z", + "url": "https://files.pythonhosted.org/packages/38/86/3dc04880e9b07d11fc0cd1ef6a6e7eb601fa0cd0e438071e52ff1d00e258/clang_format-11.1.0.2-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "24844a67f55ff8e2f0a0f0a05fbc1d907e381024dda75af2344b8084b791ad2e", + "md5": "0d1a78075aea8cb1072bf8bd6fc6021b", + "sha256": "0d93fb322e2df24f756e2829f199f8f3eaf5f30e5e0e869c1783b8cb46adc566" + }, + "downloads": -1, + "filename": "clang_format-11.1.0.2-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "0d1a78075aea8cb1072bf8bd6fc6021b", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1026367, + "upload_time": "2022-05-05T22:53:29", + "upload_time_iso_8601": "2022-05-05T22:53:29.791951Z", + "url": "https://files.pythonhosted.org/packages/24/84/4a67f55ff8e2f0a0f0a05fbc1d907e381024dda75af2344b8084b791ad2e/clang_format-11.1.0.2-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "4ad9f6212b8f809b58f638d8503580f70afae2e0f8cc5f5180395e3a935ae45d", + "md5": "d8591da04762ef73a977927f7225f4f0", + "sha256": "84a193a6c54e5e5331cc170ed84fd085dd6c02a515ea8996e5d344054df3616c" + }, + "downloads": -1, + "filename": "clang_format-11.1.0.2-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "d8591da04762ef73a977927f7225f4f0", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 754420, + "upload_time": "2022-05-05T22:53:31", + "upload_time_iso_8601": "2022-05-05T22:53:31.282736Z", + "url": "https://files.pythonhosted.org/packages/4a/d9/f6212b8f809b58f638d8503580f70afae2e0f8cc5f5180395e3a935ae45d/clang_format-11.1.0.2-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "91b8462d711344dd1b907b0cb3cbc32b14c1aac20d0b98245a5e48a5ee499148", + "md5": "358ac2b5c786dbdbcadb77b37c4a443e", + "sha256": "1711c8475d4a018b90a2438a6921151b11f5814b6cfd0dc568ff627f3468fc86" + }, + "downloads": -1, + "filename": "clang_format-11.1.0.2-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "358ac2b5c786dbdbcadb77b37c4a443e", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 915441, + "upload_time": "2022-05-05T22:53:32", + "upload_time_iso_8601": "2022-05-05T22:53:32.541917Z", + "url": "https://files.pythonhosted.org/packages/91/b8/462d711344dd1b907b0cb3cbc32b14c1aac20d0b98245a5e48a5ee499148/clang_format-11.1.0.2-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "06ecd5847e1e4969999080e61255295c42d2c507fb94e0415cd1bcbcaab0113a", + "md5": "a02b4ea3cda7a1467d34e02f99c517c3", + "sha256": "62b21d3f5e476914480e8c08619a5c7caa257d0364ea8ea5336aa7cc6d677137" + }, + "downloads": -1, + "filename": "clang-format-11.1.0.2.tar.gz", + "has_sig": false, + "md5_digest": "a02b4ea3cda7a1467d34e02f99c517c3", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 9614, + "upload_time": "2022-05-05T22:53:33", + "upload_time_iso_8601": "2022-05-05T22:53:33.824811Z", + "url": "https://files.pythonhosted.org/packages/06/ec/d5847e1e4969999080e61255295c42d2c507fb94e0415cd1bcbcaab0113a/clang-format-11.1.0.2.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "12.0.1": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "dfa6d15aa3ceada436d2a5dec5de0ba332afc8a09637833be746545697035624", + "md5": "e9fa95fa4abb1b10afee9444c65a3c89", + "sha256": "03665dc813affb129fc48a7c38c98d3675f447e8b59883aac96b07c51b83c491" + }, + "downloads": -1, + "filename": "clang_format-12.0.1-py2.py3-none-macosx_10_9_universal2.whl", + "has_sig": false, + "md5_digest": "e9fa95fa4abb1b10afee9444c65a3c89", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 802594, + "upload_time": "2021-09-27T23:39:21", + "upload_time_iso_8601": "2021-09-27T23:39:21.754036Z", + "url": "https://files.pythonhosted.org/packages/df/a6/d15aa3ceada436d2a5dec5de0ba332afc8a09637833be746545697035624/clang_format-12.0.1-py2.py3-none-macosx_10_9_universal2.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "d2e47a14a2044a62ee6fb17a403bb4ebf0161b1a392b20fd976d29c89a8e5da0", + "md5": "ebfc3b9c0f545536e41d19c7a0f4ba25", + "sha256": "4a64e3a4c206146bc3ca79ad9e3e38469ecb2778c8a02cd97157b780368b706b" + }, + "downloads": -1, + "filename": "clang_format-12.0.1-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "has_sig": false, + "md5_digest": "ebfc3b9c0f545536e41d19c7a0f4ba25", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1034294, + "upload_time": "2021-09-27T23:39:22", + "upload_time_iso_8601": "2021-09-27T23:39:22.819297Z", + "url": "https://files.pythonhosted.org/packages/d2/e4/7a14a2044a62ee6fb17a403bb4ebf0161b1a392b20fd976d29c89a8e5da0/clang_format-12.0.1-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "af4daf48745573954c74e554a5ce65e2372248a72b0f6694422cfdad8f768508", + "md5": "50e7bc11fff15d92e60a083a84fb4e5c", + "sha256": "46a0cd3e8b470cf33cfa919dbd9e04b8df7efe3facb9a8f6a5342ab8e841c25d" + }, + "downloads": -1, + "filename": "clang_format-12.0.1-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "has_sig": false, + "md5_digest": "50e7bc11fff15d92e60a083a84fb4e5c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 920566, + "upload_time": "2021-09-27T23:39:23", + "upload_time_iso_8601": "2021-09-27T23:39:23.962536Z", + "url": "https://files.pythonhosted.org/packages/af/4d/af48745573954c74e554a5ce65e2372248a72b0f6694422cfdad8f768508/clang_format-12.0.1-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "a0229bfe24e6028d4cd7143f46d4c7100228f2f49a762a115c5e603920218b47", + "md5": "f1dec2f88a652ef6410a46c3434c3737", + "sha256": "638646ae4246eafbcc54e8154a776cfaa79556d9aac7a200127f94fae7fd8468" + }, + "downloads": -1, + "filename": "clang_format-12.0.1-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "f1dec2f88a652ef6410a46c3434c3737", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 953282, + "upload_time": "2021-09-27T23:39:25", + "upload_time_iso_8601": "2021-09-27T23:39:25.398870Z", + "url": "https://files.pythonhosted.org/packages/a0/22/9bfe24e6028d4cd7143f46d4c7100228f2f49a762a115c5e603920218b47/clang_format-12.0.1-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "3e4b52375ef0d5d7be44fa7f5fd6ab3c6c6b0bfdae06ebd422df3c676b106d14", + "md5": "169a9e9ff216f09c1c503813ad1d5364", + "sha256": "ecfc433f69fb810d54371018a94c8186b9c40ba0cb9818041a467335863c8cf2" + }, + "downloads": -1, + "filename": "clang_format-12.0.1-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "169a9e9ff216f09c1c503813ad1d5364", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1664193, + "upload_time": "2021-09-27T23:39:26", + "upload_time_iso_8601": "2021-09-27T23:39:26.782379Z", + "url": "https://files.pythonhosted.org/packages/3e/4b/52375ef0d5d7be44fa7f5fd6ab3c6c6b0bfdae06ebd422df3c676b106d14/clang_format-12.0.1-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "05883c4c329fc29cd9381584847cffd72bae06f0ae4be2d6a18b10f1ee8b420f", + "md5": "23289d788ae12db8f3b622411c28349a", + "sha256": "5a0b9b94bd5cc0638bbe84603e13da3a8e0c19c7dfeb96c3944b55f49572602b" + }, + "downloads": -1, + "filename": "clang_format-12.0.1-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "23289d788ae12db8f3b622411c28349a", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 947848, + "upload_time": "2021-09-27T23:39:28", + "upload_time_iso_8601": "2021-09-27T23:39:28.074894Z", + "url": "https://files.pythonhosted.org/packages/05/88/3c4c329fc29cd9381584847cffd72bae06f0ae4be2d6a18b10f1ee8b420f/clang_format-12.0.1-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "eeab99c3d2bc229a82ffbc08880519a42cd1b6eeed4d837ca8d1d414ca2b0544", + "md5": "11ee23250551030c71a6e50c7567fc15", + "sha256": "eb972f0eef8959328e15a55e6167a0e565e64436e2a05218c4727119e5f4a10e" + }, + "downloads": -1, + "filename": "clang_format-12.0.1-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "11ee23250551030c71a6e50c7567fc15", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2061870, + "upload_time": "2021-09-27T23:39:29", + "upload_time_iso_8601": "2021-09-27T23:39:29.465144Z", + "url": "https://files.pythonhosted.org/packages/ee/ab/99c3d2bc229a82ffbc08880519a42cd1b6eeed4d837ca8d1d414ca2b0544/clang_format-12.0.1-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "5d315a0ffd7849042f2d4d1b6304d40bb0720976c6151a9b8dfb7f44de511da8", + "md5": "4b81aea0435589238b6f48dffa38f274", + "sha256": "dadd2ae65e28b1b9a608babbdf1235bfed539d519e1ec863ca1ebbb921f9de22" + }, + "downloads": -1, + "filename": "clang_format-12.0.1-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "4b81aea0435589238b6f48dffa38f274", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2061873, + "upload_time": "2021-09-27T23:39:30", + "upload_time_iso_8601": "2021-09-27T23:39:30.558779Z", + "url": "https://files.pythonhosted.org/packages/5d/31/5a0ffd7849042f2d4d1b6304d40bb0720976c6151a9b8dfb7f44de511da8/clang_format-12.0.1-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "6d0631bb5d5bb91b3507d60c40be617ad625a7e38b01bf656a62cd534bdbb227", + "md5": "468abe5accd68fc252097403a66b6634", + "sha256": "b687687ea47f7b236edf8b436d126e944d5d27ae0d45e14184a54d890bf4242e" + }, + "downloads": -1, + "filename": "clang-format-12.0.1.tar.gz", + "has_sig": false, + "md5_digest": "468abe5accd68fc252097403a66b6634", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 7989, + "upload_time": "2021-09-27T23:39:31", + "upload_time_iso_8601": "2021-09-27T23:39:31.474525Z", + "url": "https://files.pythonhosted.org/packages/6d/06/31bb5d5bb91b3507d60c40be617ad625a7e38b01bf656a62cd534bdbb227/clang-format-12.0.1.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "12.0.1.1": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "540532361da7bf4460efc0a5847cc782a68120222a82854bce3db7f28069325b", + "md5": "d94c2d7030e17d4f74fa933dab46095d", + "sha256": "93ad8524f76853baada61236444012894e34a738dce8094d3914af0e043e1712" + }, + "downloads": -1, + "filename": "clang_format-12.0.1.1-py2.py3-none-macosx_10_9_universal2.whl", + "has_sig": false, + "md5_digest": "d94c2d7030e17d4f74fa933dab46095d", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 803067, + "upload_time": "2022-02-17T21:30:22", + "upload_time_iso_8601": "2022-02-17T21:30:22.165050Z", + "url": "https://files.pythonhosted.org/packages/54/05/32361da7bf4460efc0a5847cc782a68120222a82854bce3db7f28069325b/clang_format-12.0.1.1-py2.py3-none-macosx_10_9_universal2.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "3263b07a00a5f4df92196dd0e36f2b5e801a6de6059be13835db8b8e16201b77", + "md5": "91466ad644b5c027f4c5f1e6d23d8515", + "sha256": "967dabf0ef648a5237f908d039d9e4969474451621928c663ed6196505b2826d" + }, + "downloads": -1, + "filename": "clang_format-12.0.1.1-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "has_sig": false, + "md5_digest": "91466ad644b5c027f4c5f1e6d23d8515", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1034737, + "upload_time": "2022-02-17T21:30:23", + "upload_time_iso_8601": "2022-02-17T21:30:23.614905Z", + "url": "https://files.pythonhosted.org/packages/32/63/b07a00a5f4df92196dd0e36f2b5e801a6de6059be13835db8b8e16201b77/clang_format-12.0.1.1-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "976209e28616eeb4311812ebb46c14ee942d7e1e27dea17eefa8212f34939ae6", + "md5": "979241da23aa6e961d50db77bccd70cc", + "sha256": "312246f973b2e0df52a6d59085610ebe48de216af1ba3b9a3ac1f7dc44b7491d" + }, + "downloads": -1, + "filename": "clang_format-12.0.1.1-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "has_sig": false, + "md5_digest": "979241da23aa6e961d50db77bccd70cc", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 921015, + "upload_time": "2022-02-17T21:30:24", + "upload_time_iso_8601": "2022-02-17T21:30:24.845159Z", + "url": "https://files.pythonhosted.org/packages/97/62/09e28616eeb4311812ebb46c14ee942d7e1e27dea17eefa8212f34939ae6/clang_format-12.0.1.1-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "a3020058414c6991d9254be1e59fa1bb0a8e373a5938e21aad81351989a7a264", + "md5": "f583121c117edfa4aa1f0f4b63c50ce0", + "sha256": "acc7878471d6f12800ada339c2ddedc4dbff64af56cb787ae2daa687f9cd5606" + }, + "downloads": -1, + "filename": "clang_format-12.0.1.1-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "f583121c117edfa4aa1f0f4b63c50ce0", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 953702, + "upload_time": "2022-02-17T21:30:25", + "upload_time_iso_8601": "2022-02-17T21:30:25.769117Z", + "url": "https://files.pythonhosted.org/packages/a3/02/0058414c6991d9254be1e59fa1bb0a8e373a5938e21aad81351989a7a264/clang_format-12.0.1.1-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "6c5a4e2a12a045f7ada09398f9beaed7d37555f36d08a352c10401ccefbf8aa3", + "md5": "dc9bfb0df556981155c37d9c6dcdf408", + "sha256": "1c2a5fb8c1f863008f0413b3ddb4713564fe3d396bd51e74ea8b75fc0a77669b" + }, + "downloads": -1, + "filename": "clang_format-12.0.1.1-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "dc9bfb0df556981155c37d9c6dcdf408", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1664619, + "upload_time": "2022-02-17T21:30:26", + "upload_time_iso_8601": "2022-02-17T21:30:26.690755Z", + "url": "https://files.pythonhosted.org/packages/6c/5a/4e2a12a045f7ada09398f9beaed7d37555f36d08a352c10401ccefbf8aa3/clang_format-12.0.1.1-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "79c8778eb2bf871af26ccf417d8279e10a022ae4222898dbbee4e576cddb9b9e", + "md5": "b430cb92ef7198ec148b0a3202d8a41d", + "sha256": "cd8cb6c0587eaa0367fe50af9cc03676bce55daf33fb98e7ecfd24a1cfe7965c" + }, + "downloads": -1, + "filename": "clang_format-12.0.1.1-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "b430cb92ef7198ec148b0a3202d8a41d", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 948285, + "upload_time": "2022-02-17T21:30:27", + "upload_time_iso_8601": "2022-02-17T21:30:27.904230Z", + "url": "https://files.pythonhosted.org/packages/79/c8/778eb2bf871af26ccf417d8279e10a022ae4222898dbbee4e576cddb9b9e/clang_format-12.0.1.1-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "2ff377622e1014d141f286464fe7a6070407bc39e53b7aec967bc63b4fc6f613", + "md5": "60330b994cccc773e365eb384d26b41e", + "sha256": "4e3631ed85589b71a491590845048c58815c6bc45ba19958ae1a61e830366bd6" + }, + "downloads": -1, + "filename": "clang_format-12.0.1.1-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "60330b994cccc773e365eb384d26b41e", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 641822, + "upload_time": "2022-02-17T21:30:29", + "upload_time_iso_8601": "2022-02-17T21:30:29.179988Z", + "url": "https://files.pythonhosted.org/packages/2f/f3/77622e1014d141f286464fe7a6070407bc39e53b7aec967bc63b4fc6f613/clang_format-12.0.1.1-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "7cba0bd4789f46d617d0df9c3ca7bdaeab1cbe9b0ccbeef437900b75ed4fed78", + "md5": "53a6d39f24fd64384eb447a274ad51cb", + "sha256": "89c0d0dd644c930e68cd59c99c3822569ca7d1acb131ef65bda9733b2746407b" + }, + "downloads": -1, + "filename": "clang_format-12.0.1.1-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "53a6d39f24fd64384eb447a274ad51cb", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 809587, + "upload_time": "2022-02-17T21:30:30", + "upload_time_iso_8601": "2022-02-17T21:30:30.267197Z", + "url": "https://files.pythonhosted.org/packages/7c/ba/0bd4789f46d617d0df9c3ca7bdaeab1cbe9b0ccbeef437900b75ed4fed78/clang_format-12.0.1.1-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "4372689b399d5e3461c36c8a5709c14259076e9305e3b14d7912ab0754a9b529", + "md5": "5d0737f58fe9600a8adaa404b62e4c37", + "sha256": "6bdc9f70f9e384bb5e238f2f6859e0719dcc5caf1cb6c7e61b9670fc42727297" + }, + "downloads": -1, + "filename": "clang-format-12.0.1.1.tar.gz", + "has_sig": false, + "md5_digest": "5d0737f58fe9600a8adaa404b62e4c37", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 8450, + "upload_time": "2022-02-17T21:30:31", + "upload_time_iso_8601": "2022-02-17T21:30:31.638077Z", + "url": "https://files.pythonhosted.org/packages/43/72/689b399d5e3461c36c8a5709c14259076e9305e3b14d7912ab0754a9b529/clang-format-12.0.1.1.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "12.0.1.2": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "5ee6a6c82f965f744ee6401334bc88c3e88358d30f6f130f9d8ad5439762586f", + "md5": "043fdbb0037cefd10b5f9709e5bb03c7", + "sha256": "855a5cdc2d88ab046b165320311122a14369ef3d2e5e1ed689251a90e6cd76a5" + }, + "downloads": -1, + "filename": "clang_format-12.0.1.2-py2.py3-none-macosx_10_9_universal2.whl", + "has_sig": false, + "md5_digest": "043fdbb0037cefd10b5f9709e5bb03c7", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 803362, + "upload_time": "2022-05-05T16:25:33", + "upload_time_iso_8601": "2022-05-05T16:25:33.895340Z", + "url": "https://files.pythonhosted.org/packages/5e/e6/a6c82f965f744ee6401334bc88c3e88358d30f6f130f9d8ad5439762586f/clang_format-12.0.1.2-py2.py3-none-macosx_10_9_universal2.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "edfb1455c947ae9780ebc50b679586f85be8f4ef2bda128a5fe0520c7f34cd67", + "md5": "a61082d630a2fb90ae345bbd55e6db42", + "sha256": "7387d926c773dec22cbf090ee9da533f61b881e274f565b97047e99500ae92db" + }, + "downloads": -1, + "filename": "clang_format-12.0.1.2-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "has_sig": false, + "md5_digest": "a61082d630a2fb90ae345bbd55e6db42", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1035039, + "upload_time": "2022-05-05T16:25:35", + "upload_time_iso_8601": "2022-05-05T16:25:35.530704Z", + "url": "https://files.pythonhosted.org/packages/ed/fb/1455c947ae9780ebc50b679586f85be8f4ef2bda128a5fe0520c7f34cd67/clang_format-12.0.1.2-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "c92c36fffbb1af389b00bfb9304792aa7eab318dc485cfd69194c718ce13b463", + "md5": "51acd03e0b5d3655856a8342e8631157", + "sha256": "7ab0c1bae5551f6fea3a41dbe88fb653b11f86b802a13bf60c8f181e996f7c17" + }, + "downloads": -1, + "filename": "clang_format-12.0.1.2-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "has_sig": false, + "md5_digest": "51acd03e0b5d3655856a8342e8631157", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 921319, + "upload_time": "2022-05-05T16:25:36", + "upload_time_iso_8601": "2022-05-05T16:25:36.602753Z", + "url": "https://files.pythonhosted.org/packages/c9/2c/36fffbb1af389b00bfb9304792aa7eab318dc485cfd69194c718ce13b463/clang_format-12.0.1.2-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "8fa630fc3bf79504318967ba2c88183122b3d20dd5776a36ba84e776d0c02ab9", + "md5": "5b4c29128e511c0148564ba656cfcc18", + "sha256": "1a43607dda28dd52369801ca5249aa5f676fdd719f7a2563678104d7bf727606" + }, + "downloads": -1, + "filename": "clang_format-12.0.1.2-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "5b4c29128e511c0148564ba656cfcc18", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 954006, + "upload_time": "2022-05-05T16:25:37", + "upload_time_iso_8601": "2022-05-05T16:25:37.921434Z", + "url": "https://files.pythonhosted.org/packages/8f/a6/30fc3bf79504318967ba2c88183122b3d20dd5776a36ba84e776d0c02ab9/clang_format-12.0.1.2-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "bc6147a969c457e719b558b425c8ff571a60df3815f9847d9fa21bf72082f939", + "md5": "bc42fcaafab57868c2e79f91ed6268f3", + "sha256": "13466a4a2be53e8483687a3c4218492037bf53a1d82e12a5e7277dc43b5d6c92" + }, + "downloads": -1, + "filename": "clang_format-12.0.1.2-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "bc42fcaafab57868c2e79f91ed6268f3", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1664922, + "upload_time": "2022-05-05T16:25:39", + "upload_time_iso_8601": "2022-05-05T16:25:39.428381Z", + "url": "https://files.pythonhosted.org/packages/bc/61/47a969c457e719b558b425c8ff571a60df3815f9847d9fa21bf72082f939/clang_format-12.0.1.2-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "979416630ae179a044e1797f349f18227f78af987b7cf320bcfd16ed8864bf81", + "md5": "5aa4c4377780999d80260622ec6f3845", + "sha256": "96b18dcf35033566c833f5df138a1020047b1e804e8e11e6aa289c281d348f6d" + }, + "downloads": -1, + "filename": "clang_format-12.0.1.2-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "5aa4c4377780999d80260622ec6f3845", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 948594, + "upload_time": "2022-05-05T16:25:40", + "upload_time_iso_8601": "2022-05-05T16:25:40.879522Z", + "url": "https://files.pythonhosted.org/packages/97/94/16630ae179a044e1797f349f18227f78af987b7cf320bcfd16ed8864bf81/clang_format-12.0.1.2-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "188adcdd173f7bf4dff5cab4bf200e46ac2ea92ab7ed9abb31b2e64a3bece70a", + "md5": "beebce77a74df303fe3736fb49456c6f", + "sha256": "a7d027b205f8b853567bd906ef0790756455cf7910f8c2ce927198d0db78c3d4" + }, + "downloads": -1, + "filename": "clang_format-12.0.1.2-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "beebce77a74df303fe3736fb49456c6f", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 652424, + "upload_time": "2022-05-05T16:25:41", + "upload_time_iso_8601": "2022-05-05T16:25:41.929306Z", + "url": "https://files.pythonhosted.org/packages/18/8a/dcdd173f7bf4dff5cab4bf200e46ac2ea92ab7ed9abb31b2e64a3bece70a/clang_format-12.0.1.2-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "6139241c4dc0fac78e03d9fbfb6306cfb9e0558be3eb0b04b37790b69a7fedec", + "md5": "f928c5be568b2c4893d947048a32ab70", + "sha256": "8a6d1d11cf11b4ce735ea2622ca7995892e262b9786762c9c3fef6a4ff2a99de" + }, + "downloads": -1, + "filename": "clang_format-12.0.1.2-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "f928c5be568b2c4893d947048a32ab70", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 812427, + "upload_time": "2022-05-05T16:25:42", + "upload_time_iso_8601": "2022-05-05T16:25:42.992664Z", + "url": "https://files.pythonhosted.org/packages/61/39/241c4dc0fac78e03d9fbfb6306cfb9e0558be3eb0b04b37790b69a7fedec/clang_format-12.0.1.2-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "551c51b30e3bd02bdce759190fe3d57abb1da7712cb1ce4dc6230dddd6f7488b", + "md5": "72aa0dcc54c4925f0a87d6c0b658f76f", + "sha256": "ed8e9ba912f458a259fa0e0ff7fc8c15caf8a7adb61f2d5a5c60eccb575d6e10" + }, + "downloads": -1, + "filename": "clang-format-12.0.1.2.tar.gz", + "has_sig": false, + "md5_digest": "72aa0dcc54c4925f0a87d6c0b658f76f", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 9615, + "upload_time": "2022-05-05T16:25:44", + "upload_time_iso_8601": "2022-05-05T16:25:44.031890Z", + "url": "https://files.pythonhosted.org/packages/55/1c/51b30e3bd02bdce759190fe3d57abb1da7712cb1ce4dc6230dddd6f7488b/clang-format-12.0.1.2.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "13.0.0": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "2ca6085544c6a6d2b8218661fd70a9a52e925673454fa7333c9b481409cb244d", + "md5": "e2d288bf9c7a1f01059bbb0eb7c6f04a", + "sha256": "b7f9824065e1b4d6a1bc5d0000a5550929be63e8bb05252892fbe858130e5167" + }, + "downloads": -1, + "filename": "clang_format-13.0.0-py2.py3-none-macosx_10_9_universal2.whl", + "has_sig": false, + "md5_digest": "e2d288bf9c7a1f01059bbb0eb7c6f04a", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 831424, + "upload_time": "2021-10-01T11:57:22", + "upload_time_iso_8601": "2021-10-01T11:57:22.815778Z", + "url": "https://files.pythonhosted.org/packages/2c/a6/085544c6a6d2b8218661fd70a9a52e925673454fa7333c9b481409cb244d/clang_format-13.0.0-py2.py3-none-macosx_10_9_universal2.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "04fc831aec2978fd04940d8c6a1bc8580f62ce6af86e4aeaad71bdefd1250c33", + "md5": "aec5b51f960d96465f765ed9b04c29ac", + "sha256": "5bd10c0860a82b2806fad11d161d26f45290b56fdc4e2feaac64e16565482388" + }, + "downloads": -1, + "filename": "clang_format-13.0.0-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "has_sig": false, + "md5_digest": "aec5b51f960d96465f765ed9b04c29ac", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1072201, + "upload_time": "2021-10-01T11:57:25", + "upload_time_iso_8601": "2021-10-01T11:57:25.074608Z", + "url": "https://files.pythonhosted.org/packages/04/fc/831aec2978fd04940d8c6a1bc8580f62ce6af86e4aeaad71bdefd1250c33/clang_format-13.0.0-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "82edd8a5af59e151006a32f23c08bccbcf1e919b9a4ef72c240b740c0e8cb65c", + "md5": "1c0ade36d537259d303bc5494534307b", + "sha256": "e978ad130d2b540e013784d96252ca89e45a42337faa1bbf5a7db9bf40c37a5c" + }, + "downloads": -1, + "filename": "clang_format-13.0.0-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "has_sig": false, + "md5_digest": "1c0ade36d537259d303bc5494534307b", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 959993, + "upload_time": "2021-10-01T11:57:26", + "upload_time_iso_8601": "2021-10-01T11:57:26.544758Z", + "url": "https://files.pythonhosted.org/packages/82/ed/d8a5af59e151006a32f23c08bccbcf1e919b9a4ef72c240b740c0e8cb65c/clang_format-13.0.0-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "d39a623a6ab24134157eb45bc6400eae7b2795099053ce04ae4fdbccade1e246", + "md5": "e34d9d8586c7f9a8e5a349790db56339", + "sha256": "9146981b7f32e39614afc1f92aa460480d568e6ec1c7c2f3dfbe2bf3922b19d7" + }, + "downloads": -1, + "filename": "clang_format-13.0.0-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "e34d9d8586c7f9a8e5a349790db56339", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1008297, + "upload_time": "2021-10-01T11:57:28", + "upload_time_iso_8601": "2021-10-01T11:57:28.036286Z", + "url": "https://files.pythonhosted.org/packages/d3/9a/623a6ab24134157eb45bc6400eae7b2795099053ce04ae4fdbccade1e246/clang_format-13.0.0-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "9446edcd121aa0b1decccbeffa216f3c86002bfc130bcdf774fab792f66e3dfe", + "md5": "e7149e1b409b6e1b850940fc3c10a845", + "sha256": "b8b09158ace5a8155f8a0c0cb75d4140091ab3d95f42b07c7d89c9989666bc88" + }, + "downloads": -1, + "filename": "clang_format-13.0.0-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "e7149e1b409b6e1b850940fc3c10a845", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1954388, + "upload_time": "2021-10-01T11:57:29", + "upload_time_iso_8601": "2021-10-01T11:57:29.717191Z", + "url": "https://files.pythonhosted.org/packages/94/46/edcd121aa0b1decccbeffa216f3c86002bfc130bcdf774fab792f66e3dfe/clang_format-13.0.0-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "03ff76524934e9be64294bbf01ad6adb642a8c1134416f11ecee671f85311b98", + "md5": "c30da398d76106326fba7902002089ef", + "sha256": "3483f3a578b13bcd31c72dd06de49cbc478052611b90371e6d76e302ba763f99" + }, + "downloads": -1, + "filename": "clang_format-13.0.0-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "c30da398d76106326fba7902002089ef", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 982740, + "upload_time": "2021-10-01T11:57:31", + "upload_time_iso_8601": "2021-10-01T11:57:31.297333Z", + "url": "https://files.pythonhosted.org/packages/03/ff/76524934e9be64294bbf01ad6adb642a8c1134416f11ecee671f85311b98/clang_format-13.0.0-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "d6231d6798d498fed0421a95946afcb44a47b676c9a2cae6c897dd08000fcfa3", + "md5": "a65e12605667a5e99575df949552386c", + "sha256": "934a77d8f0c1820091bad16faf71dc9887c02a3854d202c51b83cf059011c02a" + }, + "downloads": -1, + "filename": "clang_format-13.0.0-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "a65e12605667a5e99575df949552386c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2030158, + "upload_time": "2021-10-01T11:57:32", + "upload_time_iso_8601": "2021-10-01T11:57:32.668498Z", + "url": "https://files.pythonhosted.org/packages/d6/23/1d6798d498fed0421a95946afcb44a47b676c9a2cae6c897dd08000fcfa3/clang_format-13.0.0-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "2e438c231f200afed35b36ce884c07df2b708b64f1e84e7a7c0bb0a8b278be18", + "md5": "ef89c19185ae7cc464a33e079bd86b84", + "sha256": "3d613b5c68847a8425dd44578ce7216a25fd8235a48ba4f4f70b37ec80d2d319" + }, + "downloads": -1, + "filename": "clang_format-13.0.0-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "ef89c19185ae7cc464a33e079bd86b84", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2030162, + "upload_time": "2021-10-01T11:57:33", + "upload_time_iso_8601": "2021-10-01T11:57:33.911646Z", + "url": "https://files.pythonhosted.org/packages/2e/43/8c231f200afed35b36ce884c07df2b708b64f1e84e7a7c0bb0a8b278be18/clang_format-13.0.0-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "811a236ddebc69e7d878dc81519147d51cb2155266e0061ab49a8c5761b4a398", + "md5": "50422c2cb62fef7e33d721051ddd5115", + "sha256": "cc0c5e791f180ad5141d800834f6041862ef6179213b6bd7fcd5296719490ac0" + }, + "downloads": -1, + "filename": "clang-format-13.0.0.tar.gz", + "has_sig": false, + "md5_digest": "50422c2cb62fef7e33d721051ddd5115", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 8240, + "upload_time": "2021-10-01T11:57:34", + "upload_time_iso_8601": "2021-10-01T11:57:34.919824Z", + "url": "https://files.pythonhosted.org/packages/81/1a/236ddebc69e7d878dc81519147d51cb2155266e0061ab49a8c5761b4a398/clang-format-13.0.0.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "13.0.1": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "148e93bb3094512d6bb515c28156373ac6cb786e0cc08ff6492aca0fc7d592d8", + "md5": "263a1ed509cfad3949400ee2665342c7", + "sha256": "826d487b1cf0190e0c3a5e064b56e2f6e7c4c799c78e59ff6d8991df916f2222" + }, + "downloads": -1, + "filename": "clang_format-13.0.1-py2.py3-none-macosx_10_9_universal2.whl", + "has_sig": false, + "md5_digest": "263a1ed509cfad3949400ee2665342c7", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 832097, + "upload_time": "2022-02-17T08:48:34", + "upload_time_iso_8601": "2022-02-17T08:48:34.243139Z", + "url": "https://files.pythonhosted.org/packages/14/8e/93bb3094512d6bb515c28156373ac6cb786e0cc08ff6492aca0fc7d592d8/clang_format-13.0.1-py2.py3-none-macosx_10_9_universal2.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "afafdd02567f60d1be34819d1f7e8958ef786850c062527d1f2343e5f16c746f", + "md5": "ecd5b3451dbab9b94c967dc8a87979a5", + "sha256": "a8fab9bb9b96be6024a2d6e686894cb5725001399ef04a51383cda551e354c3a" + }, + "downloads": -1, + "filename": "clang_format-13.0.1-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "has_sig": false, + "md5_digest": "ecd5b3451dbab9b94c967dc8a87979a5", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1072723, + "upload_time": "2022-02-17T08:48:36", + "upload_time_iso_8601": "2022-02-17T08:48:36.097919Z", + "url": "https://files.pythonhosted.org/packages/af/af/dd02567f60d1be34819d1f7e8958ef786850c062527d1f2343e5f16c746f/clang_format-13.0.1-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "17fd723876a1e55397e4b060f2e9e3d4a5e4820f6e09ea05fe8c8cf4ddfd1ae8", + "md5": "70d599dc9729c20216c01755857cddfe", + "sha256": "58e91debc2b2d14d174c73c678ffac676cb171152ee3f4239b6cbe6975e4ede1" + }, + "downloads": -1, + "filename": "clang_format-13.0.1-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "has_sig": false, + "md5_digest": "70d599dc9729c20216c01755857cddfe", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 960614, + "upload_time": "2022-02-17T08:48:37", + "upload_time_iso_8601": "2022-02-17T08:48:37.866713Z", + "url": "https://files.pythonhosted.org/packages/17/fd/723876a1e55397e4b060f2e9e3d4a5e4820f6e09ea05fe8c8cf4ddfd1ae8/clang_format-13.0.1-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "ca9b7f7a8761a08f3ef462bb1c062616a549f76c80b8fa942d068656a54665e4", + "md5": "a147e82b603ace1b9b6322dd2fa8c466", + "sha256": "88c832f055ee1d4b026a819c9d457374d92abe067d8f87078b9f229e6564ac1f" + }, + "downloads": -1, + "filename": "clang_format-13.0.1-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "a147e82b603ace1b9b6322dd2fa8c466", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1008804, + "upload_time": "2022-02-17T08:48:39", + "upload_time_iso_8601": "2022-02-17T08:48:39.240546Z", + "url": "https://files.pythonhosted.org/packages/ca/9b/7f7a8761a08f3ef462bb1c062616a549f76c80b8fa942d068656a54665e4/clang_format-13.0.1-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "9e9bb1447c3fca9a9efeede9542785982468a4c9a57dc6db000d6adfe87f338c", + "md5": "de013ac16be75f95df146891791ae37d", + "sha256": "f345b61c56d76325b158dbad560c35bdd8e77184f0fb60aba4f8019f744b70f8" + }, + "downloads": -1, + "filename": "clang_format-13.0.1-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "de013ac16be75f95df146891791ae37d", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1955195, + "upload_time": "2022-02-17T08:48:40", + "upload_time_iso_8601": "2022-02-17T08:48:40.703918Z", + "url": "https://files.pythonhosted.org/packages/9e/9b/b1447c3fca9a9efeede9542785982468a4c9a57dc6db000d6adfe87f338c/clang_format-13.0.1-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "a697876beb4598e26b4df5f3256aacea77f6d495385ea2e39888f041af965be9", + "md5": "ada92a1725554cc39a75bd424c04dfee", + "sha256": "a6e0ea97648ca916454f9719537d16a4ec5557d8644e544a001aaa42ba9b653f" + }, + "downloads": -1, + "filename": "clang_format-13.0.1-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "ada92a1725554cc39a75bd424c04dfee", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 983281, + "upload_time": "2022-02-17T08:48:42", + "upload_time_iso_8601": "2022-02-17T08:48:42.443752Z", + "url": "https://files.pythonhosted.org/packages/a6/97/876beb4598e26b4df5f3256aacea77f6d495385ea2e39888f041af965be9/clang_format-13.0.1-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "93b4ab636facaec6e98f87e90fa632b600179fa5f890ca440be88fa188e812e6", + "md5": "182ec992d01e5e49fcf4228151fa4a8a", + "sha256": "1302ef7522eb9dc1daf270cd5a4a1f10814403e50d74be9b96f87dcb200f47f7" + }, + "downloads": -1, + "filename": "clang_format-13.0.1-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "182ec992d01e5e49fcf4228151fa4a8a", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 659525, + "upload_time": "2022-02-17T08:48:43", + "upload_time_iso_8601": "2022-02-17T08:48:43.752958Z", + "url": "https://files.pythonhosted.org/packages/93/b4/ab636facaec6e98f87e90fa632b600179fa5f890ca440be88fa188e812e6/clang_format-13.0.1-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "f400dd7a74b5dddb168568bc40042f2c662f2b748dea6242396c5d9f2351f777", + "md5": "d2ee5289080bce234fc9decdea03f5ab", + "sha256": "7b80a328107bf3d11bf2db7d227feac46458aed07f836430d8dc2155dcc5cdce" + }, + "downloads": -1, + "filename": "clang_format-13.0.1-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "d2ee5289080bce234fc9decdea03f5ab", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 839782, + "upload_time": "2022-02-17T08:48:45", + "upload_time_iso_8601": "2022-02-17T08:48:45.177345Z", + "url": "https://files.pythonhosted.org/packages/f4/00/dd7a74b5dddb168568bc40042f2c662f2b748dea6242396c5d9f2351f777/clang_format-13.0.1-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "0f6a46e36463d43cbe6aa0a87a09f440fff380352b106b5d0747b23c33b38df5", + "md5": "02472b77651c56db55400c48d2906d89", + "sha256": "deb131bee8716aead66f0bbf64126cb9e18499d18ea75801dda86ff842320142" + }, + "downloads": -1, + "filename": "clang-format-13.0.1.tar.gz", + "has_sig": false, + "md5_digest": "02472b77651c56db55400c48d2906d89", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 8443, + "upload_time": "2022-02-17T08:48:46", + "upload_time_iso_8601": "2022-02-17T08:48:46.326609Z", + "url": "https://files.pythonhosted.org/packages/0f/6a/46e36463d43cbe6aa0a87a09f440fff380352b106b5d0747b23c33b38df5/clang-format-13.0.1.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "13.0.1.1": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "2d058ad829f01bd168e11f2552580bccf4ba0ba0e75e5268adf178dd7f3769e7", + "md5": "c7febd9b0cc58fa47d3a91a6a23aa493", + "sha256": "fb5f41196732d61c6d8ce81a4bb7e5196e70cc4168ec90c27ddd13188f0e47ce" + }, + "downloads": -1, + "filename": "clang_format-13.0.1.1-py2.py3-none-macosx_10_9_universal2.whl", + "has_sig": false, + "md5_digest": "c7febd9b0cc58fa47d3a91a6a23aa493", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 832436, + "upload_time": "2022-05-05T13:32:30", + "upload_time_iso_8601": "2022-05-05T13:32:30.229675Z", + "url": "https://files.pythonhosted.org/packages/2d/05/8ad829f01bd168e11f2552580bccf4ba0ba0e75e5268adf178dd7f3769e7/clang_format-13.0.1.1-py2.py3-none-macosx_10_9_universal2.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "64d5402bb4ef9cd65b09386c9277d8dbc1eec1028810b225db327ce584e5eefe", + "md5": "5448e10e5edcf25faa1e77a3c82a36ea", + "sha256": "d68891549557f9c47e555e756ffba698dc8edd44be6fdcd2f4d24f560da3894e" + }, + "downloads": -1, + "filename": "clang_format-13.0.1.1-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "has_sig": false, + "md5_digest": "5448e10e5edcf25faa1e77a3c82a36ea", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1073063, + "upload_time": "2022-05-05T13:32:31", + "upload_time_iso_8601": "2022-05-05T13:32:31.878030Z", + "url": "https://files.pythonhosted.org/packages/64/d5/402bb4ef9cd65b09386c9277d8dbc1eec1028810b225db327ce584e5eefe/clang_format-13.0.1.1-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "2cfcd8b5554336f2a895f1ecfac32ba68ef9dc81d976a3c17a7ce12702dc7b04", + "md5": "bc7e90e6c41df06e8aca813f517a0336", + "sha256": "dba53a90c5356274c51f3ce642eee663a1e7d7b921233dadfa5001144aa5bd4b" + }, + "downloads": -1, + "filename": "clang_format-13.0.1.1-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "has_sig": false, + "md5_digest": "bc7e90e6c41df06e8aca813f517a0336", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 960952, + "upload_time": "2022-05-05T13:32:33", + "upload_time_iso_8601": "2022-05-05T13:32:33.201413Z", + "url": "https://files.pythonhosted.org/packages/2c/fc/d8b5554336f2a895f1ecfac32ba68ef9dc81d976a3c17a7ce12702dc7b04/clang_format-13.0.1.1-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "6f23929d6590f9263e06c514ee0c1848532163158517030cf4e2c5fc1b1d55da", + "md5": "4698aa805bd43b62fa8b3621b34d5f0e", + "sha256": "3f2aadcecad526ac98a02aee6fb09e4b481411b72afccbc5a4398e1132ee1254" + }, + "downloads": -1, + "filename": "clang_format-13.0.1.1-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "4698aa805bd43b62fa8b3621b34d5f0e", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1009142, + "upload_time": "2022-05-05T13:32:34", + "upload_time_iso_8601": "2022-05-05T13:32:34.708885Z", + "url": "https://files.pythonhosted.org/packages/6f/23/929d6590f9263e06c514ee0c1848532163158517030cf4e2c5fc1b1d55da/clang_format-13.0.1.1-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "7ab7a2f43e92e8363db43d660fb96b6bf332b5a218bf2f0f068a43618a583ab4", + "md5": "0e5a42994486237d091b1a939be822e2", + "sha256": "28849832084e05b2d77fbd0aa43bbffb2c2e0d528016043e567a0797aa469104" + }, + "downloads": -1, + "filename": "clang_format-13.0.1.1-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "0e5a42994486237d091b1a939be822e2", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1955533, + "upload_time": "2022-05-05T13:32:36", + "upload_time_iso_8601": "2022-05-05T13:32:36.274568Z", + "url": "https://files.pythonhosted.org/packages/7a/b7/a2f43e92e8363db43d660fb96b6bf332b5a218bf2f0f068a43618a583ab4/clang_format-13.0.1.1-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "92b66e2c92cb39b39ff01053c858500b911009099a2ec0bddfaa43c169a6fbd8", + "md5": "c3640bc1bf04fe96d9d2a89139ce83c9", + "sha256": "7c462633ec19bedd837869d558be6a1e9049f27fee64b5431c9ef395f0dce15f" + }, + "downloads": -1, + "filename": "clang_format-13.0.1.1-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "c3640bc1bf04fe96d9d2a89139ce83c9", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 983616, + "upload_time": "2022-05-05T13:32:37", + "upload_time_iso_8601": "2022-05-05T13:32:37.713780Z", + "url": "https://files.pythonhosted.org/packages/92/b6/6e2c92cb39b39ff01053c858500b911009099a2ec0bddfaa43c169a6fbd8/clang_format-13.0.1.1-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "d05563036d541aea733cfa2d982a771e7fe723fefa63de21fc992493c0a27500", + "md5": "e02d69c829249e277ffde6b4ba34d03a", + "sha256": "e23a7c1f5140cbb380465e9f8d1d98618e0a34f4a714dcc2891b9414bffeccd1" + }, + "downloads": -1, + "filename": "clang_format-13.0.1.1-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "e02d69c829249e277ffde6b4ba34d03a", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 671411, + "upload_time": "2022-05-05T13:32:39", + "upload_time_iso_8601": "2022-05-05T13:32:39.072317Z", + "url": "https://files.pythonhosted.org/packages/d0/55/63036d541aea733cfa2d982a771e7fe723fefa63de21fc992493c0a27500/clang_format-13.0.1.1-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "c0368cee9d1bdf9fa956c125d62780018a18a5c87f33dc4ea7c3c8937e45b3dd", + "md5": "2de8c35e1cb23f4af23bf9127e558a85", + "sha256": "518bd30dd61b1955849cd14694732323d7095bac9ac075d464bd50797fe91160" + }, + "downloads": -1, + "filename": "clang_format-13.0.1.1-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "2de8c35e1cb23f4af23bf9127e558a85", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 839949, + "upload_time": "2022-05-05T13:32:40", + "upload_time_iso_8601": "2022-05-05T13:32:40.523045Z", + "url": "https://files.pythonhosted.org/packages/c0/36/8cee9d1bdf9fa956c125d62780018a18a5c87f33dc4ea7c3c8937e45b3dd/clang_format-13.0.1.1-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "8e08477d56adc2705cadf4558407cb3204bfc5b91bf37d5022f01d77d6c593b9", + "md5": "72f919624704c819f78f7a9d82180623", + "sha256": "ccd9a570bfa1cd1d4a7eb30ea8736ff7f13b6ec234e671dbdf3ecd9eb3a736bf" + }, + "downloads": -1, + "filename": "clang-format-13.0.1.1.tar.gz", + "has_sig": false, + "md5_digest": "72f919624704c819f78f7a9d82180623", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 9619, + "upload_time": "2022-05-05T13:32:41", + "upload_time_iso_8601": "2022-05-05T13:32:41.612450Z", + "url": "https://files.pythonhosted.org/packages/8e/08/477d56adc2705cadf4558407cb3204bfc5b91bf37d5022f01d77d6c593b9/clang-format-13.0.1.1.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "14.0.0": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "7bd1889e81e8504452f3a78bf5103d77dcb7201964fcb2b5850a84ff6327bf90", + "md5": "83043d3eaa58ad07d6aa2ea1f1022484", + "sha256": "2a75cfa5ce1ce77fea9c24d1a249bc8e07b3d62196ba96755e4fa4ef1e3658f7" + }, + "downloads": -1, + "filename": "clang_format-14.0.0-py2.py3-none-macosx_10_9_universal2.whl", + "has_sig": false, + "md5_digest": "83043d3eaa58ad07d6aa2ea1f1022484", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1016872, + "upload_time": "2022-04-11T11:48:43", + "upload_time_iso_8601": "2022-04-11T11:48:43.355891Z", + "url": "https://files.pythonhosted.org/packages/7b/d1/889e81e8504452f3a78bf5103d77dcb7201964fcb2b5850a84ff6327bf90/clang_format-14.0.0-py2.py3-none-macosx_10_9_universal2.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "cc19d25455ea5ba4ea508d1c49cf2cc2d30e287e10ea13e91ce2ed6300985d4b", + "md5": "60df250faab9ae5d5bba9e33da587be7", + "sha256": "b1fc036e3c419f867660d91c4bed56de76d5e2f076b68449c45f2fcd81e3049a" + }, + "downloads": -1, + "filename": "clang_format-14.0.0-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "has_sig": false, + "md5_digest": "60df250faab9ae5d5bba9e33da587be7", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1259454, + "upload_time": "2022-04-11T11:48:44", + "upload_time_iso_8601": "2022-04-11T11:48:44.592583Z", + "url": "https://files.pythonhosted.org/packages/cc/19/d25455ea5ba4ea508d1c49cf2cc2d30e287e10ea13e91ce2ed6300985d4b/clang_format-14.0.0-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "c069bf08f34219f6435dfaf0e29cf9afd7d815b10307c7e0394c2d3a43a0305c", + "md5": "8bc53f225c5b7b599e57e9f06cbaa8de", + "sha256": "85c6c8078645eb14a52dc64ce122bfa992f51cc4066580e4d670bd15c0c07500" + }, + "downloads": -1, + "filename": "clang_format-14.0.0-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "has_sig": false, + "md5_digest": "8bc53f225c5b7b599e57e9f06cbaa8de", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1147372, + "upload_time": "2022-04-11T11:48:45", + "upload_time_iso_8601": "2022-04-11T11:48:45.885556Z", + "url": "https://files.pythonhosted.org/packages/c0/69/bf08f34219f6435dfaf0e29cf9afd7d815b10307c7e0394c2d3a43a0305c/clang_format-14.0.0-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "40d3ff0dbf8bfb0c1388870ef147616688c96d58578b0d478c362742a742baea", + "md5": "497b5c50beed5d7094351534e7ae73a6", + "sha256": "580456c55436d6e4f236c4463ae5fd74948890f7379b502069467f0b0f4f130f" + }, + "downloads": -1, + "filename": "clang_format-14.0.0-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "497b5c50beed5d7094351534e7ae73a6", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1204962, + "upload_time": "2022-04-11T11:48:46", + "upload_time_iso_8601": "2022-04-11T11:48:46.937444Z", + "url": "https://files.pythonhosted.org/packages/40/d3/ff0dbf8bfb0c1388870ef147616688c96d58578b0d478c362742a742baea/clang_format-14.0.0-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "fa8735db0a1060e8989c3b62ce030a87a0285e76637634949d398f6be61f9bba", + "md5": "4a04dcc2c6ac9ef27a2e1b9ed09a019a", + "sha256": "e6e678ac8008bf77de79a1c1eb9e30e7076bc22e52a1ba122a356a24c97715e9" + }, + "downloads": -1, + "filename": "clang_format-14.0.0-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "4a04dcc2c6ac9ef27a2e1b9ed09a019a", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1948273, + "upload_time": "2022-04-11T11:48:48", + "upload_time_iso_8601": "2022-04-11T11:48:48.197135Z", + "url": "https://files.pythonhosted.org/packages/fa/87/35db0a1060e8989c3b62ce030a87a0285e76637634949d398f6be61f9bba/clang_format-14.0.0-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "1c2b139402d516d10210834b3d4b4db5a41be9101e16cd8c1db0ec1f6a7ccaf5", + "md5": "8468848d944f8fdf83962a40b98c3a6f", + "sha256": "5384ec3880e2000e6c06884542d6ab217f8140f3ca142a63ec16ddf21ea95965" + }, + "downloads": -1, + "filename": "clang_format-14.0.0-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "8468848d944f8fdf83962a40b98c3a6f", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1187726, + "upload_time": "2022-04-11T11:48:49", + "upload_time_iso_8601": "2022-04-11T11:48:49.296885Z", + "url": "https://files.pythonhosted.org/packages/1c/2b/139402d516d10210834b3d4b4db5a41be9101e16cd8c1db0ec1f6a7ccaf5/clang_format-14.0.0-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "73304ec4e957c07e3bbbab625b1252781864792fa5ca8d17f6ce1955cfefd08a", + "md5": "af38859041041de3674b69032c8fa6d8", + "sha256": "17de21387ab5676daf265303b4a4bfcb1e9e886c62900e59a10b6e332fd210cd" + }, + "downloads": -1, + "filename": "clang_format-14.0.0-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "af38859041041de3674b69032c8fa6d8", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 833546, + "upload_time": "2022-04-11T11:48:50", + "upload_time_iso_8601": "2022-04-11T11:48:50.257269Z", + "url": "https://files.pythonhosted.org/packages/73/30/4ec4e957c07e3bbbab625b1252781864792fa5ca8d17f6ce1955cfefd08a/clang_format-14.0.0-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "b363b82289b40330ae1ffd112b836f531cca1b43600dd8440ae66face8b5e1ce", + "md5": "85eb468f901e8832aee2396dab303a60", + "sha256": "d240f29f6a4a5e4c47af3ee37ac4ced4b5e71756c74cf3b513f0cb5b0de69d7d" + }, + "downloads": -1, + "filename": "clang_format-14.0.0-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "85eb468f901e8832aee2396dab303a60", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1006924, + "upload_time": "2022-04-11T11:48:51", + "upload_time_iso_8601": "2022-04-11T11:48:51.294595Z", + "url": "https://files.pythonhosted.org/packages/b3/63/b82289b40330ae1ffd112b836f531cca1b43600dd8440ae66face8b5e1ce/clang_format-14.0.0-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "6fd3f1608c2226344901b0e88f977a9163f198ce4c8280a9ad3173a932c48adb", + "md5": "05ba766907d1230cfc44f549ef190416", + "sha256": "60c631c990bb1fa2a20fb60c581560dec9c37ffb575e616fe9c05d45bdd3b407" + }, + "downloads": -1, + "filename": "clang-format-14.0.0.tar.gz", + "has_sig": false, + "md5_digest": "05ba766907d1230cfc44f549ef190416", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 9252, + "upload_time": "2022-04-11T11:48:52", + "upload_time_iso_8601": "2022-04-11T11:48:52.400757Z", + "url": "https://files.pythonhosted.org/packages/6f/d3/f1608c2226344901b0e88f977a9163f198ce4c8280a9ad3173a932c48adb/clang-format-14.0.0.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "14.0.1": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "607f16f8a6b704336e44fdea7b9e8a597cd36bdc85980b3ee9bbf5acc874141c", + "md5": "cc33fab6746f7c6301f4b10f429df78c", + "sha256": "5141ee7336e45e32db2f7f3b4a761f1a32bbcad6de65189f75951b884a0cb051" + }, + "downloads": -1, + "filename": "clang_format-14.0.1-py2.py3-none-macosx_10_9_universal2.whl", + "has_sig": false, + "md5_digest": "cc33fab6746f7c6301f4b10f429df78c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1016872, + "upload_time": "2022-04-13T10:06:26", + "upload_time_iso_8601": "2022-04-13T10:06:26.328211Z", + "url": "https://files.pythonhosted.org/packages/60/7f/16f8a6b704336e44fdea7b9e8a597cd36bdc85980b3ee9bbf5acc874141c/clang_format-14.0.1-py2.py3-none-macosx_10_9_universal2.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "4e4192d7ad1f3a075a52c8217119140c29f3d71560038d47a48511994bacea36", + "md5": "563148afe207341d35335baedb6088c9", + "sha256": "2e7dc9b2016b68e475b52c08290fb8767210017af7ca2e918702ace1e2f9c7ea" + }, + "downloads": -1, + "filename": "clang_format-14.0.1-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "has_sig": false, + "md5_digest": "563148afe207341d35335baedb6088c9", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1259436, + "upload_time": "2022-04-13T10:06:28", + "upload_time_iso_8601": "2022-04-13T10:06:28.213646Z", + "url": "https://files.pythonhosted.org/packages/4e/41/92d7ad1f3a075a52c8217119140c29f3d71560038d47a48511994bacea36/clang_format-14.0.1-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "19d5bd717df94b3a9bbb6fe9efd2bcabe12e580fcc1a01f418c11538a0657397", + "md5": "fbc427ba9a8f550b374a7b961d36a355", + "sha256": "9ed34d6e7106fd9c26612c3510af6bc92013424b103773782880390477aba63d" + }, + "downloads": -1, + "filename": "clang_format-14.0.1-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "has_sig": false, + "md5_digest": "fbc427ba9a8f550b374a7b961d36a355", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1147371, + "upload_time": "2022-04-13T10:06:29", + "upload_time_iso_8601": "2022-04-13T10:06:29.444208Z", + "url": "https://files.pythonhosted.org/packages/19/d5/bd717df94b3a9bbb6fe9efd2bcabe12e580fcc1a01f418c11538a0657397/clang_format-14.0.1-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "fef4283e525aff15087a5802b2c9966e89bf3628d0d789a013c521c5450d2976", + "md5": "a113a29ac537d8e5b5f6b7121b31d4cb", + "sha256": "0dd7a3262491609d53b60c00255acd276cb47ae4b9d16bbd12d8ae56e0a0fcbc" + }, + "downloads": -1, + "filename": "clang_format-14.0.1-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "a113a29ac537d8e5b5f6b7121b31d4cb", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1204962, + "upload_time": "2022-04-13T10:06:30", + "upload_time_iso_8601": "2022-04-13T10:06:30.836250Z", + "url": "https://files.pythonhosted.org/packages/fe/f4/283e525aff15087a5802b2c9966e89bf3628d0d789a013c521c5450d2976/clang_format-14.0.1-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "ec63a2fc6c4ef7fbed5cd6d99faa267f80fcdb67e058ac93d0b8dcb9aeb66470", + "md5": "f79a9edbe1eaba94f5ebba2d88866fa8", + "sha256": "6f0bb21450f853e10032f8b14f2a44ca1ac29cd5bf160fcd847931b843330256" + }, + "downloads": -1, + "filename": "clang_format-14.0.1-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "f79a9edbe1eaba94f5ebba2d88866fa8", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1948277, + "upload_time": "2022-04-13T10:06:32", + "upload_time_iso_8601": "2022-04-13T10:06:32.614289Z", + "url": "https://files.pythonhosted.org/packages/ec/63/a2fc6c4ef7fbed5cd6d99faa267f80fcdb67e058ac93d0b8dcb9aeb66470/clang_format-14.0.1-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "b6e68ac20e53fd1f298eacbe36faaad7d8393cfe260d2ca8e65a492546d50b6e", + "md5": "487fdba67718bdb1bd90c97cbae9263b", + "sha256": "09e12ca1c6abd5f679febdcf861ac999d5dc88d13e8bbb0007796fd120536a4e" + }, + "downloads": -1, + "filename": "clang_format-14.0.1-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "487fdba67718bdb1bd90c97cbae9263b", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1187764, + "upload_time": "2022-04-13T10:06:33", + "upload_time_iso_8601": "2022-04-13T10:06:33.746939Z", + "url": "https://files.pythonhosted.org/packages/b6/e6/8ac20e53fd1f298eacbe36faaad7d8393cfe260d2ca8e65a492546d50b6e/clang_format-14.0.1-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "e7c6e0388c1bc153768c900c0855bf1307a7cb5e8ab4d42e6092294c2e727971", + "md5": "ab0ae28e579e6acaea05b560c8aec1a8", + "sha256": "a47dc24f79ed853429405946f899c05776d136b1b3fa71170d763f5a6b4374e5" + }, + "downloads": -1, + "filename": "clang_format-14.0.1-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "ab0ae28e579e6acaea05b560c8aec1a8", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 833546, + "upload_time": "2022-04-13T10:06:35", + "upload_time_iso_8601": "2022-04-13T10:06:35.065150Z", + "url": "https://files.pythonhosted.org/packages/e7/c6/e0388c1bc153768c900c0855bf1307a7cb5e8ab4d42e6092294c2e727971/clang_format-14.0.1-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "74eebe89dc82806ed1bc6b6e9b3e76f02f76414f320048122a610b7a1c19da54", + "md5": "e735f44b8b3db9c70cc3ee8d8220ea3f", + "sha256": "b61c296f0aa8890185ce7bbb123e992ae9b1a12d5b3709af33aff07632d635bb" + }, + "downloads": -1, + "filename": "clang_format-14.0.1-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "e735f44b8b3db9c70cc3ee8d8220ea3f", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1006944, + "upload_time": "2022-04-13T10:06:36", + "upload_time_iso_8601": "2022-04-13T10:06:36.333873Z", + "url": "https://files.pythonhosted.org/packages/74/ee/be89dc82806ed1bc6b6e9b3e76f02f76414f320048122a610b7a1c19da54/clang_format-14.0.1-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "d3acb8d6bfa8074bfc581ee326a2b11b97264be2316d55a6c8016f244db0be2f", + "md5": "07a1aa1177c4f275a750478432f5c530", + "sha256": "9966930f6951c3ce64e24a8abae1c130df07feb6da2d132de62e1e3077bcbc54" + }, + "downloads": -1, + "filename": "clang-format-14.0.1.tar.gz", + "has_sig": false, + "md5_digest": "07a1aa1177c4f275a750478432f5c530", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 9234, + "upload_time": "2022-04-13T10:06:37", + "upload_time_iso_8601": "2022-04-13T10:06:37.447895Z", + "url": "https://files.pythonhosted.org/packages/d3/ac/b8d6bfa8074bfc581ee326a2b11b97264be2316d55a6c8016f244db0be2f/clang-format-14.0.1.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "14.0.3": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "2fa701eebdafa44ca579383eb088dd6aa2179aa8c0bd661db17a6e52a5c5032b", + "md5": "0e698b67be36551690a8070bdc66a379", + "sha256": "2c7da4ff143146fe7b80894efd32842f45d58a3bd30e8fb559ce86b961700a3c" + }, + "downloads": -1, + "filename": "clang_format-14.0.3-py2.py3-none-macosx_10_9_universal2.whl", + "has_sig": false, + "md5_digest": "0e698b67be36551690a8070bdc66a379", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1016991, + "upload_time": "2022-05-05T11:32:42", + "upload_time_iso_8601": "2022-05-05T11:32:42.297907Z", + "url": "https://files.pythonhosted.org/packages/2f/a7/01eebdafa44ca579383eb088dd6aa2179aa8c0bd661db17a6e52a5c5032b/clang_format-14.0.3-py2.py3-none-macosx_10_9_universal2.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "4f9ebe1a223599b501a116048fdb5ed3e96fee68ae5afcac4608f885b04265f5", + "md5": "afcdd759d93bedfbd684b2271857314b", + "sha256": "7dce28e40f2af48b1d0d5a0211562e592395d32c58483c0cafd75e7cf3297b55" + }, + "downloads": -1, + "filename": "clang_format-14.0.3-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "has_sig": false, + "md5_digest": "afcdd759d93bedfbd684b2271857314b", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1259555, + "upload_time": "2022-05-05T11:32:44", + "upload_time_iso_8601": "2022-05-05T11:32:44.010103Z", + "url": "https://files.pythonhosted.org/packages/4f/9e/be1a223599b501a116048fdb5ed3e96fee68ae5afcac4608f885b04265f5/clang_format-14.0.3-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "a34d866c1f4bafd8ab2b957c7713aa2ae4db1363f781fb02fdd77ff531813abf", + "md5": "982bd8f011a79b253cd7dc77a50a0e07", + "sha256": "778e4acc74e1dcbd8197dcf49142b4102242a83881fb117b86727c01e74c6941" + }, + "downloads": -1, + "filename": "clang_format-14.0.3-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "has_sig": false, + "md5_digest": "982bd8f011a79b253cd7dc77a50a0e07", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1147493, + "upload_time": "2022-05-05T11:32:45", + "upload_time_iso_8601": "2022-05-05T11:32:45.294704Z", + "url": "https://files.pythonhosted.org/packages/a3/4d/866c1f4bafd8ab2b957c7713aa2ae4db1363f781fb02fdd77ff531813abf/clang_format-14.0.3-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "669152e3e26b31945dd2e58f0cdbd0697f424cb4bbd9ad254a3f800a3d3d2993", + "md5": "8d26295d33e9a3b95c53371ef04cc1f8", + "sha256": "b15a04d5c6ca463104518c461ef203f62f2a0b639d4e49d1362e2344ce25ec89" + }, + "downloads": -1, + "filename": "clang_format-14.0.3-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "8d26295d33e9a3b95c53371ef04cc1f8", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1205079, + "upload_time": "2022-05-05T11:32:46", + "upload_time_iso_8601": "2022-05-05T11:32:46.594161Z", + "url": "https://files.pythonhosted.org/packages/66/91/52e3e26b31945dd2e58f0cdbd0697f424cb4bbd9ad254a3f800a3d3d2993/clang_format-14.0.3-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "b1421a523349b0ae0ebcedb6278fade1fa5e0b303f9a18a480a342e4242d30bc", + "md5": "1ba424d25242809f40cfb130dab912d9", + "sha256": "0925179fa10c444a07bdff5db6981868d07f109f1d8b5e5eaecc4f3b028e48a1" + }, + "downloads": -1, + "filename": "clang_format-14.0.3-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "1ba424d25242809f40cfb130dab912d9", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1948397, + "upload_time": "2022-05-05T11:32:48", + "upload_time_iso_8601": "2022-05-05T11:32:48.211131Z", + "url": "https://files.pythonhosted.org/packages/b1/42/1a523349b0ae0ebcedb6278fade1fa5e0b303f9a18a480a342e4242d30bc/clang_format-14.0.3-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "6556eb18d61a085ba018395155a2d658e0ee3aff0821a0b16d3d431b5ecec83b", + "md5": "7024cfd65b5200790282dc951d67b7c5", + "sha256": "00afee65c015d4c017d5b56524fc4a59829e5986ac159f0ab2c2147540a2b31a" + }, + "downloads": -1, + "filename": "clang_format-14.0.3-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "7024cfd65b5200790282dc951d67b7c5", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1187886, + "upload_time": "2022-05-05T11:32:49", + "upload_time_iso_8601": "2022-05-05T11:32:49.416118Z", + "url": "https://files.pythonhosted.org/packages/65/56/eb18d61a085ba018395155a2d658e0ee3aff0821a0b16d3d431b5ecec83b/clang_format-14.0.3-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "6e889b6497ed42b6b7ce06fb6da65f31f63ce87ccaa97d2acd2c6f31d63777ec", + "md5": "15bac3ef35905fa03a627242da17d818", + "sha256": "ae9746b024d900b3f2a5181fc9b1412a92a5df003793222cf9b646f21cb6f9eb" + }, + "downloads": -1, + "filename": "clang_format-14.0.3-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "15bac3ef35905fa03a627242da17d818", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 833666, + "upload_time": "2022-05-05T11:32:50", + "upload_time_iso_8601": "2022-05-05T11:32:50.659448Z", + "url": "https://files.pythonhosted.org/packages/6e/88/9b6497ed42b6b7ce06fb6da65f31f63ce87ccaa97d2acd2c6f31d63777ec/clang_format-14.0.3-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "aa3f00a6ca37de9a08b0d6717910c8479ade1aa5cb33d0a0897d1236447c2d36", + "md5": "95525644edb2a9c97dd0e8bfb65c887d", + "sha256": "a084aa5a8b56b07893014790c8b051e795977b24980fda3af5eb193539a9653c" + }, + "downloads": -1, + "filename": "clang_format-14.0.3-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "95525644edb2a9c97dd0e8bfb65c887d", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1007059, + "upload_time": "2022-05-05T11:32:51", + "upload_time_iso_8601": "2022-05-05T11:32:51.991900Z", + "url": "https://files.pythonhosted.org/packages/aa/3f/00a6ca37de9a08b0d6717910c8479ade1aa5cb33d0a0897d1236447c2d36/clang_format-14.0.3-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "9119b484a5df518e83fdf45482ce2396392932c5636c4a785b5d9c57d965b305", + "md5": "9dcd4e8ea299c63e9bf760ea70c12933", + "sha256": "73bc0bd21eacdee30b85e1315a6cff5685531d89905c3411de91816fc7cbce75" + }, + "downloads": -1, + "filename": "clang-format-14.0.3.tar.gz", + "has_sig": false, + "md5_digest": "9dcd4e8ea299c63e9bf760ea70c12933", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 9601, + "upload_time": "2022-05-05T11:32:53", + "upload_time_iso_8601": "2022-05-05T11:32:53.397250Z", + "url": "https://files.pythonhosted.org/packages/91/19/b484a5df518e83fdf45482ce2396392932c5636c4a785b5d9c57d965b305/clang-format-14.0.3.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "14.0.4": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "8fe94e15de1e3f9f4c5c4e66537304f226621b9752ec419624a0fd5999df754c", + "md5": "eb6a52497c01e53535e9cda396aae964", + "sha256": "e81a2585865b164c11440a1b49c3989c0748cc5ea97bca9f5b24ad9fd7dc3d80" + }, + "downloads": -1, + "filename": "clang_format-14.0.4-py2.py3-none-macosx_10_9_universal2.whl", + "has_sig": false, + "md5_digest": "eb6a52497c01e53535e9cda396aae964", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1016978, + "upload_time": "2022-06-03T20:22:18", + "upload_time_iso_8601": "2022-06-03T20:22:18.483272Z", + "url": "https://files.pythonhosted.org/packages/8f/e9/4e15de1e3f9f4c5c4e66537304f226621b9752ec419624a0fd5999df754c/clang_format-14.0.4-py2.py3-none-macosx_10_9_universal2.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "d0f63114aee07cea331bd4a89226f587ae76f696c209a50618bf3613a13ea3f0", + "md5": "932cc12f9c5959488f9728af913dd4d5", + "sha256": "444dc57ba0fcfc9ef1313e0fd47c8ef16b94dcde9239535dede75de136e01614" + }, + "downloads": -1, + "filename": "clang_format-14.0.4-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "has_sig": false, + "md5_digest": "932cc12f9c5959488f9728af913dd4d5", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1259551, + "upload_time": "2022-06-03T20:22:20", + "upload_time_iso_8601": "2022-06-03T20:22:20.253530Z", + "url": "https://files.pythonhosted.org/packages/d0/f6/3114aee07cea331bd4a89226f587ae76f696c209a50618bf3613a13ea3f0/clang_format-14.0.4-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "56c68b18231e03cad53d2c15f69a0ce356481531cec7639f5e375e3c95e425c3", + "md5": "0eadbecba79056dbb3e8081adf8da91c", + "sha256": "1a29c4cf2f33818be19341966b0f2b1bda753b7d74797f19d67989952145b5e3" + }, + "downloads": -1, + "filename": "clang_format-14.0.4-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "has_sig": false, + "md5_digest": "0eadbecba79056dbb3e8081adf8da91c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1147479, + "upload_time": "2022-06-03T20:22:21", + "upload_time_iso_8601": "2022-06-03T20:22:21.454518Z", + "url": "https://files.pythonhosted.org/packages/56/c6/8b18231e03cad53d2c15f69a0ce356481531cec7639f5e375e3c95e425c3/clang_format-14.0.4-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "52d101f5b70ffc3592c90c218c63cd404e1165d52662577a16f6b14863232ca5", + "md5": "7a1a8e2c5bc0d70be0d3b57b2ec312ec", + "sha256": "bb7bf4e5f68135f25eff17849d98e05ca92fbcd2189d37c1100dc5690064e586" + }, + "downloads": -1, + "filename": "clang_format-14.0.4-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "7a1a8e2c5bc0d70be0d3b57b2ec312ec", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1205101, + "upload_time": "2022-06-03T20:22:22", + "upload_time_iso_8601": "2022-06-03T20:22:22.855908Z", + "url": "https://files.pythonhosted.org/packages/52/d1/01f5b70ffc3592c90c218c63cd404e1165d52662577a16f6b14863232ca5/clang_format-14.0.4-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "0ec1ddf9ef4dc28e9d4e5b18a5910a6cfb61bc8572f867ac9d1ff762716f50d0", + "md5": "43197a98364d2eefbdf51a32b26d4c72", + "sha256": "63913553822db2d7d776c9260a03c020d1053b686cba1ca05f2b5a8723a76905" + }, + "downloads": -1, + "filename": "clang_format-14.0.4-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "43197a98364d2eefbdf51a32b26d4c72", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1948611, + "upload_time": "2022-06-03T20:22:24", + "upload_time_iso_8601": "2022-06-03T20:22:24.509479Z", + "url": "https://files.pythonhosted.org/packages/0e/c1/ddf9ef4dc28e9d4e5b18a5910a6cfb61bc8572f867ac9d1ff762716f50d0/clang_format-14.0.4-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "7356297aa4f78648bed477e921c50baba7f92f7926c54b4b9b1777cf39b6188f", + "md5": "fdffe88530544d082c49d68e7caf85ed", + "sha256": "1685e98f71cdb6fb0120c64db484b9486b1c656b77b4664c944445494daa2205" + }, + "downloads": -1, + "filename": "clang_format-14.0.4-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "fdffe88530544d082c49d68e7caf85ed", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1187814, + "upload_time": "2022-06-03T20:22:25", + "upload_time_iso_8601": "2022-06-03T20:22:25.835547Z", + "url": "https://files.pythonhosted.org/packages/73/56/297aa4f78648bed477e921c50baba7f92f7926c54b4b9b1777cf39b6188f/clang_format-14.0.4-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "94ddfb2eb2386a6e30f2579ef1520ddf99dc87d10bef347eced54048e4954cc0", + "md5": "400377d7a96ce55efe83e744f5f9c29d", + "sha256": "78536c090bf747c34d8c12d6f47446c103f44b38aebbde11907b573561282ba0" + }, + "downloads": -1, + "filename": "clang_format-14.0.4-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "400377d7a96ce55efe83e744f5f9c29d", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 833551, + "upload_time": "2022-06-03T20:22:27", + "upload_time_iso_8601": "2022-06-03T20:22:27.201717Z", + "url": "https://files.pythonhosted.org/packages/94/dd/fb2eb2386a6e30f2579ef1520ddf99dc87d10bef347eced54048e4954cc0/clang_format-14.0.4-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "0f715a6fa9be41c00bdfb05a5304cafc083b030476146bc9ad932db352b9152a", + "md5": "f461d156d97c2020df93dc6af3ddd2bc", + "sha256": "b2c0d70359445914881378f5fcc5f24452a5d00b190b033da9013e2282197158" + }, + "downloads": -1, + "filename": "clang_format-14.0.4-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "f461d156d97c2020df93dc6af3ddd2bc", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1007097, + "upload_time": "2022-06-03T20:22:28", + "upload_time_iso_8601": "2022-06-03T20:22:28.432025Z", + "url": "https://files.pythonhosted.org/packages/0f/71/5a6fa9be41c00bdfb05a5304cafc083b030476146bc9ad932db352b9152a/clang_format-14.0.4-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "0278ede75870de19c3658c60eace179233e048fb0e50fe3b68b8fc60434fc028", + "md5": "d3574168ea491b5b465622be5cfbd1fd", + "sha256": "4092fb4d0908d82f9bcc4a772f44c3a2ad1e80b7cb0260d198d5ed5aa90d4683" + }, + "downloads": -1, + "filename": "clang-format-14.0.4.tar.gz", + "has_sig": false, + "md5_digest": "d3574168ea491b5b465622be5cfbd1fd", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 9596, + "upload_time": "2022-06-03T20:22:29", + "upload_time_iso_8601": "2022-06-03T20:22:29.422603Z", + "url": "https://files.pythonhosted.org/packages/02/78/ede75870de19c3658c60eace179233e048fb0e50fe3b68b8fc60434fc028/clang-format-14.0.4.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "14.0.5": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "2a044816cb026bb7fb1d2f3d6262c97c4c9e93343c6cb0810e0ccbf9c55fd8b8", + "md5": "23f9fca6f508cafa14bfd0f783e9156b", + "sha256": "b1d1de39f399128a9cfc6d1d66ce1e29690f1f35e0b351bb9083f03fffd549f6" + }, + "downloads": -1, + "filename": "clang_format-14.0.5-py2.py3-none-macosx_10_9_universal2.whl", + "has_sig": false, + "md5_digest": "23f9fca6f508cafa14bfd0f783e9156b", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1016915, + "upload_time": "2022-06-13T11:20:10", + "upload_time_iso_8601": "2022-06-13T11:20:10.540328Z", + "url": "https://files.pythonhosted.org/packages/2a/04/4816cb026bb7fb1d2f3d6262c97c4c9e93343c6cb0810e0ccbf9c55fd8b8/clang_format-14.0.5-py2.py3-none-macosx_10_9_universal2.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "c99e3023d7e9679656bef2228299ccef0a4bd03996108bbc915bc9372f15462d", + "md5": "fe2de4e9ce37f72d7ef408d66df7eb2e", + "sha256": "0cda65b8eb7a87280186998336321335e6670cad6caf1078b28d19230025a635" + }, + "downloads": -1, + "filename": "clang_format-14.0.5-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "has_sig": false, + "md5_digest": "fe2de4e9ce37f72d7ef408d66df7eb2e", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1259641, + "upload_time": "2022-06-13T11:20:12", + "upload_time_iso_8601": "2022-06-13T11:20:12.232001Z", + "url": "https://files.pythonhosted.org/packages/c9/9e/3023d7e9679656bef2228299ccef0a4bd03996108bbc915bc9372f15462d/clang_format-14.0.5-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "9c05c9433b3663735a2e85651b90ae7d55170c7f6f9a250fe19f5f9b989bea85", + "md5": "161fce35d08313272fd60ddf58575db5", + "sha256": "77d9628921b88bbf0fcf9f0f9ea0cd0bee59466b2059db506f448fb06ffc5db2" + }, + "downloads": -1, + "filename": "clang_format-14.0.5-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "has_sig": false, + "md5_digest": "161fce35d08313272fd60ddf58575db5", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1147585, + "upload_time": "2022-06-13T11:20:13", + "upload_time_iso_8601": "2022-06-13T11:20:13.760353Z", + "url": "https://files.pythonhosted.org/packages/9c/05/c9433b3663735a2e85651b90ae7d55170c7f6f9a250fe19f5f9b989bea85/clang_format-14.0.5-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "3f38e7c5d73e44201ec2bca5915fe1806cc1b05a26fe050609fdca98d28483e4", + "md5": "092af725d7bc7ad4260b9c0eaaa21742", + "sha256": "88e742ff6b405edebe26734b55f09cb78f3dc90d88212913f889c7f9559c585e" + }, + "downloads": -1, + "filename": "clang_format-14.0.5-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "092af725d7bc7ad4260b9c0eaaa21742", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1205153, + "upload_time": "2022-06-13T11:20:15", + "upload_time_iso_8601": "2022-06-13T11:20:15.168577Z", + "url": "https://files.pythonhosted.org/packages/3f/38/e7c5d73e44201ec2bca5915fe1806cc1b05a26fe050609fdca98d28483e4/clang_format-14.0.5-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "b79a00d74fdbea6cbcd0ec3eccd84dee0f5b5649fa62950a405b35167f052465", + "md5": "53c083cd6187d9065c6c0da3ba079c58", + "sha256": "39bf624052a6e0fb8097a6e121f1c24c95f0e000349aba2240df750db28d60df" + }, + "downloads": -1, + "filename": "clang_format-14.0.5-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "53c083cd6187d9065c6c0da3ba079c58", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1949125, + "upload_time": "2022-06-13T11:20:16", + "upload_time_iso_8601": "2022-06-13T11:20:16.423855Z", + "url": "https://files.pythonhosted.org/packages/b7/9a/00d74fdbea6cbcd0ec3eccd84dee0f5b5649fa62950a405b35167f052465/clang_format-14.0.5-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "e8b4c4d7c8ff003a33c94587a9c6410508c718d60ba4971cacb9e40a33b89754", + "md5": "d06e317fbf6dce087dd1ff8293c5cbdb", + "sha256": "0108edf03c4ab390d8e455a854af512d79c9bfd92f8c4ad67ea0aebea70b96c2" + }, + "downloads": -1, + "filename": "clang_format-14.0.5-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "d06e317fbf6dce087dd1ff8293c5cbdb", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1187830, + "upload_time": "2022-06-13T11:20:18", + "upload_time_iso_8601": "2022-06-13T11:20:18.046587Z", + "url": "https://files.pythonhosted.org/packages/e8/b4/c4d7c8ff003a33c94587a9c6410508c718d60ba4971cacb9e40a33b89754/clang_format-14.0.5-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "22767f31f115dd7d75f5c08e37c6b781a4fa5da5e1f55eb9b8db906745031def", + "md5": "e7a07d6e838494b599028ad3fd2c30f8", + "sha256": "198a0106ededdf85592bf4e16a3a270f0d016b39024ef041c197e23c421b342e" + }, + "downloads": -1, + "filename": "clang_format-14.0.5-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "e7a07d6e838494b599028ad3fd2c30f8", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 833536, + "upload_time": "2022-06-13T11:20:19", + "upload_time_iso_8601": "2022-06-13T11:20:19.164953Z", + "url": "https://files.pythonhosted.org/packages/22/76/7f31f115dd7d75f5c08e37c6b781a4fa5da5e1f55eb9b8db906745031def/clang_format-14.0.5-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "746a940d3f5f45fbcacadbcbc9afe7ffa2a33d3c6b755b51bcfe26190dbb3a9a", + "md5": "401aa77d9ce4af2f5c2bc995daa94513", + "sha256": "a719ac9e3ca17e1dc2e01015cd90b6a590f5362ed60d1d533a586338f1bcbc8f" + }, + "downloads": -1, + "filename": "clang_format-14.0.5-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "401aa77d9ce4af2f5c2bc995daa94513", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1007026, + "upload_time": "2022-06-13T11:20:20", + "upload_time_iso_8601": "2022-06-13T11:20:20.410841Z", + "url": "https://files.pythonhosted.org/packages/74/6a/940d3f5f45fbcacadbcbc9afe7ffa2a33d3c6b755b51bcfe26190dbb3a9a/clang_format-14.0.5-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "6a8759296b9a06597a52bac498adfa4a2f37ce17afbd7d59efe616e9d0fccd99", + "md5": "51afab0518b5b7c93a7d2f3722708f61", + "sha256": "d83a7e4b3c50f2e8f75a7cb5bf52073819a0b6ab940874d822a9309a339a3058" + }, + "downloads": -1, + "filename": "clang-format-14.0.5.tar.gz", + "has_sig": false, + "md5_digest": "51afab0518b5b7c93a7d2f3722708f61", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 9598, + "upload_time": "2022-06-13T11:20:21", + "upload_time_iso_8601": "2022-06-13T11:20:21.847616Z", + "url": "https://files.pythonhosted.org/packages/6a/87/59296b9a06597a52bac498adfa4a2f37ce17afbd7d59efe616e9d0fccd99/clang-format-14.0.5.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "14.0.6": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "086271ffc9213f66cab7dd5adc5e933b5f64323272c197fcff2905674016c03d", + "md5": "d3f7c6e9b87ea6cd293efcdd9f4026a5", + "sha256": "bd400c47665dd19afc03f98e747f78ed828abab99c6a1b07e137b35c1cd3cc26" + }, + "downloads": -1, + "filename": "clang_format-14.0.6-py2.py3-none-macosx_10_9_universal2.whl", + "has_sig": false, + "md5_digest": "d3f7c6e9b87ea6cd293efcdd9f4026a5", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1016919, + "upload_time": "2022-06-27T11:33:40", + "upload_time_iso_8601": "2022-06-27T11:33:40.936891Z", + "url": "https://files.pythonhosted.org/packages/08/62/71ffc9213f66cab7dd5adc5e933b5f64323272c197fcff2905674016c03d/clang_format-14.0.6-py2.py3-none-macosx_10_9_universal2.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "5fdef666633c30a4cc9e987d153db992849bfeea03ad200bf1cfa937039c64ff", + "md5": "226f8b09231eeb975591070929974a95", + "sha256": "13f2d6d4a2af004a783c65f0921afa8f0384bffcdaf500b6c2cb542edeb0b4a5" + }, + "downloads": -1, + "filename": "clang_format-14.0.6-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "has_sig": false, + "md5_digest": "226f8b09231eeb975591070929974a95", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1259649, + "upload_time": "2022-06-27T11:34:01", + "upload_time_iso_8601": "2022-06-27T11:34:01.640984Z", + "url": "https://files.pythonhosted.org/packages/5f/de/f666633c30a4cc9e987d153db992849bfeea03ad200bf1cfa937039c64ff/clang_format-14.0.6-py2.py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "ce27df41404419d9116e071d0b8a5ba0a0969d9db7587af689ec81ec75c1f18a", + "md5": "3167e55cceab97066597438007df0572", + "sha256": "d7c1c5e404c58e55f0170f01b3c5611dce6c119e62b5d1020347e0ad97d5a047" + }, + "downloads": -1, + "filename": "clang_format-14.0.6-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "has_sig": false, + "md5_digest": "3167e55cceab97066597438007df0572", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1147591, + "upload_time": "2022-06-27T11:34:08", + "upload_time_iso_8601": "2022-06-27T11:34:08.688455Z", + "url": "https://files.pythonhosted.org/packages/ce/27/df41404419d9116e071d0b8a5ba0a0969d9db7587af689ec81ec75c1f18a/clang_format-14.0.6-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "23e4ea55429601432913e9fe40686c3c09a79338075c830a523fabc71aa49c69", + "md5": "98e1e2333bec30c77f90212578fca178", + "sha256": "dbfd60528eb3bb7d7cfe8576faa70845fbf93601f815ef75163d36606e87f388" + }, + "downloads": -1, + "filename": "clang_format-14.0.6-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "98e1e2333bec30c77f90212578fca178", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1205157, + "upload_time": "2022-06-27T11:34:13", + "upload_time_iso_8601": "2022-06-27T11:34:13.842974Z", + "url": "https://files.pythonhosted.org/packages/23/e4/ea55429601432913e9fe40686c3c09a79338075c830a523fabc71aa49c69/clang_format-14.0.6-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "8c67e1faf73ea166669e1698f55f3ae366369db57d75eb3b6c04c93620ebac12", + "md5": "2fa31ce1aa675e52ad90ee7f05729051", + "sha256": "c93580945f75de7e01996f1fb3cf67e4dc424f1c864e237c85614fb99a48c7a4" + }, + "downloads": -1, + "filename": "clang_format-14.0.6-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "2fa31ce1aa675e52ad90ee7f05729051", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1949067, + "upload_time": "2022-06-27T11:34:18", + "upload_time_iso_8601": "2022-06-27T11:34:18.984886Z", + "url": "https://files.pythonhosted.org/packages/8c/67/e1faf73ea166669e1698f55f3ae366369db57d75eb3b6c04c93620ebac12/clang_format-14.0.6-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "cd3b3e20072464e98314eafdc5bc5744454ade6e6f5e525fb29f6b4555173811", + "md5": "9b320f689ee59caadc416b036f13923e", + "sha256": "aaf4edecc46a24f0b572b82cf5827e292ad1c137903427627c4d5f671668cc2b" + }, + "downloads": -1, + "filename": "clang_format-14.0.6-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "9b320f689ee59caadc416b036f13923e", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1187836, + "upload_time": "2022-06-27T11:34:23", + "upload_time_iso_8601": "2022-06-27T11:34:23.880882Z", + "url": "https://files.pythonhosted.org/packages/cd/3b/3e20072464e98314eafdc5bc5744454ade6e6f5e525fb29f6b4555173811/clang_format-14.0.6-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "6e06302903004246dd62a11965e9f672b975c58ad6966985dbcaa14c6cdb4779", + "md5": "4790ecad07a0649cf8548bf24a993b75", + "sha256": "810c649ab97d208cd418c897d50ab6e958eb8d96854527edd80d0dd21a75e914" + }, + "downloads": -1, + "filename": "clang_format-14.0.6-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "4790ecad07a0649cf8548bf24a993b75", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 833512, + "upload_time": "2022-06-27T11:34:27", + "upload_time_iso_8601": "2022-06-27T11:34:27.769466Z", + "url": "https://files.pythonhosted.org/packages/6e/06/302903004246dd62a11965e9f672b975c58ad6966985dbcaa14c6cdb4779/clang_format-14.0.6-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "637a1f11404d5097263ad065cf9166dd00be0a8c1040c1ec4f57921ac07591eb", + "md5": "988c9a4277fd6df5e23b227f5b904b3b", + "sha256": "d780c04334bca80f2b60d25bf53c37bd0618520ee295a7888a11f25bde114ac4" + }, + "downloads": -1, + "filename": "clang_format-14.0.6-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "988c9a4277fd6df5e23b227f5b904b3b", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1007035, + "upload_time": "2022-06-27T11:34:32", + "upload_time_iso_8601": "2022-06-27T11:34:32.164988Z", + "url": "https://files.pythonhosted.org/packages/63/7a/1f11404d5097263ad065cf9166dd00be0a8c1040c1ec4f57921ac07591eb/clang_format-14.0.6-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "0c92d57c1b3ea310ae0f48ab51a5aa2c87c4c732c3d79037ad2527f2eed7ca34", + "md5": "de6a0b2c7291060eedf5b939ab7a296e", + "sha256": "d5c96b500d7f8b5d2db5b75ac035be387512850ad589cdc3019666b861382136" + }, + "downloads": -1, + "filename": "clang-format-14.0.6.tar.gz", + "has_sig": false, + "md5_digest": "de6a0b2c7291060eedf5b939ab7a296e", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 9598, + "upload_time": "2022-06-27T11:34:36", + "upload_time_iso_8601": "2022-06-27T11:34:36.460962Z", + "url": "https://files.pythonhosted.org/packages/0c/92/d57c1b3ea310ae0f48ab51a5aa2c87c4c732c3d79037ad2527f2eed7ca34/clang-format-14.0.6.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "15.0.4": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "974f4855a57fa5bc73d8f340df7a1f206548a56737d39ec0fc46b7ff61aa570f", + "md5": "8031540a56c55fef3a6818aaa5ea8781", + "sha256": "32d2d0927d229418c0d8135fa266cb58ff1c482e15a0b0152d98fd74be156289" + }, + "downloads": -1, + "filename": "clang_format-15.0.4-py2.py3-none-macosx_10_9_universal2.whl", + "has_sig": false, + "md5_digest": "8031540a56c55fef3a6818aaa5ea8781", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1282382, + "upload_time": "2022-11-04T13:06:46", + "upload_time_iso_8601": "2022-11-04T13:06:46.212212Z", + "url": "https://files.pythonhosted.org/packages/97/4f/4855a57fa5bc73d8f340df7a1f206548a56737d39ec0fc46b7ff61aa570f/clang_format-15.0.4-py2.py3-none-macosx_10_9_universal2.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "9022d9748e66acc9da69f7ecbeacaa7f226e7f0cdd39e5b6ae8a9c20eb11e137", + "md5": "76205991072d51e34dcb8e70cdd0f3ad", + "sha256": "6ae3cbf9a13afd957b99615ef466d085f675f719a2a035454d858646e328e7c5" + }, + "downloads": -1, + "filename": "clang_format-15.0.4-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "76205991072d51e34dcb8e70cdd0f3ad", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1641805, + "upload_time": "2022-11-04T13:06:47", + "upload_time_iso_8601": "2022-11-04T13:06:47.729795Z", + "url": "https://files.pythonhosted.org/packages/90/22/d9748e66acc9da69f7ecbeacaa7f226e7f0cdd39e5b6ae8a9c20eb11e137/clang_format-15.0.4-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "f9736b9418f5edba26adad5c3fedee62711a705ec592d52cdd15cee68aa67027", + "md5": "0729d698687dc9bc2099aaa2490af243", + "sha256": "adc2f1fa2cc8ffcb55a51eac0c380bbe519a8cf256196eb39dc1fe69b74c0910" + }, + "downloads": -1, + "filename": "clang_format-15.0.4-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "0729d698687dc9bc2099aaa2490af243", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1487530, + "upload_time": "2022-11-04T13:06:49", + "upload_time_iso_8601": "2022-11-04T13:06:49.118734Z", + "url": "https://files.pythonhosted.org/packages/f9/73/6b9418f5edba26adad5c3fedee62711a705ec592d52cdd15cee68aa67027/clang_format-15.0.4-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "020f8f91f66de83c7b7f8b7b9547a3dc99012d5a9bd50dba81437fb0aa6fa8e4", + "md5": "173171f96046bc9965e3a50d52ac0214", + "sha256": "357b0641c7c4c15bf72706323baa484def57593720dee2d58f1c429e122c9990" + }, + "downloads": -1, + "filename": "clang_format-15.0.4-py2.py3-none-musllinux_1_1_i686.whl", + "has_sig": false, + "md5_digest": "173171f96046bc9965e3a50d52ac0214", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2214482, + "upload_time": "2022-11-04T13:06:50", + "upload_time_iso_8601": "2022-11-04T13:06:50.203845Z", + "url": "https://files.pythonhosted.org/packages/02/0f/8f91f66de83c7b7f8b7b9547a3dc99012d5a9bd50dba81437fb0aa6fa8e4/clang_format-15.0.4-py2.py3-none-musllinux_1_1_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "a64ffc140276652c90b4e20c795f65e401673565e8424237f61aca8696d2ce94", + "md5": "2a41a980b1f8ac233c34479a2be267f0", + "sha256": "715f1de800ebc00a5073c23e0e26d29233b9586921478bacedfb34015f0aa034" + }, + "downloads": -1, + "filename": "clang_format-15.0.4-py2.py3-none-musllinux_1_1_x86_64.whl", + "has_sig": false, + "md5_digest": "2a41a980b1f8ac233c34479a2be267f0", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2057529, + "upload_time": "2022-11-04T13:06:51", + "upload_time_iso_8601": "2022-11-04T13:06:51.789889Z", + "url": "https://files.pythonhosted.org/packages/a6/4f/fc140276652c90b4e20c795f65e401673565e8424237f61aca8696d2ce94/clang_format-15.0.4-py2.py3-none-musllinux_1_1_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "2d7c45a97681a715962daa1833a28fadf3a696eeba34cf8f4e819b9d303aa942", + "md5": "26a61641f91f775cc8935e6fe0d22690", + "sha256": "83e8a112588ebbc9e11028ea65ca9034ac8a931f02d101c7e10f73ca3d211f18" + }, + "downloads": -1, + "filename": "clang_format-15.0.4-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "26a61641f91f775cc8935e6fe0d22690", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1097760, + "upload_time": "2022-11-04T13:06:52", + "upload_time_iso_8601": "2022-11-04T13:06:52.945146Z", + "url": "https://files.pythonhosted.org/packages/2d/7c/45a97681a715962daa1833a28fadf3a696eeba34cf8f4e819b9d303aa942/clang_format-15.0.4-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "af021a124e47735968fba40fa6f4e59c3a024ef3a8bb915bedadb460079aa0ea", + "md5": "8a9221242e22a2a64be7c0d9513e7ebf", + "sha256": "ad265649a6eebf8c5c0d9b3f09fe49c335f1e4a7f14465019fad0766903450cb" + }, + "downloads": -1, + "filename": "clang_format-15.0.4-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "8a9221242e22a2a64be7c0d9513e7ebf", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1288383, + "upload_time": "2022-11-04T13:06:54", + "upload_time_iso_8601": "2022-11-04T13:06:54.455734Z", + "url": "https://files.pythonhosted.org/packages/af/02/1a124e47735968fba40fa6f4e59c3a024ef3a8bb915bedadb460079aa0ea/clang_format-15.0.4-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "313d83a35768932c398476595509812aae58b352a7052909dab1e2a941fb89f2", + "md5": "1b7ee70cdfbe1edb3acc43c939955624", + "sha256": "29ec4c30226398cc4c78417cca380d5d2f9bfd3aa234eb9d6fe2c9bc605183cb" + }, + "downloads": -1, + "filename": "clang-format-15.0.4.tar.gz", + "has_sig": false, + "md5_digest": "1b7ee70cdfbe1edb3acc43c939955624", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 9611, + "upload_time": "2022-11-04T13:06:55", + "upload_time_iso_8601": "2022-11-04T13:06:55.445482Z", + "url": "https://files.pythonhosted.org/packages/31/3d/83a35768932c398476595509812aae58b352a7052909dab1e2a941fb89f2/clang-format-15.0.4.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "15.0.6": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "fae8dab76f74ada8dd7002f5a415ef340a7b0bab7637c7fe7ed0260bf702089e", + "md5": "8741befa05c7dba0daaa5413b37a2a0c", + "sha256": "4a5e12fdcba54eb2429877577f5ef5c1cc00b2673836d9c68f80012736df2d6a" + }, + "downloads": -1, + "filename": "clang_format-15.0.6-py2.py3-none-macosx_10_9_universal2.whl", + "has_sig": false, + "md5_digest": "8741befa05c7dba0daaa5413b37a2a0c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2478405, + "upload_time": "2022-12-14T17:38:07", + "upload_time_iso_8601": "2022-12-14T17:38:07.316679Z", + "url": "https://files.pythonhosted.org/packages/fa/e8/dab76f74ada8dd7002f5a415ef340a7b0bab7637c7fe7ed0260bf702089e/clang_format-15.0.6-py2.py3-none-macosx_10_9_universal2.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "d139eff35181f4c92f999a8cbc529ef0bd5600d728aecff160bc26ab0e538aaa", + "md5": "d57b54bb6e6811c6f8a6a0ea02c162bc", + "sha256": "7c3505b805b566d134c23b4b77c9c7995fb05b8ae219dcd3198240d8596588e2" + }, + "downloads": -1, + "filename": "clang_format-15.0.6-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "d57b54bb6e6811c6f8a6a0ea02c162bc", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1641715, + "upload_time": "2022-12-14T17:38:09", + "upload_time_iso_8601": "2022-12-14T17:38:09.790745Z", + "url": "https://files.pythonhosted.org/packages/d1/39/eff35181f4c92f999a8cbc529ef0bd5600d728aecff160bc26ab0e538aaa/clang_format-15.0.6-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "403b1da41bc391e8d3d82827450e18b828ebd1120718be50d3c35d8e19b8d97e", + "md5": "e3cf01aec5b303a07ff0df2e9550d9cd", + "sha256": "264185941e5cc8a365f0a46053ecb1cc10faa09528046b239b0e656daa25c9d0" + }, + "downloads": -1, + "filename": "clang_format-15.0.6-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "e3cf01aec5b303a07ff0df2e9550d9cd", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1487442, + "upload_time": "2022-12-14T17:38:11", + "upload_time_iso_8601": "2022-12-14T17:38:11.735173Z", + "url": "https://files.pythonhosted.org/packages/40/3b/1da41bc391e8d3d82827450e18b828ebd1120718be50d3c35d8e19b8d97e/clang_format-15.0.6-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "0fa4b7b44dcceb20e2861234d3991017bc4c9a6a7427a9828f00fe4e9e6339e2", + "md5": "e6253e1ee7a3e09c6676ffac5753b43f", + "sha256": "c7a35fe24c9435a4e66920820c8fc94870616320aad0da0ded8e11612da7f50f" + }, + "downloads": -1, + "filename": "clang_format-15.0.6-py2.py3-none-musllinux_1_1_i686.whl", + "has_sig": false, + "md5_digest": "e6253e1ee7a3e09c6676ffac5753b43f", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2214284, + "upload_time": "2022-12-14T17:38:13", + "upload_time_iso_8601": "2022-12-14T17:38:13.277825Z", + "url": "https://files.pythonhosted.org/packages/0f/a4/b7b44dcceb20e2861234d3991017bc4c9a6a7427a9828f00fe4e9e6339e2/clang_format-15.0.6-py2.py3-none-musllinux_1_1_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "a7982539eb64b79838b1bc96373777978202558ec0e3354b145642e3282ffbcc", + "md5": "4b9fb635cdd22514298d00224a8e70d4", + "sha256": "486fc960fd13e18c9ab6cedac319ba44aa062a32eb34ff745575da0e21efd3d3" + }, + "downloads": -1, + "filename": "clang_format-15.0.6-py2.py3-none-musllinux_1_1_x86_64.whl", + "has_sig": false, + "md5_digest": "4b9fb635cdd22514298d00224a8e70d4", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2057489, + "upload_time": "2022-12-14T17:38:14", + "upload_time_iso_8601": "2022-12-14T17:38:14.890643Z", + "url": "https://files.pythonhosted.org/packages/a7/98/2539eb64b79838b1bc96373777978202558ec0e3354b145642e3282ffbcc/clang_format-15.0.6-py2.py3-none-musllinux_1_1_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "d273150cb4afcbc1eaecc00ab5f006ee2153dda37347a8907b9da0c876cd7d7f", + "md5": "ffb734223a686cb867a99e3388507f8c", + "sha256": "11726ce980911c69e9ae6b5cff8e2b929f5b6ad6ae2b8e1d22c0a0e4ee181161" + }, + "downloads": -1, + "filename": "clang_format-15.0.6-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "ffb734223a686cb867a99e3388507f8c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1097766, + "upload_time": "2022-12-14T17:38:16", + "upload_time_iso_8601": "2022-12-14T17:38:16.434898Z", + "url": "https://files.pythonhosted.org/packages/d2/73/150cb4afcbc1eaecc00ab5f006ee2153dda37347a8907b9da0c876cd7d7f/clang_format-15.0.6-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "07afe267ccb3fd48caa626b4c0b1d576a9203294e6ab22ca0505e5895e492793", + "md5": "e72fe4ba4189586e411210c481a06fd7", + "sha256": "391de75991a659605a8c9541aa0c2521ddfbf49411115ce9dd6b6ad048048775" + }, + "downloads": -1, + "filename": "clang_format-15.0.6-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "e72fe4ba4189586e411210c481a06fd7", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1288391, + "upload_time": "2022-12-14T17:38:18", + "upload_time_iso_8601": "2022-12-14T17:38:18.357570Z", + "url": "https://files.pythonhosted.org/packages/07/af/e267ccb3fd48caa626b4c0b1d576a9203294e6ab22ca0505e5895e492793/clang_format-15.0.6-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "ce1401a1a757f889b7d696c7a4fca990debe500512bf205b95c92431242d26fb", + "md5": "fd641935d50dec26b483badbe6854572", + "sha256": "09dc33e84130191b6d84a90f17eb1908d66ed017996286cd73f8bc8644ebcaa3" + }, + "downloads": -1, + "filename": "clang-format-15.0.6.tar.gz", + "has_sig": false, + "md5_digest": "fd641935d50dec26b483badbe6854572", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 9744, + "upload_time": "2022-12-14T17:38:19", + "upload_time_iso_8601": "2022-12-14T17:38:19.610018Z", + "url": "https://files.pythonhosted.org/packages/ce/14/01a1a757f889b7d696c7a4fca990debe500512bf205b95c92431242d26fb/clang-format-15.0.6.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "15.0.7": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "8bc588311aa52cb936776f42c246c66a75da21fd9ce2e6058779544dcc316982", + "md5": "e7706bdc52bdcb40fa655c6ef32de073", + "sha256": "0983aa108920a84a84358a1a045537311ad77c3fcb60fdec2af0aad71d53bd1d" + }, + "downloads": -1, + "filename": "clang_format-15.0.7-py2.py3-none-macosx_10_9_universal2.whl", + "has_sig": false, + "md5_digest": "e7706bdc52bdcb40fa655c6ef32de073", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2478401, + "upload_time": "2023-01-16T10:17:36", + "upload_time_iso_8601": "2023-01-16T10:17:36.308797Z", + "url": "https://files.pythonhosted.org/packages/8b/c5/88311aa52cb936776f42c246c66a75da21fd9ce2e6058779544dcc316982/clang_format-15.0.7-py2.py3-none-macosx_10_9_universal2.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "04d3d76f880a779b52a483a6a25a0721b1307a97c1ec54ee270fa808da4806fa", + "md5": "91cf3332712de1b3055cc660cdafe8ec", + "sha256": "6bb879288a08cf646e2930f1f69b197bae90003a6c6abacd7beabed340a9752f" + }, + "downloads": -1, + "filename": "clang_format-15.0.7-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "91cf3332712de1b3055cc660cdafe8ec", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1641715, + "upload_time": "2023-01-16T10:17:38", + "upload_time_iso_8601": "2023-01-16T10:17:38.182855Z", + "url": "https://files.pythonhosted.org/packages/04/d3/d76f880a779b52a483a6a25a0721b1307a97c1ec54ee270fa808da4806fa/clang_format-15.0.7-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "e2de9afd3245007dac0ac64caec68c27b765ddba2325b261dc01643100dacd93", + "md5": "3a03731b0b49a89c5866b6ce79a66738", + "sha256": "f5a7815754c48cd9ffb14b2f306690f08b8ad8050cc7735c05c6caba046faee3" + }, + "downloads": -1, + "filename": "clang_format-15.0.7-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "3a03731b0b49a89c5866b6ce79a66738", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1487437, + "upload_time": "2023-01-16T10:17:39", + "upload_time_iso_8601": "2023-01-16T10:17:39.628243Z", + "url": "https://files.pythonhosted.org/packages/e2/de/9afd3245007dac0ac64caec68c27b765ddba2325b261dc01643100dacd93/clang_format-15.0.7-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "40d3d19eee7328238c74f543e67fa68a986f785e689799030b54372cf4f8fb09", + "md5": "6c3114a67f5b431fbf410037291a59f3", + "sha256": "a81115f042e59a042e6600d034d15a75dbd2830fae98eb806830380054f49fe7" + }, + "downloads": -1, + "filename": "clang_format-15.0.7-py2.py3-none-musllinux_1_1_i686.whl", + "has_sig": false, + "md5_digest": "6c3114a67f5b431fbf410037291a59f3", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2213961, + "upload_time": "2023-01-16T10:17:41", + "upload_time_iso_8601": "2023-01-16T10:17:41.290346Z", + "url": "https://files.pythonhosted.org/packages/40/d3/d19eee7328238c74f543e67fa68a986f785e689799030b54372cf4f8fb09/clang_format-15.0.7-py2.py3-none-musllinux_1_1_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "1c73b2bec18c8c4bfa15ef0a7f4793032c3a07536fdd42e30d245cfd1214da8b", + "md5": "27c541d518a1646a3195e4dccc202b09", + "sha256": "0343cd5f0cf33c3d552ebacbd2604e1a1342163ed7e5cb750c0a1495aae96340" + }, + "downloads": -1, + "filename": "clang_format-15.0.7-py2.py3-none-musllinux_1_1_x86_64.whl", + "has_sig": false, + "md5_digest": "27c541d518a1646a3195e4dccc202b09", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2057512, + "upload_time": "2023-01-16T10:17:43", + "upload_time_iso_8601": "2023-01-16T10:17:43.050938Z", + "url": "https://files.pythonhosted.org/packages/1c/73/b2bec18c8c4bfa15ef0a7f4793032c3a07536fdd42e30d245cfd1214da8b/clang_format-15.0.7-py2.py3-none-musllinux_1_1_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "056d1052cc33d1dfe76c07033feb21f176feca0d7a98a89cae52405214edbb8a", + "md5": "0cf72a6de329a0a4cb74d37e7864bd27", + "sha256": "c5fa1420c08f6293c6dfa90ca137e6e7ac5ee8838e151522816da43f375bc93f" + }, + "downloads": -1, + "filename": "clang_format-15.0.7-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "0cf72a6de329a0a4cb74d37e7864bd27", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1097736, + "upload_time": "2023-01-16T10:17:44", + "upload_time_iso_8601": "2023-01-16T10:17:44.744469Z", + "url": "https://files.pythonhosted.org/packages/05/6d/1052cc33d1dfe76c07033feb21f176feca0d7a98a89cae52405214edbb8a/clang_format-15.0.7-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "30e8d43b84e7cf053422cd0cc8788e9b28aff000cd38237c46ef803b1a813adf", + "md5": "58e67c0e039d8c3407bf0d1346d26377", + "sha256": "3a2712fc3a252aec5196958a97642f2cf637fee34058352e6acfe0d2d3be1965" + }, + "downloads": -1, + "filename": "clang_format-15.0.7-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "58e67c0e039d8c3407bf0d1346d26377", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1288401, + "upload_time": "2023-01-16T10:17:45", + "upload_time_iso_8601": "2023-01-16T10:17:45.990155Z", + "url": "https://files.pythonhosted.org/packages/30/e8/d43b84e7cf053422cd0cc8788e9b28aff000cd38237c46ef803b1a813adf/clang_format-15.0.7-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "9af561b4c55df2a3a966ce9c97ccd1cbc81810bfdb562cc8d298d382ed92a983", + "md5": "5bc9b12a0d6a6666e65dc9ad57c9495b", + "sha256": "60954c571394354200912e72ce10454b96016af879771df39d09d605ceaec035" + }, + "downloads": -1, + "filename": "clang-format-15.0.7.tar.gz", + "has_sig": false, + "md5_digest": "5bc9b12a0d6a6666e65dc9ad57c9495b", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 9731, + "upload_time": "2023-01-16T10:17:47", + "upload_time_iso_8601": "2023-01-16T10:17:47.874722Z", + "url": "https://files.pythonhosted.org/packages/9a/f5/61b4c55df2a3a966ce9c97ccd1cbc81810bfdb562cc8d298d382ed92a983/clang-format-15.0.7.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "16.0.0": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "9eacbf3b20e318e959e7ca8229c61dc208c87704e47e288c842ee39f603880c6", + "md5": "f696878fcd772cff7ab9eabd08f13971", + "sha256": "f887f8c8ab6975e4cd6f414512277fcd7f3fe8a3d21292010164c4ae31654c91" + }, + "downloads": -1, + "filename": "clang_format-16.0.0-py2.py3-none-macosx_10_9_universal2.whl", + "has_sig": false, + "md5_digest": "f696878fcd772cff7ab9eabd08f13971", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2522952, + "upload_time": "2023-03-21T11:19:38", + "upload_time_iso_8601": "2023-03-21T11:19:38.029944Z", + "url": "https://files.pythonhosted.org/packages/9e/ac/bf3b20e318e959e7ca8229c61dc208c87704e47e288c842ee39f603880c6/clang_format-16.0.0-py2.py3-none-macosx_10_9_universal2.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "80921943236e4a0ba280cbc3ab9931515a3505adbbb8c3f1fcd695ddc5ded763", + "md5": "a5d3f18c841df2fbf152ea141367b07c", + "sha256": "d32ca4a847e9e25c935fb187097ba4943ce52515688a85c8a745699db4991505" + }, + "downloads": -1, + "filename": "clang_format-16.0.0-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "a5d3f18c841df2fbf152ea141367b07c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1577048, + "upload_time": "2023-03-21T11:19:39", + "upload_time_iso_8601": "2023-03-21T11:19:39.776358Z", + "url": "https://files.pythonhosted.org/packages/80/92/1943236e4a0ba280cbc3ab9931515a3505adbbb8c3f1fcd695ddc5ded763/clang_format-16.0.0-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "10a4068b51d78cc6b184d57383df85f224e382fb76e1f5c0d610a42d94aad39e", + "md5": "b012bf3c9e7921001bb3bc858c1316a2", + "sha256": "47a1d563305ba6317706b9ab47e53144d807c261ae7a861db624435b499d709f" + }, + "downloads": -1, + "filename": "clang_format-16.0.0-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "b012bf3c9e7921001bb3bc858c1316a2", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1749324, + "upload_time": "2023-03-21T11:19:42", + "upload_time_iso_8601": "2023-03-21T11:19:42.324109Z", + "url": "https://files.pythonhosted.org/packages/10/a4/068b51d78cc6b184d57383df85f224e382fb76e1f5c0d610a42d94aad39e/clang_format-16.0.0-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "5e927fc1844cb74d4596f127a19a214d18eea83bb6a8e5918aa16e45609a89e8", + "md5": "3d69fda3cbeb271c6bc8aaa763bff408", + "sha256": "9878cd8ad0b831b4126f027241f677a24f76c821780d449c35c81f5ad5273a3e" + }, + "downloads": -1, + "filename": "clang_format-16.0.0-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "3d69fda3cbeb271c6bc8aaa763bff408", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2435352, + "upload_time": "2023-03-21T11:19:44", + "upload_time_iso_8601": "2023-03-21T11:19:44.465004Z", + "url": "https://files.pythonhosted.org/packages/5e/92/7fc1844cb74d4596f127a19a214d18eea83bb6a8e5918aa16e45609a89e8/clang_format-16.0.0-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "2a962090c45b514b891527b50c703342d1c88a8fb4ad6618f3186d4a8baa2412", + "md5": "1ffd4bc662090d7c51a0db7fb7685c91", + "sha256": "7eab6bed7e26d4fbcba39ea828ebde417a9f24839dc0f9d4dab49e63e7c962bb" + }, + "downloads": -1, + "filename": "clang_format-16.0.0-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "1ffd4bc662090d7c51a0db7fb7685c91", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1558913, + "upload_time": "2023-03-21T11:19:46", + "upload_time_iso_8601": "2023-03-21T11:19:46.680597Z", + "url": "https://files.pythonhosted.org/packages/2a/96/2090c45b514b891527b50c703342d1c88a8fb4ad6618f3186d4a8baa2412/clang_format-16.0.0-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "8b8b6702b635cf5cb529bd4d1432b8dac1e9569545aec324fdceba98d27fc753", + "md5": "17c45d977af1a2279c24a5619b704938", + "sha256": "36302cacb9cfcc5032e4f60df454c35e2bd214ef7e65070ccda8d17373b33012" + }, + "downloads": -1, + "filename": "clang_format-16.0.0-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "17c45d977af1a2279c24a5619b704938", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1581821, + "upload_time": "2023-03-21T11:19:48", + "upload_time_iso_8601": "2023-03-21T11:19:48.779466Z", + "url": "https://files.pythonhosted.org/packages/8b/8b/6702b635cf5cb529bd4d1432b8dac1e9569545aec324fdceba98d27fc753/clang_format-16.0.0-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "490e7af1bbdcc6f39b36062706ca67cc54e1051a82a05e2f1dc88371bcf8ac50", + "md5": "9d600f9be3f66b66aa4828eefb2e3c8f", + "sha256": "55e7f4869fb720e6adf8ccb65867d0256f4fdad65152c05b0268bf4204636574" + }, + "downloads": -1, + "filename": "clang_format-16.0.0-py2.py3-none-musllinux_1_1_aarch64.whl", + "has_sig": false, + "md5_digest": "9d600f9be3f66b66aa4828eefb2e3c8f", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2084827, + "upload_time": "2023-03-21T11:19:50", + "upload_time_iso_8601": "2023-03-21T11:19:50.307011Z", + "url": "https://files.pythonhosted.org/packages/49/0e/7af1bbdcc6f39b36062706ca67cc54e1051a82a05e2f1dc88371bcf8ac50/clang_format-16.0.0-py2.py3-none-musllinux_1_1_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "35a70b6652c1384cb9477b618eec4367544ab77e3956964bcf1b7ffb6593369f", + "md5": "450352821fd56b06f4d443d70b4568f4", + "sha256": "e0edd52e64a100aa7e88c56099ff5754a2b3a61ea6e53148fe41866de0383dd1" + }, + "downloads": -1, + "filename": "clang_format-16.0.0-py2.py3-none-musllinux_1_1_i686.whl", + "has_sig": false, + "md5_digest": "450352821fd56b06f4d443d70b4568f4", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2268283, + "upload_time": "2023-03-21T11:19:52", + "upload_time_iso_8601": "2023-03-21T11:19:52.487951Z", + "url": "https://files.pythonhosted.org/packages/35/a7/0b6652c1384cb9477b618eec4367544ab77e3956964bcf1b7ffb6593369f/clang_format-16.0.0-py2.py3-none-musllinux_1_1_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "1ff10691cee21546e2943de99d6e92c3dd866dcd2407ade9579e6d6a18320d28", + "md5": "f854eab12b9a4c7263aad619cde5e90f", + "sha256": "ace775ea2a77e73952039bd4defa5de909f47d7a3b8fd4e8281b5f266597bb71" + }, + "downloads": -1, + "filename": "clang_format-16.0.0-py2.py3-none-musllinux_1_1_ppc64le.whl", + "has_sig": false, + "md5_digest": "f854eab12b9a4c7263aad619cde5e90f", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2427309, + "upload_time": "2023-03-21T11:19:54", + "upload_time_iso_8601": "2023-03-21T11:19:54.839605Z", + "url": "https://files.pythonhosted.org/packages/1f/f1/0691cee21546e2943de99d6e92c3dd866dcd2407ade9579e6d6a18320d28/clang_format-16.0.0-py2.py3-none-musllinux_1_1_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "4640e59c165637ceed36b169ed265fde364a5fd2b71733649997abe63ff228c0", + "md5": "6323a49124ec2116b699489494aff784", + "sha256": "40c0aafde1c2dc3ae4227695017df436fc4fd693f63e897a4d14195d148da4a6" + }, + "downloads": -1, + "filename": "clang_format-16.0.0-py2.py3-none-musllinux_1_1_s390x.whl", + "has_sig": false, + "md5_digest": "6323a49124ec2116b699489494aff784", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2113867, + "upload_time": "2023-03-21T11:19:56", + "upload_time_iso_8601": "2023-03-21T11:19:56.691871Z", + "url": "https://files.pythonhosted.org/packages/46/40/e59c165637ceed36b169ed265fde364a5fd2b71733649997abe63ff228c0/clang_format-16.0.0-py2.py3-none-musllinux_1_1_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "b982f577c5310d364c610d3da659670df201a56b84769c76c95d4d8e4a998657", + "md5": "1c0d09e157654710e4a66ebeed4e5c34", + "sha256": "d8bb97f027179638c1913b0a0cb59ce250fce8750c8588d971a160f1c70a3969" + }, + "downloads": -1, + "filename": "clang_format-16.0.0-py2.py3-none-musllinux_1_1_x86_64.whl", + "has_sig": false, + "md5_digest": "1c0d09e157654710e4a66ebeed4e5c34", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2111842, + "upload_time": "2023-03-21T11:19:58", + "upload_time_iso_8601": "2023-03-21T11:19:58.276559Z", + "url": "https://files.pythonhosted.org/packages/b9/82/f577c5310d364c610d3da659670df201a56b84769c76c95d4d8e4a998657/clang_format-16.0.0-py2.py3-none-musllinux_1_1_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "de08f5d944f33aff8ed9dbd9d0fb23abf32f458c475a4ecf368e801cd871ed91", + "md5": "ad711f886f73dd3832c4a7662b0ece84", + "sha256": "8c345961090b2471d9d9c66fefee7084d4665189909a2d875f7279a3a68a09fb" + }, + "downloads": -1, + "filename": "clang_format-16.0.0-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "ad711f886f73dd3832c4a7662b0ece84", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1136896, + "upload_time": "2023-03-21T11:19:59", + "upload_time_iso_8601": "2023-03-21T11:19:59.780950Z", + "url": "https://files.pythonhosted.org/packages/de/08/f5d944f33aff8ed9dbd9d0fb23abf32f458c475a4ecf368e801cd871ed91/clang_format-16.0.0-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "9a6ae950aeaf5f2e9c9f4561cd0bb2d14a3dd24b386ee649501d7819261c0264", + "md5": "193728653f0c4ebf1cd19911a15fce91", + "sha256": "e43113f7fcd25c1de4ccb81658748e4b4edcea74b66b73ffb18d6d5d018ab623" + }, + "downloads": -1, + "filename": "clang_format-16.0.0-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "193728653f0c4ebf1cd19911a15fce91", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1310779, + "upload_time": "2023-03-21T11:20:01", + "upload_time_iso_8601": "2023-03-21T11:20:01.360340Z", + "url": "https://files.pythonhosted.org/packages/9a/6a/e950aeaf5f2e9c9f4561cd0bb2d14a3dd24b386ee649501d7819261c0264/clang_format-16.0.0-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "09482cda7efa0153f0ca93f2dd0105c1157b125d562658fd3565a633089de25a", + "md5": "46474675469391e9653b5f6ce4e65065", + "sha256": "f8dd028e10e1fe18d3598fcdf04b265d46c07d695c43504ea2fba9e74287766e" + }, + "downloads": -1, + "filename": "clang-format-16.0.0.tar.gz", + "has_sig": false, + "md5_digest": "46474675469391e9653b5f6ce4e65065", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 9743, + "upload_time": "2023-03-21T11:20:02", + "upload_time_iso_8601": "2023-03-21T11:20:02.592512Z", + "url": "https://files.pythonhosted.org/packages/09/48/2cda7efa0153f0ca93f2dd0105c1157b125d562658fd3565a633089de25a/clang-format-16.0.0.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "16.0.1": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "15275b33fd1bdb22c09a3d199085a3855ecaac8c7a2cf7f9c527a224553e1181", + "md5": "057ef0903488a29ea02ae554eaab4098", + "sha256": "bd0eeb36bdf92faf4596ae1d05f7ba00fa9e6b1a5673ed788a8a75ffcb1ba5fc" + }, + "downloads": -1, + "filename": "clang_format-16.0.1-py2.py3-none-macosx_10_9_universal2.whl", + "has_sig": false, + "md5_digest": "057ef0903488a29ea02ae554eaab4098", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2523584, + "upload_time": "2023-04-10T11:24:08", + "upload_time_iso_8601": "2023-04-10T11:24:08.981510Z", + "url": "https://files.pythonhosted.org/packages/15/27/5b33fd1bdb22c09a3d199085a3855ecaac8c7a2cf7f9c527a224553e1181/clang_format-16.0.1-py2.py3-none-macosx_10_9_universal2.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "05ac690183df982c057c9876abea8039e63438c27a1e03241d28ccd0f09a609f", + "md5": "ef391073603f5abd70fa457ff77d76c3", + "sha256": "dd7dc0f27fd98d771c11917881eaabd21e114b8fef9873287818666b5be591f2" + }, + "downloads": -1, + "filename": "clang_format-16.0.1-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "ef391073603f5abd70fa457ff77d76c3", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1577147, + "upload_time": "2023-04-10T11:24:10", + "upload_time_iso_8601": "2023-04-10T11:24:10.396146Z", + "url": "https://files.pythonhosted.org/packages/05/ac/690183df982c057c9876abea8039e63438c27a1e03241d28ccd0f09a609f/clang_format-16.0.1-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "37126b3ebed508b4e22d16b3fb00440961e77a5cf7490f43a6cd38fd0876b266", + "md5": "79c2dccfdbf5b99fd8ebfb9ddad1c74a", + "sha256": "fadfbe00365e8c116778faa99e8131df56fe002f62c7a60f939a91b065561fd4" + }, + "downloads": -1, + "filename": "clang_format-16.0.1-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "79c2dccfdbf5b99fd8ebfb9ddad1c74a", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1750059, + "upload_time": "2023-04-10T11:24:11", + "upload_time_iso_8601": "2023-04-10T11:24:11.611664Z", + "url": "https://files.pythonhosted.org/packages/37/12/6b3ebed508b4e22d16b3fb00440961e77a5cf7490f43a6cd38fd0876b266/clang_format-16.0.1-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "43faeffd391f6d78765af285ef345c44ae9817abc28fbde281a6048ea4418fba", + "md5": "b3f37ed65506b1dbea4965324a17700f", + "sha256": "bb7344b869aa18880d2aa3e289e098a59f187de93fd5ece568f9142d08bae874" + }, + "downloads": -1, + "filename": "clang_format-16.0.1-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "b3f37ed65506b1dbea4965324a17700f", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2436387, + "upload_time": "2023-04-10T11:24:13", + "upload_time_iso_8601": "2023-04-10T11:24:13.179220Z", + "url": "https://files.pythonhosted.org/packages/43/fa/effd391f6d78765af285ef345c44ae9817abc28fbde281a6048ea4418fba/clang_format-16.0.1-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "90f1ea21216ca5339d98b693511e131d39c5b5ff70c00906e0dfb87a195f8521", + "md5": "15ed16f64c84ee940ec6c056f76bda9f", + "sha256": "6e53ac10e03e07b33d28a17cf04898ccb281ad1b869a59b5a8588754c67d1a6c" + }, + "downloads": -1, + "filename": "clang_format-16.0.1-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "15ed16f64c84ee940ec6c056f76bda9f", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1559039, + "upload_time": "2023-04-10T11:24:14", + "upload_time_iso_8601": "2023-04-10T11:24:14.897653Z", + "url": "https://files.pythonhosted.org/packages/90/f1/ea21216ca5339d98b693511e131d39c5b5ff70c00906e0dfb87a195f8521/clang_format-16.0.1-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "e5514a3635d36b7477d2a9fc22da7687877e19cf8e444f40a0d5b4fb2dd428fc", + "md5": "e1265ec5093b6c182b13e3f65f92fc3c", + "sha256": "a1fc7e317434c0efc4ee894f14a79c935149e0968c8f1cef6f444dbc78e9bfb5" + }, + "downloads": -1, + "filename": "clang_format-16.0.1-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "e1265ec5093b6c182b13e3f65f92fc3c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1582336, + "upload_time": "2023-04-10T11:24:16", + "upload_time_iso_8601": "2023-04-10T11:24:16.453367Z", + "url": "https://files.pythonhosted.org/packages/e5/51/4a3635d36b7477d2a9fc22da7687877e19cf8e444f40a0d5b4fb2dd428fc/clang_format-16.0.1-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "a81d8c6c8c87c7c7801257ed158bb60ddae10d9b7229e3bba4c12febd83401fd", + "md5": "c06cd20eb375c41a9d263b6ef598b609", + "sha256": "4908418220d0fd1e5d11736ef52076cea3a847275be1146b4f30c1e2e147d23a" + }, + "downloads": -1, + "filename": "clang_format-16.0.1-py2.py3-none-musllinux_1_1_aarch64.whl", + "has_sig": false, + "md5_digest": "c06cd20eb375c41a9d263b6ef598b609", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2084924, + "upload_time": "2023-04-10T11:24:17", + "upload_time_iso_8601": "2023-04-10T11:24:17.961316Z", + "url": "https://files.pythonhosted.org/packages/a8/1d/8c6c8c87c7c7801257ed158bb60ddae10d9b7229e3bba4c12febd83401fd/clang_format-16.0.1-py2.py3-none-musllinux_1_1_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "d9931b33bf35bad99b4582c40060cf0d0e9ba648dd410be7954976e8731eedf9", + "md5": "a9a8165efed724d24bb025a0ce1a6910", + "sha256": "fa7a4854345fd0e73d5eb912cfad33afcf1570919e86db37c96c1820234cad23" + }, + "downloads": -1, + "filename": "clang_format-16.0.1-py2.py3-none-musllinux_1_1_i686.whl", + "has_sig": false, + "md5_digest": "a9a8165efed724d24bb025a0ce1a6910", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2268883, + "upload_time": "2023-04-10T11:24:19", + "upload_time_iso_8601": "2023-04-10T11:24:19.029098Z", + "url": "https://files.pythonhosted.org/packages/d9/93/1b33bf35bad99b4582c40060cf0d0e9ba648dd410be7954976e8731eedf9/clang_format-16.0.1-py2.py3-none-musllinux_1_1_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "b663504f4c46176622c32b5cccef4820cedd5eb9ec2c77480d6dddddf2361933", + "md5": "bf40a216cf9ad1f03e1e6bf8b317b18c", + "sha256": "35a19ab7d20c17e7aad680b2d6893bc77f00b4b7fd52cae397fd55a229000569" + }, + "downloads": -1, + "filename": "clang_format-16.0.1-py2.py3-none-musllinux_1_1_ppc64le.whl", + "has_sig": false, + "md5_digest": "bf40a216cf9ad1f03e1e6bf8b317b18c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2427358, + "upload_time": "2023-04-10T11:24:20", + "upload_time_iso_8601": "2023-04-10T11:24:20.773356Z", + "url": "https://files.pythonhosted.org/packages/b6/63/504f4c46176622c32b5cccef4820cedd5eb9ec2c77480d6dddddf2361933/clang_format-16.0.1-py2.py3-none-musllinux_1_1_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "2ae6f376fb7c8168544c2c80a45c9bc28ce17da1352634004bc0d080b4577c41", + "md5": "acf3382a12684239b472921839745516", + "sha256": "8570e08f43741b92c81690b26b5d0224f8782ab9f4db9965bb9c824a70adfd7e" + }, + "downloads": -1, + "filename": "clang_format-16.0.1-py2.py3-none-musllinux_1_1_s390x.whl", + "has_sig": false, + "md5_digest": "acf3382a12684239b472921839745516", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2114145, + "upload_time": "2023-04-10T11:24:22", + "upload_time_iso_8601": "2023-04-10T11:24:22.582469Z", + "url": "https://files.pythonhosted.org/packages/2a/e6/f376fb7c8168544c2c80a45c9bc28ce17da1352634004bc0d080b4577c41/clang_format-16.0.1-py2.py3-none-musllinux_1_1_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "941572a37a2a38ccc100f0b5a41b9404da5da26690d4371ffff58be82f4611b3", + "md5": "701fd3dad45a03a5f00c27db2dc0b82d", + "sha256": "8f58ac491899ca506851e5901efba4ada29a3f81fc8d95eaa74b24399eaadbc2" + }, + "downloads": -1, + "filename": "clang_format-16.0.1-py2.py3-none-musllinux_1_1_x86_64.whl", + "has_sig": false, + "md5_digest": "701fd3dad45a03a5f00c27db2dc0b82d", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2111831, + "upload_time": "2023-04-10T11:24:24", + "upload_time_iso_8601": "2023-04-10T11:24:24.277998Z", + "url": "https://files.pythonhosted.org/packages/94/15/72a37a2a38ccc100f0b5a41b9404da5da26690d4371ffff58be82f4611b3/clang_format-16.0.1-py2.py3-none-musllinux_1_1_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "cdd300274eda4ab820722bbe850dd431108e2a999d8b76baaf89b32844a6fc8e", + "md5": "be59971da289528ac046658c97a7f5ff", + "sha256": "1718fcd34f382ef65b2137e65283c1ea300964ec7c8ff4ebef97945b797a2161" + }, + "downloads": -1, + "filename": "clang_format-16.0.1-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "be59971da289528ac046658c97a7f5ff", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1136761, + "upload_time": "2023-04-10T11:24:25", + "upload_time_iso_8601": "2023-04-10T11:24:25.480187Z", + "url": "https://files.pythonhosted.org/packages/cd/d3/00274eda4ab820722bbe850dd431108e2a999d8b76baaf89b32844a6fc8e/clang_format-16.0.1-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "737df11894547de4688002aa2a9b71f736ad32715e8f1e36c5def6b008d28044", + "md5": "81ba93fb3fe34de914012ff22c74fbb9", + "sha256": "5388169bfedf5c66b29cd34d077c80cc09e9bf8f0d948929835541f7de407417" + }, + "downloads": -1, + "filename": "clang_format-16.0.1-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "81ba93fb3fe34de914012ff22c74fbb9", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1310926, + "upload_time": "2023-04-10T11:24:26", + "upload_time_iso_8601": "2023-04-10T11:24:26.573391Z", + "url": "https://files.pythonhosted.org/packages/73/7d/f11894547de4688002aa2a9b71f736ad32715e8f1e36c5def6b008d28044/clang_format-16.0.1-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "78289835c6e886f362df4ba6d3d06f759bbc3df70753435687510883d7770811", + "md5": "de6febf92a8eda3c23b826f5942c3ca6", + "sha256": "e099be756ea229b2332324a5e17e96c2bbd2e3601c96a06d7265a2bc1ea81b52" + }, + "downloads": -1, + "filename": "clang-format-16.0.1.tar.gz", + "has_sig": false, + "md5_digest": "de6febf92a8eda3c23b826f5942c3ca6", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 9723, + "upload_time": "2023-04-10T11:24:27", + "upload_time_iso_8601": "2023-04-10T11:24:27.622745Z", + "url": "https://files.pythonhosted.org/packages/78/28/9835c6e886f362df4ba6d3d06f759bbc3df70753435687510883d7770811/clang-format-16.0.1.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "16.0.2": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "0e8c655352339c58db556a83a253456e60c98e529048535157ef3639b94fd794", + "md5": "0e3fc3bc5284e4fa84d9871a37086264", + "sha256": "875d12259a5eeb83348545532ed01b2a56105dce39d88173402d0938894765ff" + }, + "downloads": -1, + "filename": "clang_format-16.0.2-py2.py3-none-macosx_10_9_universal2.whl", + "has_sig": false, + "md5_digest": "0e3fc3bc5284e4fa84d9871a37086264", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2523553, + "upload_time": "2023-04-21T13:59:41", + "upload_time_iso_8601": "2023-04-21T13:59:41.098832Z", + "url": "https://files.pythonhosted.org/packages/0e/8c/655352339c58db556a83a253456e60c98e529048535157ef3639b94fd794/clang_format-16.0.2-py2.py3-none-macosx_10_9_universal2.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "524f3095cbd030b0f77887dc93943c9de3a803a0fd300f5fe441a7e66e43450b", + "md5": "da8f9f42253d0e88c161b7b2fe31d18c", + "sha256": "03ccb38d75fd0e4bbacede27b09cdc34d3c70bd8874a2ea86781cb97b28680ba" + }, + "downloads": -1, + "filename": "clang_format-16.0.2-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "da8f9f42253d0e88c161b7b2fe31d18c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1577047, + "upload_time": "2023-04-21T13:59:42", + "upload_time_iso_8601": "2023-04-21T13:59:42.993472Z", + "url": "https://files.pythonhosted.org/packages/52/4f/3095cbd030b0f77887dc93943c9de3a803a0fd300f5fe441a7e66e43450b/clang_format-16.0.2-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "cc9e16f2a9ce4b278231b11b8c3e617379615ee8300e99b6e31d80b1c38094bb", + "md5": "903c6e363fe3386b22afec0554ec7dbf", + "sha256": "f6f8bf014221a983a7bdd9ed436e54c88d74ca8beb9b465967dfe33bb4e16a8e" + }, + "downloads": -1, + "filename": "clang_format-16.0.2-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "903c6e363fe3386b22afec0554ec7dbf", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1749838, + "upload_time": "2023-04-21T13:59:44", + "upload_time_iso_8601": "2023-04-21T13:59:44.639659Z", + "url": "https://files.pythonhosted.org/packages/cc/9e/16f2a9ce4b278231b11b8c3e617379615ee8300e99b6e31d80b1c38094bb/clang_format-16.0.2-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "7214c1fdb1d552d08bbeb28762815f9e0fb0a57d495fdf250d8c4c870f7e10de", + "md5": "701c82b1b7f298676f84e7bdf710ef62", + "sha256": "ecb34882f0dac583f12f1307f24a9b3c447f64f1f1f4e560d5ef061a10291187" + }, + "downloads": -1, + "filename": "clang_format-16.0.2-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "701c82b1b7f298676f84e7bdf710ef62", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2436373, + "upload_time": "2023-04-21T13:59:47", + "upload_time_iso_8601": "2023-04-21T13:59:47.078136Z", + "url": "https://files.pythonhosted.org/packages/72/14/c1fdb1d552d08bbeb28762815f9e0fb0a57d495fdf250d8c4c870f7e10de/clang_format-16.0.2-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "bdbcbb9c63a5dec8c9fe750a9a1abc0ef8865238750c7e0e1b1ee9e696f521df", + "md5": "476edf72085f4486b1e818f17f8e64e6", + "sha256": "e2f048dc595ee9ee5638d27754dce1ceb243b92ab49912a729396b4e3e5fdd99" + }, + "downloads": -1, + "filename": "clang_format-16.0.2-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "476edf72085f4486b1e818f17f8e64e6", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1558954, + "upload_time": "2023-04-21T13:59:48", + "upload_time_iso_8601": "2023-04-21T13:59:48.605422Z", + "url": "https://files.pythonhosted.org/packages/bd/bc/bb9c63a5dec8c9fe750a9a1abc0ef8865238750c7e0e1b1ee9e696f521df/clang_format-16.0.2-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "ffd036acbc13f760adce6d48ce1378653ad46a7684d71782d30efe24a753c9bb", + "md5": "b00529c1f7d38abb3a876a10a8182e36", + "sha256": "c3229b3b622bc5a1e1a2c60142560473052afe92c3fd9e2891ebdab739d135aa" + }, + "downloads": -1, + "filename": "clang_format-16.0.2-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "b00529c1f7d38abb3a876a10a8182e36", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1582293, + "upload_time": "2023-04-21T13:59:50", + "upload_time_iso_8601": "2023-04-21T13:59:50.560355Z", + "url": "https://files.pythonhosted.org/packages/ff/d0/36acbc13f760adce6d48ce1378653ad46a7684d71782d30efe24a753c9bb/clang_format-16.0.2-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "d45f17ad3e673cfccc692f3a6d3425115de1f58735682ce23e0cd0fdb01a22cf", + "md5": "fdec721a5dd49ac417de359234cc2e83", + "sha256": "24743bdbad14812ae040dea329fa2fba118424a8da42e7bf05198bc18bcad299" + }, + "downloads": -1, + "filename": "clang_format-16.0.2-py2.py3-none-musllinux_1_1_aarch64.whl", + "has_sig": false, + "md5_digest": "fdec721a5dd49ac417de359234cc2e83", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2084876, + "upload_time": "2023-04-21T13:59:52", + "upload_time_iso_8601": "2023-04-21T13:59:52.639450Z", + "url": "https://files.pythonhosted.org/packages/d4/5f/17ad3e673cfccc692f3a6d3425115de1f58735682ce23e0cd0fdb01a22cf/clang_format-16.0.2-py2.py3-none-musllinux_1_1_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "cfdf125b01bc1059a37eeb7f46c8a9f880726a8e5eaf33fb7d99827f205911a2", + "md5": "eeff25f0a575ffc8c120b584cb8954a0", + "sha256": "e533c20351719aa295ccc73863df546c90a1ec15dbbd7b0ffece83e8e1da9680" + }, + "downloads": -1, + "filename": "clang_format-16.0.2-py2.py3-none-musllinux_1_1_i686.whl", + "has_sig": false, + "md5_digest": "eeff25f0a575ffc8c120b584cb8954a0", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2268863, + "upload_time": "2023-04-21T13:59:54", + "upload_time_iso_8601": "2023-04-21T13:59:54.468050Z", + "url": "https://files.pythonhosted.org/packages/cf/df/125b01bc1059a37eeb7f46c8a9f880726a8e5eaf33fb7d99827f205911a2/clang_format-16.0.2-py2.py3-none-musllinux_1_1_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "fb7736ac0cb948c0cb748f14475937ebd97fb97bb14a1078a7aadffa09e72c3e", + "md5": "090f1cba78c40b6c56261c04e87b0a6d", + "sha256": "4a39f60f383a8b36843868d823972d02970f3574c3d064d5058ded9c49874ea4" + }, + "downloads": -1, + "filename": "clang_format-16.0.2-py2.py3-none-musllinux_1_1_ppc64le.whl", + "has_sig": false, + "md5_digest": "090f1cba78c40b6c56261c04e87b0a6d", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2427354, + "upload_time": "2023-04-21T13:59:58", + "upload_time_iso_8601": "2023-04-21T13:59:58.307862Z", + "url": "https://files.pythonhosted.org/packages/fb/77/36ac0cb948c0cb748f14475937ebd97fb97bb14a1078a7aadffa09e72c3e/clang_format-16.0.2-py2.py3-none-musllinux_1_1_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "7accec20221c736a5fa873c7d42c6eacfbfd0dfb764d5ec2e7bed79d57b51ca4", + "md5": "3628a3a70078237e6fc547228c628e39", + "sha256": "4f6ca9fdf0eaba27225bb33dc4a75112304e96e4add0f8314b091ecbcb2b9826" + }, + "downloads": -1, + "filename": "clang_format-16.0.2-py2.py3-none-musllinux_1_1_s390x.whl", + "has_sig": false, + "md5_digest": "3628a3a70078237e6fc547228c628e39", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2114056, + "upload_time": "2023-04-21T13:59:59", + "upload_time_iso_8601": "2023-04-21T13:59:59.939942Z", + "url": "https://files.pythonhosted.org/packages/7a/cc/ec20221c736a5fa873c7d42c6eacfbfd0dfb764d5ec2e7bed79d57b51ca4/clang_format-16.0.2-py2.py3-none-musllinux_1_1_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "d37a69f1846a27e6d360f7fea3b31193ddb0c6861477d79074177068f6396c5c", + "md5": "16999fc195ee76cdd2730e0c1b29a826", + "sha256": "6df4a6f8918a065bff8161e8cae9ee0dab58a8f5626b1fed406806b7e8c817b6" + }, + "downloads": -1, + "filename": "clang_format-16.0.2-py2.py3-none-musllinux_1_1_x86_64.whl", + "has_sig": false, + "md5_digest": "16999fc195ee76cdd2730e0c1b29a826", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2111866, + "upload_time": "2023-04-21T14:00:01", + "upload_time_iso_8601": "2023-04-21T14:00:01.884932Z", + "url": "https://files.pythonhosted.org/packages/d3/7a/69f1846a27e6d360f7fea3b31193ddb0c6861477d79074177068f6396c5c/clang_format-16.0.2-py2.py3-none-musllinux_1_1_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "74eaac3708b121d5ac4e44c63ce2bc62bf00e1b78139ae11713702f4f05ecb9a", + "md5": "c2a1a28ace239677b6c9fc196884e8af", + "sha256": "1fe94d31b0ad40bc8a0145f24a44ad19c5a137b14f5392fe0063434a23c00999" + }, + "downloads": -1, + "filename": "clang_format-16.0.2-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "c2a1a28ace239677b6c9fc196884e8af", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1136711, + "upload_time": "2023-04-21T14:00:03", + "upload_time_iso_8601": "2023-04-21T14:00:03.475472Z", + "url": "https://files.pythonhosted.org/packages/74/ea/ac3708b121d5ac4e44c63ce2bc62bf00e1b78139ae11713702f4f05ecb9a/clang_format-16.0.2-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "6977daf881e1867651b655f3c2ff660dbbdc7ff26eb913d3084b297c4d0e0fed", + "md5": "f6202c366dbba972a573757751f0f8cc", + "sha256": "df69db2d4504c83b260fe5b8f1ab6468505d29fc411d8501ed45349eb54025cd" + }, + "downloads": -1, + "filename": "clang_format-16.0.2-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "f6202c366dbba972a573757751f0f8cc", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1310884, + "upload_time": "2023-04-21T14:00:05", + "upload_time_iso_8601": "2023-04-21T14:00:05.301916Z", + "url": "https://files.pythonhosted.org/packages/69/77/daf881e1867651b655f3c2ff660dbbdc7ff26eb913d3084b297c4d0e0fed/clang_format-16.0.2-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "0728b070560d7af346316245eec150ccfe8899731e0fe54c7a16bc8413496199", + "md5": "efcaed9b2806fb412c931f8e551f8d57", + "sha256": "772cffe40b97872ed74e1cf83c7401340a87bd2c1228da6bdd81ffb30c753e8a" + }, + "downloads": -1, + "filename": "clang-format-16.0.2.tar.gz", + "has_sig": false, + "md5_digest": "efcaed9b2806fb412c931f8e551f8d57", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 9736, + "upload_time": "2023-04-21T14:00:06", + "upload_time_iso_8601": "2023-04-21T14:00:06.987628Z", + "url": "https://files.pythonhosted.org/packages/07/28/b070560d7af346316245eec150ccfe8899731e0fe54c7a16bc8413496199/clang-format-16.0.2.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "16.0.3": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "e9921cc2e8cdff7f4329d5e51f09cc482c9b7b0d75ef024bfb66769a928fd9cf", + "md5": "d21f302c9a4db65a364e2cdb5f8ab3e5", + "sha256": "0f2937e780f955191fac6786ef36ac8e3a03b455c363fc9af069c90237bbf1ab" + }, + "downloads": -1, + "filename": "clang_format-16.0.3-py2.py3-none-macosx_10_9_universal2.whl", + "has_sig": false, + "md5_digest": "d21f302c9a4db65a364e2cdb5f8ab3e5", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2523552, + "upload_time": "2023-05-03T14:07:25", + "upload_time_iso_8601": "2023-05-03T14:07:25.707090Z", + "url": "https://files.pythonhosted.org/packages/e9/92/1cc2e8cdff7f4329d5e51f09cc482c9b7b0d75ef024bfb66769a928fd9cf/clang_format-16.0.3-py2.py3-none-macosx_10_9_universal2.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "7fedb7b430748993fcee12d3c7eddc92dcdd06b24b6e19fc28c1c194c2d7f545", + "md5": "db061f929de534c26b4987bbbe588d7f", + "sha256": "57b6e5daefc69d045b28c439b6f301c74f4ef9e93cc0f6a0434a1807e78a0587" + }, + "downloads": -1, + "filename": "clang_format-16.0.3-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "db061f929de534c26b4987bbbe588d7f", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1577044, + "upload_time": "2023-05-03T14:07:28", + "upload_time_iso_8601": "2023-05-03T14:07:28.199672Z", + "url": "https://files.pythonhosted.org/packages/7f/ed/b7b430748993fcee12d3c7eddc92dcdd06b24b6e19fc28c1c194c2d7f545/clang_format-16.0.3-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "39ad205c00d177ff058671575bd5ad6742237b6b5c9ddaa9161ba831dde68057", + "md5": "dd6fa9980508bcba6c0868408cee53c6", + "sha256": "844ed39192d5c5a53aad9a5eb57424fba5a868cfc555e724be5a5083bf747d37" + }, + "downloads": -1, + "filename": "clang_format-16.0.3-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "dd6fa9980508bcba6c0868408cee53c6", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1749841, + "upload_time": "2023-05-03T14:07:30", + "upload_time_iso_8601": "2023-05-03T14:07:30.380952Z", + "url": "https://files.pythonhosted.org/packages/39/ad/205c00d177ff058671575bd5ad6742237b6b5c9ddaa9161ba831dde68057/clang_format-16.0.3-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "1bd25fc1e258b7827ad1e309c8ebd7c7f20fad95c744398d51afd492c8e2d75e", + "md5": "89d15b194b13d132c8072ed58a4cf9ec", + "sha256": "30317bc91fd51260fd591c3fded0156021c540169e28921dda911bc146f499ee" + }, + "downloads": -1, + "filename": "clang_format-16.0.3-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "89d15b194b13d132c8072ed58a4cf9ec", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2436371, + "upload_time": "2023-05-03T14:07:32", + "upload_time_iso_8601": "2023-05-03T14:07:32.583457Z", + "url": "https://files.pythonhosted.org/packages/1b/d2/5fc1e258b7827ad1e309c8ebd7c7f20fad95c744398d51afd492c8e2d75e/clang_format-16.0.3-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "9e36c6509b8eb19bdbfbcc8ef7b29d58635b553733ff7d3debdb38d1d1a8597a", + "md5": "182ebbab4b13fab4f5d2c76c1a656b88", + "sha256": "f478d47eb6bd6cdc026d8c00979421af51f57d376a8c8355b0e2b673572151f7" + }, + "downloads": -1, + "filename": "clang_format-16.0.3-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "182ebbab4b13fab4f5d2c76c1a656b88", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1558952, + "upload_time": "2023-05-03T14:07:35", + "upload_time_iso_8601": "2023-05-03T14:07:35.388471Z", + "url": "https://files.pythonhosted.org/packages/9e/36/c6509b8eb19bdbfbcc8ef7b29d58635b553733ff7d3debdb38d1d1a8597a/clang_format-16.0.3-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "59c91f0535c6019990b28efb02a51efe09c29219d230f26209577dc62c9cd91a", + "md5": "8ee3749b94ca67691d781192958e45a9", + "sha256": "a6c33233e7c0d3057820e5d02411565953909cf59dc913d9c24b5c08fa561e05" + }, + "downloads": -1, + "filename": "clang_format-16.0.3-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "8ee3749b94ca67691d781192958e45a9", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1582295, + "upload_time": "2023-05-03T14:07:37", + "upload_time_iso_8601": "2023-05-03T14:07:37.542455Z", + "url": "https://files.pythonhosted.org/packages/59/c9/1f0535c6019990b28efb02a51efe09c29219d230f26209577dc62c9cd91a/clang_format-16.0.3-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "fa4cbbe595d0bafd32ec73ec56876cc1f730c4bfce0a4e1a3d2f0802514681e2", + "md5": "6f4bbe25f69c632146ea9c998ad89afa", + "sha256": "515f387fb46b2bc54e9f054d953fd90e2efb2db1103dacf05af19eddab84b832" + }, + "downloads": -1, + "filename": "clang_format-16.0.3-py2.py3-none-musllinux_1_1_aarch64.whl", + "has_sig": false, + "md5_digest": "6f4bbe25f69c632146ea9c998ad89afa", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2084879, + "upload_time": "2023-05-03T14:07:39", + "upload_time_iso_8601": "2023-05-03T14:07:39.361520Z", + "url": "https://files.pythonhosted.org/packages/fa/4c/bbe595d0bafd32ec73ec56876cc1f730c4bfce0a4e1a3d2f0802514681e2/clang_format-16.0.3-py2.py3-none-musllinux_1_1_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "8e1fab877f781f99bfb457c1e521dafdf6ac0447177885cd95eae4c4eb78f39d", + "md5": "cdffbababd4c8ca242f485ec6131f7a1", + "sha256": "f32de5c79874b758fc9cdbb39387c4ceb3c6d3aa7dd9e9bb1f1cc8e8c0039098" + }, + "downloads": -1, + "filename": "clang_format-16.0.3-py2.py3-none-musllinux_1_1_i686.whl", + "has_sig": false, + "md5_digest": "cdffbababd4c8ca242f485ec6131f7a1", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2268859, + "upload_time": "2023-05-03T14:07:42", + "upload_time_iso_8601": "2023-05-03T14:07:42.625277Z", + "url": "https://files.pythonhosted.org/packages/8e/1f/ab877f781f99bfb457c1e521dafdf6ac0447177885cd95eae4c4eb78f39d/clang_format-16.0.3-py2.py3-none-musllinux_1_1_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "06094c5b8f9b60ced9f6b4d53b5aef69cd89359383718b3b32beb8ed9b089db5", + "md5": "359f692632fb320fedc980c8330b8ffb", + "sha256": "a0a49622866c259278cc68faa044f59828892b45f90cb27ce560ccf4a69e8aee" + }, + "downloads": -1, + "filename": "clang_format-16.0.3-py2.py3-none-musllinux_1_1_ppc64le.whl", + "has_sig": false, + "md5_digest": "359f692632fb320fedc980c8330b8ffb", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2427356, + "upload_time": "2023-05-03T14:07:44", + "upload_time_iso_8601": "2023-05-03T14:07:44.427554Z", + "url": "https://files.pythonhosted.org/packages/06/09/4c5b8f9b60ced9f6b4d53b5aef69cd89359383718b3b32beb8ed9b089db5/clang_format-16.0.3-py2.py3-none-musllinux_1_1_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "e4f0dbaad73dcf845513a983c48efc7290373d6da679ad7321733e7b2b268e6e", + "md5": "09f623b2f539246ea6fc9fc033c2f63e", + "sha256": "49c46fdb8f386a44aa2cd2513687136ebdbbd5526f0da2a39ae77cdcf3785d26" + }, + "downloads": -1, + "filename": "clang_format-16.0.3-py2.py3-none-musllinux_1_1_s390x.whl", + "has_sig": false, + "md5_digest": "09f623b2f539246ea6fc9fc033c2f63e", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2114056, + "upload_time": "2023-05-03T14:07:46", + "upload_time_iso_8601": "2023-05-03T14:07:46.994442Z", + "url": "https://files.pythonhosted.org/packages/e4/f0/dbaad73dcf845513a983c48efc7290373d6da679ad7321733e7b2b268e6e/clang_format-16.0.3-py2.py3-none-musllinux_1_1_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "30357a3cbd08e4aa1ecd118d4d8e118b259b10d3c87e281228a18b930bbbc3d9", + "md5": "96172a242b57a538794f4802a3c80050", + "sha256": "425058f6d845cfaebf5917d4c9cd7e926f8d9a834c415c89d624c4f0354e30b7" + }, + "downloads": -1, + "filename": "clang_format-16.0.3-py2.py3-none-musllinux_1_1_x86_64.whl", + "has_sig": false, + "md5_digest": "96172a242b57a538794f4802a3c80050", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2111866, + "upload_time": "2023-05-03T14:07:48", + "upload_time_iso_8601": "2023-05-03T14:07:48.415036Z", + "url": "https://files.pythonhosted.org/packages/30/35/7a3cbd08e4aa1ecd118d4d8e118b259b10d3c87e281228a18b930bbbc3d9/clang_format-16.0.3-py2.py3-none-musllinux_1_1_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "ca39bbe9065db279e1c81387fdacb31f2c9597b0fb70bf63e319509189c221c7", + "md5": "157b992f01e313895e72c115898358aa", + "sha256": "a4ab97442293d62e3febe718c3fc716ca9cd4a7e5f1ae6c96e5c8077b9bfb6ec" + }, + "downloads": -1, + "filename": "clang_format-16.0.3-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "157b992f01e313895e72c115898358aa", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1136712, + "upload_time": "2023-05-03T14:07:50", + "upload_time_iso_8601": "2023-05-03T14:07:50.643557Z", + "url": "https://files.pythonhosted.org/packages/ca/39/bbe9065db279e1c81387fdacb31f2c9597b0fb70bf63e319509189c221c7/clang_format-16.0.3-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "f3d690c1d6c006cd4206600c9dc96083973b9ca0af8a521014bc8e2d8804d8eb", + "md5": "cdd4dba8bea48f0fc286873f85be5add", + "sha256": "e9594a76b97fdb449b2c9592e88eb3d8008eee452f330082237b4c666589bfec" + }, + "downloads": -1, + "filename": "clang_format-16.0.3-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "cdd4dba8bea48f0fc286873f85be5add", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1310899, + "upload_time": "2023-05-03T14:07:52", + "upload_time_iso_8601": "2023-05-03T14:07:52.535724Z", + "url": "https://files.pythonhosted.org/packages/f3/d6/90c1d6c006cd4206600c9dc96083973b9ca0af8a521014bc8e2d8804d8eb/clang_format-16.0.3-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "4d07df31f6c79403f1d64869e6cac05079a2b120f84b0892a90294f90c8d151d", + "md5": "6013be60bc9da9c853eeeec960c49c9b", + "sha256": "62b9bf91c8ebc6dff32e261e2e1e8483eff58c1cf43607706e235e5cc89c7f3c" + }, + "downloads": -1, + "filename": "clang-format-16.0.3.tar.gz", + "has_sig": false, + "md5_digest": "6013be60bc9da9c853eeeec960c49c9b", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 9747, + "upload_time": "2023-05-03T14:07:54", + "upload_time_iso_8601": "2023-05-03T14:07:54.360552Z", + "url": "https://files.pythonhosted.org/packages/4d/07/df31f6c79403f1d64869e6cac05079a2b120f84b0892a90294f90c8d151d/clang-format-16.0.3.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "16.0.4": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "94e2fc07dbeac0dfb8b253800d49fdeec6bed289cf84a06f4f671fe94e1e770a", + "md5": "1252ddf8e8bb0876227476f6346bd9be", + "sha256": "796f1945de740f15d5cb78e9ab966aa9d774cb6d7da4ec67b1b9a8ea24f71533" + }, + "downloads": -1, + "filename": "clang_format-16.0.4-py2.py3-none-macosx_10_9_universal2.whl", + "has_sig": false, + "md5_digest": "1252ddf8e8bb0876227476f6346bd9be", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2523562, + "upload_time": "2023-05-17T14:11:16", + "upload_time_iso_8601": "2023-05-17T14:11:16.171493Z", + "url": "https://files.pythonhosted.org/packages/94/e2/fc07dbeac0dfb8b253800d49fdeec6bed289cf84a06f4f671fe94e1e770a/clang_format-16.0.4-py2.py3-none-macosx_10_9_universal2.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "3e19110b5f13e5959fd07ae5bb2469c2832393795b381420f428b0158a103665", + "md5": "eea59527bf096560f346917ad32c27ae", + "sha256": "e0aafcbc472bb190e104c2dbe004fcf6aa03debd1e22d7be1d065524188744b2" + }, + "downloads": -1, + "filename": "clang_format-16.0.4-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "eea59527bf096560f346917ad32c27ae", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1576525, + "upload_time": "2023-05-17T14:11:18", + "upload_time_iso_8601": "2023-05-17T14:11:18.759752Z", + "url": "https://files.pythonhosted.org/packages/3e/19/110b5f13e5959fd07ae5bb2469c2832393795b381420f428b0158a103665/clang_format-16.0.4-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "d64511c24acbcb25d491f91eba75ae419144502028917670883e1f9c16e64e69", + "md5": "952105f22ac853cf2aaa1038c42e2c14", + "sha256": "1e1970f68aa8a065fd4e37bba955a9f71506521ea3e0b27bbcdf7e81517db904" + }, + "downloads": -1, + "filename": "clang_format-16.0.4-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "952105f22ac853cf2aaa1038c42e2c14", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1751943, + "upload_time": "2023-05-17T14:11:20", + "upload_time_iso_8601": "2023-05-17T14:11:20.631804Z", + "url": "https://files.pythonhosted.org/packages/d6/45/11c24acbcb25d491f91eba75ae419144502028917670883e1f9c16e64e69/clang_format-16.0.4-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "b325e88edaa4246ab9647726edfe2621e348e70a3cb8377e6f55fb5756e49bf4", + "md5": "a743eb070b88602377eaebf5da8a3538", + "sha256": "43639fa36768c91ca135686e92bf8be8e7c98d586e2968924ffb10bae9e9fdff" + }, + "downloads": -1, + "filename": "clang_format-16.0.4-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "a743eb070b88602377eaebf5da8a3538", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2436137, + "upload_time": "2023-05-17T14:11:23", + "upload_time_iso_8601": "2023-05-17T14:11:23.171476Z", + "url": "https://files.pythonhosted.org/packages/b3/25/e88edaa4246ab9647726edfe2621e348e70a3cb8377e6f55fb5756e49bf4/clang_format-16.0.4-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "8d0671c6eaf7ea9f8118d3f0779d798a928076e9fa03fe57c44f12bc2da95c6a", + "md5": "d2860448e1fe17196fff7c530e757214", + "sha256": "dd85d30c99ab9f37ffe19c1123e416d7aa407950ee79480525d370f17a161297" + }, + "downloads": -1, + "filename": "clang_format-16.0.4-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "d2860448e1fe17196fff7c530e757214", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1560852, + "upload_time": "2023-05-17T14:11:25", + "upload_time_iso_8601": "2023-05-17T14:11:25.623246Z", + "url": "https://files.pythonhosted.org/packages/8d/06/71c6eaf7ea9f8118d3f0779d798a928076e9fa03fe57c44f12bc2da95c6a/clang_format-16.0.4-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "f720f5cb915467a0fc18ee8c37f868d8090cf81520c0fa0313ff0a2ae983d566", + "md5": "9bd0b730495fc1da7debac473e1387af", + "sha256": "d0dcc97b26c10ee9138a44f73085834b5d55c35450a303ce991c3be826586a76" + }, + "downloads": -1, + "filename": "clang_format-16.0.4-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "9bd0b730495fc1da7debac473e1387af", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1580262, + "upload_time": "2023-05-17T14:11:28", + "upload_time_iso_8601": "2023-05-17T14:11:28.156323Z", + "url": "https://files.pythonhosted.org/packages/f7/20/f5cb915467a0fc18ee8c37f868d8090cf81520c0fa0313ff0a2ae983d566/clang_format-16.0.4-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "c3be475ac2644c3a15cbeabed4de624097ce16948cbfc58ded6e1f535eb4ab75", + "md5": "9207a0afa91c6f365fed2eb06ea84d1f", + "sha256": "3bc415a27351f179a7485a85f9c41dd16313969eb37aed12343b3376004fc301" + }, + "downloads": -1, + "filename": "clang_format-16.0.4-py2.py3-none-musllinux_1_1_aarch64.whl", + "has_sig": false, + "md5_digest": "9207a0afa91c6f365fed2eb06ea84d1f", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2081614, + "upload_time": "2023-05-17T14:11:30", + "upload_time_iso_8601": "2023-05-17T14:11:30.285182Z", + "url": "https://files.pythonhosted.org/packages/c3/be/475ac2644c3a15cbeabed4de624097ce16948cbfc58ded6e1f535eb4ab75/clang_format-16.0.4-py2.py3-none-musllinux_1_1_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "a478d3f67e4911021dadb83ef7dc91249144f8b3ccdbf644a79139cc47a5deaf", + "md5": "7fe6b44f4f1b50e71801ffdfe6895ed0", + "sha256": "fb105f9e0ec826bef78335ae83570511ff74526b9d117b47f0581f052d2423b0" + }, + "downloads": -1, + "filename": "clang_format-16.0.4-py2.py3-none-musllinux_1_1_i686.whl", + "has_sig": false, + "md5_digest": "7fe6b44f4f1b50e71801ffdfe6895ed0", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2260333, + "upload_time": "2023-05-17T14:11:32", + "upload_time_iso_8601": "2023-05-17T14:11:32.833788Z", + "url": "https://files.pythonhosted.org/packages/a4/78/d3f67e4911021dadb83ef7dc91249144f8b3ccdbf644a79139cc47a5deaf/clang_format-16.0.4-py2.py3-none-musllinux_1_1_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "96eb72b08ec0d947164e10b2cd476ecab8de8e476b45ae9e399f2887b46f9adb", + "md5": "827354c8b48d56ffa97e9ea901a04629", + "sha256": "d6ff7108fb06578c7ab4f839a2138c621b111a24bcbc4fe94457641b4727e737" + }, + "downloads": -1, + "filename": "clang_format-16.0.4-py2.py3-none-musllinux_1_1_ppc64le.whl", + "has_sig": false, + "md5_digest": "827354c8b48d56ffa97e9ea901a04629", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2427696, + "upload_time": "2023-05-17T14:11:35", + "upload_time_iso_8601": "2023-05-17T14:11:35.023029Z", + "url": "https://files.pythonhosted.org/packages/96/eb/72b08ec0d947164e10b2cd476ecab8de8e476b45ae9e399f2887b46f9adb/clang_format-16.0.4-py2.py3-none-musllinux_1_1_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "67b8c751afcf2aa853db07f104e96fca0aeaf50bef30e7983dd2e741cb0d7f6f", + "md5": "30b1fd698ccc56a4ea8720cdffe99987", + "sha256": "0ac80dc2f02f086c3d33bc3712889d612243282099576c827d57b593602da5be" + }, + "downloads": -1, + "filename": "clang_format-16.0.4-py2.py3-none-musllinux_1_1_s390x.whl", + "has_sig": false, + "md5_digest": "30b1fd698ccc56a4ea8720cdffe99987", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2107688, + "upload_time": "2023-05-17T14:11:37", + "upload_time_iso_8601": "2023-05-17T14:11:37.469807Z", + "url": "https://files.pythonhosted.org/packages/67/b8/c751afcf2aa853db07f104e96fca0aeaf50bef30e7983dd2e741cb0d7f6f/clang_format-16.0.4-py2.py3-none-musllinux_1_1_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "acc50e96d2293f4498e5891d37509d61a9971253cb7d4a8245eea7ce217cc916", + "md5": "20769b63aea9187be5cf80355a489dc8", + "sha256": "6be733dd7748420b28d1c860a776aa774a106e3665ab1340e3a5d90f3744dc83" + }, + "downloads": -1, + "filename": "clang_format-16.0.4-py2.py3-none-musllinux_1_1_x86_64.whl", + "has_sig": false, + "md5_digest": "20769b63aea9187be5cf80355a489dc8", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2108842, + "upload_time": "2023-05-17T14:11:39", + "upload_time_iso_8601": "2023-05-17T14:11:39.849802Z", + "url": "https://files.pythonhosted.org/packages/ac/c5/0e96d2293f4498e5891d37509d61a9971253cb7d4a8245eea7ce217cc916/clang_format-16.0.4-py2.py3-none-musllinux_1_1_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "f3db33d705fe124f64d00bb89b5f20a52a03a8618fb5ebc13039fdc580893a3c", + "md5": "601599a352a14e8ebad864ec5e4117ea", + "sha256": "4cdb618c7deaf9f864c367223d13e52def2cb457ff33c3fbb2c91cd4bfa5c03b" + }, + "downloads": -1, + "filename": "clang_format-16.0.4-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "601599a352a14e8ebad864ec5e4117ea", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1136711, + "upload_time": "2023-05-17T14:11:42", + "upload_time_iso_8601": "2023-05-17T14:11:42.575074Z", + "url": "https://files.pythonhosted.org/packages/f3/db/33d705fe124f64d00bb89b5f20a52a03a8618fb5ebc13039fdc580893a3c/clang_format-16.0.4-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "39957aeca87df4e6383e44daa189e7dc8d760f717da6d7d445a40f1090355cfe", + "md5": "eb5ac472e499a24681578dfbddc46d1f", + "sha256": "74e6d7b045774474bb5d142564cb64a5698915073f76b69046229504e5dbb96a" + }, + "downloads": -1, + "filename": "clang_format-16.0.4-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "eb5ac472e499a24681578dfbddc46d1f", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1310877, + "upload_time": "2023-05-17T14:11:44", + "upload_time_iso_8601": "2023-05-17T14:11:44.638742Z", + "url": "https://files.pythonhosted.org/packages/39/95/7aeca87df4e6383e44daa189e7dc8d760f717da6d7d445a40f1090355cfe/clang_format-16.0.4-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "666fe2523e90c8567a76451f2be9a75a7c83d99d6d95f2ad0072f397da04ad50", + "md5": "0f9208def7d0e61485fb629bf9d3fd9a", + "sha256": "97d1478ce52e403aa54165ba47df919327378e3ede2a7af322ea2e06a34b5d15" + }, + "downloads": -1, + "filename": "clang-format-16.0.4.tar.gz", + "has_sig": false, + "md5_digest": "0f9208def7d0e61485fb629bf9d3fd9a", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 9756, + "upload_time": "2023-05-17T14:11:46", + "upload_time_iso_8601": "2023-05-17T14:11:46.582000Z", + "url": "https://files.pythonhosted.org/packages/66/6f/e2523e90c8567a76451f2be9a75a7c83d99d6d95f2ad0072f397da04ad50/clang-format-16.0.4.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "16.0.5": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "0697cc124c5170fd7480dc53a9141687af6627b0b6f0f875e8fcf18c04b18cb4", + "md5": "28796ba9cebfb0ff63e02eed473b590d", + "sha256": "daa0994bd94b8ad62139e7e41aff476433976294a7c134e72c31982b3f2368a9" + }, + "downloads": -1, + "filename": "clang_format-16.0.5-py2.py3-none-macosx_10_9_universal2.whl", + "has_sig": false, + "md5_digest": "28796ba9cebfb0ff63e02eed473b590d", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2523567, + "upload_time": "2023-06-12T17:25:52", + "upload_time_iso_8601": "2023-06-12T17:25:52.758505Z", + "url": "https://files.pythonhosted.org/packages/06/97/cc124c5170fd7480dc53a9141687af6627b0b6f0f875e8fcf18c04b18cb4/clang_format-16.0.5-py2.py3-none-macosx_10_9_universal2.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "f6a035fda245d5542e37bc7e15fa32bfa0ea07e6460b16141b051e44775e0c74", + "md5": "01af5a33494050228d66aa96f9eb1de4", + "sha256": "0845f22028f0e3c373e2d72d1bc77cd395ce4049da52ac5d68271fd0886aa1c8" + }, + "downloads": -1, + "filename": "clang_format-16.0.5-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "01af5a33494050228d66aa96f9eb1de4", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1577099, + "upload_time": "2023-06-12T17:25:55", + "upload_time_iso_8601": "2023-06-12T17:25:55.218379Z", + "url": "https://files.pythonhosted.org/packages/f6/a0/35fda245d5542e37bc7e15fa32bfa0ea07e6460b16141b051e44775e0c74/clang_format-16.0.5-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "a8e01109a8a875a22bd7975a55431e87b9590f7eb729bcbd03bcecd051fa857b", + "md5": "f0874fcee644b5916b83a77c30e66b34", + "sha256": "90e363dc0d194ecc1105c523cb87c741844145dbd37eb4dd5cba09a7e6a6cfb3" + }, + "downloads": -1, + "filename": "clang_format-16.0.5-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "f0874fcee644b5916b83a77c30e66b34", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1749936, + "upload_time": "2023-06-12T17:25:57", + "upload_time_iso_8601": "2023-06-12T17:25:57.233305Z", + "url": "https://files.pythonhosted.org/packages/a8/e0/1109a8a875a22bd7975a55431e87b9590f7eb729bcbd03bcecd051fa857b/clang_format-16.0.5-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "891ef76824481cd74e9e3433bfaebfda64c8aeef26bdd1d8cbcbcabdf9463a58", + "md5": "9c7fc330fbd6a9193b0f2849373d798f", + "sha256": "305176fe6c0b52d874e9c466824db63f35442f2bce1848a28b1357e38971ac43" + }, + "downloads": -1, + "filename": "clang_format-16.0.5-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "9c7fc330fbd6a9193b0f2849373d798f", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2436487, + "upload_time": "2023-06-12T17:25:59", + "upload_time_iso_8601": "2023-06-12T17:25:59.330157Z", + "url": "https://files.pythonhosted.org/packages/89/1e/f76824481cd74e9e3433bfaebfda64c8aeef26bdd1d8cbcbcabdf9463a58/clang_format-16.0.5-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "ee086587af7292d0801a0b9f644e2f2e20567901737b4fcd5eebaa24b26c6b98", + "md5": "f2bd8057c64542411047a3771f88d4b1", + "sha256": "973fd3caee5713c61ef4a26aee8cb9d5ebef97567da180157c3a6d7406639e99" + }, + "downloads": -1, + "filename": "clang_format-16.0.5-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "f2bd8057c64542411047a3771f88d4b1", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1559189, + "upload_time": "2023-06-12T17:26:01", + "upload_time_iso_8601": "2023-06-12T17:26:01.441337Z", + "url": "https://files.pythonhosted.org/packages/ee/08/6587af7292d0801a0b9f644e2f2e20567901737b4fcd5eebaa24b26c6b98/clang_format-16.0.5-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "14f0be439cfb9df1def9aa607374fde01c2d675bfa3f706985e9f869140b8228", + "md5": "09fd5e3d153b425f83b9c158428c020b", + "sha256": "3b9247d6131564d716319b2809489a85cada49855c8df8e5683b59c07976003c" + }, + "downloads": -1, + "filename": "clang_format-16.0.5-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "09fd5e3d153b425f83b9c158428c020b", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1582389, + "upload_time": "2023-06-12T17:26:03", + "upload_time_iso_8601": "2023-06-12T17:26:03.450916Z", + "url": "https://files.pythonhosted.org/packages/14/f0/be439cfb9df1def9aa607374fde01c2d675bfa3f706985e9f869140b8228/clang_format-16.0.5-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "4495104a80c52f7cc1f48637f352e7ae2ff8f89b0e0e4ab2909a479cad9c4375", + "md5": "5bf137509cb5564b54db1cd21b2685e6", + "sha256": "2225ae315a17ece7e975f6dee71bc2103917b467f840540cca507c91bcd0b48c" + }, + "downloads": -1, + "filename": "clang_format-16.0.5-py2.py3-none-musllinux_1_1_aarch64.whl", + "has_sig": false, + "md5_digest": "5bf137509cb5564b54db1cd21b2685e6", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2084943, + "upload_time": "2023-06-12T17:26:04", + "upload_time_iso_8601": "2023-06-12T17:26:04.952759Z", + "url": "https://files.pythonhosted.org/packages/44/95/104a80c52f7cc1f48637f352e7ae2ff8f89b0e0e4ab2909a479cad9c4375/clang_format-16.0.5-py2.py3-none-musllinux_1_1_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "90f04e672eb51d972bda37ac975006162a8f07d4a8e28b24542770f83d7b7ab5", + "md5": "5c3e7c4de7537765f49915451e6169f4", + "sha256": "03819037273fb9e7339dad25ec469b95eeac4ad81477df5ec8e2a52d2f9bb6e7" + }, + "downloads": -1, + "filename": "clang_format-16.0.5-py2.py3-none-musllinux_1_1_i686.whl", + "has_sig": false, + "md5_digest": "5c3e7c4de7537765f49915451e6169f4", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2268843, + "upload_time": "2023-06-12T17:26:06", + "upload_time_iso_8601": "2023-06-12T17:26:06.574351Z", + "url": "https://files.pythonhosted.org/packages/90/f0/4e672eb51d972bda37ac975006162a8f07d4a8e28b24542770f83d7b7ab5/clang_format-16.0.5-py2.py3-none-musllinux_1_1_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "8b935c87733796738e467add41fe285ef13658031c5649ada7a67c8acf5a6573", + "md5": "c2ecc76026e31c9d335ebe88d7c88e4b", + "sha256": "6b8e575c68379d70aa3c2b6b55f7fd83a986ef3b63ca63fa4ce61968741c0508" + }, + "downloads": -1, + "filename": "clang_format-16.0.5-py2.py3-none-musllinux_1_1_ppc64le.whl", + "has_sig": false, + "md5_digest": "c2ecc76026e31c9d335ebe88d7c88e4b", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2427422, + "upload_time": "2023-06-12T17:26:08", + "upload_time_iso_8601": "2023-06-12T17:26:08.347368Z", + "url": "https://files.pythonhosted.org/packages/8b/93/5c87733796738e467add41fe285ef13658031c5649ada7a67c8acf5a6573/clang_format-16.0.5-py2.py3-none-musllinux_1_1_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "a6d3a251d7ce0a1a2deae66f2a4347dfc3b1bacba07a135d63fbe9e748ff4a0b", + "md5": "b6d9827b1a1033e0bbb0a5efe684c7ed", + "sha256": "8030987a74658d9312bb5a3769c309651a5335b70f8a7e12c091eefaee975abb" + }, + "downloads": -1, + "filename": "clang_format-16.0.5-py2.py3-none-musllinux_1_1_s390x.whl", + "has_sig": false, + "md5_digest": "b6d9827b1a1033e0bbb0a5efe684c7ed", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2114290, + "upload_time": "2023-06-12T17:26:10", + "upload_time_iso_8601": "2023-06-12T17:26:10.540456Z", + "url": "https://files.pythonhosted.org/packages/a6/d3/a251d7ce0a1a2deae66f2a4347dfc3b1bacba07a135d63fbe9e748ff4a0b/clang_format-16.0.5-py2.py3-none-musllinux_1_1_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "a8a1cc69228411d3af18c8e597e4a6f118a3649cdc74eddcca643dbc12887981", + "md5": "63a42b4f0c49b550f317cf96a6ad41b2", + "sha256": "2428a506dff768e1cf1e6583d5eca0ea58927c0ed8d5cdc5cdc62ec8d8108ee3" + }, + "downloads": -1, + "filename": "clang_format-16.0.5-py2.py3-none-musllinux_1_1_x86_64.whl", + "has_sig": false, + "md5_digest": "63a42b4f0c49b550f317cf96a6ad41b2", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2111947, + "upload_time": "2023-06-12T17:26:11", + "upload_time_iso_8601": "2023-06-12T17:26:11.967032Z", + "url": "https://files.pythonhosted.org/packages/a8/a1/cc69228411d3af18c8e597e4a6f118a3649cdc74eddcca643dbc12887981/clang_format-16.0.5-py2.py3-none-musllinux_1_1_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "c7394ecfd9b09582ddb298a863a670dc6f3cb2e8dae0cf97018c6eea4dfb0735", + "md5": "8387d94bc785771e2062189403813a1c", + "sha256": "435c31f5ea31414bcc7b976beff659f2e8106c36fe1a9661530f33d5791eeae3" + }, + "downloads": -1, + "filename": "clang_format-16.0.5-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "8387d94bc785771e2062189403813a1c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1136788, + "upload_time": "2023-06-12T17:26:13", + "upload_time_iso_8601": "2023-06-12T17:26:13.410166Z", + "url": "https://files.pythonhosted.org/packages/c7/39/4ecfd9b09582ddb298a863a670dc6f3cb2e8dae0cf97018c6eea4dfb0735/clang_format-16.0.5-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "048d6df2f067decbacb601177a78c0cab50093d59e19126d08340e7ae12e8e98", + "md5": "2f27684f585d2f5353ba96790858a504", + "sha256": "70ec2b7be91f2de10704d812f0a975b0abdfcda75f369facb2c0a0bbb6a888ca" + }, + "downloads": -1, + "filename": "clang_format-16.0.5-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "2f27684f585d2f5353ba96790858a504", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1310974, + "upload_time": "2023-06-12T17:26:15", + "upload_time_iso_8601": "2023-06-12T17:26:15.371522Z", + "url": "https://files.pythonhosted.org/packages/04/8d/6df2f067decbacb601177a78c0cab50093d59e19126d08340e7ae12e8e98/clang_format-16.0.5-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "6eeb2d925e51d3826932a3a219dc7abed1cc6681a17d262ab00df5e8edb962f3", + "md5": "76b35ac6ae2fd77193974f98180ac3bb", + "sha256": "59a1df466bec1fbfb6fc022ad3c03a3f98965f530d440bf0318a110617078e4b" + }, + "downloads": -1, + "filename": "clang-format-16.0.5.tar.gz", + "has_sig": false, + "md5_digest": "76b35ac6ae2fd77193974f98180ac3bb", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 9721, + "upload_time": "2023-06-12T17:26:16", + "upload_time_iso_8601": "2023-06-12T17:26:16.881984Z", + "url": "https://files.pythonhosted.org/packages/6e/eb/2d925e51d3826932a3a219dc7abed1cc6681a17d262ab00df5e8edb962f3/clang-format-16.0.5.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "16.0.6": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "01fb8267d7035ec217df109cfde2164a26121413c3e7cd92896b862ce86b947c", + "md5": "0e6cd32c54889904748d75fac30460ea", + "sha256": "4ef214db7c907bc3c5dda866709704b3f6f6e106f6746ae724e1ed499bc4fab8" + }, + "downloads": -1, + "filename": "clang_format-16.0.6-py2.py3-none-macosx_10_9_universal2.whl", + "has_sig": false, + "md5_digest": "0e6cd32c54889904748d75fac30460ea", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2523568, + "upload_time": "2023-06-14T17:07:14", + "upload_time_iso_8601": "2023-06-14T17:07:14.274468Z", + "url": "https://files.pythonhosted.org/packages/01/fb/8267d7035ec217df109cfde2164a26121413c3e7cd92896b862ce86b947c/clang_format-16.0.6-py2.py3-none-macosx_10_9_universal2.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "a1553406c733edd8bfd08c69d63e2e90acd3129f35bb3aa09d65e26809da8377", + "md5": "9192660fa4c917aa76bc6499382ef365", + "sha256": "a0c31ffdf65b43f116b46125fead9aa0398409d0a95e5c650f417e65a412be2d" + }, + "downloads": -1, + "filename": "clang_format-16.0.6-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "9192660fa4c917aa76bc6499382ef365", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1577099, + "upload_time": "2023-06-14T17:07:16", + "upload_time_iso_8601": "2023-06-14T17:07:16.546700Z", + "url": "https://files.pythonhosted.org/packages/a1/55/3406c733edd8bfd08c69d63e2e90acd3129f35bb3aa09d65e26809da8377/clang_format-16.0.6-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "93b77783e77a5a77a356e3f25f8428ef9a51d147450fa3d923b4c8fc6cabf947", + "md5": "fd99490925086fe5872992c6922cbab2", + "sha256": "13f4c5ac8e844be2271a37bb9293466c3adb18411acc9a77b6abfefbb2f06a66" + }, + "downloads": -1, + "filename": "clang_format-16.0.6-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "fd99490925086fe5872992c6922cbab2", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1749937, + "upload_time": "2023-06-14T17:07:18", + "upload_time_iso_8601": "2023-06-14T17:07:18.725283Z", + "url": "https://files.pythonhosted.org/packages/93/b7/7783e77a5a77a356e3f25f8428ef9a51d147450fa3d923b4c8fc6cabf947/clang_format-16.0.6-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "737a65ef4e5bfc9db133b6131c99e12e802b15b12bc75a9ec89dac6028e3c498", + "md5": "82c10c23f6185619b828deadc445cea3", + "sha256": "82ebf340bf52253a92a70c3d118554b149fe1535ecad7e1f2cee14b3e402fb2e" + }, + "downloads": -1, + "filename": "clang_format-16.0.6-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "82c10c23f6185619b828deadc445cea3", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2436491, + "upload_time": "2023-06-14T17:07:20", + "upload_time_iso_8601": "2023-06-14T17:07:20.745863Z", + "url": "https://files.pythonhosted.org/packages/73/7a/65ef4e5bfc9db133b6131c99e12e802b15b12bc75a9ec89dac6028e3c498/clang_format-16.0.6-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "658806f0a5774a87b981962236cf7e67ac8443b37b41807682bd4643d58b7617", + "md5": "e3657a44f87cb1dd169cafbbc3040fa8", + "sha256": "dbaece0f25c172c3711a1dd0d648a36e273c830667033b04f1b1432d19b1234e" + }, + "downloads": -1, + "filename": "clang_format-16.0.6-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "e3657a44f87cb1dd169cafbbc3040fa8", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1559183, + "upload_time": "2023-06-14T17:07:22", + "upload_time_iso_8601": "2023-06-14T17:07:22.751461Z", + "url": "https://files.pythonhosted.org/packages/65/88/06f0a5774a87b981962236cf7e67ac8443b37b41807682bd4643d58b7617/clang_format-16.0.6-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "834710591237672762b61099011f04f154d5b46c21b4f88979c92331a04edacb", + "md5": "9310a9c3aa6f18fabf48022ddaa7da70", + "sha256": "20c9b395782fe662ea51500d3c551161388e0cd2baf8716caf97b0e5817194e0" + }, + "downloads": -1, + "filename": "clang_format-16.0.6-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "9310a9c3aa6f18fabf48022ddaa7da70", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1582387, + "upload_time": "2023-06-14T17:07:24", + "upload_time_iso_8601": "2023-06-14T17:07:24.123873Z", + "url": "https://files.pythonhosted.org/packages/83/47/10591237672762b61099011f04f154d5b46c21b4f88979c92331a04edacb/clang_format-16.0.6-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "88462a8311046424f4831b1946239e2d7b5e25f06343389dc2e43708807561c2", + "md5": "680dd1ab694b7c21291d8eb8d01b9b93", + "sha256": "b0b9996b2528edc05dcc86f0735e6db954e54f85c0b6c460e4fc170bcb309660" + }, + "downloads": -1, + "filename": "clang_format-16.0.6-py2.py3-none-musllinux_1_1_aarch64.whl", + "has_sig": false, + "md5_digest": "680dd1ab694b7c21291d8eb8d01b9b93", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2084937, + "upload_time": "2023-06-14T17:07:26", + "upload_time_iso_8601": "2023-06-14T17:07:26.171810Z", + "url": "https://files.pythonhosted.org/packages/88/46/2a8311046424f4831b1946239e2d7b5e25f06343389dc2e43708807561c2/clang_format-16.0.6-py2.py3-none-musllinux_1_1_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "6ea51872bd89d79f166c856cad9a5c73bde62039313d9e78c8b55fbd7d6e847c", + "md5": "bd5c6892a964ea13596e546b4ce17fea", + "sha256": "59cda5f9e9e0cb004396d28ae450af638efefb884124305130e230c691578800" + }, + "downloads": -1, + "filename": "clang_format-16.0.6-py2.py3-none-musllinux_1_1_i686.whl", + "has_sig": false, + "md5_digest": "bd5c6892a964ea13596e546b4ce17fea", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2268846, + "upload_time": "2023-06-14T17:07:28", + "upload_time_iso_8601": "2023-06-14T17:07:28.235836Z", + "url": "https://files.pythonhosted.org/packages/6e/a5/1872bd89d79f166c856cad9a5c73bde62039313d9e78c8b55fbd7d6e847c/clang_format-16.0.6-py2.py3-none-musllinux_1_1_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "ec21841abda9b333278bfb1a0d5e8b4c061c5be05945f06aa6389ae92edf7430", + "md5": "448cb70959a109a2108fb23ba6d8ebe0", + "sha256": "1598eaa61cc30517ad3b178ab3a76735bc3e76c6fdc12c100ea91ec52dccb9f2" + }, + "downloads": -1, + "filename": "clang_format-16.0.6-py2.py3-none-musllinux_1_1_ppc64le.whl", + "has_sig": false, + "md5_digest": "448cb70959a109a2108fb23ba6d8ebe0", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2427417, + "upload_time": "2023-06-14T17:07:30", + "upload_time_iso_8601": "2023-06-14T17:07:30.145829Z", + "url": "https://files.pythonhosted.org/packages/ec/21/841abda9b333278bfb1a0d5e8b4c061c5be05945f06aa6389ae92edf7430/clang_format-16.0.6-py2.py3-none-musllinux_1_1_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "791ad62bf21158696933e14144fa964caaada6d7a8f911e2584ca3ab203869d6", + "md5": "94e44fd5ad34bd90497e402da8cb9934", + "sha256": "916bd2b0426cd6c922b77aae1c30709bf0800da44bd58249de052c782c54bc13" + }, + "downloads": -1, + "filename": "clang_format-16.0.6-py2.py3-none-musllinux_1_1_s390x.whl", + "has_sig": false, + "md5_digest": "94e44fd5ad34bd90497e402da8cb9934", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2114258, + "upload_time": "2023-06-14T17:07:32", + "upload_time_iso_8601": "2023-06-14T17:07:32.161111Z", + "url": "https://files.pythonhosted.org/packages/79/1a/d62bf21158696933e14144fa964caaada6d7a8f911e2584ca3ab203869d6/clang_format-16.0.6-py2.py3-none-musllinux_1_1_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "03df2f4d180938655f59f31440e7f4fbdb77d24bb57a9ea6ea1cecfbc9d57748", + "md5": "2e4b3addfa92e8f211841e6e9ac997a5", + "sha256": "f6f043c620de225b2bde14a47686089b3d8e2adee07e0cc3a982b524f99d0516" + }, + "downloads": -1, + "filename": "clang_format-16.0.6-py2.py3-none-musllinux_1_1_x86_64.whl", + "has_sig": false, + "md5_digest": "2e4b3addfa92e8f211841e6e9ac997a5", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2111947, + "upload_time": "2023-06-14T17:07:34", + "upload_time_iso_8601": "2023-06-14T17:07:34.035200Z", + "url": "https://files.pythonhosted.org/packages/03/df/2f4d180938655f59f31440e7f4fbdb77d24bb57a9ea6ea1cecfbc9d57748/clang_format-16.0.6-py2.py3-none-musllinux_1_1_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "538f3aa5361a47809763afe8b72813fda15e4989c6029f12e9ec28460badb264", + "md5": "53930d88ac5bb7eb3c05ea40b2222278", + "sha256": "2ddaaef5a52dcf50744273067389f333b0ff90334fb8ab7b0ef4b00985219e8f" + }, + "downloads": -1, + "filename": "clang_format-16.0.6-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "53930d88ac5bb7eb3c05ea40b2222278", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1136790, + "upload_time": "2023-06-14T17:07:36", + "upload_time_iso_8601": "2023-06-14T17:07:36.005104Z", + "url": "https://files.pythonhosted.org/packages/53/8f/3aa5361a47809763afe8b72813fda15e4989c6029f12e9ec28460badb264/clang_format-16.0.6-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "9bb066c1799ef634511829a4c2c419831f40116196b5f4041055e2bc4ea9645b", + "md5": "ed53a0000dff777c82fd5d93cfec3350", + "sha256": "e59d80c1ebb4caa744ab6a47200d24bf27bca773834eec0386c7a90e5a6caf1c" + }, + "downloads": -1, + "filename": "clang_format-16.0.6-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "ed53a0000dff777c82fd5d93cfec3350", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1310980, + "upload_time": "2023-06-14T17:07:37", + "upload_time_iso_8601": "2023-06-14T17:07:37.997493Z", + "url": "https://files.pythonhosted.org/packages/9b/b0/66c1799ef634511829a4c2c419831f40116196b5f4041055e2bc4ea9645b/clang_format-16.0.6-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "70d7e36c008ab281014a11cbeb7f84c5d26e2e41ea0195e238db8de8440b4369", + "md5": "fef9e74ec1494fbe53be1f08ba91144d", + "sha256": "6805f45a90fd7085b08fe917dddf8ace5e957c03bbacf43d09ca8312a1d981e5" + }, + "downloads": -1, + "filename": "clang-format-16.0.6.tar.gz", + "has_sig": false, + "md5_digest": "fef9e74ec1494fbe53be1f08ba91144d", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 9727, + "upload_time": "2023-06-14T17:07:39", + "upload_time_iso_8601": "2023-06-14T17:07:39.255651Z", + "url": "https://files.pythonhosted.org/packages/70/d7/e36c008ab281014a11cbeb7f84c5d26e2e41ea0195e238db8de8440b4369/clang-format-16.0.6.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "17.0.1": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "337292175d2b9a454bc3b7b6fa5699aaf58dedf7e0b9ca0f2cd576ba04df90b4", + "md5": "501ccb59e478f2a0f7e462f8336d8b88", + "sha256": "88b84ef2255a95b4e4aeaf3c207f4f7521e821b6988e91948318ce5ce4665670" + }, + "downloads": -1, + "filename": "clang_format-17.0.1-py2.py3-none-macosx_10_9_universal2.whl", + "has_sig": false, + "md5_digest": "501ccb59e478f2a0f7e462f8336d8b88", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2617730, + "upload_time": "2023-09-19T11:18:09", + "upload_time_iso_8601": "2023-09-19T11:18:09.069950Z", + "url": "https://files.pythonhosted.org/packages/33/72/92175d2b9a454bc3b7b6fa5699aaf58dedf7e0b9ca0f2cd576ba04df90b4/clang_format-17.0.1-py2.py3-none-macosx_10_9_universal2.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "02f13ca53bb6c4f86902fd9faa86730d92ad5b6007d26c260835c43a08e8365b", + "md5": "2556d1a5587f3b314b517d562477aec6", + "sha256": "a2579d779ff04f43e44b7c507b614d7f053e72b4713b9c45039d509d6de640f3" + }, + "downloads": -1, + "filename": "clang_format-17.0.1-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "2556d1a5587f3b314b517d562477aec6", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1620534, + "upload_time": "2023-09-19T11:18:11", + "upload_time_iso_8601": "2023-09-19T11:18:11.097295Z", + "url": "https://files.pythonhosted.org/packages/02/f1/3ca53bb6c4f86902fd9faa86730d92ad5b6007d26c260835c43a08e8365b/clang_format-17.0.1-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "c09d5761467f8ded43f4cacf857726a40816a491fe194c9216623f6c128771ad", + "md5": "c3008c2f0da249175ba0545ce090ab44", + "sha256": "1786db4b7201055932b5eab83716f0065dbb9ed28528b0fb9b1db4ccf2f1d837" + }, + "downloads": -1, + "filename": "clang_format-17.0.1-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "c3008c2f0da249175ba0545ce090ab44", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1801647, + "upload_time": "2023-09-19T11:18:12", + "upload_time_iso_8601": "2023-09-19T11:18:12.890483Z", + "url": "https://files.pythonhosted.org/packages/c0/9d/5761467f8ded43f4cacf857726a40816a491fe194c9216623f6c128771ad/clang_format-17.0.1-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "95043e5508ce16d8bbe235f0e3a6b6c4fce029d8ec72fa4ded597e470780e106", + "md5": "cd145709008613006e72b3ef2a2019db", + "sha256": "b82998fa92bd26922939977620174becd2c0471e0271acf7a9247bf7adfb5b45" + }, + "downloads": -1, + "filename": "clang_format-17.0.1-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "cd145709008613006e72b3ef2a2019db", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2478532, + "upload_time": "2023-09-19T11:18:14", + "upload_time_iso_8601": "2023-09-19T11:18:14.732474Z", + "url": "https://files.pythonhosted.org/packages/95/04/3e5508ce16d8bbe235f0e3a6b6c4fce029d8ec72fa4ded597e470780e106/clang_format-17.0.1-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "7834d4c198fd1af1386f3f9fc9fd9d9e78dcc4a38156b919fe526a1f00048295", + "md5": "3665d6f79c84b5a14032ed41a54f2a77", + "sha256": "2f692ce62454aede6bae4c059c5bc3f2996e077440ac2a363bfb35222b509255" + }, + "downloads": -1, + "filename": "clang_format-17.0.1-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "3665d6f79c84b5a14032ed41a54f2a77", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1609050, + "upload_time": "2023-09-19T11:18:16", + "upload_time_iso_8601": "2023-09-19T11:18:16.064086Z", + "url": "https://files.pythonhosted.org/packages/78/34/d4c198fd1af1386f3f9fc9fd9d9e78dcc4a38156b919fe526a1f00048295/clang_format-17.0.1-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "893b5ebd3ec6cdc8a66d489af4b6ff5389e5891b70a7c0e1553674ce358d3e89", + "md5": "475b1f08ff89320e1a8b873bd737b808", + "sha256": "5a7184aac33cd086c116186eb6aeb62fcffb0b8a9e4dc532f9c6cdafaeba400d" + }, + "downloads": -1, + "filename": "clang_format-17.0.1-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "475b1f08ff89320e1a8b873bd737b808", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1627964, + "upload_time": "2023-09-19T11:18:17", + "upload_time_iso_8601": "2023-09-19T11:18:17.929785Z", + "url": "https://files.pythonhosted.org/packages/89/3b/5ebd3ec6cdc8a66d489af4b6ff5389e5891b70a7c0e1553674ce358d3e89/clang_format-17.0.1-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "6deb559b3a934109dc6163b6b93c5acc6f854c90c40f6a94a88e3d5285d28621", + "md5": "46bddf09067e3cb4e7192f90515b409e", + "sha256": "63b5b454cdde493666227969a045d5641d642c3835489dbb26ddafe6345e20fa" + }, + "downloads": -1, + "filename": "clang_format-17.0.1-py2.py3-none-musllinux_1_1_aarch64.whl", + "has_sig": false, + "md5_digest": "46bddf09067e3cb4e7192f90515b409e", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2131663, + "upload_time": "2023-09-19T11:18:19", + "upload_time_iso_8601": "2023-09-19T11:18:19.178116Z", + "url": "https://files.pythonhosted.org/packages/6d/eb/559b3a934109dc6163b6b93c5acc6f854c90c40f6a94a88e3d5285d28621/clang_format-17.0.1-py2.py3-none-musllinux_1_1_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "e36b3f01112f5cd638537d3cd5116d0105baf41a51056ff63050b78db0cf11e1", + "md5": "c16fa2668e10c510552375d30c3002fd", + "sha256": "726187da6f3120af78a2585c6a13063b82d53f36072132a48f11af0ab1aec3fb" + }, + "downloads": -1, + "filename": "clang_format-17.0.1-py2.py3-none-musllinux_1_1_i686.whl", + "has_sig": false, + "md5_digest": "c16fa2668e10c510552375d30c3002fd", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2317504, + "upload_time": "2023-09-19T11:18:21", + "upload_time_iso_8601": "2023-09-19T11:18:21.235982Z", + "url": "https://files.pythonhosted.org/packages/e3/6b/3f01112f5cd638537d3cd5116d0105baf41a51056ff63050b78db0cf11e1/clang_format-17.0.1-py2.py3-none-musllinux_1_1_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "213bc8e85ec0d49a593414f1cace2789b07fca23853d59187e3979053766e208", + "md5": "e9b4445131a3eff615bcf4284fb60fdd", + "sha256": "c2f15f95d324b6f963dd00355673216349d88669826bf11e664cbfcadf84ab0e" + }, + "downloads": -1, + "filename": "clang_format-17.0.1-py2.py3-none-musllinux_1_1_ppc64le.whl", + "has_sig": false, + "md5_digest": "e9b4445131a3eff615bcf4284fb60fdd", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2485076, + "upload_time": "2023-09-19T11:18:22", + "upload_time_iso_8601": "2023-09-19T11:18:22.991236Z", + "url": "https://files.pythonhosted.org/packages/21/3b/c8e85ec0d49a593414f1cace2789b07fca23853d59187e3979053766e208/clang_format-17.0.1-py2.py3-none-musllinux_1_1_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "e3207bc31a467718cc33c78c219d36ec7014a24984b807301fee4a6875dbef07", + "md5": "c74b3f9487a90a096224803f1689aaa1", + "sha256": "8b3563ba153ef3613f10fafe42276ffd8ee4177001e6bba6d03a5573b051d568" + }, + "downloads": -1, + "filename": "clang_format-17.0.1-py2.py3-none-musllinux_1_1_s390x.whl", + "has_sig": false, + "md5_digest": "c74b3f9487a90a096224803f1689aaa1", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2160359, + "upload_time": "2023-09-19T11:18:24", + "upload_time_iso_8601": "2023-09-19T11:18:24.291884Z", + "url": "https://files.pythonhosted.org/packages/e3/20/7bc31a467718cc33c78c219d36ec7014a24984b807301fee4a6875dbef07/clang_format-17.0.1-py2.py3-none-musllinux_1_1_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "754c1d5c7f70f16234ff71402e135b9d4a10bfabd190a459b47ea73fb9321cf5", + "md5": "edd2a0937fcacaa045518ccc07fac1a7", + "sha256": "ffa0e7153d6af1f18fa1f1838a472bc6feea5f8deb8516e50cfedd60527ea274" + }, + "downloads": -1, + "filename": "clang_format-17.0.1-py2.py3-none-musllinux_1_1_x86_64.whl", + "has_sig": false, + "md5_digest": "edd2a0937fcacaa045518ccc07fac1a7", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2149510, + "upload_time": "2023-09-19T11:18:25", + "upload_time_iso_8601": "2023-09-19T11:18:25.689611Z", + "url": "https://files.pythonhosted.org/packages/75/4c/1d5c7f70f16234ff71402e135b9d4a10bfabd190a459b47ea73fb9321cf5/clang_format-17.0.1-py2.py3-none-musllinux_1_1_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "dcd34ea450da1bd28aa419b4843229650718b1c54c4777b4af260a75ce97f5fe", + "md5": "f9fa651157dca5436da0223d323a23a8", + "sha256": "6cb1d56665af56b87f3dd7f445a3dbc74836c4c814ae42ffdecc9573dfd5ac26" + }, + "downloads": -1, + "filename": "clang_format-17.0.1-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "f9fa651157dca5436da0223d323a23a8", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1161716, + "upload_time": "2023-09-19T11:18:27", + "upload_time_iso_8601": "2023-09-19T11:18:27.867111Z", + "url": "https://files.pythonhosted.org/packages/dc/d3/4ea450da1bd28aa419b4843229650718b1c54c4777b4af260a75ce97f5fe/clang_format-17.0.1-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "76f4429bc45db77a7b176e13d12d7237605a2a91443cf2ae7d448e48a5b19160", + "md5": "9123529a98a3b0fb7d47be12c47fdcff", + "sha256": "f2cde239dd6d41a374aaee7749444b982da29d64a3db68456fab883489b84744" + }, + "downloads": -1, + "filename": "clang_format-17.0.1-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "9123529a98a3b0fb7d47be12c47fdcff", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1347709, + "upload_time": "2023-09-19T11:18:30", + "upload_time_iso_8601": "2023-09-19T11:18:30.253873Z", + "url": "https://files.pythonhosted.org/packages/76/f4/429bc45db77a7b176e13d12d7237605a2a91443cf2ae7d448e48a5b19160/clang_format-17.0.1-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "59418853fc75def5c70440f2713213f20182cbc759fdec630515e9164cc38d1f", + "md5": "84a5fac4c8ceed611ff82dcd17246235", + "sha256": "ed017015563d5195de2edc0e99ad7e10040cb724057b4968705778e8dfff068f" + }, + "downloads": -1, + "filename": "clang-format-17.0.1.tar.gz", + "has_sig": false, + "md5_digest": "84a5fac4c8ceed611ff82dcd17246235", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 9723, + "upload_time": "2023-09-19T11:18:32", + "upload_time_iso_8601": "2023-09-19T11:18:32.005681Z", + "url": "https://files.pythonhosted.org/packages/59/41/8853fc75def5c70440f2713213f20182cbc759fdec630515e9164cc38d1f/clang-format-17.0.1.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "17.0.2": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "f983808b9251c5006757b5c3d1eed524d494b4d2ab4e9cb2f4184cdd4109e572", + "md5": "00d6364f45fc04442e517b37002cb7d4", + "sha256": "094b896f26e31cdd6be24b1663fac603273aaf1afb5661bf433155fbefcf8e05" + }, + "downloads": -1, + "filename": "clang_format-17.0.2-py2.py3-none-macosx_10_9_universal2.whl", + "has_sig": false, + "md5_digest": "00d6364f45fc04442e517b37002cb7d4", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2617727, + "upload_time": "2023-10-04T12:07:15", + "upload_time_iso_8601": "2023-10-04T12:07:15.404777Z", + "url": "https://files.pythonhosted.org/packages/f9/83/808b9251c5006757b5c3d1eed524d494b4d2ab4e9cb2f4184cdd4109e572/clang_format-17.0.2-py2.py3-none-macosx_10_9_universal2.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "eb5648d24450393cd2eeba52c2a89af4a4756740d2f63c0fcd70097bb23527d8", + "md5": "e4f54c5d7a7e31e9bad7f1103c5f3461", + "sha256": "ecb087f8259c0d01f8b985e0b0e2574fcf5757de2d224452983f64f571e8041b" + }, + "downloads": -1, + "filename": "clang_format-17.0.2-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "e4f54c5d7a7e31e9bad7f1103c5f3461", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1620535, + "upload_time": "2023-10-04T12:07:17", + "upload_time_iso_8601": "2023-10-04T12:07:17.519251Z", + "url": "https://files.pythonhosted.org/packages/eb/56/48d24450393cd2eeba52c2a89af4a4756740d2f63c0fcd70097bb23527d8/clang_format-17.0.2-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "9275f658a85c97ee597a04226c6a0ebeabe73cc3c7bb61aca66028eb945ed6ae", + "md5": "a5df46f92d0ba228e0de8b9e003edb19", + "sha256": "6bfc87a8a785f096fb827ff0d635375624faa3ad1034b5b2f6f7b45523e0903c" + }, + "downloads": -1, + "filename": "clang_format-17.0.2-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "a5df46f92d0ba228e0de8b9e003edb19", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1801649, + "upload_time": "2023-10-04T12:07:18", + "upload_time_iso_8601": "2023-10-04T12:07:18.996716Z", + "url": "https://files.pythonhosted.org/packages/92/75/f658a85c97ee597a04226c6a0ebeabe73cc3c7bb61aca66028eb945ed6ae/clang_format-17.0.2-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "fe467f94393b9c45cbf3635f1365a7f3992bac119c9332c2c7ba8e5d68b5ff81", + "md5": "08007494ecd0fbe76c492aba2f82835d", + "sha256": "d55ab88a1135e7d2331fb350c7759f63d09acdcc8985e0a89feccda34dd62149" + }, + "downloads": -1, + "filename": "clang_format-17.0.2-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "08007494ecd0fbe76c492aba2f82835d", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2478536, + "upload_time": "2023-10-04T12:07:20", + "upload_time_iso_8601": "2023-10-04T12:07:20.966845Z", + "url": "https://files.pythonhosted.org/packages/fe/46/7f94393b9c45cbf3635f1365a7f3992bac119c9332c2c7ba8e5d68b5ff81/clang_format-17.0.2-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "9f86750fb169e43b56802408bab97739e2721b9a9a31268b89f09d3e26b49c0b", + "md5": "f29d2c4a228ec3573f347933311261f2", + "sha256": "6da6d64c538b2119caf98b7bb5fe2c3dae0ba38d51cb667d292b5a77d0607324" + }, + "downloads": -1, + "filename": "clang_format-17.0.2-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "f29d2c4a228ec3573f347933311261f2", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1609045, + "upload_time": "2023-10-04T12:07:22", + "upload_time_iso_8601": "2023-10-04T12:07:22.919451Z", + "url": "https://files.pythonhosted.org/packages/9f/86/750fb169e43b56802408bab97739e2721b9a9a31268b89f09d3e26b49c0b/clang_format-17.0.2-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "0e286a53cc9fbae48052cc07cc09d51ba3ddda2c1029642126d087c52d2adcde", + "md5": "e2ca09daf67883e04057eef2fd4e7c6a", + "sha256": "2bac05ac9c76fd28e936190c2f5644f427be813f2c44eed570f144969cfdda4d" + }, + "downloads": -1, + "filename": "clang_format-17.0.2-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "e2ca09daf67883e04057eef2fd4e7c6a", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1627964, + "upload_time": "2023-10-04T12:07:24", + "upload_time_iso_8601": "2023-10-04T12:07:24.262526Z", + "url": "https://files.pythonhosted.org/packages/0e/28/6a53cc9fbae48052cc07cc09d51ba3ddda2c1029642126d087c52d2adcde/clang_format-17.0.2-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "ac74d1ac15c6f3b31a6b742da7b004536f382343eb71b6eb56d8baac50ffbc40", + "md5": "6b2a6bb079b1aa74475d356d033df614", + "sha256": "bbf8837f201c30284e70f9b32ef069b01cbbe9c8019fc4fa699ee6c47807d11c" + }, + "downloads": -1, + "filename": "clang_format-17.0.2-py2.py3-none-musllinux_1_1_aarch64.whl", + "has_sig": false, + "md5_digest": "6b2a6bb079b1aa74475d356d033df614", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2131666, + "upload_time": "2023-10-04T12:07:25", + "upload_time_iso_8601": "2023-10-04T12:07:25.667464Z", + "url": "https://files.pythonhosted.org/packages/ac/74/d1ac15c6f3b31a6b742da7b004536f382343eb71b6eb56d8baac50ffbc40/clang_format-17.0.2-py2.py3-none-musllinux_1_1_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "a88eddd09281620af2dff1fcd84ccd54c23365407f9465719d4c7042afd92152", + "md5": "96c16fe379e0250d0dcf4b9c98fa15b6", + "sha256": "0f872082b2bdf8bac03e15ebccb9086b0d5c456d1381a158a8a0e52cab80f4b9" + }, + "downloads": -1, + "filename": "clang_format-17.0.2-py2.py3-none-musllinux_1_1_i686.whl", + "has_sig": false, + "md5_digest": "96c16fe379e0250d0dcf4b9c98fa15b6", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2317508, + "upload_time": "2023-10-04T12:07:27", + "upload_time_iso_8601": "2023-10-04T12:07:27.562041Z", + "url": "https://files.pythonhosted.org/packages/a8/8e/ddd09281620af2dff1fcd84ccd54c23365407f9465719d4c7042afd92152/clang_format-17.0.2-py2.py3-none-musllinux_1_1_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "1e068607b149bfd3c6006ac62ba55104e59d5a2b2b6d9113c8acea47fc027259", + "md5": "8b68739a0e465db11f6e3940fa9c7601", + "sha256": "9ee9cb981bf41a40eb3bb74601fe830edca94fa0baceaf9c104643af401c3a08" + }, + "downloads": -1, + "filename": "clang_format-17.0.2-py2.py3-none-musllinux_1_1_ppc64le.whl", + "has_sig": false, + "md5_digest": "8b68739a0e465db11f6e3940fa9c7601", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2485076, + "upload_time": "2023-10-04T12:07:28", + "upload_time_iso_8601": "2023-10-04T12:07:28.976698Z", + "url": "https://files.pythonhosted.org/packages/1e/06/8607b149bfd3c6006ac62ba55104e59d5a2b2b6d9113c8acea47fc027259/clang_format-17.0.2-py2.py3-none-musllinux_1_1_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "674904c8e4a4c4ab37fff8bde381f9733ef32ac462518b6b01b00b8ffaaca4dc", + "md5": "d8c703565baf7e7e637d6a237451b6b0", + "sha256": "3d7a63f32f48b8ca670a797cd574f1487472ef83c0f5eda94fc6551e3e187fe0" + }, + "downloads": -1, + "filename": "clang_format-17.0.2-py2.py3-none-musllinux_1_1_s390x.whl", + "has_sig": false, + "md5_digest": "d8c703565baf7e7e637d6a237451b6b0", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2160362, + "upload_time": "2023-10-04T12:07:30", + "upload_time_iso_8601": "2023-10-04T12:07:30.979461Z", + "url": "https://files.pythonhosted.org/packages/67/49/04c8e4a4c4ab37fff8bde381f9733ef32ac462518b6b01b00b8ffaaca4dc/clang_format-17.0.2-py2.py3-none-musllinux_1_1_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "871da4eeb3c19f8fe3c2d5b0ec10db77d84c574f332f35ef99548e89c5e7b8e1", + "md5": "27ddae6e2d06a06ded41becf3f371af7", + "sha256": "fafdc5b673cb791b6034ff9db8cc45492a27da1a1c7e7fcb9a55dc2748828f44" + }, + "downloads": -1, + "filename": "clang_format-17.0.2-py2.py3-none-musllinux_1_1_x86_64.whl", + "has_sig": false, + "md5_digest": "27ddae6e2d06a06ded41becf3f371af7", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2149510, + "upload_time": "2023-10-04T12:07:33", + "upload_time_iso_8601": "2023-10-04T12:07:33.021151Z", + "url": "https://files.pythonhosted.org/packages/87/1d/a4eeb3c19f8fe3c2d5b0ec10db77d84c574f332f35ef99548e89c5e7b8e1/clang_format-17.0.2-py2.py3-none-musllinux_1_1_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "a506f6ee1ea26ec48bae76d2e31947f7963b68b9e250362248563e23c00d8f00", + "md5": "48aca3905874a995f520472141e6642a", + "sha256": "c3d513fc3f42f2b58efe9027291bb23c52d125335de540b47ea94183d2faad42" + }, + "downloads": -1, + "filename": "clang_format-17.0.2-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "48aca3905874a995f520472141e6642a", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1161712, + "upload_time": "2023-10-04T12:07:34", + "upload_time_iso_8601": "2023-10-04T12:07:34.895423Z", + "url": "https://files.pythonhosted.org/packages/a5/06/f6ee1ea26ec48bae76d2e31947f7963b68b9e250362248563e23c00d8f00/clang_format-17.0.2-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "957f0ba8d7327551df5cca6a8b85de294d5f78a8387dfffd71c6f2c392a260d1", + "md5": "692649a48eb8ceab85950df2318e49c0", + "sha256": "ad9fb9b87fdeeaf45f0e25ad8ffef3bca814bce336a88b62fa0782a6b1bd8f89" + }, + "downloads": -1, + "filename": "clang_format-17.0.2-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "692649a48eb8ceab85950df2318e49c0", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1347740, + "upload_time": "2023-10-04T12:07:36", + "upload_time_iso_8601": "2023-10-04T12:07:36.776666Z", + "url": "https://files.pythonhosted.org/packages/95/7f/0ba8d7327551df5cca6a8b85de294d5f78a8387dfffd71c6f2c392a260d1/clang_format-17.0.2-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "1b1d273f9d2d5c891f04324cec561e6443fba9b4e4706d4016443145ae5cc612", + "md5": "a55d223194f41418d78796bd5780bc91", + "sha256": "70c52185946d7ffca8901412778ac03b2a935a8009f01599fe1ae530c68a49e2" + }, + "downloads": -1, + "filename": "clang-format-17.0.2.tar.gz", + "has_sig": false, + "md5_digest": "a55d223194f41418d78796bd5780bc91", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 9734, + "upload_time": "2023-10-04T12:07:38", + "upload_time_iso_8601": "2023-10-04T12:07:38.212478Z", + "url": "https://files.pythonhosted.org/packages/1b/1d/273f9d2d5c891f04324cec561e6443fba9b4e4706d4016443145ae5cc612/clang-format-17.0.2.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "17.0.3": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "ce8050aef94f8dbf9e1ed394d3fcfaa64620ae13bf906c04c52fc28e0a0542bc", + "md5": "88f2bfcfa1883f13176aa08ed3e73ec1", + "sha256": "a709bf556198b503666038c8b859347db26d3c63d76addb7d4d3d23bb99ffd8f" + }, + "downloads": -1, + "filename": "clang_format-17.0.3-py2.py3-none-macosx_10_9_universal2.whl", + "has_sig": false, + "md5_digest": "88f2bfcfa1883f13176aa08ed3e73ec1", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2618174, + "upload_time": "2023-10-17T09:08:11", + "upload_time_iso_8601": "2023-10-17T09:08:11.640139Z", + "url": "https://files.pythonhosted.org/packages/ce/80/50aef94f8dbf9e1ed394d3fcfaa64620ae13bf906c04c52fc28e0a0542bc/clang_format-17.0.3-py2.py3-none-macosx_10_9_universal2.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "73891cd72ecfb9bc852ace9264bafcfeab00f3fde91b1f546019276550c5a2ef", + "md5": "1193277a8c0bd69e9cee02e9171be881", + "sha256": "e802f1fc110d547eb0c56f2f8a2b7e9e850843c3f9affa44955b1a55270ff697" + }, + "downloads": -1, + "filename": "clang_format-17.0.3-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "1193277a8c0bd69e9cee02e9171be881", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1620958, + "upload_time": "2023-10-17T09:08:13", + "upload_time_iso_8601": "2023-10-17T09:08:13.445448Z", + "url": "https://files.pythonhosted.org/packages/73/89/1cd72ecfb9bc852ace9264bafcfeab00f3fde91b1f546019276550c5a2ef/clang_format-17.0.3-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "ab91ad4cb9d9c5c6117e620b1ae710c06ef35f29a654a05b3aa505cf63e13f09", + "md5": "db039f6b4865b26cfc667b6f486c238b", + "sha256": "1210b71b97eb668ab8034c5bb66b09009cf2b66091430ced60ac8a98cb8b4c50" + }, + "downloads": -1, + "filename": "clang_format-17.0.3-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "db039f6b4865b26cfc667b6f486c238b", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1802041, + "upload_time": "2023-10-17T09:08:14", + "upload_time_iso_8601": "2023-10-17T09:08:14.818218Z", + "url": "https://files.pythonhosted.org/packages/ab/91/ad4cb9d9c5c6117e620b1ae710c06ef35f29a654a05b3aa505cf63e13f09/clang_format-17.0.3-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "6e9efa93c07e000567cfef0b75ea3d9de23a5e9772b1800a47df089208848b97", + "md5": "e5be498cd1ed954c52e5b0bb4f39bb9c", + "sha256": "75240b633b4be9eedae8546170e9894a1f15c6ba6fe0ecdb056c23f7f7364bde" + }, + "downloads": -1, + "filename": "clang_format-17.0.3-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "e5be498cd1ed954c52e5b0bb4f39bb9c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2479149, + "upload_time": "2023-10-17T09:08:16", + "upload_time_iso_8601": "2023-10-17T09:08:16.338074Z", + "url": "https://files.pythonhosted.org/packages/6e/9e/fa93c07e000567cfef0b75ea3d9de23a5e9772b1800a47df089208848b97/clang_format-17.0.3-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "e45525b48c96a52350aebc57d67286422646673ffd2160dfb92a1354ae376f11", + "md5": "9c149e56bb11af3f6be89b71c707df43", + "sha256": "4499261f4ec102a627612c8959cbf67fbb40f7cb74d0f7fea375414fba1d753e" + }, + "downloads": -1, + "filename": "clang_format-17.0.3-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "9c149e56bb11af3f6be89b71c707df43", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1609446, + "upload_time": "2023-10-17T09:08:18", + "upload_time_iso_8601": "2023-10-17T09:08:18.240049Z", + "url": "https://files.pythonhosted.org/packages/e4/55/25b48c96a52350aebc57d67286422646673ffd2160dfb92a1354ae376f11/clang_format-17.0.3-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "cfe0885a0ebb44d0aa280c662fe10b5b1563f2545118d6a9c19b0231dc0ab8f7", + "md5": "89dcfd1eb498af46d56a281753db745a", + "sha256": "ee5438e9194b3d077c0a816c720f105a18275c2deee35010468b749b884945b0" + }, + "downloads": -1, + "filename": "clang_format-17.0.3-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "89dcfd1eb498af46d56a281753db745a", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1628057, + "upload_time": "2023-10-17T09:08:19", + "upload_time_iso_8601": "2023-10-17T09:08:19.773709Z", + "url": "https://files.pythonhosted.org/packages/cf/e0/885a0ebb44d0aa280c662fe10b5b1563f2545118d6a9c19b0231dc0ab8f7/clang_format-17.0.3-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "ed047e9cabad142e2ecab5ea1065501f87fbdf281e6b7f17fc3d0e3729c8474c", + "md5": "5b32d27cb54025ecffbc454caa455586", + "sha256": "6564bfa5920dd58817979366c45de9a35c0451dd3a6f0fb9626c249c66bbbf26" + }, + "downloads": -1, + "filename": "clang_format-17.0.3-py2.py3-none-musllinux_1_1_aarch64.whl", + "has_sig": false, + "md5_digest": "5b32d27cb54025ecffbc454caa455586", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2131971, + "upload_time": "2023-10-17T09:08:21", + "upload_time_iso_8601": "2023-10-17T09:08:21.716942Z", + "url": "https://files.pythonhosted.org/packages/ed/04/7e9cabad142e2ecab5ea1065501f87fbdf281e6b7f17fc3d0e3729c8474c/clang_format-17.0.3-py2.py3-none-musllinux_1_1_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "3026ff5aa8a6a1950a85dabeee5b4c66ebbd464b33931e7e3c1ddad1dc63a06b", + "md5": "435697cb6c98a0d481f4eb533bd062d8", + "sha256": "69c4eb4f56c19ab36902e2b8e93056f592cfdca585f5f1c2251d5da6307e7500" + }, + "downloads": -1, + "filename": "clang_format-17.0.3-py2.py3-none-musllinux_1_1_i686.whl", + "has_sig": false, + "md5_digest": "435697cb6c98a0d481f4eb533bd062d8", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2317880, + "upload_time": "2023-10-17T09:08:23", + "upload_time_iso_8601": "2023-10-17T09:08:23.201551Z", + "url": "https://files.pythonhosted.org/packages/30/26/ff5aa8a6a1950a85dabeee5b4c66ebbd464b33931e7e3c1ddad1dc63a06b/clang_format-17.0.3-py2.py3-none-musllinux_1_1_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "61a54c77a93259fc20c61598599e8e52f6365fc00d346e44d5617b8336990e65", + "md5": "c2d3c9aa8d5fcf0a247e83758d99805e", + "sha256": "a4cebfe34b2771cb81845b0575eff66d105903c3d67a3bfefc5bba0e9dad2a0e" + }, + "downloads": -1, + "filename": "clang_format-17.0.3-py2.py3-none-musllinux_1_1_ppc64le.whl", + "has_sig": false, + "md5_digest": "c2d3c9aa8d5fcf0a247e83758d99805e", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2485380, + "upload_time": "2023-10-17T09:08:24", + "upload_time_iso_8601": "2023-10-17T09:08:24.521623Z", + "url": "https://files.pythonhosted.org/packages/61/a5/4c77a93259fc20c61598599e8e52f6365fc00d346e44d5617b8336990e65/clang_format-17.0.3-py2.py3-none-musllinux_1_1_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "aaf2fb71be897117ff6489228f407cff85464672766dfa29e783309943f23016", + "md5": "51cca056ebfd0f748a48ed849c95b8b3", + "sha256": "acd183964f7bf95216aa9b91b8856ad3bef91458136ef049c2ebe70fccb01dc2" + }, + "downloads": -1, + "filename": "clang_format-17.0.3-py2.py3-none-musllinux_1_1_s390x.whl", + "has_sig": false, + "md5_digest": "51cca056ebfd0f748a48ed849c95b8b3", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2160519, + "upload_time": "2023-10-17T09:08:26", + "upload_time_iso_8601": "2023-10-17T09:08:26.096865Z", + "url": "https://files.pythonhosted.org/packages/aa/f2/fb71be897117ff6489228f407cff85464672766dfa29e783309943f23016/clang_format-17.0.3-py2.py3-none-musllinux_1_1_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "7defed6fc76b204cadd1da65a8eb0f7bf2a43fe2de2a6b11a73c7ed7273dff05", + "md5": "07826fc8df199ee58fe0b35bb457303b", + "sha256": "b1df16d0f216cfd8f43866ebb44c09a437cff9cdae25a4c105bea45266a76c31" + }, + "downloads": -1, + "filename": "clang_format-17.0.3-py2.py3-none-musllinux_1_1_x86_64.whl", + "has_sig": false, + "md5_digest": "07826fc8df199ee58fe0b35bb457303b", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2149923, + "upload_time": "2023-10-17T09:08:28", + "upload_time_iso_8601": "2023-10-17T09:08:28.807488Z", + "url": "https://files.pythonhosted.org/packages/7d/ef/ed6fc76b204cadd1da65a8eb0f7bf2a43fe2de2a6b11a73c7ed7273dff05/clang_format-17.0.3-py2.py3-none-musllinux_1_1_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "cc1027a0275fe029e03fe785d01eba4f5ba914bef9cad1a52e4ead384c2a6adb", + "md5": "5a77e16da79cbfd359d8ac10bd1b3081", + "sha256": "b9d8f743f6c50b2b3e15b33a84d73f67cf40ac81f09aabd31a9cf28aae6014aa" + }, + "downloads": -1, + "filename": "clang_format-17.0.3-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "5a77e16da79cbfd359d8ac10bd1b3081", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1161859, + "upload_time": "2023-10-17T09:08:30", + "upload_time_iso_8601": "2023-10-17T09:08:30.709208Z", + "url": "https://files.pythonhosted.org/packages/cc/10/27a0275fe029e03fe785d01eba4f5ba914bef9cad1a52e4ead384c2a6adb/clang_format-17.0.3-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "830ddc08ff31b247c762db64374c91824dabf20a7e9eb11d082a84568d5daf97", + "md5": "f705ad2ab058fd08c51fdc6c0b32b0a0", + "sha256": "da9845315b8a3612b2e9a1d3fd91b3609ae3853cf13effe71b102e3149309e9c" + }, + "downloads": -1, + "filename": "clang_format-17.0.3-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "f705ad2ab058fd08c51fdc6c0b32b0a0", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1348136, + "upload_time": "2023-10-17T09:08:32", + "upload_time_iso_8601": "2023-10-17T09:08:32.075025Z", + "url": "https://files.pythonhosted.org/packages/83/0d/dc08ff31b247c762db64374c91824dabf20a7e9eb11d082a84568d5daf97/clang_format-17.0.3-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "b9ce10bd33fbd42d0b8728883faf80cbd0c739aacae11bd9c1afcd63ac258886", + "md5": "35a62d6ae103dc73c9d4bb1313379bc6", + "sha256": "763a3f276e579d5e304527229420b1e0c9aa12318675a21c0107f9373e918ab1" + }, + "downloads": -1, + "filename": "clang-format-17.0.3.tar.gz", + "has_sig": false, + "md5_digest": "35a62d6ae103dc73c9d4bb1313379bc6", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 9737, + "upload_time": "2023-10-17T09:08:33", + "upload_time_iso_8601": "2023-10-17T09:08:33.483501Z", + "url": "https://files.pythonhosted.org/packages/b9/ce/10bd33fbd42d0b8728883faf80cbd0c739aacae11bd9c1afcd63ac258886/clang-format-17.0.3.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "17.0.4": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "58271c18f1c492b3d72e19ef4533a4caa1410c76085c3448dc81aa3fb85cd682", + "md5": "2e73bd68058072ab5d062527f6f932d8", + "sha256": "309173b909135c849ce17057a3b30e2c6be004bfcdeafe9d9628efd2f43e12cb" + }, + "downloads": -1, + "filename": "clang_format-17.0.4-py2.py3-none-macosx_10_9_x86_64.whl", + "has_sig": false, + "md5_digest": "2e73bd68058072ab5d062527f6f932d8", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1346315, + "upload_time": "2023-11-02T12:46:56", + "upload_time_iso_8601": "2023-11-02T12:46:56.706097Z", + "url": "https://files.pythonhosted.org/packages/58/27/1c18f1c492b3d72e19ef4533a4caa1410c76085c3448dc81aa3fb85cd682/clang_format-17.0.4-py2.py3-none-macosx_10_9_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "93bfa9d3cb7695219a348a4229c880b4c09530fdd855fceec1d8079ca153ac74", + "md5": "41884abb5db28f3db09b2ffd6c85b517", + "sha256": "ad293c300bb2613212f41b0667cbcc4b118adb6f7f0d11617937d76fd2350226" + }, + "downloads": -1, + "filename": "clang_format-17.0.4-py2.py3-none-macosx_11_0_arm64.whl", + "has_sig": false, + "md5_digest": "41884abb5db28f3db09b2ffd6c85b517", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1301526, + "upload_time": "2023-11-02T12:46:59", + "upload_time_iso_8601": "2023-11-02T12:46:59.559032Z", + "url": "https://files.pythonhosted.org/packages/93/bf/a9d3cb7695219a348a4229c880b4c09530fdd855fceec1d8079ca153ac74/clang_format-17.0.4-py2.py3-none-macosx_11_0_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "c002370555b2dbd00b6fc59a48a84ed25abae937392ca3017848d5205aced832", + "md5": "bbdddb94110f02b92eb264cad8f7274a", + "sha256": "0dff69572d0c5af484430e8825f2c9f753f55f2b39ffa1376e71502b1ac7c405" + }, + "downloads": -1, + "filename": "clang_format-17.0.4-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "bbdddb94110f02b92eb264cad8f7274a", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1621139, + "upload_time": "2023-11-02T12:47:02", + "upload_time_iso_8601": "2023-11-02T12:47:02.006487Z", + "url": "https://files.pythonhosted.org/packages/c0/02/370555b2dbd00b6fc59a48a84ed25abae937392ca3017848d5205aced832/clang_format-17.0.4-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "20b606d14a80dee1de4ca229e0dbeca84e95d4e1c1e47e1d86472559b0df5ab8", + "md5": "52731d41673e078fa4210c2294654586", + "sha256": "9037927dbe50588c6056c333898c42c0ab9ed390a3b28565692fd587d5885da3" + }, + "downloads": -1, + "filename": "clang_format-17.0.4-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "52731d41673e078fa4210c2294654586", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1801912, + "upload_time": "2023-11-02T12:47:04", + "upload_time_iso_8601": "2023-11-02T12:47:04.519475Z", + "url": "https://files.pythonhosted.org/packages/20/b6/06d14a80dee1de4ca229e0dbeca84e95d4e1c1e47e1d86472559b0df5ab8/clang_format-17.0.4-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "bd789f6be556aab62e38a039d5f99accabea0d5a9c3bea7166e701b45cea4f4d", + "md5": "8dc8193f6406c1de57542b978cf82214", + "sha256": "67e670505da1b0cb5a454ff84ad1fc030552e457177516426f669fa46301893f" + }, + "downloads": -1, + "filename": "clang_format-17.0.4-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "8dc8193f6406c1de57542b978cf82214", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2479086, + "upload_time": "2023-11-02T12:47:06", + "upload_time_iso_8601": "2023-11-02T12:47:06.977920Z", + "url": "https://files.pythonhosted.org/packages/bd/78/9f6be556aab62e38a039d5f99accabea0d5a9c3bea7166e701b45cea4f4d/clang_format-17.0.4-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "93978ada427b29f3511bd7759ab435f773494bf53a2b46f82a0060851fd3ff34", + "md5": "341137f026fa13df076f5a7cc9b21819", + "sha256": "65f79fafcd27281a5c4e1d83c648202f5e7ec4a0b080697906204c9b896c930c" + }, + "downloads": -1, + "filename": "clang_format-17.0.4-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "341137f026fa13df076f5a7cc9b21819", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1609443, + "upload_time": "2023-11-02T12:47:09", + "upload_time_iso_8601": "2023-11-02T12:47:09.506852Z", + "url": "https://files.pythonhosted.org/packages/93/97/8ada427b29f3511bd7759ab435f773494bf53a2b46f82a0060851fd3ff34/clang_format-17.0.4-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "77c97db6892e77adb07dde8bb23e753208aceff354407cb447018e235474209b", + "md5": "670885869448cade51410784214cadad", + "sha256": "c6e12e95b27dff188ee50e83e7fb565eecabded57d256ca51c53fd082d2363c3" + }, + "downloads": -1, + "filename": "clang_format-17.0.4-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "670885869448cade51410784214cadad", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1628390, + "upload_time": "2023-11-02T12:47:11", + "upload_time_iso_8601": "2023-11-02T12:47:11.786370Z", + "url": "https://files.pythonhosted.org/packages/77/c9/7db6892e77adb07dde8bb23e753208aceff354407cb447018e235474209b/clang_format-17.0.4-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "267b26eb135eefa5df7608a7bda181feac8dcd2185b6207bbf25bf2e75f4dedc", + "md5": "cb2cdedf33303b8ff6ab5dad4dbc69dd", + "sha256": "3d2b3468a048bcd31514b72aba61997a77a73bd0272f1cb80f9baee585114aa3" + }, + "downloads": -1, + "filename": "clang_format-17.0.4-py2.py3-none-musllinux_1_1_aarch64.whl", + "has_sig": false, + "md5_digest": "cb2cdedf33303b8ff6ab5dad4dbc69dd", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2132195, + "upload_time": "2023-11-02T12:47:14", + "upload_time_iso_8601": "2023-11-02T12:47:14.053554Z", + "url": "https://files.pythonhosted.org/packages/26/7b/26eb135eefa5df7608a7bda181feac8dcd2185b6207bbf25bf2e75f4dedc/clang_format-17.0.4-py2.py3-none-musllinux_1_1_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "2b361e88e08d837990a03570ce507cf2c43105f520c8652c6b1c5b97b2dcdccd", + "md5": "6ec2b758a8eae8063c817d8a2cdb4cf9", + "sha256": "b820e6eae19a215302db3dfb847c2838851a2c9a52952504c6c5ee1e1de2bdfc" + }, + "downloads": -1, + "filename": "clang_format-17.0.4-py2.py3-none-musllinux_1_1_i686.whl", + "has_sig": false, + "md5_digest": "6ec2b758a8eae8063c817d8a2cdb4cf9", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2317612, + "upload_time": "2023-11-02T12:47:16", + "upload_time_iso_8601": "2023-11-02T12:47:16.406204Z", + "url": "https://files.pythonhosted.org/packages/2b/36/1e88e08d837990a03570ce507cf2c43105f520c8652c6b1c5b97b2dcdccd/clang_format-17.0.4-py2.py3-none-musllinux_1_1_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "e2503b310e952997c99e063b73ce86332505298d2e3811ab42e814a2ce135849", + "md5": "313e7ecafc48f12f9131330a3dd449c1", + "sha256": "545c599913e00ed4c06677c123658992131bb7cf6cc5e1630a8e2618988811ca" + }, + "downloads": -1, + "filename": "clang_format-17.0.4-py2.py3-none-musllinux_1_1_ppc64le.whl", + "has_sig": false, + "md5_digest": "313e7ecafc48f12f9131330a3dd449c1", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2485404, + "upload_time": "2023-11-02T12:47:18", + "upload_time_iso_8601": "2023-11-02T12:47:18.750703Z", + "url": "https://files.pythonhosted.org/packages/e2/50/3b310e952997c99e063b73ce86332505298d2e3811ab42e814a2ce135849/clang_format-17.0.4-py2.py3-none-musllinux_1_1_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "203a705156f930bb005867aeb0c2cc2140ba511f2afe3096619ce658ec97f6ef", + "md5": "0f88e5148db9c57ae34f5b7e7288836b", + "sha256": "557fb96bbafd53f053ff36f87c88193762cdb0f1d85465e7ebb3752014120f01" + }, + "downloads": -1, + "filename": "clang_format-17.0.4-py2.py3-none-musllinux_1_1_s390x.whl", + "has_sig": false, + "md5_digest": "0f88e5148db9c57ae34f5b7e7288836b", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2160408, + "upload_time": "2023-11-02T12:47:21", + "upload_time_iso_8601": "2023-11-02T12:47:21.281533Z", + "url": "https://files.pythonhosted.org/packages/20/3a/705156f930bb005867aeb0c2cc2140ba511f2afe3096619ce658ec97f6ef/clang_format-17.0.4-py2.py3-none-musllinux_1_1_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "3398fb3811bca772d986d94c112e684b3ce20a0d40024a713a811ebb25bb7f80", + "md5": "0e216aa527d36a0e6fae611ddc285442", + "sha256": "9e2a8436c3afab54170ad1d22561cc075034bc46a510ba528b488b459b367df0" + }, + "downloads": -1, + "filename": "clang_format-17.0.4-py2.py3-none-musllinux_1_1_x86_64.whl", + "has_sig": false, + "md5_digest": "0e216aa527d36a0e6fae611ddc285442", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2150212, + "upload_time": "2023-11-02T12:47:24", + "upload_time_iso_8601": "2023-11-02T12:47:24.079640Z", + "url": "https://files.pythonhosted.org/packages/33/98/fb3811bca772d986d94c112e684b3ce20a0d40024a713a811ebb25bb7f80/clang_format-17.0.4-py2.py3-none-musllinux_1_1_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "a72e208939da88d112a1ec2b47b4abcdb029e39548531db31dd750930cf4a78e", + "md5": "c6c73244a8395302893397a0df310f38", + "sha256": "839446174c207535eee34a3d9f2aa94455547926a4ebc94d59abd84f8ecee229" + }, + "downloads": -1, + "filename": "clang_format-17.0.4-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "c6c73244a8395302893397a0df310f38", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1161889, + "upload_time": "2023-11-02T12:47:26", + "upload_time_iso_8601": "2023-11-02T12:47:26.089325Z", + "url": "https://files.pythonhosted.org/packages/a7/2e/208939da88d112a1ec2b47b4abcdb029e39548531db31dd750930cf4a78e/clang_format-17.0.4-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "bea6db78dd55ed2da0fe9c4ec86cb3498ecbb8be19cc39f9d45b7bc9da03938c", + "md5": "de6851799aca82e30ee43940b864c616", + "sha256": "53784f6503ea58ae63e449a0eae83073ddbfb929adbe24567c405d3678797479" + }, + "downloads": -1, + "filename": "clang_format-17.0.4-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "de6851799aca82e30ee43940b864c616", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1348150, + "upload_time": "2023-11-02T12:47:28", + "upload_time_iso_8601": "2023-11-02T12:47:28.204999Z", + "url": "https://files.pythonhosted.org/packages/be/a6/db78dd55ed2da0fe9c4ec86cb3498ecbb8be19cc39f9d45b7bc9da03938c/clang_format-17.0.4-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "98644084127c8c5f28cb2b4d079ef9830f7f4f2ec80f612bd9db669ac41cf4ea", + "md5": "4063e4207e9b269c21d41c243863bdd4", + "sha256": "b8513e927c8e0caaba83be8d065f8100ad94415cd1cb2945127debe7bb368de0" + }, + "downloads": -1, + "filename": "clang-format-17.0.4.tar.gz", + "has_sig": false, + "md5_digest": "4063e4207e9b269c21d41c243863bdd4", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 9611, + "upload_time": "2023-11-02T12:47:31", + "upload_time_iso_8601": "2023-11-02T12:47:31.081076Z", + "url": "https://files.pythonhosted.org/packages/98/64/4084127c8c5f28cb2b4d079ef9830f7f4f2ec80f612bd9db669ac41cf4ea/clang-format-17.0.4.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "17.0.5": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "612eea1c944f3d00b27ae6b5fb31427998c9001d0e0c0eab52947dea49f7349f", + "md5": "4935b7c5ab6803e81b4ef58f6e9ec493", + "sha256": "c18f71185f730a66d6be78938a21644f501a26d0d051ae61c9587146c5a0bd1c" + }, + "downloads": -1, + "filename": "clang_format-17.0.5-py2.py3-none-macosx_10_9_x86_64.whl", + "has_sig": false, + "md5_digest": "4935b7c5ab6803e81b4ef58f6e9ec493", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1346402, + "upload_time": "2023-11-15T12:14:23", + "upload_time_iso_8601": "2023-11-15T12:14:23.645622Z", + "url": "https://files.pythonhosted.org/packages/61/2e/ea1c944f3d00b27ae6b5fb31427998c9001d0e0c0eab52947dea49f7349f/clang_format-17.0.5-py2.py3-none-macosx_10_9_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "8b5ca8b845f672cbdf24c5507283934f11e7516d30ffa6ac9ea3e8212449ee90", + "md5": "d1326ae48a7de4e2bfd9dff6dcc7e0ac", + "sha256": "03d56cef8205646d61077b62cb571e9fb608d6f144499624b43545576f240de6" + }, + "downloads": -1, + "filename": "clang_format-17.0.5-py2.py3-none-macosx_11_0_arm64.whl", + "has_sig": false, + "md5_digest": "d1326ae48a7de4e2bfd9dff6dcc7e0ac", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1300164, + "upload_time": "2023-11-15T12:14:26", + "upload_time_iso_8601": "2023-11-15T12:14:26.127545Z", + "url": "https://files.pythonhosted.org/packages/8b/5c/a8b845f672cbdf24c5507283934f11e7516d30ffa6ac9ea3e8212449ee90/clang_format-17.0.5-py2.py3-none-macosx_11_0_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "b3f75f0fe9e60c1016ca089c85b924d6f2f6940f4ca40d6e06a6f05f0783acea", + "md5": "4162fbbd8e6684b40bbfb5d98a54d1bf", + "sha256": "85378a9f8f2a1cbb29f66b2229f47030fbedda452379bf49de3a10ef0d584949" + }, + "downloads": -1, + "filename": "clang_format-17.0.5-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "4162fbbd8e6684b40bbfb5d98a54d1bf", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1621105, + "upload_time": "2023-11-15T12:14:28", + "upload_time_iso_8601": "2023-11-15T12:14:28.509562Z", + "url": "https://files.pythonhosted.org/packages/b3/f7/5f0fe9e60c1016ca089c85b924d6f2f6940f4ca40d6e06a6f05f0783acea/clang_format-17.0.5-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "09d8e39d3970f4aa8545d47bbe38e17f2df71aad2d24b9cebe2cc9b7665258b1", + "md5": "ad67b51b76df9ffb3ac2b5f2a6da28fc", + "sha256": "50a722142b7139da6584ef58ce12212842711c12fe829cf82391143cb9b7fe8c" + }, + "downloads": -1, + "filename": "clang_format-17.0.5-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "ad67b51b76df9ffb3ac2b5f2a6da28fc", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1801990, + "upload_time": "2023-11-15T12:14:30", + "upload_time_iso_8601": "2023-11-15T12:14:30.459915Z", + "url": "https://files.pythonhosted.org/packages/09/d8/e39d3970f4aa8545d47bbe38e17f2df71aad2d24b9cebe2cc9b7665258b1/clang_format-17.0.5-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "ba5998d64a3fcc5ee7866e97bdf3561a631b19adad5b2b09e3e6a959b51feab9", + "md5": "a841ff2bc33ccf6f0ca8db24306b9cd3", + "sha256": "efddce875e753b65ebd0309b50c02f1195ef6bba1556aff726db25df6fb4c5e2" + }, + "downloads": -1, + "filename": "clang_format-17.0.5-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "a841ff2bc33ccf6f0ca8db24306b9cd3", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2479377, + "upload_time": "2023-11-15T12:14:32", + "upload_time_iso_8601": "2023-11-15T12:14:32.791988Z", + "url": "https://files.pythonhosted.org/packages/ba/59/98d64a3fcc5ee7866e97bdf3561a631b19adad5b2b09e3e6a959b51feab9/clang_format-17.0.5-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "27f482dfe457697ac43561a541ce1fddc62f5bd7405772c27d6642380b9cabc4", + "md5": "a34a0e910dfb2fd0a57280f446da6d72", + "sha256": "b7c43c6941995430f21d6c4aa9bd31e09e74b0a073328c89f9c58b8f18367415" + }, + "downloads": -1, + "filename": "clang_format-17.0.5-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "a34a0e910dfb2fd0a57280f446da6d72", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1609538, + "upload_time": "2023-11-15T12:14:35", + "upload_time_iso_8601": "2023-11-15T12:14:35.234316Z", + "url": "https://files.pythonhosted.org/packages/27/f4/82dfe457697ac43561a541ce1fddc62f5bd7405772c27d6642380b9cabc4/clang_format-17.0.5-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "e71a33ff3eef383ee7cda6ee38aa155185349ad0cd85299655b69b393241d10f", + "md5": "fcb43d567b11c453a2cd89e16ce2b82f", + "sha256": "90c602ff2122ffb6b21d54608a622834720d21ed0193669a4e248936a1e35e2a" + }, + "downloads": -1, + "filename": "clang_format-17.0.5-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "fcb43d567b11c453a2cd89e16ce2b82f", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1628384, + "upload_time": "2023-11-15T12:14:37", + "upload_time_iso_8601": "2023-11-15T12:14:37.922883Z", + "url": "https://files.pythonhosted.org/packages/e7/1a/33ff3eef383ee7cda6ee38aa155185349ad0cd85299655b69b393241d10f/clang_format-17.0.5-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "fa40b887839b0af21c13a880347bbcf99a8f76cc3202d329b0ab54bf6897d19f", + "md5": "cb79af0c6e70bc89446fc261644a084c", + "sha256": "54a518e91316068dc5b18e9f60969791962be054b12c8461935a9f11ad8c7331" + }, + "downloads": -1, + "filename": "clang_format-17.0.5-py2.py3-none-musllinux_1_1_aarch64.whl", + "has_sig": false, + "md5_digest": "cb79af0c6e70bc89446fc261644a084c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2132322, + "upload_time": "2023-11-15T12:14:40", + "upload_time_iso_8601": "2023-11-15T12:14:40.493471Z", + "url": "https://files.pythonhosted.org/packages/fa/40/b887839b0af21c13a880347bbcf99a8f76cc3202d329b0ab54bf6897d19f/clang_format-17.0.5-py2.py3-none-musllinux_1_1_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "86a16f43fa73851c99136fd7587f3dbf9ac37ec8b1aec994c8c150b289e9c946", + "md5": "5c5177ffec578bedb9ba1661c0ce2d52", + "sha256": "95be9e9a823dd57afe4fa61ca7ff9c459058346bab26d92ebdd20cf67bd4aa5d" + }, + "downloads": -1, + "filename": "clang_format-17.0.5-py2.py3-none-musllinux_1_1_i686.whl", + "has_sig": false, + "md5_digest": "5c5177ffec578bedb9ba1661c0ce2d52", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2317595, + "upload_time": "2023-11-15T12:14:43", + "upload_time_iso_8601": "2023-11-15T12:14:43.298962Z", + "url": "https://files.pythonhosted.org/packages/86/a1/6f43fa73851c99136fd7587f3dbf9ac37ec8b1aec994c8c150b289e9c946/clang_format-17.0.5-py2.py3-none-musllinux_1_1_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "d6aad17684289305d40f1afc720050fd08623a21eeb02ca2e880aa00fcbe0ddd", + "md5": "2d8f12793c431a102f34c523c28d3975", + "sha256": "b742a88301da19f50b87ccf0aab441b228007513d58f1ee77aaf616c07c97f81" + }, + "downloads": -1, + "filename": "clang_format-17.0.5-py2.py3-none-musllinux_1_1_ppc64le.whl", + "has_sig": false, + "md5_digest": "2d8f12793c431a102f34c523c28d3975", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2485377, + "upload_time": "2023-11-15T12:14:45", + "upload_time_iso_8601": "2023-11-15T12:14:45.186823Z", + "url": "https://files.pythonhosted.org/packages/d6/aa/d17684289305d40f1afc720050fd08623a21eeb02ca2e880aa00fcbe0ddd/clang_format-17.0.5-py2.py3-none-musllinux_1_1_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "6e4817f96729e858c12c2acc9b5e6097e70a22db62991d355f694483e608c004", + "md5": "55e6c27960ce7648820b089576469cce", + "sha256": "ce67bcd3a5431cb40e4eb67319fa1f39adab02b80b104a748723084a584e9afe" + }, + "downloads": -1, + "filename": "clang_format-17.0.5-py2.py3-none-musllinux_1_1_s390x.whl", + "has_sig": false, + "md5_digest": "55e6c27960ce7648820b089576469cce", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2160428, + "upload_time": "2023-11-15T12:14:47", + "upload_time_iso_8601": "2023-11-15T12:14:47.725375Z", + "url": "https://files.pythonhosted.org/packages/6e/48/17f96729e858c12c2acc9b5e6097e70a22db62991d355f694483e608c004/clang_format-17.0.5-py2.py3-none-musllinux_1_1_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "f25c00dc4aeef5ea0666bf83fa1d6df72898ab2ab6134376565ec30fabf76384", + "md5": "5fe0c7655d3f3a52ba79a72e5e59d8c9", + "sha256": "f52c88360af2303d0225d9974328e5f4c0318f47a112513ccc246d4f908d8962" + }, + "downloads": -1, + "filename": "clang_format-17.0.5-py2.py3-none-musllinux_1_1_x86_64.whl", + "has_sig": false, + "md5_digest": "5fe0c7655d3f3a52ba79a72e5e59d8c9", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2150432, + "upload_time": "2023-11-15T12:14:49", + "upload_time_iso_8601": "2023-11-15T12:14:49.899124Z", + "url": "https://files.pythonhosted.org/packages/f2/5c/00dc4aeef5ea0666bf83fa1d6df72898ab2ab6134376565ec30fabf76384/clang_format-17.0.5-py2.py3-none-musllinux_1_1_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "52553b1708b7a1082af4fe2e025521856e315f56f17cd75cb3b4027e4a83daf5", + "md5": "96878d3258c5260afd464e5fe20d7dbb", + "sha256": "c86ac588d655c06721ae0943685be9349654793b6c47c341f35182037153f2b5" + }, + "downloads": -1, + "filename": "clang_format-17.0.5-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "96878d3258c5260afd464e5fe20d7dbb", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1161911, + "upload_time": "2023-11-15T12:14:52", + "upload_time_iso_8601": "2023-11-15T12:14:52.160681Z", + "url": "https://files.pythonhosted.org/packages/52/55/3b1708b7a1082af4fe2e025521856e315f56f17cd75cb3b4027e4a83daf5/clang_format-17.0.5-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "8f532e3d3f58b428f2aa6b39ae74d37818f8980b62c9efe2432376d596d752f9", + "md5": "dc683667cd21685330d77aabe5512de9", + "sha256": "94d7024db3b6525ceb498d6dbd6fcb2cac7c7a2820b629097651b9dbb2f4e322" + }, + "downloads": -1, + "filename": "clang_format-17.0.5-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "dc683667cd21685330d77aabe5512de9", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1348230, + "upload_time": "2023-11-15T12:14:54", + "upload_time_iso_8601": "2023-11-15T12:14:54.067806Z", + "url": "https://files.pythonhosted.org/packages/8f/53/2e3d3f58b428f2aa6b39ae74d37818f8980b62c9efe2432376d596d752f9/clang_format-17.0.5-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "8b4dec08df9d0d2aae095166c62962548a748758771a14f9cee5e0c3e5d977c1", + "md5": "fc4991283224e5e247358397aca67a71", + "sha256": "8fc4ef6ad1b6ad11f5903069f34a661699bb187288c09f643990a42ee41df47e" + }, + "downloads": -1, + "filename": "clang-format-17.0.5.tar.gz", + "has_sig": false, + "md5_digest": "fc4991283224e5e247358397aca67a71", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 9604, + "upload_time": "2023-11-15T12:14:56", + "upload_time_iso_8601": "2023-11-15T12:14:56.349291Z", + "url": "https://files.pythonhosted.org/packages/8b/4d/ec08df9d0d2aae095166c62962548a748758771a14f9cee5e0c3e5d977c1/clang-format-17.0.5.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "17.0.6": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "cf5243e0b6ffe0502deae7572b0e6381fbfd40d2ffcfd3aceaaa505d44958309", + "md5": "82937abbc3e9ef7e5d7ecfd7aaa19846", + "sha256": "2c7364a50c4fdb8ce9acc4e0c21627e52f4eebee98ff2d8a19b6d4302d0be23b" + }, + "downloads": -1, + "filename": "clang_format-17.0.6-py2.py3-none-macosx_10_9_x86_64.whl", + "has_sig": false, + "md5_digest": "82937abbc3e9ef7e5d7ecfd7aaa19846", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1351137, + "upload_time": "2023-11-29T13:02:33", + "upload_time_iso_8601": "2023-11-29T13:02:33.189073Z", + "url": "https://files.pythonhosted.org/packages/cf/52/43e0b6ffe0502deae7572b0e6381fbfd40d2ffcfd3aceaaa505d44958309/clang_format-17.0.6-py2.py3-none-macosx_10_9_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "5b0ad112aea9f0272e2c5558a2e9cf50229c846892dadf585f2a98fa0ba22385", + "md5": "d213dfdf48ab34ee0bf5c6f2632fe630", + "sha256": "195014a589fde9e2bec447ee1f2efd31f8c9f773b10aa66b510beae6997e6bc5" + }, + "downloads": -1, + "filename": "clang_format-17.0.6-py2.py3-none-macosx_11_0_arm64.whl", + "has_sig": false, + "md5_digest": "d213dfdf48ab34ee0bf5c6f2632fe630", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1303972, + "upload_time": "2023-11-29T13:02:37", + "upload_time_iso_8601": "2023-11-29T13:02:37.989696Z", + "url": "https://files.pythonhosted.org/packages/5b/0a/d112aea9f0272e2c5558a2e9cf50229c846892dadf585f2a98fa0ba22385/clang_format-17.0.6-py2.py3-none-macosx_11_0_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "2ea578fe6b7b6947a1d90dcb451caf9c63895fa84d7fc453865a64d770aae242", + "md5": "d21dbdf1356294517761dc7f21c23905", + "sha256": "5cda40badfb01818ece739509d9cde678fc02660180cc1a55156782ef203704d" + }, + "downloads": -1, + "filename": "clang_format-17.0.6-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "d21dbdf1356294517761dc7f21c23905", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1626537, + "upload_time": "2023-11-29T13:02:39", + "upload_time_iso_8601": "2023-11-29T13:02:39.999765Z", + "url": "https://files.pythonhosted.org/packages/2e/a5/78fe6b7b6947a1d90dcb451caf9c63895fa84d7fc453865a64d770aae242/clang_format-17.0.6-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "079a84366548453da7debc318cef0f1a58a7c29379307f48a9f23dbe90b6758f", + "md5": "f94b1c6c509b70b14782acb74a297219", + "sha256": "879e831c58a25a9b7527155032a6dc4758716ded69590911468a37629acb13d1" + }, + "downloads": -1, + "filename": "clang_format-17.0.6-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "f94b1c6c509b70b14782acb74a297219", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1809392, + "upload_time": "2023-11-29T13:02:41", + "upload_time_iso_8601": "2023-11-29T13:02:41.997848Z", + "url": "https://files.pythonhosted.org/packages/07/9a/84366548453da7debc318cef0f1a58a7c29379307f48a9f23dbe90b6758f/clang_format-17.0.6-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "e4b58f84b52e2549d0058d37e06f2f3791bcab61fe88478a63417b5c44853105", + "md5": "fbe8c68e5d8a6a200f76ab5a98d4e5b0", + "sha256": "393f896db6155d6b8401ebae40df1f9a8cdf15d494d13fb775657c9ec609b586" + }, + "downloads": -1, + "filename": "clang_format-17.0.6-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "fbe8c68e5d8a6a200f76ab5a98d4e5b0", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2485793, + "upload_time": "2023-11-29T13:02:45", + "upload_time_iso_8601": "2023-11-29T13:02:45.026933Z", + "url": "https://files.pythonhosted.org/packages/e4/b5/8f84b52e2549d0058d37e06f2f3791bcab61fe88478a63417b5c44853105/clang_format-17.0.6-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "cc1df814e4f95552270a59da694cdaac1701540f03c5d8fcc4d90fb2536b5f3d", + "md5": "d55d317ce0c00ad6887895fb8d577743", + "sha256": "ccb6f5ce90f24ed0bb314d041a8edcc94d1279c1469669d5855be004d9d6caff" + }, + "downloads": -1, + "filename": "clang_format-17.0.6-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "d55d317ce0c00ad6887895fb8d577743", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1613940, + "upload_time": "2023-11-29T13:02:46", + "upload_time_iso_8601": "2023-11-29T13:02:46.568684Z", + "url": "https://files.pythonhosted.org/packages/cc/1d/f814e4f95552270a59da694cdaac1701540f03c5d8fcc4d90fb2536b5f3d/clang_format-17.0.6-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "89df5296c3eca534eedef32813cd38b3436c86f0eabcda2238060f73e45ef37d", + "md5": "f0f5847b992f61c8402ef8dea373c6d8", + "sha256": "2a1323ca5322e0dead521223155fe2ae1ba81d50abab8e20aaac28f6a94f23b9" + }, + "downloads": -1, + "filename": "clang_format-17.0.6-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "f0f5847b992f61c8402ef8dea373c6d8", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1630858, + "upload_time": "2023-11-29T13:02:48", + "upload_time_iso_8601": "2023-11-29T13:02:48.572773Z", + "url": "https://files.pythonhosted.org/packages/89/df/5296c3eca534eedef32813cd38b3436c86f0eabcda2238060f73e45ef37d/clang_format-17.0.6-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "5ca24f49923502938302a099317a431cc1bce7d6516f30d2940fa096d7a9da93", + "md5": "f297c7998001c99146237b6fc46e0693", + "sha256": "5476f8fba40e4330a4704681386d78751ced0ecbd050bd0687817cca01d4e167" + }, + "downloads": -1, + "filename": "clang_format-17.0.6-py2.py3-none-musllinux_1_1_aarch64.whl", + "has_sig": false, + "md5_digest": "f297c7998001c99146237b6fc46e0693", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2139740, + "upload_time": "2023-11-29T13:02:50", + "upload_time_iso_8601": "2023-11-29T13:02:50.041204Z", + "url": "https://files.pythonhosted.org/packages/5c/a2/4f49923502938302a099317a431cc1bce7d6516f30d2940fa096d7a9da93/clang_format-17.0.6-py2.py3-none-musllinux_1_1_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "74c0be7647e1c965af6a3946d6936abe826a4bd4f186d74e1f6dc657eb170fd7", + "md5": "a16b7f3b2ea70df1ad0f06419bd9dddb", + "sha256": "a0f744b056cb1595efdb7d2b83a7d73370e506e17fcaa68cd884c2ed029ae0fd" + }, + "downloads": -1, + "filename": "clang_format-17.0.6-py2.py3-none-musllinux_1_1_i686.whl", + "has_sig": false, + "md5_digest": "a16b7f3b2ea70df1ad0f06419bd9dddb", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2322503, + "upload_time": "2023-11-29T13:02:52", + "upload_time_iso_8601": "2023-11-29T13:02:52.062837Z", + "url": "https://files.pythonhosted.org/packages/74/c0/be7647e1c965af6a3946d6936abe826a4bd4f186d74e1f6dc657eb170fd7/clang_format-17.0.6-py2.py3-none-musllinux_1_1_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "8a450bc5f9557e3518097d851baf336ad98d89741155130a9754444df9832e26", + "md5": "59f9a968da0eb1d47bc038783b2d4be8", + "sha256": "2ddc8b6237520d26d78489e3bb876243d87c3629eb3cd40e1df0c8c6e355d949" + }, + "downloads": -1, + "filename": "clang_format-17.0.6-py2.py3-none-musllinux_1_1_ppc64le.whl", + "has_sig": false, + "md5_digest": "59f9a968da0eb1d47bc038783b2d4be8", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2493056, + "upload_time": "2023-11-29T13:02:53", + "upload_time_iso_8601": "2023-11-29T13:02:53.596719Z", + "url": "https://files.pythonhosted.org/packages/8a/45/0bc5f9557e3518097d851baf336ad98d89741155130a9754444df9832e26/clang_format-17.0.6-py2.py3-none-musllinux_1_1_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "2282fc884df02b5df4c045ac6c2e036080fade64c79fc7ce36c876ac7ce9feb0", + "md5": "9ae181c9bbfd15fa257eab78b856860e", + "sha256": "afc29c4413b5f2f885347f4bdbb7fe81f595faeceafa640c9e67a2d9aa2c7134" + }, + "downloads": -1, + "filename": "clang_format-17.0.6-py2.py3-none-musllinux_1_1_s390x.whl", + "has_sig": false, + "md5_digest": "9ae181c9bbfd15fa257eab78b856860e", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2168110, + "upload_time": "2023-11-29T13:02:55", + "upload_time_iso_8601": "2023-11-29T13:02:55.366350Z", + "url": "https://files.pythonhosted.org/packages/22/82/fc884df02b5df4c045ac6c2e036080fade64c79fc7ce36c876ac7ce9feb0/clang_format-17.0.6-py2.py3-none-musllinux_1_1_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "c48d46cf72600ea2cc9a34f98421102d180b9c1c1261dc8bb578611661edafef", + "md5": "b28bc523f631907d28e8736907b0b70e", + "sha256": "33c4f1975a6a0a76e5b85165c510c46ae1155f82477a5730e29799e43d78c83a" + }, + "downloads": -1, + "filename": "clang_format-17.0.6-py2.py3-none-musllinux_1_1_x86_64.whl", + "has_sig": false, + "md5_digest": "b28bc523f631907d28e8736907b0b70e", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2159932, + "upload_time": "2023-11-29T13:02:56", + "upload_time_iso_8601": "2023-11-29T13:02:56.874999Z", + "url": "https://files.pythonhosted.org/packages/c4/8d/46cf72600ea2cc9a34f98421102d180b9c1c1261dc8bb578611661edafef/clang_format-17.0.6-py2.py3-none-musllinux_1_1_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "685c58fd7a4e4191e41babc810f10ffbd2463f5fe6321e2ef02e0a72cacc3492", + "md5": "1fdc404a4c1006328000f22546147361", + "sha256": "edd55b840fa6edcdafb1651c3c24c6ea8d911e73be30373e7e8e5741cb585464" + }, + "downloads": -1, + "filename": "clang_format-17.0.6-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "1fdc404a4c1006328000f22546147361", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1165073, + "upload_time": "2023-11-29T13:02:58", + "upload_time_iso_8601": "2023-11-29T13:02:58.353262Z", + "url": "https://files.pythonhosted.org/packages/68/5c/58fd7a4e4191e41babc810f10ffbd2463f5fe6321e2ef02e0a72cacc3492/clang_format-17.0.6-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "a143dd9dbd0191022ee1eeed7a48f3881f92abb68528f688f20a8659536ce8df", + "md5": "820326eeb83a1f2453b43ec8cb035162", + "sha256": "9407f0f4cb5a26b96af38bb2261f1c4015127f4d87ce46a61bb3a3c2a3d4f3cc" + }, + "downloads": -1, + "filename": "clang_format-17.0.6-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "820326eeb83a1f2453b43ec8cb035162", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1353600, + "upload_time": "2023-11-29T13:02:59", + "upload_time_iso_8601": "2023-11-29T13:02:59.769240Z", + "url": "https://files.pythonhosted.org/packages/a1/43/dd9dbd0191022ee1eeed7a48f3881f92abb68528f688f20a8659536ce8df/clang_format-17.0.6-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "f9f50338054f3f749df62972445fa6ce3e303db27eac7aec4396fad6f67fc12b", + "md5": "ba3839b8ecf4400f55afe9180edd0b16", + "sha256": "50f082840d2e013160355ed63add4502884344371dda5af12ec0abe68cbc5a36" + }, + "downloads": -1, + "filename": "clang-format-17.0.6.tar.gz", + "has_sig": false, + "md5_digest": "ba3839b8ecf4400f55afe9180edd0b16", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 9623, + "upload_time": "2023-11-29T13:03:01", + "upload_time_iso_8601": "2023-11-29T13:03:01.564769Z", + "url": "https://files.pythonhosted.org/packages/f9/f5/0338054f3f749df62972445fa6ce3e303db27eac7aec4396fad6f67fc12b/clang-format-17.0.6.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "18.1.0": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "3997bb79ceef17d14c571be036a02c151962f5f38e30599d336ef01ca3e6dfeb", + "md5": "a95000d2e2db00b6f5844f8e863ea8ae", + "sha256": "93c219eb7604bc6d1f83a278234d8421bf90b9f3f23a8381b065b052c4b72ce1" + }, + "downloads": -1, + "filename": "clang_format-18.1.0-py2.py3-none-macosx_10_9_x86_64.whl", + "has_sig": false, + "md5_digest": "a95000d2e2db00b6f5844f8e863ea8ae", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1381164, + "upload_time": "2024-03-06T17:39:12", + "upload_time_iso_8601": "2024-03-06T17:39:12.865453Z", + "url": "https://files.pythonhosted.org/packages/39/97/bb79ceef17d14c571be036a02c151962f5f38e30599d336ef01ca3e6dfeb/clang_format-18.1.0-py2.py3-none-macosx_10_9_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "460a85c73b6a00fbf2cc50b67dad19e28213e04f3c8f61bc4583d4fc673a6375", + "md5": "0eeac346f2ad0c92e80c78f8327f27e4", + "sha256": "9663fa55317062c36349622d2dc6f7e5a153c2fd4a3ba3001fb9c7aeb3127174" + }, + "downloads": -1, + "filename": "clang_format-18.1.0-py2.py3-none-macosx_11_0_arm64.whl", + "has_sig": false, + "md5_digest": "0eeac346f2ad0c92e80c78f8327f27e4", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1334927, + "upload_time": "2024-03-06T17:39:15", + "upload_time_iso_8601": "2024-03-06T17:39:15.207521Z", + "url": "https://files.pythonhosted.org/packages/46/0a/85c73b6a00fbf2cc50b67dad19e28213e04f3c8f61bc4583d4fc673a6375/clang_format-18.1.0-py2.py3-none-macosx_11_0_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "21a01f1d20420d980fa8991a3bbe68c54f4b1637e03d2e21c95c95969dfe389b", + "md5": "40e91aeccb7875b0489ccb4b49ab2fc0", + "sha256": "c4149a0e6c5970882d97102b6917801e7b0998dc4f1902848ddeaeb799f406fa" + }, + "downloads": -1, + "filename": "clang_format-18.1.0-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "40e91aeccb7875b0489ccb4b49ab2fc0", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1670369, + "upload_time": "2024-03-06T17:39:17", + "upload_time_iso_8601": "2024-03-06T17:39:17.135954Z", + "url": "https://files.pythonhosted.org/packages/21/a0/1f1d20420d980fa8991a3bbe68c54f4b1637e03d2e21c95c95969dfe389b/clang_format-18.1.0-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "02194199b3de32d2621ab00755f259c1facd0c6d576f7c0cd22cdfb8d8050258", + "md5": "8446f33b7a7df09bfaeb4b9f33aa08db", + "sha256": "01faf25df9e93511f87a956dffb020ee675ce75b1b5d57f49fd3335943059581" + }, + "downloads": -1, + "filename": "clang_format-18.1.0-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "8446f33b7a7df09bfaeb4b9f33aa08db", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1853813, + "upload_time": "2024-03-06T17:39:18", + "upload_time_iso_8601": "2024-03-06T17:39:18.572975Z", + "url": "https://files.pythonhosted.org/packages/02/19/4199b3de32d2621ab00755f259c1facd0c6d576f7c0cd22cdfb8d8050258/clang_format-18.1.0-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "e58a6e06171bf1065bd4b6eb58f576ca733d7d67349c717fa0eed7d0e3ca1744", + "md5": "b02c97b318c8ec1b81826568efc03a27", + "sha256": "ea21827f84c4360077d8fc99216022d0628c8dbebab1dce5c855dd702485765f" + }, + "downloads": -1, + "filename": "clang_format-18.1.0-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "b02c97b318c8ec1b81826568efc03a27", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2597713, + "upload_time": "2024-03-06T17:39:20", + "upload_time_iso_8601": "2024-03-06T17:39:20.867587Z", + "url": "https://files.pythonhosted.org/packages/e5/8a/6e06171bf1065bd4b6eb58f576ca733d7d67349c717fa0eed7d0e3ca1744/clang_format-18.1.0-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "5ea9b353090eb69728bf6753a182701aa9669ec59fc4db0c620f3250c69e582a", + "md5": "f2045535996be9dcbadd43a344409adb", + "sha256": "3e32e56c9ee0ade40c87e423f29c14308719a4b2a7e404fc29d8656fe6b5a256" + }, + "downloads": -1, + "filename": "clang_format-18.1.0-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "f2045535996be9dcbadd43a344409adb", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1670800, + "upload_time": "2024-03-06T17:39:22", + "upload_time_iso_8601": "2024-03-06T17:39:22.868679Z", + "url": "https://files.pythonhosted.org/packages/5e/a9/b353090eb69728bf6753a182701aa9669ec59fc4db0c620f3250c69e582a/clang_format-18.1.0-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "6e533bf609363915844dad4a12fce50f6bb7a4b41e610b9063354f5a4fa70318", + "md5": "0bf9c3fddf8b35c59fd4af581ae34f26", + "sha256": "9b3ab6dd9c7a3f22b2f1e5da0eada2afdcb9635875a0770dd92e4bd9ee29db07" + }, + "downloads": -1, + "filename": "clang_format-18.1.0-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "0bf9c3fddf8b35c59fd4af581ae34f26", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1678020, + "upload_time": "2024-03-06T17:39:26", + "upload_time_iso_8601": "2024-03-06T17:39:26.029829Z", + "url": "https://files.pythonhosted.org/packages/6e/53/3bf609363915844dad4a12fce50f6bb7a4b41e610b9063354f5a4fa70318/clang_format-18.1.0-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "f5172ea0cf3dbd5aa8f6c29135b66f72b7f682a396d69ddbb2b9204f6c27171a", + "md5": "19311644ec3ec652ef52815e2dfbf4b8", + "sha256": "e27bd06e57598ee9d4dae73ffbd44ac8af151981e62f261d3ecd0250d2516ff4" + }, + "downloads": -1, + "filename": "clang_format-18.1.0-py2.py3-none-musllinux_1_1_aarch64.whl", + "has_sig": false, + "md5_digest": "19311644ec3ec652ef52815e2dfbf4b8", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2179332, + "upload_time": "2024-03-06T17:39:27", + "upload_time_iso_8601": "2024-03-06T17:39:27.972176Z", + "url": "https://files.pythonhosted.org/packages/f5/17/2ea0cf3dbd5aa8f6c29135b66f72b7f682a396d69ddbb2b9204f6c27171a/clang_format-18.1.0-py2.py3-none-musllinux_1_1_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "e4e166a4cdf48f1c052bd47bea4dfb83bfb0af878b08b3fca50b454d34040963", + "md5": "9b37a85c603ddf002338c7e828aca157", + "sha256": "aff56678c13982332b5f0863002e0f0e90290c55e30a750dd12f3ab044fb2d34" + }, + "downloads": -1, + "filename": "clang_format-18.1.0-py2.py3-none-musllinux_1_1_i686.whl", + "has_sig": false, + "md5_digest": "9b37a85c603ddf002338c7e828aca157", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2356518, + "upload_time": "2024-03-06T17:39:29", + "upload_time_iso_8601": "2024-03-06T17:39:29.298174Z", + "url": "https://files.pythonhosted.org/packages/e4/e1/66a4cdf48f1c052bd47bea4dfb83bfb0af878b08b3fca50b454d34040963/clang_format-18.1.0-py2.py3-none-musllinux_1_1_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "d4983d6f5feca0ed55561b38201fc2c2ffd5c30f489bf2645838001a9cbe0307", + "md5": "6c65497b008d1169ff2224fb0bcf7c04", + "sha256": "5aab358811018144206563fcf8686c9907806405e279738c33c5ce53ce70cd42" + }, + "downloads": -1, + "filename": "clang_format-18.1.0-py2.py3-none-musllinux_1_1_ppc64le.whl", + "has_sig": false, + "md5_digest": "6c65497b008d1169ff2224fb0bcf7c04", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2540421, + "upload_time": "2024-03-06T17:39:31", + "upload_time_iso_8601": "2024-03-06T17:39:31.414257Z", + "url": "https://files.pythonhosted.org/packages/d4/98/3d6f5feca0ed55561b38201fc2c2ffd5c30f489bf2645838001a9cbe0307/clang_format-18.1.0-py2.py3-none-musllinux_1_1_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "5a86acb00253a914f881389781c15ea743d95e30998e467115d8666fe6b00959", + "md5": "92ef3fd0351e61faeb90355619179c0f", + "sha256": "0d3c9782d1ba57a839373702bd0a723ad2f3e057bcb9f46419c7d1b388e92c8f" + }, + "downloads": -1, + "filename": "clang_format-18.1.0-py2.py3-none-musllinux_1_1_s390x.whl", + "has_sig": false, + "md5_digest": "92ef3fd0351e61faeb90355619179c0f", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2216525, + "upload_time": "2024-03-06T17:39:34", + "upload_time_iso_8601": "2024-03-06T17:39:34.381793Z", + "url": "https://files.pythonhosted.org/packages/5a/86/acb00253a914f881389781c15ea743d95e30998e467115d8666fe6b00959/clang_format-18.1.0-py2.py3-none-musllinux_1_1_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "944f9c01a7fd6c7f4fbbc5b8afd84f8b67b95b2f9e49cf889d81cfbbf64c2929", + "md5": "5d65a831cb8fcdd0dabd409f5e50fd3b", + "sha256": "a155484eef592256de365813078618da41152e08e8490a18adab514ec74f9e5e" + }, + "downloads": -1, + "filename": "clang_format-18.1.0-py2.py3-none-musllinux_1_1_x86_64.whl", + "has_sig": false, + "md5_digest": "5d65a831cb8fcdd0dabd409f5e50fd3b", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2195772, + "upload_time": "2024-03-06T17:39:36", + "upload_time_iso_8601": "2024-03-06T17:39:36.722821Z", + "url": "https://files.pythonhosted.org/packages/94/4f/9c01a7fd6c7f4fbbc5b8afd84f8b67b95b2f9e49cf889d81cfbbf64c2929/clang_format-18.1.0-py2.py3-none-musllinux_1_1_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "8ce6d6ee73620e12cf8966fb27d0c48f688bf14b6b8a4f201162053c565cc3c8", + "md5": "1242b4435956ec879a2d2fef88838c0e", + "sha256": "e503acd8940038de2972714eac8e4b0f1f9d2ad979844fc073658adcadbca3eb" + }, + "downloads": -1, + "filename": "clang_format-18.1.0-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "1242b4435956ec879a2d2fef88838c0e", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1185269, + "upload_time": "2024-03-06T17:39:38", + "upload_time_iso_8601": "2024-03-06T17:39:38.428850Z", + "url": "https://files.pythonhosted.org/packages/8c/e6/d6ee73620e12cf8966fb27d0c48f688bf14b6b8a4f201162053c565cc3c8/clang_format-18.1.0-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "d5182df9ddf91f7e930b67d84e9f9043381b9a59415d7cf2225f71d5793e83be", + "md5": "f4c4968cb79a288f73621f32506df55c", + "sha256": "b998ee5e486e9251badc18dadcffbdeed54a93ee8c25e72f4cbf49abcfd31c97" + }, + "downloads": -1, + "filename": "clang_format-18.1.0-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "f4c4968cb79a288f73621f32506df55c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1372288, + "upload_time": "2024-03-06T17:39:40", + "upload_time_iso_8601": "2024-03-06T17:39:40.367456Z", + "url": "https://files.pythonhosted.org/packages/d5/18/2df9ddf91f7e930b67d84e9f9043381b9a59415d7cf2225f71d5793e83be/clang_format-18.1.0-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "95001267b62bb51776c3477437300cdd28bb23195531961cb8835ebaedd9a81e", + "md5": "2b02567983cc9a01b0ce763ee09eac0c", + "sha256": "0b92fe203c28fda45078b977f003ad715a57e1c3feb98e7daa20619a0da74363" + }, + "downloads": -1, + "filename": "clang-format-18.1.0.tar.gz", + "has_sig": false, + "md5_digest": "2b02567983cc9a01b0ce763ee09eac0c", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 9605, + "upload_time": "2024-03-06T17:39:42", + "upload_time_iso_8601": "2024-03-06T17:39:42.226797Z", + "url": "https://files.pythonhosted.org/packages/95/00/1267b62bb51776c3477437300cdd28bb23195531961cb8835ebaedd9a81e/clang-format-18.1.0.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "18.1.1": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "4a2737d150b61037de154a121fb3e6b08f0319455b462894e831592a67d463f4", + "md5": "209aa15d5c6a6248c53eeca47ec7a462", + "sha256": "462c0a300eb23856fe25e4ca749ba6a8390d91ad05dc2020066851746bc3ecc5" + }, + "downloads": -1, + "filename": "clang_format-18.1.1-py2.py3-none-macosx_10_9_x86_64.whl", + "has_sig": false, + "md5_digest": "209aa15d5c6a6248c53eeca47ec7a462", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1381184, + "upload_time": "2024-03-11T19:53:17", + "upload_time_iso_8601": "2024-03-11T19:53:17.784275Z", + "url": "https://files.pythonhosted.org/packages/4a/27/37d150b61037de154a121fb3e6b08f0319455b462894e831592a67d463f4/clang_format-18.1.1-py2.py3-none-macosx_10_9_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "3453381d1de14b9972873fc3b5fff6f2b658f8cb670feeef360fb002d52970f1", + "md5": "fd00cc95306d8949863cc3942036c014", + "sha256": "66f4c313e7667034e15fcfb06b1ed8e53927a133c1ed131e1774ecb82605779b" + }, + "downloads": -1, + "filename": "clang_format-18.1.1-py2.py3-none-macosx_11_0_arm64.whl", + "has_sig": false, + "md5_digest": "fd00cc95306d8949863cc3942036c014", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1343847, + "upload_time": "2024-03-11T19:53:21", + "upload_time_iso_8601": "2024-03-11T19:53:21.123465Z", + "url": "https://files.pythonhosted.org/packages/34/53/381d1de14b9972873fc3b5fff6f2b658f8cb670feeef360fb002d52970f1/clang_format-18.1.1-py2.py3-none-macosx_11_0_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "06636a1bcd88b76c834e640b36fe9b89a14acef86f1490f7a16707a0c98e959b", + "md5": "d1b9a28c51f6c259ec51cf271fd87009", + "sha256": "4b2c8ce9fe6aab049d5f4b5fd9deffb2d3db37598eb71f963b5d8758230577d5" + }, + "downloads": -1, + "filename": "clang_format-18.1.1-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "d1b9a28c51f6c259ec51cf271fd87009", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1670359, + "upload_time": "2024-03-11T19:53:24", + "upload_time_iso_8601": "2024-03-11T19:53:24.916878Z", + "url": "https://files.pythonhosted.org/packages/06/63/6a1bcd88b76c834e640b36fe9b89a14acef86f1490f7a16707a0c98e959b/clang_format-18.1.1-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "dba1beeaf36fc8064ced094a992b831881f04a20e8e57662143e7514ca807c2d", + "md5": "a5a4e0800af194c3d6211d41b7d7a501", + "sha256": "f2376423c6338224bb7a004321c0c458eb687ef2985499c5168108c7f70cd3b7" + }, + "downloads": -1, + "filename": "clang_format-18.1.1-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "a5a4e0800af194c3d6211d41b7d7a501", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1853831, + "upload_time": "2024-03-11T19:53:27", + "upload_time_iso_8601": "2024-03-11T19:53:27.823380Z", + "url": "https://files.pythonhosted.org/packages/db/a1/beeaf36fc8064ced094a992b831881f04a20e8e57662143e7514ca807c2d/clang_format-18.1.1-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "2f89ab8567c8eefc7d0362ee3dde77d84e180a5d30d96730fbb61f357cd02b90", + "md5": "e5e08ec5ee45835e3de2619ee17dded2", + "sha256": "d490af8055a9b1ef69d42733f1c07401e6186fa23b23e0dac3d72574fcb49aa9" + }, + "downloads": -1, + "filename": "clang_format-18.1.1-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "e5e08ec5ee45835e3de2619ee17dded2", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2597747, + "upload_time": "2024-03-11T19:53:31", + "upload_time_iso_8601": "2024-03-11T19:53:31.269800Z", + "url": "https://files.pythonhosted.org/packages/2f/89/ab8567c8eefc7d0362ee3dde77d84e180a5d30d96730fbb61f357cd02b90/clang_format-18.1.1-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "767e0cb88b9a4358648d17d8307b93a5dbe0b75c81802dae86393215872bbe48", + "md5": "2899886ac03830f3b3061a2ae4bdf3f3", + "sha256": "963a0e695e0d5e3e269b7c60107118d0c92fb3ed407c08ef001f844eb8603724" + }, + "downloads": -1, + "filename": "clang_format-18.1.1-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "2899886ac03830f3b3061a2ae4bdf3f3", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1670858, + "upload_time": "2024-03-11T19:53:33", + "upload_time_iso_8601": "2024-03-11T19:53:33.208043Z", + "url": "https://files.pythonhosted.org/packages/76/7e/0cb88b9a4358648d17d8307b93a5dbe0b75c81802dae86393215872bbe48/clang_format-18.1.1-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "93ad759986a5f096d480b0bae4dbb7e11726c14d16d97fde94fe0ea676251a6a", + "md5": "11686eca8737e04ffadcff5d4e4c288e", + "sha256": "650a315767ef4d3180af167dabc18b12d374c6c23df01c0732f8b3c878a83f00" + }, + "downloads": -1, + "filename": "clang_format-18.1.1-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "11686eca8737e04ffadcff5d4e4c288e", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1677947, + "upload_time": "2024-03-11T19:53:34", + "upload_time_iso_8601": "2024-03-11T19:53:34.978632Z", + "url": "https://files.pythonhosted.org/packages/93/ad/759986a5f096d480b0bae4dbb7e11726c14d16d97fde94fe0ea676251a6a/clang_format-18.1.1-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "343e4e808fc23e673f673d84aef81b1ccb86a6b88583f78e13b7d8dd17dc1993", + "md5": "987ff1172e5d190950dc8e94a833ec83", + "sha256": "414d5e4328e88ff72800530ab989f25a148f639a873a32037004001b8d0e800e" + }, + "downloads": -1, + "filename": "clang_format-18.1.1-py2.py3-none-musllinux_1_1_aarch64.whl", + "has_sig": false, + "md5_digest": "987ff1172e5d190950dc8e94a833ec83", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2179403, + "upload_time": "2024-03-11T19:53:36", + "upload_time_iso_8601": "2024-03-11T19:53:36.771970Z", + "url": "https://files.pythonhosted.org/packages/34/3e/4e808fc23e673f673d84aef81b1ccb86a6b88583f78e13b7d8dd17dc1993/clang_format-18.1.1-py2.py3-none-musllinux_1_1_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "0373bd34cd691a2fd52d41383cf2fec0e6b662126ecbf8e0fadd1c0dd54d53be", + "md5": "2bbbfc66fb571d7b4b9345ff88071818", + "sha256": "75e7ad8f83aa43bb00cc97d4ea9b0eeda68e50c0a6ca394958786ba6e1b720b0" + }, + "downloads": -1, + "filename": "clang_format-18.1.1-py2.py3-none-musllinux_1_1_i686.whl", + "has_sig": false, + "md5_digest": "2bbbfc66fb571d7b4b9345ff88071818", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2356520, + "upload_time": "2024-03-11T19:53:38", + "upload_time_iso_8601": "2024-03-11T19:53:38.582895Z", + "url": "https://files.pythonhosted.org/packages/03/73/bd34cd691a2fd52d41383cf2fec0e6b662126ecbf8e0fadd1c0dd54d53be/clang_format-18.1.1-py2.py3-none-musllinux_1_1_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "d66a6873ef5fb60c25add678ab9453c1fe3385d1043231ce4f3eba987217fd7a", + "md5": "a7096bf063ee5576c4e3cfc8422d56b9", + "sha256": "b16759fe2089558228001341fbf00b623e00c34ad3535a1f1ee48402a0beb6e2" + }, + "downloads": -1, + "filename": "clang_format-18.1.1-py2.py3-none-musllinux_1_1_ppc64le.whl", + "has_sig": false, + "md5_digest": "a7096bf063ee5576c4e3cfc8422d56b9", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2540745, + "upload_time": "2024-03-11T19:53:40", + "upload_time_iso_8601": "2024-03-11T19:53:40.374856Z", + "url": "https://files.pythonhosted.org/packages/d6/6a/6873ef5fb60c25add678ab9453c1fe3385d1043231ce4f3eba987217fd7a/clang_format-18.1.1-py2.py3-none-musllinux_1_1_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "09117d4ad7b9b020ed08da2a562f8398a2db5ccb57cf41abd973726525b30335", + "md5": "93cbe8aecd24eaf0daa105079be337d8", + "sha256": "a500b98e9311e915dfa60206d2916276f30063014eb2744d5089bc841a5b95be" + }, + "downloads": -1, + "filename": "clang_format-18.1.1-py2.py3-none-musllinux_1_1_s390x.whl", + "has_sig": false, + "md5_digest": "93cbe8aecd24eaf0daa105079be337d8", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2216499, + "upload_time": "2024-03-11T19:53:42", + "upload_time_iso_8601": "2024-03-11T19:53:42.804979Z", + "url": "https://files.pythonhosted.org/packages/09/11/7d4ad7b9b020ed08da2a562f8398a2db5ccb57cf41abd973726525b30335/clang_format-18.1.1-py2.py3-none-musllinux_1_1_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "86fd4f15a01f7efc51914e3bddfb44c2c1999457763550d9e2f2336cdadc9dcd", + "md5": "0530ea85b91c39a966290d25e4c6a275", + "sha256": "426cbb0f394916859ac258b1a013a4fcfd906de968246f0a0073f6e17bb2c30e" + }, + "downloads": -1, + "filename": "clang_format-18.1.1-py2.py3-none-musllinux_1_1_x86_64.whl", + "has_sig": false, + "md5_digest": "0530ea85b91c39a966290d25e4c6a275", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2195795, + "upload_time": "2024-03-11T19:53:44", + "upload_time_iso_8601": "2024-03-11T19:53:44.609855Z", + "url": "https://files.pythonhosted.org/packages/86/fd/4f15a01f7efc51914e3bddfb44c2c1999457763550d9e2f2336cdadc9dcd/clang_format-18.1.1-py2.py3-none-musllinux_1_1_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "dfac9df1f3caf8cb984a4448cd50d80e06d8fc0cd0cd85c7e0f48e09cd2e86a8", + "md5": "f897e5587da3773216706cd48589d25a", + "sha256": "a86e03e686526961b8fc426670e391d696a94ddb890f5b65d2e4a5581136ef8a" + }, + "downloads": -1, + "filename": "clang_format-18.1.1-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "f897e5587da3773216706cd48589d25a", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1185328, + "upload_time": "2024-03-11T19:53:46", + "upload_time_iso_8601": "2024-03-11T19:53:46.142801Z", + "url": "https://files.pythonhosted.org/packages/df/ac/9df1f3caf8cb984a4448cd50d80e06d8fc0cd0cd85c7e0f48e09cd2e86a8/clang_format-18.1.1-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "9785b785272c788344d65caa85ca3e25c8175b474df6301a4cdddc8541163dea", + "md5": "e04e69674cc440fd45587ded86004ae0", + "sha256": "7f38142aacd670009ea958aa0c19cf7905392890c6d3c6cf8047135d37c4306e" + }, + "downloads": -1, + "filename": "clang_format-18.1.1-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "e04e69674cc440fd45587ded86004ae0", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1372178, + "upload_time": "2024-03-11T19:53:47", + "upload_time_iso_8601": "2024-03-11T19:53:47.694259Z", + "url": "https://files.pythonhosted.org/packages/97/85/b785272c788344d65caa85ca3e25c8175b474df6301a4cdddc8541163dea/clang_format-18.1.1-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "b97268f7b93363e9a413455d6e0f699ed33d635b11d3282a6b31f66f5c176fc9", + "md5": "81536db51b7e27f7a0296adf7da08923", + "sha256": "cf4a837737a21c098347f5c8d5579472dd72f5aa6287c3ee45f45366e6eb100b" + }, + "downloads": -1, + "filename": "clang-format-18.1.1.tar.gz", + "has_sig": false, + "md5_digest": "81536db51b7e27f7a0296adf7da08923", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 9611, + "upload_time": "2024-03-11T19:53:49", + "upload_time_iso_8601": "2024-03-11T19:53:49.054519Z", + "url": "https://files.pythonhosted.org/packages/b9/72/68f7b93363e9a413455d6e0f699ed33d635b11d3282a6b31f66f5c176fc9/clang-format-18.1.1.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "18.1.2": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "56403d3a06d8cad939b578cde4e17cd3050ae98256a91eca623352fa520b12c1", + "md5": "1e9f29b6d220549b4df0b7909f200653", + "sha256": "b8ff2eaf11e33c121076c7a37dcf4db1d812276a0c3e8b730f8d75a1a93a3eae" + }, + "downloads": -1, + "filename": "clang_format-18.1.2-py2.py3-none-macosx_10_9_x86_64.whl", + "has_sig": false, + "md5_digest": "1e9f29b6d220549b4df0b7909f200653", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1373336, + "upload_time": "2024-03-21T20:49:13", + "upload_time_iso_8601": "2024-03-21T20:49:13.755595Z", + "url": "https://files.pythonhosted.org/packages/56/40/3d3a06d8cad939b578cde4e17cd3050ae98256a91eca623352fa520b12c1/clang_format-18.1.2-py2.py3-none-macosx_10_9_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "e8e49e6b5934a20231c3778e083e95dc06ccf284a0d0814205041d7ac6f2ffe3", + "md5": "0d6dfa994660788cd5f9b7b25981be0d", + "sha256": "9c1e08af1ac6de95fdbcd1fc0e9676d1c1dd61f9980b2cf6370a5ae73a5147f7" + }, + "downloads": -1, + "filename": "clang_format-18.1.2-py2.py3-none-macosx_11_0_arm64.whl", + "has_sig": false, + "md5_digest": "0d6dfa994660788cd5f9b7b25981be0d", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1343111, + "upload_time": "2024-03-21T20:49:16", + "upload_time_iso_8601": "2024-03-21T20:49:16.339463Z", + "url": "https://files.pythonhosted.org/packages/e8/e4/9e6b5934a20231c3778e083e95dc06ccf284a0d0814205041d7ac6f2ffe3/clang_format-18.1.2-py2.py3-none-macosx_11_0_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "e451f6a059eb0066489c3489dbc9cc22d86b9c7465c785e77aa059e555628986", + "md5": "a24c9f3e8779fb3b7c2367f2489d82af", + "sha256": "bc5b243ab728eab7d53a2c5d41ed09124b4361cf844f8ddb0f7defbab5349874" + }, + "downloads": -1, + "filename": "clang_format-18.1.2-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "a24c9f3e8779fb3b7c2367f2489d82af", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1669711, + "upload_time": "2024-03-21T20:49:18", + "upload_time_iso_8601": "2024-03-21T20:49:18.508076Z", + "url": "https://files.pythonhosted.org/packages/e4/51/f6a059eb0066489c3489dbc9cc22d86b9c7465c785e77aa059e555628986/clang_format-18.1.2-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "6a34c9dc34035754be8d6b37a2ede04da425f1b32176a0b495bd3fcee6b22fd3", + "md5": "ec56abbfdc15fb1c2a9d44b4eb5dd310", + "sha256": "68a7d52115770f372cf65b40f6eccf3dc2d5248e0765ac2d34cd99415482fd58" + }, + "downloads": -1, + "filename": "clang_format-18.1.2-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "ec56abbfdc15fb1c2a9d44b4eb5dd310", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1853540, + "upload_time": "2024-03-21T20:49:20", + "upload_time_iso_8601": "2024-03-21T20:49:20.445253Z", + "url": "https://files.pythonhosted.org/packages/6a/34/c9dc34035754be8d6b37a2ede04da425f1b32176a0b495bd3fcee6b22fd3/clang_format-18.1.2-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "5739d7c90281eb6f441ad7848287763a9cc2ebd621bc1871d4d558334f30c41f", + "md5": "88e7ad67bb998d47c5f94f52ad5cc959", + "sha256": "165d0535fe4e44fc0ddcefe7f9098ecb60ef687cccd18d00a3f0b9ec46831a6c" + }, + "downloads": -1, + "filename": "clang_format-18.1.2-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "88e7ad67bb998d47c5f94f52ad5cc959", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2597055, + "upload_time": "2024-03-21T20:49:22", + "upload_time_iso_8601": "2024-03-21T20:49:22.038463Z", + "url": "https://files.pythonhosted.org/packages/57/39/d7c90281eb6f441ad7848287763a9cc2ebd621bc1871d4d558334f30c41f/clang_format-18.1.2-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "74090299905a584d767d893d8d3aa1d3e5b8cacb4c5dbd319e90e3ad2f76f98a", + "md5": "52864c6d8fc5ebec15fd38396a9599d4", + "sha256": "8a5e2adbd28ddc48fff449a9daf1c144b39ed7d29c548d236ce7f85ecc2f1cfa" + }, + "downloads": -1, + "filename": "clang_format-18.1.2-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "52864c6d8fc5ebec15fd38396a9599d4", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1670559, + "upload_time": "2024-03-21T20:49:24", + "upload_time_iso_8601": "2024-03-21T20:49:24.548596Z", + "url": "https://files.pythonhosted.org/packages/74/09/0299905a584d767d893d8d3aa1d3e5b8cacb4c5dbd319e90e3ad2f76f98a/clang_format-18.1.2-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "1b7c62854546ada7053dba03168e715d2e0dffcebd7b9035174450325956796c", + "md5": "992e3152c9dbd5e4360fae1d1f6d1f80", + "sha256": "f007e5822ef0b36f7c9f32ef8babcea91496626417779f4501b7f6d1316d0c4b" + }, + "downloads": -1, + "filename": "clang_format-18.1.2-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "992e3152c9dbd5e4360fae1d1f6d1f80", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1677243, + "upload_time": "2024-03-21T20:49:25", + "upload_time_iso_8601": "2024-03-21T20:49:25.977406Z", + "url": "https://files.pythonhosted.org/packages/1b/7c/62854546ada7053dba03168e715d2e0dffcebd7b9035174450325956796c/clang_format-18.1.2-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "677860904906244501ad73f6ab9fbcd089f68f45e331b83a0812f2ba37e3ef4d", + "md5": "a85e8daa13592ae4c9ba65251eb4ba08", + "sha256": "882758e41ab477fa56d612fb5cc644e2ca0d01339a9e9475f905b5e2607f807d" + }, + "downloads": -1, + "filename": "clang_format-18.1.2-py2.py3-none-musllinux_1_1_aarch64.whl", + "has_sig": false, + "md5_digest": "a85e8daa13592ae4c9ba65251eb4ba08", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2179083, + "upload_time": "2024-03-21T20:49:27", + "upload_time_iso_8601": "2024-03-21T20:49:27.472623Z", + "url": "https://files.pythonhosted.org/packages/67/78/60904906244501ad73f6ab9fbcd089f68f45e331b83a0812f2ba37e3ef4d/clang_format-18.1.2-py2.py3-none-musllinux_1_1_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "37e8fc6f14819201ed1931c7ad378a37c219ffa0d914a641c01641c0497c4c05", + "md5": "067cedd5fde242cd7a4e6e8c2ee6611f", + "sha256": "d59b2dfa80340abb3a31f8a8ba8b77094d29827a924485b6811bea209c00348b" + }, + "downloads": -1, + "filename": "clang_format-18.1.2-py2.py3-none-musllinux_1_1_i686.whl", + "has_sig": false, + "md5_digest": "067cedd5fde242cd7a4e6e8c2ee6611f", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2356124, + "upload_time": "2024-03-21T20:49:28", + "upload_time_iso_8601": "2024-03-21T20:49:28.976181Z", + "url": "https://files.pythonhosted.org/packages/37/e8/fc6f14819201ed1931c7ad378a37c219ffa0d914a641c01641c0497c4c05/clang_format-18.1.2-py2.py3-none-musllinux_1_1_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "aa0b0b1a2892f5300ea79c09c00e5693e91f60079ee6d2a871f5c0f3bced1ada", + "md5": "97b59c522ca5558cb1a14fc5c72387d1", + "sha256": "fe2b5784d7ae5e4ab1af624ae0d8ce53192f087103686e14e539b6d8ddbe5345" + }, + "downloads": -1, + "filename": "clang_format-18.1.2-py2.py3-none-musllinux_1_1_ppc64le.whl", + "has_sig": false, + "md5_digest": "97b59c522ca5558cb1a14fc5c72387d1", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2539236, + "upload_time": "2024-03-21T20:49:31", + "upload_time_iso_8601": "2024-03-21T20:49:31.005897Z", + "url": "https://files.pythonhosted.org/packages/aa/0b/0b1a2892f5300ea79c09c00e5693e91f60079ee6d2a871f5c0f3bced1ada/clang_format-18.1.2-py2.py3-none-musllinux_1_1_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "9f3cc86fcdf3431bb35bf9848c838b4dd9a3578bb16b12650f6fff5410b78e42", + "md5": "b4db25f562c2a69e8b366e211c0194f2", + "sha256": "c393115242112e93950ba0c63f546e7ca524200feb97e99a17be369e53210543" + }, + "downloads": -1, + "filename": "clang_format-18.1.2-py2.py3-none-musllinux_1_1_s390x.whl", + "has_sig": false, + "md5_digest": "b4db25f562c2a69e8b366e211c0194f2", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2216207, + "upload_time": "2024-03-21T20:49:33", + "upload_time_iso_8601": "2024-03-21T20:49:33.608977Z", + "url": "https://files.pythonhosted.org/packages/9f/3c/c86fcdf3431bb35bf9848c838b4dd9a3578bb16b12650f6fff5410b78e42/clang_format-18.1.2-py2.py3-none-musllinux_1_1_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "9591fb8320d2a0eac943822821a0fd28cda892d1cbd082d5db2418b86f3cf0a8", + "md5": "0c104de29b6cba4a6082ae11e897d56d", + "sha256": "c5fa4983ff1798c2dca1356497ca3417b50ba0867fe3023f779c6517b8a29dfe" + }, + "downloads": -1, + "filename": "clang_format-18.1.2-py2.py3-none-musllinux_1_1_x86_64.whl", + "has_sig": false, + "md5_digest": "0c104de29b6cba4a6082ae11e897d56d", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2195425, + "upload_time": "2024-03-21T20:49:35", + "upload_time_iso_8601": "2024-03-21T20:49:35.138436Z", + "url": "https://files.pythonhosted.org/packages/95/91/fb8320d2a0eac943822821a0fd28cda892d1cbd082d5db2418b86f3cf0a8/clang_format-18.1.2-py2.py3-none-musllinux_1_1_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "aad02336b2620abfb698d1d15cfae82fddc8cb079e07a6a2d24b28be061aabd1", + "md5": "f487ec42f14fb67dc5539ac90d7bc33d", + "sha256": "c2c00e1d85d82f2ce071a9e347079355937c728ffdd8f98d133227cf048ae03b" + }, + "downloads": -1, + "filename": "clang_format-18.1.2-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "f487ec42f14fb67dc5539ac90d7bc33d", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1179232, + "upload_time": "2024-03-21T20:49:36", + "upload_time_iso_8601": "2024-03-21T20:49:36.795973Z", + "url": "https://files.pythonhosted.org/packages/aa/d0/2336b2620abfb698d1d15cfae82fddc8cb079e07a6a2d24b28be061aabd1/clang_format-18.1.2-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "148b6a22c123a9bbcd9c5771ffb06ae4ed5c2196a37328c34756c642629fdbd8", + "md5": "8934c3eb002b929a1fe7a7eed36a64f4", + "sha256": "0256bbefe62431dbeb1c8fb35013e188d908771b1a04f6e8e115043fc00845bc" + }, + "downloads": -1, + "filename": "clang_format-18.1.2-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "8934c3eb002b929a1fe7a7eed36a64f4", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1368013, + "upload_time": "2024-03-21T20:49:38", + "upload_time_iso_8601": "2024-03-21T20:49:38.677050Z", + "url": "https://files.pythonhosted.org/packages/14/8b/6a22c123a9bbcd9c5771ffb06ae4ed5c2196a37328c34756c642629fdbd8/clang_format-18.1.2-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "8d33db0c76ee90947033d9bb14e4b724b6346f9b23957d00ecf7357c4df3796b", + "md5": "3c1051974644cced1bae0f696379fc9b", + "sha256": "6605bd4f2719bd38fd02c8e7f2d3fbfa04eb5734dada9f444d2bd15ac167180f" + }, + "downloads": -1, + "filename": "clang_format-18.1.2.tar.gz", + "has_sig": false, + "md5_digest": "3c1051974644cced1bae0f696379fc9b", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 11074, + "upload_time": "2024-03-21T20:49:40", + "upload_time_iso_8601": "2024-03-21T20:49:40.713740Z", + "url": "https://files.pythonhosted.org/packages/8d/33/db0c76ee90947033d9bb14e4b724b6346f9b23957d00ecf7357c4df3796b/clang_format-18.1.2.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "18.1.3": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "c3fa316faca0c0171633b52d66b3dd37aae2c95788cbd3303482daccde398142", + "md5": "7e21e8f228b0430a82ce0abc168ec494", + "sha256": "fcc2635a4659aa482531c8573f52d0baacc13fed36182f89ae0b832d1bd5261d" + }, + "downloads": -1, + "filename": "clang_format-18.1.3-py2.py3-none-macosx_10_9_x86_64.whl", + "has_sig": false, + "md5_digest": "7e21e8f228b0430a82ce0abc168ec494", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1373339, + "upload_time": "2024-04-04T13:42:02", + "upload_time_iso_8601": "2024-04-04T13:42:02.588527Z", + "url": "https://files.pythonhosted.org/packages/c3/fa/316faca0c0171633b52d66b3dd37aae2c95788cbd3303482daccde398142/clang_format-18.1.3-py2.py3-none-macosx_10_9_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "2cda1cf255be770ef669b1015a6cbb35c0d723b6ed2f5f5568b7ff4723075463", + "md5": "a8c51ebbb7042d12a60d9b059fd848f3", + "sha256": "6d3e34907a422a22ec30cca09c8f967c1ddcbf3e8bf1a7120e651ef600b60f28" + }, + "downloads": -1, + "filename": "clang_format-18.1.3-py2.py3-none-macosx_11_0_arm64.whl", + "has_sig": false, + "md5_digest": "a8c51ebbb7042d12a60d9b059fd848f3", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1343114, + "upload_time": "2024-04-04T13:42:05", + "upload_time_iso_8601": "2024-04-04T13:42:05.651105Z", + "url": "https://files.pythonhosted.org/packages/2c/da/1cf255be770ef669b1015a6cbb35c0d723b6ed2f5f5568b7ff4723075463/clang_format-18.1.3-py2.py3-none-macosx_11_0_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "a708c1c8af9b2de7aca73a3b842509c5601d24dc83b9c4270050305f6251bb87", + "md5": "1c6b7963b52cff5169a0b4f18ee73716", + "sha256": "8df9358da6e9b007b7aabf9d800133d718d9bb641bbf10df19d4552ab9381708" + }, + "downloads": -1, + "filename": "clang_format-18.1.3-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "1c6b7963b52cff5169a0b4f18ee73716", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1669713, + "upload_time": "2024-04-04T13:42:07", + "upload_time_iso_8601": "2024-04-04T13:42:07.975303Z", + "url": "https://files.pythonhosted.org/packages/a7/08/c1c8af9b2de7aca73a3b842509c5601d24dc83b9c4270050305f6251bb87/clang_format-18.1.3-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "07fe0f4f7b9cf8590c0a917718d598fb6188e0978c02d604e5f22e45b6e693ac", + "md5": "833c08772492916b486e1ef5737553f3", + "sha256": "5ab14e6c0fe4dcf054e6a07f284e0b93e272db449e4e5826ed6213e7b5282852" + }, + "downloads": -1, + "filename": "clang_format-18.1.3-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "833c08772492916b486e1ef5737553f3", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1853544, + "upload_time": "2024-04-04T13:42:10", + "upload_time_iso_8601": "2024-04-04T13:42:10.299469Z", + "url": "https://files.pythonhosted.org/packages/07/fe/0f4f7b9cf8590c0a917718d598fb6188e0978c02d604e5f22e45b6e693ac/clang_format-18.1.3-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "b953fbea9cc2b69930b38a10708a18de1a30a08eb64a1a43777f62e5c11ce85d", + "md5": "ee2aaace34bc574f3b805a8372dd1f98", + "sha256": "9a2738f19309f0b4a25817ff95e3d89dd8859d33fd2516e6b419b3f00ff398f5" + }, + "downloads": -1, + "filename": "clang_format-18.1.3-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "ee2aaace34bc574f3b805a8372dd1f98", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2597057, + "upload_time": "2024-04-04T13:42:12", + "upload_time_iso_8601": "2024-04-04T13:42:12.183263Z", + "url": "https://files.pythonhosted.org/packages/b9/53/fbea9cc2b69930b38a10708a18de1a30a08eb64a1a43777f62e5c11ce85d/clang_format-18.1.3-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "0d400351934d99d848cc22f11eaec73339c8a1132a534c430b770a07921fd07f", + "md5": "2eb70dbf521bafde358157b59bcf7906", + "sha256": "9ea076cced01cb113d6abc30787f8ddc9dfcaf268dc6ba68766de6374b886131" + }, + "downloads": -1, + "filename": "clang_format-18.1.3-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "2eb70dbf521bafde358157b59bcf7906", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1670571, + "upload_time": "2024-04-04T13:42:14", + "upload_time_iso_8601": "2024-04-04T13:42:14.636215Z", + "url": "https://files.pythonhosted.org/packages/0d/40/0351934d99d848cc22f11eaec73339c8a1132a534c430b770a07921fd07f/clang_format-18.1.3-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "d59c4f3806d20397790b3cd80aef89d295bf399581804f5c5758b6207e54e902", + "md5": "7ddba497eb859bc3bceb996e1f0e0831", + "sha256": "059f2c2e7166f97cf06f78d9bd31d83a9c0416527845cb397296daa43bd2c6e2" + }, + "downloads": -1, + "filename": "clang_format-18.1.3-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "7ddba497eb859bc3bceb996e1f0e0831", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1677254, + "upload_time": "2024-04-04T13:42:16", + "upload_time_iso_8601": "2024-04-04T13:42:16.418080Z", + "url": "https://files.pythonhosted.org/packages/d5/9c/4f3806d20397790b3cd80aef89d295bf399581804f5c5758b6207e54e902/clang_format-18.1.3-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "a9a5a24386285fed687254f6e0b38ba7fa311f1ffa733465f9ee5d7771ee1244", + "md5": "305471f491405c8a38d16202c5bd1860", + "sha256": "185012029963f1296c6668dbd60a01c2799965ac3d497fbd12a7f00792310893" + }, + "downloads": -1, + "filename": "clang_format-18.1.3-py2.py3-none-musllinux_1_1_aarch64.whl", + "has_sig": false, + "md5_digest": "305471f491405c8a38d16202c5bd1860", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2179089, + "upload_time": "2024-04-04T13:42:18", + "upload_time_iso_8601": "2024-04-04T13:42:18.035481Z", + "url": "https://files.pythonhosted.org/packages/a9/a5/a24386285fed687254f6e0b38ba7fa311f1ffa733465f9ee5d7771ee1244/clang_format-18.1.3-py2.py3-none-musllinux_1_1_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "7479eebdd1f8b8ce187cf380abf0f5099e6e8e888e05ccf99c14ee15f840acab", + "md5": "8e8ae07c5d03115c5f52f90e860845fa", + "sha256": "04bc6e61504bf82661ed3d18eed8a4de310bda249e79f170f648785f8479b8c5" + }, + "downloads": -1, + "filename": "clang_format-18.1.3-py2.py3-none-musllinux_1_1_i686.whl", + "has_sig": false, + "md5_digest": "8e8ae07c5d03115c5f52f90e860845fa", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2356127, + "upload_time": "2024-04-04T13:42:20", + "upload_time_iso_8601": "2024-04-04T13:42:20.553196Z", + "url": "https://files.pythonhosted.org/packages/74/79/eebdd1f8b8ce187cf380abf0f5099e6e8e888e05ccf99c14ee15f840acab/clang_format-18.1.3-py2.py3-none-musllinux_1_1_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "af8f314460b0e5624f9899229f484e0e0f60bb69655679bbb680015c4f980e77", + "md5": "a56b19500c7629cdb1e8cd2ddc66a240", + "sha256": "0c36f88db93dc6519fb9382f0bdfc103427311cff59bb1333601a31a2fd8ed6c" + }, + "downloads": -1, + "filename": "clang_format-18.1.3-py2.py3-none-musllinux_1_1_ppc64le.whl", + "has_sig": false, + "md5_digest": "a56b19500c7629cdb1e8cd2ddc66a240", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2539240, + "upload_time": "2024-04-04T13:42:22", + "upload_time_iso_8601": "2024-04-04T13:42:22.637128Z", + "url": "https://files.pythonhosted.org/packages/af/8f/314460b0e5624f9899229f484e0e0f60bb69655679bbb680015c4f980e77/clang_format-18.1.3-py2.py3-none-musllinux_1_1_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "6cab7bd07106b38f305feafb7f9c8cf88970bd5410b8fa0fd4c0b96be519f8ab", + "md5": "f4d6c333099dc8b3529c735ee4718ef0", + "sha256": "c260141f8c298b533a90ee43e324cfc1568d06fe768735924b9fda883c543629" + }, + "downloads": -1, + "filename": "clang_format-18.1.3-py2.py3-none-musllinux_1_1_s390x.whl", + "has_sig": false, + "md5_digest": "f4d6c333099dc8b3529c735ee4718ef0", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2216216, + "upload_time": "2024-04-04T13:42:24", + "upload_time_iso_8601": "2024-04-04T13:42:24.399003Z", + "url": "https://files.pythonhosted.org/packages/6c/ab/7bd07106b38f305feafb7f9c8cf88970bd5410b8fa0fd4c0b96be519f8ab/clang_format-18.1.3-py2.py3-none-musllinux_1_1_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "2c3a81a17f28c13083979ea41d9d22f99ca6314f0fbf41fad59528153d2aff04", + "md5": "de2248f85fdb7617ebc24dc90add4995", + "sha256": "95f7ea59dd411f7e7322fbb28911b24df7fb96f3601d3d9f861c268d78244982" + }, + "downloads": -1, + "filename": "clang_format-18.1.3-py2.py3-none-musllinux_1_1_x86_64.whl", + "has_sig": false, + "md5_digest": "de2248f85fdb7617ebc24dc90add4995", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2195429, + "upload_time": "2024-04-04T13:42:27", + "upload_time_iso_8601": "2024-04-04T13:42:27.243083Z", + "url": "https://files.pythonhosted.org/packages/2c/3a/81a17f28c13083979ea41d9d22f99ca6314f0fbf41fad59528153d2aff04/clang_format-18.1.3-py2.py3-none-musllinux_1_1_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "0d154eced0f9a508a9f1c32c4ecf7cf819e5e230a72adcbeff6027098cfa7130", + "md5": "a4a6f59fcf7b31dbacab6b71de2da135", + "sha256": "5872234f561dd12d30e58f258b2e2583f297c958cd60a4473d29b67a4415bd92" + }, + "downloads": -1, + "filename": "clang_format-18.1.3-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "a4a6f59fcf7b31dbacab6b71de2da135", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1179232, + "upload_time": "2024-04-04T13:42:29", + "upload_time_iso_8601": "2024-04-04T13:42:29.482695Z", + "url": "https://files.pythonhosted.org/packages/0d/15/4eced0f9a508a9f1c32c4ecf7cf819e5e230a72adcbeff6027098cfa7130/clang_format-18.1.3-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "a9dac9dc855e5e60783948eae03c56c0a48207a23462096e65343b03bff282c2", + "md5": "8ca5e786a7bb090e6aedd08591acaeec", + "sha256": "b27f14d3ab4533de798bebd1480650a9d703d009d22e34caacc8b9bcc6b1cc2c" + }, + "downloads": -1, + "filename": "clang_format-18.1.3-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "8ca5e786a7bb090e6aedd08591acaeec", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1368016, + "upload_time": "2024-04-04T13:42:31", + "upload_time_iso_8601": "2024-04-04T13:42:31.183462Z", + "url": "https://files.pythonhosted.org/packages/a9/da/c9dc855e5e60783948eae03c56c0a48207a23462096e65343b03bff282c2/clang_format-18.1.3-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "8bac8224f71d132ebcd0c3119ce42a8ec1602582c659a387f843809830c2ffae", + "md5": "11b2357c561c8dd1e69147c1327f7c25", + "sha256": "aaec391180391a64b71b28ebf34d97290dabaec4a5c5673247a67365581ebe21" + }, + "downloads": -1, + "filename": "clang_format-18.1.3.tar.gz", + "has_sig": false, + "md5_digest": "11b2357c561c8dd1e69147c1327f7c25", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 11073, + "upload_time": "2024-04-04T13:42:32", + "upload_time_iso_8601": "2024-04-04T13:42:32.601278Z", + "url": "https://files.pythonhosted.org/packages/8b/ac/8224f71d132ebcd0c3119ce42a8ec1602582c659a387f843809830c2ffae/clang_format-18.1.3.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "18.1.4": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "e66e9f0bce8867f5ed6fc676bc6dbfeb0fe14ae8dc8d79412131701eb5ee715a", + "md5": "9bd539a88e992a6c624716af88d9c0e7", + "sha256": "1c1ecbcb3e0d43b73225317847d32801745a7b5b2343e1e5fbb2d44e2320d4f8" + }, + "downloads": -1, + "filename": "clang_format-18.1.4-py2.py3-none-macosx_10_9_x86_64.whl", + "has_sig": false, + "md5_digest": "9bd539a88e992a6c624716af88d9c0e7", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1373524, + "upload_time": "2024-04-19T14:30:46", + "upload_time_iso_8601": "2024-04-19T14:30:46.876502Z", + "url": "https://files.pythonhosted.org/packages/e6/6e/9f0bce8867f5ed6fc676bc6dbfeb0fe14ae8dc8d79412131701eb5ee715a/clang_format-18.1.4-py2.py3-none-macosx_10_9_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "3f8677ff39a267ce7d666e8ef3ad9a4e6ea63805bae96dda8417d77f930af671", + "md5": "c6e8099f5aaa1999fb0206cbec1881c1", + "sha256": "2441fb6623c684a25b973aae8ac20714ee65abbd1911479a5792d7c542e80063" + }, + "downloads": -1, + "filename": "clang_format-18.1.4-py2.py3-none-macosx_11_0_arm64.whl", + "has_sig": false, + "md5_digest": "c6e8099f5aaa1999fb0206cbec1881c1", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1343141, + "upload_time": "2024-04-19T14:30:49", + "upload_time_iso_8601": "2024-04-19T14:30:49.383902Z", + "url": "https://files.pythonhosted.org/packages/3f/86/77ff39a267ce7d666e8ef3ad9a4e6ea63805bae96dda8417d77f930af671/clang_format-18.1.4-py2.py3-none-macosx_11_0_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "4170fdf29b32116aa9b291f3d5e0e0f8fc461bc74b0ca849de13a4a6e0cde673", + "md5": "c64001b6ecc8a53eb5c8257d19198a2b", + "sha256": "ff470247c5574c6ddfe74c4e6e1e73456cd46cc015f7f11a634d0f8644996d7d" + }, + "downloads": -1, + "filename": "clang_format-18.1.4-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "c64001b6ecc8a53eb5c8257d19198a2b", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1669758, + "upload_time": "2024-04-19T14:30:51", + "upload_time_iso_8601": "2024-04-19T14:30:51.422410Z", + "url": "https://files.pythonhosted.org/packages/41/70/fdf29b32116aa9b291f3d5e0e0f8fc461bc74b0ca849de13a4a6e0cde673/clang_format-18.1.4-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "32438f5a645518440ffc450cfd43bf6abf7e73d3e9c6b58febfa39c99ee1737e", + "md5": "89731907bcc68acdbe962149abf8858f", + "sha256": "c697fa3dd6de8727e223701ebe022a1a8486b44f9e5d3ff696908a48c4ee6525" + }, + "downloads": -1, + "filename": "clang_format-18.1.4-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "89731907bcc68acdbe962149abf8858f", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1853512, + "upload_time": "2024-04-19T14:30:53", + "upload_time_iso_8601": "2024-04-19T14:30:53.391464Z", + "url": "https://files.pythonhosted.org/packages/32/43/8f5a645518440ffc450cfd43bf6abf7e73d3e9c6b58febfa39c99ee1737e/clang_format-18.1.4-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "1c18b9648401f0164bcfd91d7afc0a3168af267986c7b3c1effb3f332c1f06df", + "md5": "b060b5a58f19f450aee5c4ff0424c615", + "sha256": "cb6d3107195c95235a7f78e4a6ae70be8611e6abc7798dfef8f3eae59e4d66bb" + }, + "downloads": -1, + "filename": "clang_format-18.1.4-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "b060b5a58f19f450aee5c4ff0424c615", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2597174, + "upload_time": "2024-04-19T14:30:54", + "upload_time_iso_8601": "2024-04-19T14:30:54.839464Z", + "url": "https://files.pythonhosted.org/packages/1c/18/b9648401f0164bcfd91d7afc0a3168af267986c7b3c1effb3f332c1f06df/clang_format-18.1.4-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "1e99fb9df84185dda85d904ed6703d6509e5ed0b5d6d0b6e3f4dfa35546868eb", + "md5": "9d5c71dc2ad56d80b1de0cd8306789a8", + "sha256": "248d5dbe035438dbd2b3d6b02b01895c5a5c8945c44391b0042b52d87b82a934" + }, + "downloads": -1, + "filename": "clang_format-18.1.4-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "9d5c71dc2ad56d80b1de0cd8306789a8", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1670518, + "upload_time": "2024-04-19T14:30:57", + "upload_time_iso_8601": "2024-04-19T14:30:57.013672Z", + "url": "https://files.pythonhosted.org/packages/1e/99/fb9df84185dda85d904ed6703d6509e5ed0b5d6d0b6e3f4dfa35546868eb/clang_format-18.1.4-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "40c14bb1de40fe33130ff66e46153b94aba90a08f5a913162c3fdc9304bb586b", + "md5": "54dc913e02861b7937b2c312dcb34181", + "sha256": "0e698e687ccff2014bc82ca9e1046ec271f23f89746b339375a7ee0109dd71ed" + }, + "downloads": -1, + "filename": "clang_format-18.1.4-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "54dc913e02861b7937b2c312dcb34181", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1677302, + "upload_time": "2024-04-19T14:30:58", + "upload_time_iso_8601": "2024-04-19T14:30:58.956103Z", + "url": "https://files.pythonhosted.org/packages/40/c1/4bb1de40fe33130ff66e46153b94aba90a08f5a913162c3fdc9304bb586b/clang_format-18.1.4-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "12d45329f52c3da7211e3126f874bb25fe2cabeee029747ef27867031a6fb640", + "md5": "e0842bb65137b83b2d61e14cd0563ab9", + "sha256": "fcea63563927b0a5afae40b09df35368f782f6fb988533423fe60941f42f85fe" + }, + "downloads": -1, + "filename": "clang_format-18.1.4-py2.py3-none-musllinux_1_1_aarch64.whl", + "has_sig": false, + "md5_digest": "e0842bb65137b83b2d61e14cd0563ab9", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2179031, + "upload_time": "2024-04-19T14:31:01", + "upload_time_iso_8601": "2024-04-19T14:31:01.183470Z", + "url": "https://files.pythonhosted.org/packages/12/d4/5329f52c3da7211e3126f874bb25fe2cabeee029747ef27867031a6fb640/clang_format-18.1.4-py2.py3-none-musllinux_1_1_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "245c023b68cafadb544c22cc2608deb024301d3aea0e2c0c67bed4375c58d8dd", + "md5": "2024cc6e020f8a243de22ecb58736c62", + "sha256": "fa3a7e1bbed5ff5671a6fec12c18f0427a9a0b335a5aeb7c21d2bafac23cd422" + }, + "downloads": -1, + "filename": "clang_format-18.1.4-py2.py3-none-musllinux_1_1_i686.whl", + "has_sig": false, + "md5_digest": "2024cc6e020f8a243de22ecb58736c62", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2356084, + "upload_time": "2024-04-19T14:31:04", + "upload_time_iso_8601": "2024-04-19T14:31:04.225231Z", + "url": "https://files.pythonhosted.org/packages/24/5c/023b68cafadb544c22cc2608deb024301d3aea0e2c0c67bed4375c58d8dd/clang_format-18.1.4-py2.py3-none-musllinux_1_1_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "62acc7ef94fa31b9dcd35d38c9e52168acf5c5c42f50fd77f984f28717c6823d", + "md5": "4edb9fdb33707670ddb360f29af2e7ec", + "sha256": "51e22398c2a8b8400dff7a504d5c3f80415744492a84a7ca8731619d927f0a54" + }, + "downloads": -1, + "filename": "clang_format-18.1.4-py2.py3-none-musllinux_1_1_ppc64le.whl", + "has_sig": false, + "md5_digest": "4edb9fdb33707670ddb360f29af2e7ec", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2539168, + "upload_time": "2024-04-19T14:31:06", + "upload_time_iso_8601": "2024-04-19T14:31:06.372171Z", + "url": "https://files.pythonhosted.org/packages/62/ac/c7ef94fa31b9dcd35d38c9e52168acf5c5c42f50fd77f984f28717c6823d/clang_format-18.1.4-py2.py3-none-musllinux_1_1_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "83a7e64b24bf983c350aa16b270b8378d993c7e5c24efcec758abaa6a7dd62b4", + "md5": "eae7c0439f089bce8ca8ef01a72f5055", + "sha256": "f60cf5c39f2ede18ff80b9732c92ef6e00e824d74e9dafc7f67290902403bc9b" + }, + "downloads": -1, + "filename": "clang_format-18.1.4-py2.py3-none-musllinux_1_1_s390x.whl", + "has_sig": false, + "md5_digest": "eae7c0439f089bce8ca8ef01a72f5055", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2216229, + "upload_time": "2024-04-19T14:31:08", + "upload_time_iso_8601": "2024-04-19T14:31:08.531640Z", + "url": "https://files.pythonhosted.org/packages/83/a7/e64b24bf983c350aa16b270b8378d993c7e5c24efcec758abaa6a7dd62b4/clang_format-18.1.4-py2.py3-none-musllinux_1_1_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "bca53ce0eca8336b37a02343d2367891c79bc4ce5b82c9e2dbf0da7510e4db32", + "md5": "90d9ab6ffa843a2f7626de847a20bc4a", + "sha256": "e263024fdd6fb9ea94b828523b46383496fd28effac00190b334f5d196b75c26" + }, + "downloads": -1, + "filename": "clang_format-18.1.4-py2.py3-none-musllinux_1_1_x86_64.whl", + "has_sig": false, + "md5_digest": "90d9ab6ffa843a2f7626de847a20bc4a", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2195403, + "upload_time": "2024-04-19T14:31:10", + "upload_time_iso_8601": "2024-04-19T14:31:10.027630Z", + "url": "https://files.pythonhosted.org/packages/bc/a5/3ce0eca8336b37a02343d2367891c79bc4ce5b82c9e2dbf0da7510e4db32/clang_format-18.1.4-py2.py3-none-musllinux_1_1_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "34f66afaedeca52adb8cd2e8dcc8621fafd131d0720e5d7b83c6ed7dd2acfb8e", + "md5": "0febb5f6e478339e19bcde9dda4ec70c", + "sha256": "010b09f8b6b6bd9d6d55e1fcec271d34db5a4dd267b4b6007475be5351f8c12e" + }, + "downloads": -1, + "filename": "clang_format-18.1.4-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "0febb5f6e478339e19bcde9dda4ec70c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1179229, + "upload_time": "2024-04-19T14:31:12", + "upload_time_iso_8601": "2024-04-19T14:31:12.021051Z", + "url": "https://files.pythonhosted.org/packages/34/f6/6afaedeca52adb8cd2e8dcc8621fafd131d0720e5d7b83c6ed7dd2acfb8e/clang_format-18.1.4-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "35fde95ad7c22fca27d80d65f8629d30c1db194237e61349886befadabfb2e39", + "md5": "639a935d987a06457988faffaca69bf5", + "sha256": "857f20cdb2329b73d042e1660550a16aa02dba8cb7cde6311e27bf167b203c8d" + }, + "downloads": -1, + "filename": "clang_format-18.1.4-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "639a935d987a06457988faffaca69bf5", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1368093, + "upload_time": "2024-04-19T14:31:14", + "upload_time_iso_8601": "2024-04-19T14:31:14.077451Z", + "url": "https://files.pythonhosted.org/packages/35/fd/e95ad7c22fca27d80d65f8629d30c1db194237e61349886befadabfb2e39/clang_format-18.1.4-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "0df82fc32fe9229f0bf40c00ede9f531c7364a357215b6dfffdb077b2a19b668", + "md5": "cd1f4b25c0014698d0920290a8931bec", + "sha256": "dfbaee806bd55f5f558abaca44dccf7c7ee1325aa4c247fcb53f49ae5520f726" + }, + "downloads": -1, + "filename": "clang_format-18.1.4.tar.gz", + "has_sig": false, + "md5_digest": "cd1f4b25c0014698d0920290a8931bec", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 11073, + "upload_time": "2024-04-19T14:31:15", + "upload_time_iso_8601": "2024-04-19T14:31:15.891336Z", + "url": "https://files.pythonhosted.org/packages/0d/f8/2fc32fe9229f0bf40c00ede9f531c7364a357215b6dfffdb077b2a19b668/clang_format-18.1.4.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "18.1.5": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "b6c65cf11a2097f41c6472dc00ec49dd0681dd31ff12840e937eb30a3125b33b", + "md5": "2026c43d865ecbaec813207b626e271d", + "sha256": "306fe4effef3f737d7f6ed3b6feec050d31e749a4cf82a9738e33eb658b12eca" + }, + "downloads": -1, + "filename": "clang_format-18.1.5-py2.py3-none-macosx_10_9_x86_64.whl", + "has_sig": false, + "md5_digest": "2026c43d865ecbaec813207b626e271d", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1375287, + "upload_time": "2024-05-06T11:38:26", + "upload_time_iso_8601": "2024-05-06T11:38:26.750628Z", + "url": "https://files.pythonhosted.org/packages/b6/c6/5cf11a2097f41c6472dc00ec49dd0681dd31ff12840e937eb30a3125b33b/clang_format-18.1.5-py2.py3-none-macosx_10_9_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "59507dd66afdf04eca035559bcdc8a20f1f1d868f8ea2fad27e592c63580a8e5", + "md5": "a456141b2dea851e377a51ab8643ba1a", + "sha256": "c1eb9a19a4f1c31a761b3208131b4216b6ca5c8be2bc88a73319d229106f066e" + }, + "downloads": -1, + "filename": "clang_format-18.1.5-py2.py3-none-macosx_11_0_arm64.whl", + "has_sig": false, + "md5_digest": "a456141b2dea851e377a51ab8643ba1a", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1332705, + "upload_time": "2024-05-06T11:38:29", + "upload_time_iso_8601": "2024-05-06T11:38:29.015107Z", + "url": "https://files.pythonhosted.org/packages/59/50/7dd66afdf04eca035559bcdc8a20f1f1d868f8ea2fad27e592c63580a8e5/clang_format-18.1.5-py2.py3-none-macosx_11_0_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "d41a0c00bbd56da200338d39303384775d4a4283971030d70f431a7024203fb3", + "md5": "70bf01c041e36bc520c73ffe771b8c2c", + "sha256": "6e1978aaddca1d762b2e2d65e2fe6210e0bfb565755fb27ab4ba2274ff113426" + }, + "downloads": -1, + "filename": "clang_format-18.1.5-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "70bf01c041e36bc520c73ffe771b8c2c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1669527, + "upload_time": "2024-05-06T11:38:30", + "upload_time_iso_8601": "2024-05-06T11:38:30.413344Z", + "url": "https://files.pythonhosted.org/packages/d4/1a/0c00bbd56da200338d39303384775d4a4283971030d70f431a7024203fb3/clang_format-18.1.5-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "1f8884019dc24bee1fc070d9201b1e584ead0a1c8a0cc583439738933dd50829", + "md5": "1c7cc1af91f6c15c5458304338e99e6a", + "sha256": "4752b130eb76e5a4e4ee70845fc4123ea5d4dfa297c0d181c5ffee408791e953" + }, + "downloads": -1, + "filename": "clang_format-18.1.5-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "1c7cc1af91f6c15c5458304338e99e6a", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1853570, + "upload_time": "2024-05-06T11:38:32", + "upload_time_iso_8601": "2024-05-06T11:38:32.420298Z", + "url": "https://files.pythonhosted.org/packages/1f/88/84019dc24bee1fc070d9201b1e584ead0a1c8a0cc583439738933dd50829/clang_format-18.1.5-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "c7ed9fe524850def76290775058fd6e966e6554b10e410ccc89dd70f9ec615ca", + "md5": "b4cfa4104c0e498c82760bf876850750", + "sha256": "d51e03f9a1d23148937d41fe29e12230792e1fe0cf8bff84c043cc78fdf0add2" + }, + "downloads": -1, + "filename": "clang_format-18.1.5-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "b4cfa4104c0e498c82760bf876850750", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2597597, + "upload_time": "2024-05-06T11:38:34", + "upload_time_iso_8601": "2024-05-06T11:38:34.088491Z", + "url": "https://files.pythonhosted.org/packages/c7/ed/9fe524850def76290775058fd6e966e6554b10e410ccc89dd70f9ec615ca/clang_format-18.1.5-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "31c97111ca748e2e41cf4e0cdabbf005b797eb9bb5211d032f07541678b9e179", + "md5": "3fe33c4fc9f58888b030b0fa4cd2b085", + "sha256": "d3eafd9eb0cb8e6ec04695d84555bb2b837bae6aa0a5b53f1c8f98dee548bb95" + }, + "downloads": -1, + "filename": "clang_format-18.1.5-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "3fe33c4fc9f58888b030b0fa4cd2b085", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1670434, + "upload_time": "2024-05-06T11:38:35", + "upload_time_iso_8601": "2024-05-06T11:38:35.481025Z", + "url": "https://files.pythonhosted.org/packages/31/c9/7111ca748e2e41cf4e0cdabbf005b797eb9bb5211d032f07541678b9e179/clang_format-18.1.5-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "4596d960d9add3eb71f6c6039181054281aeb42f2cb4877a33f889516abc2cb4", + "md5": "5e667c31344708165201e8df0aead1dd", + "sha256": "4ff65740e0eb6171a4de9a95a3f9fa56d2d257355995a944ad367b790470b706" + }, + "downloads": -1, + "filename": "clang_format-18.1.5-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "5e667c31344708165201e8df0aead1dd", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1677143, + "upload_time": "2024-05-06T11:38:37", + "upload_time_iso_8601": "2024-05-06T11:38:37.432412Z", + "url": "https://files.pythonhosted.org/packages/45/96/d960d9add3eb71f6c6039181054281aeb42f2cb4877a33f889516abc2cb4/clang_format-18.1.5-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "764b8bbef67fd4596bc57e1c89a38d1dad8b1b2530f343870e6a6377c8d53b23", + "md5": "99f3d4ee544033f65120c7cabcef828c", + "sha256": "1d9b4d145a5f4bde36543456d041c07860c65b533a923ccccdaa31e49a96532a" + }, + "downloads": -1, + "filename": "clang_format-18.1.5-py2.py3-none-musllinux_1_1_aarch64.whl", + "has_sig": false, + "md5_digest": "99f3d4ee544033f65120c7cabcef828c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2179011, + "upload_time": "2024-05-06T11:38:39", + "upload_time_iso_8601": "2024-05-06T11:38:39.179699Z", + "url": "https://files.pythonhosted.org/packages/76/4b/8bbef67fd4596bc57e1c89a38d1dad8b1b2530f343870e6a6377c8d53b23/clang_format-18.1.5-py2.py3-none-musllinux_1_1_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "fd981623cf5bd05addab572655f56316683ae7887abaaca2ba6f47c4fa5c0db8", + "md5": "0a48bfa983edd81a2424718fa05f02c1", + "sha256": "1bcdfbdaa64b9913a8ffac9b7e2619747981d3ab61296469ca9b230b8af1121b" + }, + "downloads": -1, + "filename": "clang_format-18.1.5-py2.py3-none-musllinux_1_1_i686.whl", + "has_sig": false, + "md5_digest": "0a48bfa983edd81a2424718fa05f02c1", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2355907, + "upload_time": "2024-05-06T11:38:40", + "upload_time_iso_8601": "2024-05-06T11:38:40.572396Z", + "url": "https://files.pythonhosted.org/packages/fd/98/1623cf5bd05addab572655f56316683ae7887abaaca2ba6f47c4fa5c0db8/clang_format-18.1.5-py2.py3-none-musllinux_1_1_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "26797a9dd87813661eecdf40906d741b3a2d22fee625c665d0072c6526648b80", + "md5": "ec26f7bcdab9a3b4d1f68eb4cd699243", + "sha256": "27085485fd3a45baf7b42f2bbfe7521a49cc154566cd22396c5288c8fc354bc2" + }, + "downloads": -1, + "filename": "clang_format-18.1.5-py2.py3-none-musllinux_1_1_ppc64le.whl", + "has_sig": false, + "md5_digest": "ec26f7bcdab9a3b4d1f68eb4cd699243", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2539665, + "upload_time": "2024-05-06T11:38:42", + "upload_time_iso_8601": "2024-05-06T11:38:42.620480Z", + "url": "https://files.pythonhosted.org/packages/26/79/7a9dd87813661eecdf40906d741b3a2d22fee625c665d0072c6526648b80/clang_format-18.1.5-py2.py3-none-musllinux_1_1_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "194103ac684e87cbd377967458f69f078a62b7314b2ff6af2b9c436b7b70639a", + "md5": "838071eae09cd75bebb79bc1eb93bd89", + "sha256": "d60be8b694f1377597ec861c16e2863248ce3f41546ac8ea308568ba0859ef97" + }, + "downloads": -1, + "filename": "clang_format-18.1.5-py2.py3-none-musllinux_1_1_s390x.whl", + "has_sig": false, + "md5_digest": "838071eae09cd75bebb79bc1eb93bd89", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2216383, + "upload_time": "2024-05-06T11:38:44", + "upload_time_iso_8601": "2024-05-06T11:38:44.285339Z", + "url": "https://files.pythonhosted.org/packages/19/41/03ac684e87cbd377967458f69f078a62b7314b2ff6af2b9c436b7b70639a/clang_format-18.1.5-py2.py3-none-musllinux_1_1_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "74384edbec3fc071a9976484937379519da990cf6b4e5e856ac2bbf02da89f38", + "md5": "ab72239a07c8d6ced229e7286f735e89", + "sha256": "1ba15db2b5bef77b010df06e8b0c02b5b817cedef58026f32f9e51c659510271" + }, + "downloads": -1, + "filename": "clang_format-18.1.5-py2.py3-none-musllinux_1_1_x86_64.whl", + "has_sig": false, + "md5_digest": "ab72239a07c8d6ced229e7286f735e89", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2195257, + "upload_time": "2024-05-06T11:38:46", + "upload_time_iso_8601": "2024-05-06T11:38:46.254433Z", + "url": "https://files.pythonhosted.org/packages/74/38/4edbec3fc071a9976484937379519da990cf6b4e5e856ac2bbf02da89f38/clang_format-18.1.5-py2.py3-none-musllinux_1_1_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "3dac2eab336c56229155d2cc667b9ab7eead58c7e17908037b7f5a2bceb9519f", + "md5": "974ffb508dd1a37bc982aa77dd16dc37", + "sha256": "6715ca55933e8a7d7ef1ea3d8f546f304827f5cc21aae4c55243fce9c235327c" + }, + "downloads": -1, + "filename": "clang_format-18.1.5-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "974ffb508dd1a37bc982aa77dd16dc37", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1179093, + "upload_time": "2024-05-06T11:38:48", + "upload_time_iso_8601": "2024-05-06T11:38:48.170185Z", + "url": "https://files.pythonhosted.org/packages/3d/ac/2eab336c56229155d2cc667b9ab7eead58c7e17908037b7f5a2bceb9519f/clang_format-18.1.5-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "e600877ca0402fa21a831e267de58ae66dd9811545e55c7c005a90db2cc57fc4", + "md5": "49b303549ffa0099e18f50d46302536b", + "sha256": "dce69f0acdf3235e1576421b785e6aef1eb5a0d8160eb66c6a1937d80dff4e0a" + }, + "downloads": -1, + "filename": "clang_format-18.1.5-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "49b303549ffa0099e18f50d46302536b", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1367846, + "upload_time": "2024-05-06T11:38:49", + "upload_time_iso_8601": "2024-05-06T11:38:49.553762Z", + "url": "https://files.pythonhosted.org/packages/e6/00/877ca0402fa21a831e267de58ae66dd9811545e55c7c005a90db2cc57fc4/clang_format-18.1.5-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "27ccbf051d3fd7f37a9a5411b8d5f714f1cec545b5a36dc8147b40d840ab1271", + "md5": "59d34af49e90869ef48126ca177ef34b", + "sha256": "08ad8c9758a4437b53946171f8bd047879873de72916111c88ec9895af916a45" + }, + "downloads": -1, + "filename": "clang_format-18.1.5.tar.gz", + "has_sig": false, + "md5_digest": "59d34af49e90869ef48126ca177ef34b", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 11007, + "upload_time": "2024-05-06T11:38:51", + "upload_time_iso_8601": "2024-05-06T11:38:51.056247Z", + "url": "https://files.pythonhosted.org/packages/27/cc/bf051d3fd7f37a9a5411b8d5f714f1cec545b5a36dc8147b40d840ab1271/clang_format-18.1.5.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "18.1.6": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "56cb942c9f41bcaf9b03849546229cabe40c55e3eb4b2ebfe319fdb565489586", + "md5": "9ce75be8c3584e2c878c37e1b3f5b445", + "sha256": "3f0baa4971d68fd0b8499abb342b6db45de000e1bd54d4f5430a2147527e34d1" + }, + "downloads": -1, + "filename": "clang_format-18.1.6-py2.py3-none-macosx_10_9_x86_64.whl", + "has_sig": false, + "md5_digest": "9ce75be8c3584e2c878c37e1b3f5b445", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1375290, + "upload_time": "2024-06-03T11:21:41", + "upload_time_iso_8601": "2024-06-03T11:21:41.444116Z", + "url": "https://files.pythonhosted.org/packages/56/cb/942c9f41bcaf9b03849546229cabe40c55e3eb4b2ebfe319fdb565489586/clang_format-18.1.6-py2.py3-none-macosx_10_9_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "0dbfea34f02d39f0bdbc53155b7e97a46826bba3f82becdf77d6ed9b2b2f0fe8", + "md5": "ef2da35f628717c7b3d43197e021f5e1", + "sha256": "f4bdb17e15472b76da3c358d70c61ab07951a6f8e97877f30ad665cecf961e0f" + }, + "downloads": -1, + "filename": "clang_format-18.1.6-py2.py3-none-macosx_11_0_arm64.whl", + "has_sig": false, + "md5_digest": "ef2da35f628717c7b3d43197e021f5e1", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1332727, + "upload_time": "2024-06-03T11:21:43", + "upload_time_iso_8601": "2024-06-03T11:21:43.772247Z", + "url": "https://files.pythonhosted.org/packages/0d/bf/ea34f02d39f0bdbc53155b7e97a46826bba3f82becdf77d6ed9b2b2f0fe8/clang_format-18.1.6-py2.py3-none-macosx_11_0_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "2bafc4c3b1f2938cdfe9b1852e7c905dce268ccd7368ece4550f48193394b980", + "md5": "652fae453c014b0e51c9e202869c3fce", + "sha256": "976939a7cae91377f479aadaf8feb421ec9f143da909315ed18dfa4fa085a19a" + }, + "downloads": -1, + "filename": "clang_format-18.1.6-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "652fae453c014b0e51c9e202869c3fce", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1669526, + "upload_time": "2024-06-03T11:21:45", + "upload_time_iso_8601": "2024-06-03T11:21:45.808478Z", + "url": "https://files.pythonhosted.org/packages/2b/af/c4c3b1f2938cdfe9b1852e7c905dce268ccd7368ece4550f48193394b980/clang_format-18.1.6-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "9dc141ab78cef5453f10467298e9fe0d366db82957eccb574065ab3fa2adefa5", + "md5": "62c762c53177d2814af5a18a321f4f48", + "sha256": "e1b9383ffaf4052cce2d4f81d9714a3b3f60811cb0a1e190df2bd38e99f8d588" + }, + "downloads": -1, + "filename": "clang_format-18.1.6-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "62c762c53177d2814af5a18a321f4f48", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1853494, + "upload_time": "2024-06-03T11:21:47", + "upload_time_iso_8601": "2024-06-03T11:21:47.823465Z", + "url": "https://files.pythonhosted.org/packages/9d/c1/41ab78cef5453f10467298e9fe0d366db82957eccb574065ab3fa2adefa5/clang_format-18.1.6-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "aecce5dc1fe982fc6c0fc1daac88840fed8efa9b5d8d47c16c3cf33bc9c7e07e", + "md5": "12d190c4fc39f9703a236c502b2cd9a4", + "sha256": "3e3e5d420e5bc44fb2db939e94222c4d4ffdf7fa690326157971015b929c286d" + }, + "downloads": -1, + "filename": "clang_format-18.1.6-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "12d190c4fc39f9703a236c502b2cd9a4", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2597843, + "upload_time": "2024-06-03T11:21:49", + "upload_time_iso_8601": "2024-06-03T11:21:49.821996Z", + "url": "https://files.pythonhosted.org/packages/ae/cc/e5dc1fe982fc6c0fc1daac88840fed8efa9b5d8d47c16c3cf33bc9c7e07e/clang_format-18.1.6-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "d1c9e9eb9749f04eaf8f2a7637540a0a68fc40bed25750d3f0c5bcf21781a29c", + "md5": "f99d20091f5531f45ed79c4e0d8bf2f2", + "sha256": "330a10de6f08008e2a429f1bec6179152fcbdd69140ca189d8722a1f8c8a86bc" + }, + "downloads": -1, + "filename": "clang_format-18.1.6-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "f99d20091f5531f45ed79c4e0d8bf2f2", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1670448, + "upload_time": "2024-06-03T11:21:51", + "upload_time_iso_8601": "2024-06-03T11:21:51.916672Z", + "url": "https://files.pythonhosted.org/packages/d1/c9/e9eb9749f04eaf8f2a7637540a0a68fc40bed25750d3f0c5bcf21781a29c/clang_format-18.1.6-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "814c5a026f8a681f1f8c5d8f1a660b5b71526ad379564eb8d119e7b50919f5a0", + "md5": "c169ed41cfd3bbe94f8085a9341e552c", + "sha256": "d706264176675bf2bad25cc53ec7cfe592747af01612baad823677c1aea35296" + }, + "downloads": -1, + "filename": "clang_format-18.1.6-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "c169ed41cfd3bbe94f8085a9341e552c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1677222, + "upload_time": "2024-06-03T11:21:53", + "upload_time_iso_8601": "2024-06-03T11:21:53.490624Z", + "url": "https://files.pythonhosted.org/packages/81/4c/5a026f8a681f1f8c5d8f1a660b5b71526ad379564eb8d119e7b50919f5a0/clang_format-18.1.6-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "560fbcad6d89c9ea5ffa7e7eab8d9321a001725829cd101f37f3f30ef4fd11c9", + "md5": "a6bc68ed92bc99dd522c85f38432a69a", + "sha256": "c61a61e6e05db0aacad057364f863e641deae5e2c588ec7b84b7bd5a19ee00a8" + }, + "downloads": -1, + "filename": "clang_format-18.1.6-py2.py3-none-musllinux_1_2_aarch64.whl", + "has_sig": false, + "md5_digest": "a6bc68ed92bc99dd522c85f38432a69a", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2755774, + "upload_time": "2024-06-03T11:21:55", + "upload_time_iso_8601": "2024-06-03T11:21:55.162515Z", + "url": "https://files.pythonhosted.org/packages/56/0f/bcad6d89c9ea5ffa7e7eab8d9321a001725829cd101f37f3f30ef4fd11c9/clang_format-18.1.6-py2.py3-none-musllinux_1_2_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "7be85af0f667e5d3fa898c380096f1af99fbd2bb21f86f933b79989c774c2a92", + "md5": "61b27742bf90a089cc67926ec7577604", + "sha256": "fb20d86a0d3f27d71a7b43ff17e7cfe278c90e77871e03a218c38501b2b56d5b" + }, + "downloads": -1, + "filename": "clang_format-18.1.6-py2.py3-none-musllinux_1_2_i686.whl", + "has_sig": false, + "md5_digest": "61b27742bf90a089cc67926ec7577604", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3047829, + "upload_time": "2024-06-03T11:21:57", + "upload_time_iso_8601": "2024-06-03T11:21:57.545043Z", + "url": "https://files.pythonhosted.org/packages/7b/e8/5af0f667e5d3fa898c380096f1af99fbd2bb21f86f933b79989c774c2a92/clang_format-18.1.6-py2.py3-none-musllinux_1_2_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "304745c65b8e5b21736f4cf099c1dcbd920315b0cb09c3a945cb25c38d9e3ff2", + "md5": "6db03cb6a61a2984cfe5471a26971989", + "sha256": "65f18fa9379d285e6fed833be06ea75956129252977372942b04f4a1aecd1a7f" + }, + "downloads": -1, + "filename": "clang_format-18.1.6-py2.py3-none-musllinux_1_2_ppc64le.whl", + "has_sig": false, + "md5_digest": "6db03cb6a61a2984cfe5471a26971989", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3235420, + "upload_time": "2024-06-03T11:21:59", + "upload_time_iso_8601": "2024-06-03T11:21:59.600754Z", + "url": "https://files.pythonhosted.org/packages/30/47/45c65b8e5b21736f4cf099c1dcbd920315b0cb09c3a945cb25c38d9e3ff2/clang_format-18.1.6-py2.py3-none-musllinux_1_2_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "90ae3668f5071d5928c4bbbf724eb33738c78d3da43f480653ed766ead6e650c", + "md5": "7943182e58259d361cfcce2760a7e253", + "sha256": "5afd4f43a2c0861058ce829d2121de776ec0422f6a8748ff53abf159e698c01f" + }, + "downloads": -1, + "filename": "clang_format-18.1.6-py2.py3-none-musllinux_1_2_s390x.whl", + "has_sig": false, + "md5_digest": "7943182e58259d361cfcce2760a7e253", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3172655, + "upload_time": "2024-06-03T11:22:02", + "upload_time_iso_8601": "2024-06-03T11:22:02.178574Z", + "url": "https://files.pythonhosted.org/packages/90/ae/3668f5071d5928c4bbbf724eb33738c78d3da43f480653ed766ead6e650c/clang_format-18.1.6-py2.py3-none-musllinux_1_2_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "21b81068045df470e0985becb40d9805b9eb8a4c510223f9f57b5e2bdddbb6c1", + "md5": "9cb56881a663c32772280dcfd6dbba98", + "sha256": "8736cde40528c82f219ea1c5981ece5b30c0ac8e24657aa8528ddf9fd712d0fd" + }, + "downloads": -1, + "filename": "clang_format-18.1.6-py2.py3-none-musllinux_1_2_x86_64.whl", + "has_sig": false, + "md5_digest": "9cb56881a663c32772280dcfd6dbba98", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2835662, + "upload_time": "2024-06-03T11:22:04", + "upload_time_iso_8601": "2024-06-03T11:22:04.281553Z", + "url": "https://files.pythonhosted.org/packages/21/b8/1068045df470e0985becb40d9805b9eb8a4c510223f9f57b5e2bdddbb6c1/clang_format-18.1.6-py2.py3-none-musllinux_1_2_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "e883812ac3c0d9f873b0bfc11b642dce6d8ac8ebbf738688d0c42f51c83aa561", + "md5": "55f27711589f96020aad2d3b0ec3947b", + "sha256": "b145ab877c7eb6846a9f302ada127ace3125ea8fcdeddd901a1c8db3818d4ed0" + }, + "downloads": -1, + "filename": "clang_format-18.1.6-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "55f27711589f96020aad2d3b0ec3947b", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1178841, + "upload_time": "2024-06-03T11:22:05", + "upload_time_iso_8601": "2024-06-03T11:22:05.815889Z", + "url": "https://files.pythonhosted.org/packages/e8/83/812ac3c0d9f873b0bfc11b642dce6d8ac8ebbf738688d0c42f51c83aa561/clang_format-18.1.6-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "4baa50cd25688a6fa4be4df7246b8fcc0135cae19b06b41f216d72c7530fc6eb", + "md5": "6c747fe03e1d6f5bebf6a1b69fc4dd74", + "sha256": "b2caa53fe0a5253c0aa5059bc25789b23e2069b3d6b44c7a72793544b92c36d1" + }, + "downloads": -1, + "filename": "clang_format-18.1.6-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "6c747fe03e1d6f5bebf6a1b69fc4dd74", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1364106, + "upload_time": "2024-06-03T11:22:08", + "upload_time_iso_8601": "2024-06-03T11:22:08.396973Z", + "url": "https://files.pythonhosted.org/packages/4b/aa/50cd25688a6fa4be4df7246b8fcc0135cae19b06b41f216d72c7530fc6eb/clang_format-18.1.6-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "0e76347561a82a6b60ddf2024d87f4bccf21050c6222b30fc6cb5e94a0861754", + "md5": "b72737435c6f472ae2a880c60147143b", + "sha256": "46be3f362b82e7c40a96583be9bb759b5c55df7f7458c7a66e31da9a11abd746" + }, + "downloads": -1, + "filename": "clang_format-18.1.6.tar.gz", + "has_sig": false, + "md5_digest": "b72737435c6f472ae2a880c60147143b", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 11003, + "upload_time": "2024-06-03T11:22:10", + "upload_time_iso_8601": "2024-06-03T11:22:10.166813Z", + "url": "https://files.pythonhosted.org/packages/0e/76/347561a82a6b60ddf2024d87f4bccf21050c6222b30fc6cb5e94a0861754/clang_format-18.1.6.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "18.1.7": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "ebb936c0fc5d77b59b85cb4b0785c1df203cf0720e619741c05af461f82ccfb8", + "md5": "3d82edf049b87a4dc05fe8739d291c78", + "sha256": "0b352ec51b291fe04c25a0f0ed15ba1a55b9c9c8eaa7fdf14de3d3585aef4f72" + }, + "downloads": -1, + "filename": "clang_format-18.1.7-py2.py3-none-macosx_10_9_x86_64.whl", + "has_sig": false, + "md5_digest": "3d82edf049b87a4dc05fe8739d291c78", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1375282, + "upload_time": "2024-06-21T11:53:21", + "upload_time_iso_8601": "2024-06-21T11:53:21.640007Z", + "url": "https://files.pythonhosted.org/packages/eb/b9/36c0fc5d77b59b85cb4b0785c1df203cf0720e619741c05af461f82ccfb8/clang_format-18.1.7-py2.py3-none-macosx_10_9_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "94d0a38db8e127f718bdf104ea877020de581873ef841f39586efe8002773978", + "md5": "9f2f6f2b3a53c46c8a35cca093474b7c", + "sha256": "b3a0a09428cdd656ed87074543222a80660bc506407ed21b8e4bcb3d6d3a5a3c" + }, + "downloads": -1, + "filename": "clang_format-18.1.7-py2.py3-none-macosx_11_0_arm64.whl", + "has_sig": false, + "md5_digest": "9f2f6f2b3a53c46c8a35cca093474b7c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1332817, + "upload_time": "2024-06-21T11:53:23", + "upload_time_iso_8601": "2024-06-21T11:53:23.998401Z", + "url": "https://files.pythonhosted.org/packages/94/d0/a38db8e127f718bdf104ea877020de581873ef841f39586efe8002773978/clang_format-18.1.7-py2.py3-none-macosx_11_0_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "eeb9069b6ec7fb36b4f44e60c21e7e9fec504c31e8582ef56b7ff549c54457bb", + "md5": "236076df4f20c3e2e95f42f669d03562", + "sha256": "42d0b580ab7a45348155944adebe0bef53d1de9357b925830a59bbc351a25560" + }, + "downloads": -1, + "filename": "clang_format-18.1.7-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "236076df4f20c3e2e95f42f669d03562", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1669517, + "upload_time": "2024-06-21T11:53:25", + "upload_time_iso_8601": "2024-06-21T11:53:25.516183Z", + "url": "https://files.pythonhosted.org/packages/ee/b9/069b6ec7fb36b4f44e60c21e7e9fec504c31e8582ef56b7ff549c54457bb/clang_format-18.1.7-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "f7ddc62027b5e74df57f64169789285fa534b21bf6a55c08d64b8826bcd1c8d2", + "md5": "b7a69e2e870b147006964ce6db6bc372", + "sha256": "607772cf474c1ebe0de44f44c1324e57a2d5b45a1d96d4aff166645532d99b43" + }, + "downloads": -1, + "filename": "clang_format-18.1.7-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "b7a69e2e870b147006964ce6db6bc372", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1853402, + "upload_time": "2024-06-21T11:53:26", + "upload_time_iso_8601": "2024-06-21T11:53:26.967762Z", + "url": "https://files.pythonhosted.org/packages/f7/dd/c62027b5e74df57f64169789285fa534b21bf6a55c08d64b8826bcd1c8d2/clang_format-18.1.7-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "86bee40586daa270d63584b864f67451302d025783c98fc14dd9c2dc9db0676c", + "md5": "600a9bc40820faba4fd8e57f8edfc72d", + "sha256": "05c482a854287a5d21f7567186c0bd4b8dbd4a871751e655a45849185f30b931" + }, + "downloads": -1, + "filename": "clang_format-18.1.7-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "600a9bc40820faba4fd8e57f8edfc72d", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2597762, + "upload_time": "2024-06-21T11:53:28", + "upload_time_iso_8601": "2024-06-21T11:53:28.617037Z", + "url": "https://files.pythonhosted.org/packages/86/be/e40586daa270d63584b864f67451302d025783c98fc14dd9c2dc9db0676c/clang_format-18.1.7-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "19dd711f1ad5060d62a010fff6c7cdc9fb35bbadd9e2106c5887824f2a46ef13", + "md5": "adc106d6d209cf8ed45e3ed4955ffad9", + "sha256": "a49c44d7cc00431be8285aa120a7a21fa0475786c03c53b04a26882c4e626a43" + }, + "downloads": -1, + "filename": "clang_format-18.1.7-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "adc106d6d209cf8ed45e3ed4955ffad9", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1670552, + "upload_time": "2024-06-21T11:53:30", + "upload_time_iso_8601": "2024-06-21T11:53:30.153089Z", + "url": "https://files.pythonhosted.org/packages/19/dd/711f1ad5060d62a010fff6c7cdc9fb35bbadd9e2106c5887824f2a46ef13/clang_format-18.1.7-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "f7dc099a5e4b2b9b8cccfafa6a73d089178371ad53b6735a05fd6a9d8d9aa005", + "md5": "77c79644d697af5144faab5500473e7a", + "sha256": "217526c8189c18fd175e19bb3e4da2d1bdf14a2bf79d97108c9b6a98d9938351" + }, + "downloads": -1, + "filename": "clang_format-18.1.7-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "77c79644d697af5144faab5500473e7a", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1677362, + "upload_time": "2024-06-21T11:53:31", + "upload_time_iso_8601": "2024-06-21T11:53:31.752796Z", + "url": "https://files.pythonhosted.org/packages/f7/dc/099a5e4b2b9b8cccfafa6a73d089178371ad53b6735a05fd6a9d8d9aa005/clang_format-18.1.7-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "a872b484390cbc196453fd7c7440827fdd03bab22fefc9a175659d2ae4f4216f", + "md5": "bfced33a26d36fbbde733e1a9c8809e6", + "sha256": "f4f77ac0f4f9a659213fedda0f2d216886c410132e6e7dd4b13f92b34e925554" + }, + "downloads": -1, + "filename": "clang_format-18.1.7-py2.py3-none-musllinux_1_2_aarch64.whl", + "has_sig": false, + "md5_digest": "bfced33a26d36fbbde733e1a9c8809e6", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2755835, + "upload_time": "2024-06-21T11:53:33", + "upload_time_iso_8601": "2024-06-21T11:53:33.980851Z", + "url": "https://files.pythonhosted.org/packages/a8/72/b484390cbc196453fd7c7440827fdd03bab22fefc9a175659d2ae4f4216f/clang_format-18.1.7-py2.py3-none-musllinux_1_2_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "5b503e5992730876f5905e155daf31edf61e27e94c4d23e1b8f48641c77c9fe6", + "md5": "70d63848cf250417c60c19ff8d93a926", + "sha256": "a914592a51f77c3563563c7a8970f19bc1ed59174ab992f095a78f4e142382ac" + }, + "downloads": -1, + "filename": "clang_format-18.1.7-py2.py3-none-musllinux_1_2_i686.whl", + "has_sig": false, + "md5_digest": "70d63848cf250417c60c19ff8d93a926", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3047807, + "upload_time": "2024-06-21T11:53:35", + "upload_time_iso_8601": "2024-06-21T11:53:35.765031Z", + "url": "https://files.pythonhosted.org/packages/5b/50/3e5992730876f5905e155daf31edf61e27e94c4d23e1b8f48641c77c9fe6/clang_format-18.1.7-py2.py3-none-musllinux_1_2_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "dd791d0d35fbf57da3eb0733a8fc640de009cd31279fc9fc1222d77de64cf299", + "md5": "117d74c50ad37f3cc9f39f176909484e", + "sha256": "035204410f65d03f98cb81c9c39d6d193f9987917cc88de9d0dbd01f2aa9c302" + }, + "downloads": -1, + "filename": "clang_format-18.1.7-py2.py3-none-musllinux_1_2_ppc64le.whl", + "has_sig": false, + "md5_digest": "117d74c50ad37f3cc9f39f176909484e", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3235424, + "upload_time": "2024-06-21T11:53:37", + "upload_time_iso_8601": "2024-06-21T11:53:37.291204Z", + "url": "https://files.pythonhosted.org/packages/dd/79/1d0d35fbf57da3eb0733a8fc640de009cd31279fc9fc1222d77de64cf299/clang_format-18.1.7-py2.py3-none-musllinux_1_2_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "4fcbb3dbfb5cb4546af99b80b115e2a66c847f854380a3a68ceebf249db11551", + "md5": "552ec78177630fa5617239bc641743f2", + "sha256": "a62fca204293893badde0ab004df8b6df1d13eac4d452051554d9684d0a8254e" + }, + "downloads": -1, + "filename": "clang_format-18.1.7-py2.py3-none-musllinux_1_2_s390x.whl", + "has_sig": false, + "md5_digest": "552ec78177630fa5617239bc641743f2", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3172695, + "upload_time": "2024-06-21T11:53:39", + "upload_time_iso_8601": "2024-06-21T11:53:39.471212Z", + "url": "https://files.pythonhosted.org/packages/4f/cb/b3dbfb5cb4546af99b80b115e2a66c847f854380a3a68ceebf249db11551/clang_format-18.1.7-py2.py3-none-musllinux_1_2_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "9c1b94d73bd66cdac737e4d8af5a2cf9d1995e4ba3a8e6e47fad0d0116613658", + "md5": "8059b1904dd8e105fa77f91e2b710658", + "sha256": "c151d42e6ac7c3cc03d7fec61bed3211ce8f75528e1efd8fc64bdb33840987b2" + }, + "downloads": -1, + "filename": "clang_format-18.1.7-py2.py3-none-musllinux_1_2_x86_64.whl", + "has_sig": false, + "md5_digest": "8059b1904dd8e105fa77f91e2b710658", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2835731, + "upload_time": "2024-06-21T11:53:41", + "upload_time_iso_8601": "2024-06-21T11:53:41.050235Z", + "url": "https://files.pythonhosted.org/packages/9c/1b/94d73bd66cdac737e4d8af5a2cf9d1995e4ba3a8e6e47fad0d0116613658/clang_format-18.1.7-py2.py3-none-musllinux_1_2_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "7efd5adeda828c4b8d2c646766653edd294cc3a639c1fdf3e6aa32f97e8e9df4", + "md5": "eb9ed0d00da81b90454a66f81bc82483", + "sha256": "f935d34152a2e11e55120eb9182862f432bc9789ab819f680c9f6db4edebf9e3" + }, + "downloads": -1, + "filename": "clang_format-18.1.7-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "eb9ed0d00da81b90454a66f81bc82483", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1184682, + "upload_time": "2024-06-21T11:53:43", + "upload_time_iso_8601": "2024-06-21T11:53:43.081533Z", + "url": "https://files.pythonhosted.org/packages/7e/fd/5adeda828c4b8d2c646766653edd294cc3a639c1fdf3e6aa32f97e8e9df4/clang_format-18.1.7-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "4fae1d0894b547c3b7f9cd2962fdca9feb5bb76220949acf5a8ed97ca63daa9b", + "md5": "f83d02c5216dc1cc3bcb6ee2e25cb7fd", + "sha256": "d6a2f051124d6ae506ba2a68accfe4ea4c8cb90d13b422c3131bb124413bac32" + }, + "downloads": -1, + "filename": "clang_format-18.1.7-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "f83d02c5216dc1cc3bcb6ee2e25cb7fd", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1370835, + "upload_time": "2024-06-21T11:53:46", + "upload_time_iso_8601": "2024-06-21T11:53:46.319394Z", + "url": "https://files.pythonhosted.org/packages/4f/ae/1d0894b547c3b7f9cd2962fdca9feb5bb76220949acf5a8ed97ca63daa9b/clang_format-18.1.7-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "6b38f1be8318081b939e536a5a4fe25bedefd1c61236531e00bab2161cabd31c", + "md5": "2071602a1f78acfd7be11e3e221f8648", + "sha256": "57090c40a8f0a898e0db8be150a19be2551302d5f5620d2a01de07e7c9220a53" + }, + "downloads": -1, + "filename": "clang_format-18.1.7.tar.gz", + "has_sig": false, + "md5_digest": "2071602a1f78acfd7be11e3e221f8648", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 11078, + "upload_time": "2024-06-21T11:53:48", + "upload_time_iso_8601": "2024-06-21T11:53:48.281506Z", + "url": "https://files.pythonhosted.org/packages/6b/38/f1be8318081b939e536a5a4fe25bedefd1c61236531e00bab2161cabd31c/clang_format-18.1.7.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "18.1.8": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "1536974be8a5b9776d39a2f96746db80c3d963b232ab9660fd0891765b5b6a17", + "md5": "8563d88a0d4dfd3ee27db160a0f2b898", + "sha256": "7c41e2521b7e6ba706cc5d1c3e95eed9a41c1522244e23624e1518991f02a604" + }, + "downloads": -1, + "filename": "clang_format-18.1.8-py2.py3-none-macosx_10_9_x86_64.whl", + "has_sig": false, + "md5_digest": "8563d88a0d4dfd3ee27db160a0f2b898", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1375281, + "upload_time": "2024-06-28T10:17:51", + "upload_time_iso_8601": "2024-06-28T10:17:51.843870Z", + "url": "https://files.pythonhosted.org/packages/15/36/974be8a5b9776d39a2f96746db80c3d963b232ab9660fd0891765b5b6a17/clang_format-18.1.8-py2.py3-none-macosx_10_9_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "184c5f82861a89cbdd99b1525c353a35a034d2eb3ee392348b4ba713dc697a3e", + "md5": "89fe936b12293c10f2ab8a245d92516d", + "sha256": "4be2b5d983a0cc1ef90a224b599f5928d82ce31154ba69accfdcb670aea62f40" + }, + "downloads": -1, + "filename": "clang_format-18.1.8-py2.py3-none-macosx_11_0_arm64.whl", + "has_sig": false, + "md5_digest": "89fe936b12293c10f2ab8a245d92516d", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1332812, + "upload_time": "2024-06-28T10:17:54", + "upload_time_iso_8601": "2024-06-28T10:17:54.670327Z", + "url": "https://files.pythonhosted.org/packages/18/4c/5f82861a89cbdd99b1525c353a35a034d2eb3ee392348b4ba713dc697a3e/clang_format-18.1.8-py2.py3-none-macosx_11_0_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "3700bd44b4d3e5d80560297d49ee7be0ed87260453a5115c6f613527f122a2e2", + "md5": "ac7edaa9ef84f7b872ad267217c90da5", + "sha256": "d2db077523bd4517b41fa6adb2e5ee63fc91bc7b641dc6e28b959fa8050cf41b" + }, + "downloads": -1, + "filename": "clang_format-18.1.8-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "ac7edaa9ef84f7b872ad267217c90da5", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1669509, + "upload_time": "2024-06-28T10:17:56", + "upload_time_iso_8601": "2024-06-28T10:17:56.890814Z", + "url": "https://files.pythonhosted.org/packages/37/00/bd44b4d3e5d80560297d49ee7be0ed87260453a5115c6f613527f122a2e2/clang_format-18.1.8-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "df64ce934b3d1002fdb87994fd15e7fd2eb7eb4e6770ccf9dac46f03d74edbe6", + "md5": "206510f794aa5cb35a68cd42d0b4f173", + "sha256": "310206c21fa8177c019a3871de8c5400e51867376cae630ee3d1610aa6c93816" + }, + "downloads": -1, + "filename": "clang_format-18.1.8-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "206510f794aa5cb35a68cd42d0b4f173", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1853376, + "upload_time": "2024-06-28T10:17:58", + "upload_time_iso_8601": "2024-06-28T10:17:58.541091Z", + "url": "https://files.pythonhosted.org/packages/df/64/ce934b3d1002fdb87994fd15e7fd2eb7eb4e6770ccf9dac46f03d74edbe6/clang_format-18.1.8-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "4f22937978c6ef5604a6441c214d7350d347d6796f69acd127631e0aa24f1933", + "md5": "d28d7755192baa0e826d53bf43fa078c", + "sha256": "c11ecdae9cd9068ed010b7cc5fa9d3d2ae08de8bbfa493df865774ad63fd7d76" + }, + "downloads": -1, + "filename": "clang_format-18.1.8-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "d28d7755192baa0e826d53bf43fa078c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2597740, + "upload_time": "2024-06-28T10:18:00", + "upload_time_iso_8601": "2024-06-28T10:18:00.256847Z", + "url": "https://files.pythonhosted.org/packages/4f/22/937978c6ef5604a6441c214d7350d347d6796f69acd127631e0aa24f1933/clang_format-18.1.8-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "08205b2928c74c3d8ceab9d60348d26e177e7c2dc39c43a5e6a8b9865aa66c84", + "md5": "f41c25ee9bb91be4076425632d7a3b8e", + "sha256": "2a73a50e17c94325712631c15e5b210e374841bbeefb915f12934b902310df7b" + }, + "downloads": -1, + "filename": "clang_format-18.1.8-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "f41c25ee9bb91be4076425632d7a3b8e", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1670549, + "upload_time": "2024-06-28T10:18:04", + "upload_time_iso_8601": "2024-06-28T10:18:04.565274Z", + "url": "https://files.pythonhosted.org/packages/08/20/5b2928c74c3d8ceab9d60348d26e177e7c2dc39c43a5e6a8b9865aa66c84/clang_format-18.1.8-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "05a8d94adc8025c6a313bed5da994c421fff7dc4288d20028b309b1d45e15032", + "md5": "dddec7b45c700ed348cd5a70f719de21", + "sha256": "2de122b8aa78ba49e326f974131caab2c79f4ae877c227cd4e3e5d82a98d21e5" + }, + "downloads": -1, + "filename": "clang_format-18.1.8-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "dddec7b45c700ed348cd5a70f719de21", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1677341, + "upload_time": "2024-06-28T10:18:06", + "upload_time_iso_8601": "2024-06-28T10:18:06.795427Z", + "url": "https://files.pythonhosted.org/packages/05/a8/d94adc8025c6a313bed5da994c421fff7dc4288d20028b309b1d45e15032/clang_format-18.1.8-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "a79348c0fd19ac5d6221059049facf0e1a91572e7f811e57f94d4882e37ee8a7", + "md5": "d21aa77617f6b7e4d09c0da4fdac449e", + "sha256": "7d71869103d0f27be3c4930bea59dc6325177a259ba321a04663a231432ec343" + }, + "downloads": -1, + "filename": "clang_format-18.1.8-py2.py3-none-musllinux_1_2_aarch64.whl", + "has_sig": false, + "md5_digest": "d21aa77617f6b7e4d09c0da4fdac449e", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2755836, + "upload_time": "2024-06-28T10:18:08", + "upload_time_iso_8601": "2024-06-28T10:18:08.425793Z", + "url": "https://files.pythonhosted.org/packages/a7/93/48c0fd19ac5d6221059049facf0e1a91572e7f811e57f94d4882e37ee8a7/clang_format-18.1.8-py2.py3-none-musllinux_1_2_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "b210d691db9818417687627ae388417ef97f6ca8b8e489a2ca071a8f32ea438e", + "md5": "e02505fb0030c9c41613d42b5661bd39", + "sha256": "ea103b3ae5b0941152cd29c67eab086aafc98675370ac13581005807680132aa" + }, + "downloads": -1, + "filename": "clang_format-18.1.8-py2.py3-none-musllinux_1_2_i686.whl", + "has_sig": false, + "md5_digest": "e02505fb0030c9c41613d42b5661bd39", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3047804, + "upload_time": "2024-06-28T10:18:10", + "upload_time_iso_8601": "2024-06-28T10:18:10.149643Z", + "url": "https://files.pythonhosted.org/packages/b2/10/d691db9818417687627ae388417ef97f6ca8b8e489a2ca071a8f32ea438e/clang_format-18.1.8-py2.py3-none-musllinux_1_2_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "c0995d15eacc59a447afb0a2a3ffd1a5aace3a8eae4ff20be06530cc043fe9b1", + "md5": "dd3ba34b64dca1e106f8b0f003a2e92c", + "sha256": "82c5dd546efa80a838bb9fd4cf6f6e37d85301c0bca13cd79ab5749422ca35a1" + }, + "downloads": -1, + "filename": "clang_format-18.1.8-py2.py3-none-musllinux_1_2_ppc64le.whl", + "has_sig": false, + "md5_digest": "dd3ba34b64dca1e106f8b0f003a2e92c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3235427, + "upload_time": "2024-06-28T10:18:11", + "upload_time_iso_8601": "2024-06-28T10:18:11.902334Z", + "url": "https://files.pythonhosted.org/packages/c0/99/5d15eacc59a447afb0a2a3ffd1a5aace3a8eae4ff20be06530cc043fe9b1/clang_format-18.1.8-py2.py3-none-musllinux_1_2_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "d89a1b390ff1eb080a96f113e813bb9f0104c8b998e3ebe78ad6222d1b563d3a", + "md5": "4afa1b072de0ac080878f275920b658a", + "sha256": "d3a41b7c7c3e65fa56763f5712f919111b35d7a8e857f8bef4ad5a4cdc1be131" + }, + "downloads": -1, + "filename": "clang_format-18.1.8-py2.py3-none-musllinux_1_2_s390x.whl", + "has_sig": false, + "md5_digest": "4afa1b072de0ac080878f275920b658a", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3172694, + "upload_time": "2024-06-28T10:18:14", + "upload_time_iso_8601": "2024-06-28T10:18:14.035022Z", + "url": "https://files.pythonhosted.org/packages/d8/9a/1b390ff1eb080a96f113e813bb9f0104c8b998e3ebe78ad6222d1b563d3a/clang_format-18.1.8-py2.py3-none-musllinux_1_2_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "c8b17bdec805dfa84eb4d2f3cbe65a419eaeb4cb0d67634c68d0915f54a32b88", + "md5": "93b1d197500e751788643ce578f47259", + "sha256": "4762e95ea887d522bf664c1411d93d4d41fc9eb059835dd88b9ad54bc3cb08e0" + }, + "downloads": -1, + "filename": "clang_format-18.1.8-py2.py3-none-musllinux_1_2_x86_64.whl", + "has_sig": false, + "md5_digest": "93b1d197500e751788643ce578f47259", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2835733, + "upload_time": "2024-06-28T10:18:16", + "upload_time_iso_8601": "2024-06-28T10:18:16.051571Z", + "url": "https://files.pythonhosted.org/packages/c8/b1/7bdec805dfa84eb4d2f3cbe65a419eaeb4cb0d67634c68d0915f54a32b88/clang_format-18.1.8-py2.py3-none-musllinux_1_2_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "c3b572fad56b06caef8dd41bcc40618ebf90e0ff881fef80b61c826a7bba9bef", + "md5": "f60f6b122354877377f420c7c4bf6254", + "sha256": "03e0a762b4b504750ce4999174fa50a3c4d6b83d7999481e1b6a1b3bc2915121" + }, + "downloads": -1, + "filename": "clang_format-18.1.8-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "f60f6b122354877377f420c7c4bf6254", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1184681, + "upload_time": "2024-06-28T10:18:18", + "upload_time_iso_8601": "2024-06-28T10:18:18.315519Z", + "url": "https://files.pythonhosted.org/packages/c3/b5/72fad56b06caef8dd41bcc40618ebf90e0ff881fef80b61c826a7bba9bef/clang_format-18.1.8-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "e8809b7ac1db31369307a74178ece94af2d7f800bb948af3b6d68fe2266f32b0", + "md5": "6f1268b1ed0823715a673e3cc46efd1a", + "sha256": "6ca6768270e291495174faa6d8c082aa0181722b29ef8e36558b397069fa4a2d" + }, + "downloads": -1, + "filename": "clang_format-18.1.8-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "6f1268b1ed0823715a673e3cc46efd1a", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1370844, + "upload_time": "2024-06-28T10:18:20", + "upload_time_iso_8601": "2024-06-28T10:18:20.422071Z", + "url": "https://files.pythonhosted.org/packages/e8/80/9b7ac1db31369307a74178ece94af2d7f800bb948af3b6d68fe2266f32b0/clang_format-18.1.8-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "94efe8d7160175753f11c939a842fa2b4fcd1221136b7232b0570e890ff1d96d", + "md5": "436073c85e6d87e37e5f9f6bacaefe5d", + "sha256": "065ddb7fdd0cb329976115fa03500dd560d9753dd50c25a269776648e6e6bf35" + }, + "downloads": -1, + "filename": "clang_format-18.1.8.tar.gz", + "has_sig": false, + "md5_digest": "436073c85e6d87e37e5f9f6bacaefe5d", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 11078, + "upload_time": "2024-06-28T10:18:22", + "upload_time_iso_8601": "2024-06-28T10:18:22.183035Z", + "url": "https://files.pythonhosted.org/packages/94/ef/e8d7160175753f11c939a842fa2b4fcd1221136b7232b0570e890ff1d96d/clang_format-18.1.8.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "19.1.0": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "f810d1653531394a6421ff080216d7541cd6fa62e43fed45aac7c20f2e9424a0", + "md5": "2aa4afa87f0e60ebb5e50628cb999c28", + "sha256": "6f841eb89014e1e7a5cc45f2e43e5ddd87b2172b95ca550b1c4b9827921f09eb" + }, + "downloads": -1, + "filename": "clang_format-19.1.0-py2.py3-none-macosx_10_9_x86_64.whl", + "has_sig": false, + "md5_digest": "2aa4afa87f0e60ebb5e50628cb999c28", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1428203, + "upload_time": "2024-09-23T14:11:10", + "upload_time_iso_8601": "2024-09-23T14:11:10.739982Z", + "url": "https://files.pythonhosted.org/packages/f8/10/d1653531394a6421ff080216d7541cd6fa62e43fed45aac7c20f2e9424a0/clang_format-19.1.0-py2.py3-none-macosx_10_9_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "877547d0afda6fe55de246dc1e8770fc855add13b4f6c326e3358ed89f7d63af", + "md5": "d76cd6dd808c7fec5e8745ceedd931ea", + "sha256": "6671890aba498b8eee733ed600db244e27cb9e8a423467a29d367d58c0e30a13" + }, + "downloads": -1, + "filename": "clang_format-19.1.0-py2.py3-none-macosx_11_0_arm64.whl", + "has_sig": false, + "md5_digest": "d76cd6dd808c7fec5e8745ceedd931ea", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1398490, + "upload_time": "2024-09-23T14:11:12", + "upload_time_iso_8601": "2024-09-23T14:11:12.652204Z", + "url": "https://files.pythonhosted.org/packages/87/75/47d0afda6fe55de246dc1e8770fc855add13b4f6c326e3358ed89f7d63af/clang_format-19.1.0-py2.py3-none-macosx_11_0_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "703f30404b6ce44810019516d7e7a7ee23ba245f437d55511cc43c143085cc7c", + "md5": "b3daf23250e5fe508381f572a88ee0df", + "sha256": "86f6b8bcf208e1bab74de386258598f3d84874b6564ab62b76e2fb75c5656382" + }, + "downloads": -1, + "filename": "clang_format-19.1.0-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "b3daf23250e5fe508381f572a88ee0df", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1730838, + "upload_time": "2024-09-23T14:11:14", + "upload_time_iso_8601": "2024-09-23T14:11:14.731599Z", + "url": "https://files.pythonhosted.org/packages/70/3f/30404b6ce44810019516d7e7a7ee23ba245f437d55511cc43c143085cc7c/clang_format-19.1.0-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "0c2e86633031d29e3fbb28a52cf7ffbb51150d4b6b6a55615d6ea2464922b6f6", + "md5": "015ccb68b59c406da5d5809c80c55886", + "sha256": "ceea5abecf0c5e12f6216630f8485903e9d46fe8ca25b2b213c096c2563aa1fe" + }, + "downloads": -1, + "filename": "clang_format-19.1.0-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "015ccb68b59c406da5d5809c80c55886", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1908890, + "upload_time": "2024-09-23T14:11:16", + "upload_time_iso_8601": "2024-09-23T14:11:16.203177Z", + "url": "https://files.pythonhosted.org/packages/0c/2e/86633031d29e3fbb28a52cf7ffbb51150d4b6b6a55615d6ea2464922b6f6/clang_format-19.1.0-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "48d1c1b1d51a8b73544ca36d0a689f66564e1c6e3562e5c759db94bc16f70aee", + "md5": "ef2c671e94dc60d061b1c48fafd9b3d1", + "sha256": "18903cf0600a372973cdffa55959613f4efecffadd6b4e6316787382e9633120" + }, + "downloads": -1, + "filename": "clang_format-19.1.0-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "ef2c671e94dc60d061b1c48fafd9b3d1", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2622692, + "upload_time": "2024-09-23T14:11:17", + "upload_time_iso_8601": "2024-09-23T14:11:17.648459Z", + "url": "https://files.pythonhosted.org/packages/48/d1/c1b1d51a8b73544ca36d0a689f66564e1c6e3562e5c759db94bc16f70aee/clang_format-19.1.0-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "05259b6c8470c653326f66588c0153498997e51e3dcb45bb57130afc5c74c21c", + "md5": "615e6f0f94347d4016c2c8ca707edf1f", + "sha256": "84206110f071b641458d6fa0f54ae71386f4d308cd870b8cf95efff5f4837efc" + }, + "downloads": -1, + "filename": "clang_format-19.1.0-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "615e6f0f94347d4016c2c8ca707edf1f", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1723632, + "upload_time": "2024-09-23T14:11:19", + "upload_time_iso_8601": "2024-09-23T14:11:19.061916Z", + "url": "https://files.pythonhosted.org/packages/05/25/9b6c8470c653326f66588c0153498997e51e3dcb45bb57130afc5c74c21c/clang_format-19.1.0-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "cd892188cba69c7add8cbd49d3d303434bf3c51fe75d44922da13c3bb82ca947", + "md5": "f69876caab94583cd96ac84af6085dc9", + "sha256": "b4074f5ac8f085b465b61b088dd08fafaef226dc3f0ac7b67596ff2c1ad881e4" + }, + "downloads": -1, + "filename": "clang_format-19.1.0-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "f69876caab94583cd96ac84af6085dc9", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1741176, + "upload_time": "2024-09-23T14:11:20", + "upload_time_iso_8601": "2024-09-23T14:11:20.514101Z", + "url": "https://files.pythonhosted.org/packages/cd/89/2188cba69c7add8cbd49d3d303434bf3c51fe75d44922da13c3bb82ca947/clang_format-19.1.0-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "68fe60925f9ca41e1a3769926c9236b3f2a5887c2795c773f2878ec1c117f7ae", + "md5": "618b69c09b52f9c482bca973f93911ca", + "sha256": "062cfce06656fc34e35286c8ab0dd49b8866f154ac1f086891305a3dec047fbb" + }, + "downloads": -1, + "filename": "clang_format-19.1.0-py2.py3-none-musllinux_1_2_aarch64.whl", + "has_sig": false, + "md5_digest": "618b69c09b52f9c482bca973f93911ca", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2676465, + "upload_time": "2024-09-23T14:11:22", + "upload_time_iso_8601": "2024-09-23T14:11:22.274906Z", + "url": "https://files.pythonhosted.org/packages/68/fe/60925f9ca41e1a3769926c9236b3f2a5887c2795c773f2878ec1c117f7ae/clang_format-19.1.0-py2.py3-none-musllinux_1_2_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "6ebe294b20f292340b5d22def736226b3efd9273d4f59910729aa348b93226ad", + "md5": "429b7c19c974f0f4be98fda04a56cdfa", + "sha256": "5aed51234bf29e27c0de24310408f185cca0f5042c9e0b0c1180dab7bcb049e7" + }, + "downloads": -1, + "filename": "clang_format-19.1.0-py2.py3-none-musllinux_1_2_i686.whl", + "has_sig": false, + "md5_digest": "429b7c19c974f0f4be98fda04a56cdfa", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2977819, + "upload_time": "2024-09-23T14:11:24", + "upload_time_iso_8601": "2024-09-23T14:11:24.157448Z", + "url": "https://files.pythonhosted.org/packages/6e/be/294b20f292340b5d22def736226b3efd9273d4f59910729aa348b93226ad/clang_format-19.1.0-py2.py3-none-musllinux_1_2_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "4ab538ae8d57b4e8d6e926845d65406389603755624be6621ce4fa65f0bfb9cd", + "md5": "e971679633443ea2b1d9ea0530e14f32", + "sha256": "1e9d1b9e85cd8ea1c3b0b4b44d09d5acb1953da50a32ad05f9c05bcecc176f19" + }, + "downloads": -1, + "filename": "clang_format-19.1.0-py2.py3-none-musllinux_1_2_ppc64le.whl", + "has_sig": false, + "md5_digest": "e971679633443ea2b1d9ea0530e14f32", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3125882, + "upload_time": "2024-09-23T14:11:25", + "upload_time_iso_8601": "2024-09-23T14:11:25.738251Z", + "url": "https://files.pythonhosted.org/packages/4a/b5/38ae8d57b4e8d6e926845d65406389603755624be6621ce4fa65f0bfb9cd/clang_format-19.1.0-py2.py3-none-musllinux_1_2_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "88efb1681f446a9f6495cd914d621ac54f43370f0e97e8de401a16e6e731a20a", + "md5": "969cec28fcd7db8e72bb3293efbf0f16", + "sha256": "6dab0a9913fcfc8def9373c810e8aa74854ad02932c68bb7110bc95f31701910" + }, + "downloads": -1, + "filename": "clang_format-19.1.0-py2.py3-none-musllinux_1_2_s390x.whl", + "has_sig": false, + "md5_digest": "969cec28fcd7db8e72bb3293efbf0f16", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3070171, + "upload_time": "2024-09-23T14:11:27", + "upload_time_iso_8601": "2024-09-23T14:11:27.195238Z", + "url": "https://files.pythonhosted.org/packages/88/ef/b1681f446a9f6495cd914d621ac54f43370f0e97e8de401a16e6e731a20a/clang_format-19.1.0-py2.py3-none-musllinux_1_2_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "1de9fc0497e29c31c82ecac327fe5e032cc7db445010041e0136b4cb3e5726ae", + "md5": "b8dcdc6bc6a298ee1fa1dc7184e4d942", + "sha256": "5bb6b077f3735f7d40ad6e854e672928a31d33ff92415b580f47d217e6315d3b" + }, + "downloads": -1, + "filename": "clang_format-19.1.0-py2.py3-none-musllinux_1_2_x86_64.whl", + "has_sig": false, + "md5_digest": "b8dcdc6bc6a298ee1fa1dc7184e4d942", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2764107, + "upload_time": "2024-09-23T14:11:28", + "upload_time_iso_8601": "2024-09-23T14:11:28.631948Z", + "url": "https://files.pythonhosted.org/packages/1d/e9/fc0497e29c31c82ecac327fe5e032cc7db445010041e0136b4cb3e5726ae/clang_format-19.1.0-py2.py3-none-musllinux_1_2_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "a1a32e813a0983299f78f00e824a475a10db1dfb65671e2f32fdf4a86449404e", + "md5": "a79f08f9e059eb86974a2a7a6076e681", + "sha256": "703862fab62adc7282edcf4c8a2dff45cc9adcbbf1a282f3a9a02046f58d0b0f" + }, + "downloads": -1, + "filename": "clang_format-19.1.0-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "a79f08f9e059eb86974a2a7a6076e681", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1243437, + "upload_time": "2024-09-23T14:11:30", + "upload_time_iso_8601": "2024-09-23T14:11:30.973209Z", + "url": "https://files.pythonhosted.org/packages/a1/a3/2e813a0983299f78f00e824a475a10db1dfb65671e2f32fdf4a86449404e/clang_format-19.1.0-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "574ced8d70c1612bae92166e656fb248366120fdf86132001c152f1db634b9ac", + "md5": "0b64c1cb2c904459d22aef2d58204640", + "sha256": "d1dd44d521c050fc4c384f6790e4b9b819da62fe0d05b9b0083a45962a0cddf6" + }, + "downloads": -1, + "filename": "clang_format-19.1.0-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "0b64c1cb2c904459d22aef2d58204640", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1440650, + "upload_time": "2024-09-23T14:11:32", + "upload_time_iso_8601": "2024-09-23T14:11:32.424655Z", + "url": "https://files.pythonhosted.org/packages/57/4c/ed8d70c1612bae92166e656fb248366120fdf86132001c152f1db634b9ac/clang_format-19.1.0-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "33713ae44cd87aee3607761b3b9ca7dce246c25352d7240aad75f45f703f0108", + "md5": "14c00bd5f74e0bcfc1c2399cf7252a3e", + "sha256": "4a092cd776b75f959e1e0b36457ff0b9d0725b73fb693f7133501f1ef80bc5b3" + }, + "downloads": -1, + "filename": "clang_format-19.1.0.tar.gz", + "has_sig": false, + "md5_digest": "14c00bd5f74e0bcfc1c2399cf7252a3e", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 11119, + "upload_time": "2024-09-23T14:11:33", + "upload_time_iso_8601": "2024-09-23T14:11:33.621347Z", + "url": "https://files.pythonhosted.org/packages/33/71/3ae44cd87aee3607761b3b9ca7dce246c25352d7240aad75f45f703f0108/clang_format-19.1.0.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "19.1.1": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "065d2f346927c905d7092671cd57f30dcbabb8f8f514e4bb3a081cc7732ef53b", + "md5": "a794dfaa5cca25efabf393d4a6790570", + "sha256": "e4967d43c986ce5987d293705ed5b76f44db71fdd111ea365dcaabc7a3c4f237" + }, + "downloads": -1, + "filename": "clang_format-19.1.1-py2.py3-none-macosx_10_9_x86_64.whl", + "has_sig": false, + "md5_digest": "a794dfaa5cca25efabf393d4a6790570", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1428202, + "upload_time": "2024-10-01T18:22:19", + "upload_time_iso_8601": "2024-10-01T18:22:19.791500Z", + "url": "https://files.pythonhosted.org/packages/06/5d/2f346927c905d7092671cd57f30dcbabb8f8f514e4bb3a081cc7732ef53b/clang_format-19.1.1-py2.py3-none-macosx_10_9_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "916befb38cf48b42974c4f179293c8b9c69543fa2f83aafee05ffaee6141a9b3", + "md5": "0d5ca4fe855925d4d7086932d16a9364", + "sha256": "d4ae63766cffcff4a55640b92210b0bdc0d7d9a5d9d9e0a8a998e532c204017a" + }, + "downloads": -1, + "filename": "clang_format-19.1.1-py2.py3-none-macosx_11_0_arm64.whl", + "has_sig": false, + "md5_digest": "0d5ca4fe855925d4d7086932d16a9364", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1398512, + "upload_time": "2024-10-01T18:22:21", + "upload_time_iso_8601": "2024-10-01T18:22:21.830448Z", + "url": "https://files.pythonhosted.org/packages/91/6b/efb38cf48b42974c4f179293c8b9c69543fa2f83aafee05ffaee6141a9b3/clang_format-19.1.1-py2.py3-none-macosx_11_0_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "be396b1915d39537eaece3979561c0f981463339e7f5daad9d0e0071e6cafd12", + "md5": "a5586dd34ef2f4232ecb2f247bccb005", + "sha256": "28f37d5ddd799a0e62dfdad5f13cb065103d89a71a0b6e9f92d0282dd7055d4c" + }, + "downloads": -1, + "filename": "clang_format-19.1.1-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "a5586dd34ef2f4232ecb2f247bccb005", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1730906, + "upload_time": "2024-10-01T18:22:23", + "upload_time_iso_8601": "2024-10-01T18:22:23.391316Z", + "url": "https://files.pythonhosted.org/packages/be/39/6b1915d39537eaece3979561c0f981463339e7f5daad9d0e0071e6cafd12/clang_format-19.1.1-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "cda4527619a6ea15e18a6812aa755b66f8d10626483f39b3afe167144b409984", + "md5": "0bbfb3a93177f8633d0d280252df633d", + "sha256": "8e571b591fd42afa6974a79cc162ac4946bcf4e0050f4f46ecb232b90526e540" + }, + "downloads": -1, + "filename": "clang_format-19.1.1-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "0bbfb3a93177f8633d0d280252df633d", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1908937, + "upload_time": "2024-10-01T18:22:24", + "upload_time_iso_8601": "2024-10-01T18:22:24.753207Z", + "url": "https://files.pythonhosted.org/packages/cd/a4/527619a6ea15e18a6812aa755b66f8d10626483f39b3afe167144b409984/clang_format-19.1.1-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "1ef7ced95c7f33d2e53ff9c278c6d9da23736c13a49b213207989cd3cba3645c", + "md5": "db42a5ad0b4317515682ede843a02aa8", + "sha256": "4d6a533ff6def4b5729bfa4edaaa1015c7058ed218b4e0280c980c4ec5bdd47c" + }, + "downloads": -1, + "filename": "clang_format-19.1.1-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "db42a5ad0b4317515682ede843a02aa8", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2622747, + "upload_time": "2024-10-01T18:22:26", + "upload_time_iso_8601": "2024-10-01T18:22:26.524117Z", + "url": "https://files.pythonhosted.org/packages/1e/f7/ced95c7f33d2e53ff9c278c6d9da23736c13a49b213207989cd3cba3645c/clang_format-19.1.1-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "8bd359f7c0d1873754a49a3ef956748aa7b2a00527e70422e9648c66d116ff66", + "md5": "80cd7885b9bec791584f3bcf603ef532", + "sha256": "656460de9afadb918261da115bb3ccf8023da2729c27670a7eadb1e1225c65a8" + }, + "downloads": -1, + "filename": "clang_format-19.1.1-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "80cd7885b9bec791584f3bcf603ef532", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1723481, + "upload_time": "2024-10-01T18:22:28", + "upload_time_iso_8601": "2024-10-01T18:22:28.246216Z", + "url": "https://files.pythonhosted.org/packages/8b/d3/59f7c0d1873754a49a3ef956748aa7b2a00527e70422e9648c66d116ff66/clang_format-19.1.1-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "0ecf6b40e09d5447c5eb75ae11a90ce992953ee97d075a200d3a878f5f10aec1", + "md5": "83b1e21f427864259a7baa4962e799f3", + "sha256": "0aa0b5faf59224591b72e90284e28a6054c6bf78869fb9b49f8fbf5da40fcfbf" + }, + "downloads": -1, + "filename": "clang_format-19.1.1-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "83b1e21f427864259a7baa4962e799f3", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1740109, + "upload_time": "2024-10-01T18:22:29", + "upload_time_iso_8601": "2024-10-01T18:22:29.744875Z", + "url": "https://files.pythonhosted.org/packages/0e/cf/6b40e09d5447c5eb75ae11a90ce992953ee97d075a200d3a878f5f10aec1/clang_format-19.1.1-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "eafff83e1daa7b85284b7ea72e5e2f74e3cee8a56ba78d08c53d9720e3900a42", + "md5": "07bbf551cd3046bc65d0923157233cc9", + "sha256": "3e9644587d44f5700e5b5c668ffa81b20575c83e971e07f5e512aae421cde387" + }, + "downloads": -1, + "filename": "clang_format-19.1.1-py2.py3-none-musllinux_1_2_aarch64.whl", + "has_sig": false, + "md5_digest": "07bbf551cd3046bc65d0923157233cc9", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2676643, + "upload_time": "2024-10-01T18:22:31", + "upload_time_iso_8601": "2024-10-01T18:22:31.343173Z", + "url": "https://files.pythonhosted.org/packages/ea/ff/f83e1daa7b85284b7ea72e5e2f74e3cee8a56ba78d08c53d9720e3900a42/clang_format-19.1.1-py2.py3-none-musllinux_1_2_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "731129d96d01d8d841be9e1dd3a0816f34ad543fb9ddf8bb3260ad9c526abd22", + "md5": "c01e1a8cc42ea83a36261c86311d1566", + "sha256": "c4218faed21065d28d33420e756a9ef74cb60b53d80c101fd1770f2ac2198492" + }, + "downloads": -1, + "filename": "clang_format-19.1.1-py2.py3-none-musllinux_1_2_i686.whl", + "has_sig": false, + "md5_digest": "c01e1a8cc42ea83a36261c86311d1566", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2977564, + "upload_time": "2024-10-01T18:22:33", + "upload_time_iso_8601": "2024-10-01T18:22:33.183797Z", + "url": "https://files.pythonhosted.org/packages/73/11/29d96d01d8d841be9e1dd3a0816f34ad543fb9ddf8bb3260ad9c526abd22/clang_format-19.1.1-py2.py3-none-musllinux_1_2_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "ac9ccf71710c0fc32c11d3e0c94c55293fc9bf13a00bcb85c03d710d94193d1b", + "md5": "eb8b5777cac7fb597be6a87cf6105a4f", + "sha256": "380c724ae53658ad51b0f6a2bd88677ac051cf5d3d55c7874ba2c0bed3cfe1e9" + }, + "downloads": -1, + "filename": "clang_format-19.1.1-py2.py3-none-musllinux_1_2_ppc64le.whl", + "has_sig": false, + "md5_digest": "eb8b5777cac7fb597be6a87cf6105a4f", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3125701, + "upload_time": "2024-10-01T18:22:35", + "upload_time_iso_8601": "2024-10-01T18:22:35.272158Z", + "url": "https://files.pythonhosted.org/packages/ac/9c/cf71710c0fc32c11d3e0c94c55293fc9bf13a00bcb85c03d710d94193d1b/clang_format-19.1.1-py2.py3-none-musllinux_1_2_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "43049d2fc8faa9872147cbe388d6dc88a00c93846e797255dc611c9aa52015fa", + "md5": "f4671d9d471de974c130155684db9453", + "sha256": "39bca9a96498c674cc765d572ed299e80373e3c33f73961786864bd516b1eeb7" + }, + "downloads": -1, + "filename": "clang_format-19.1.1-py2.py3-none-musllinux_1_2_s390x.whl", + "has_sig": false, + "md5_digest": "f4671d9d471de974c130155684db9453", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3070185, + "upload_time": "2024-10-01T18:22:37", + "upload_time_iso_8601": "2024-10-01T18:22:37.004256Z", + "url": "https://files.pythonhosted.org/packages/43/04/9d2fc8faa9872147cbe388d6dc88a00c93846e797255dc611c9aa52015fa/clang_format-19.1.1-py2.py3-none-musllinux_1_2_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "3a724f9a98c3d46eabb850636a19b7d2e34f0170a8301cc7e892b2774d8f4426", + "md5": "62551578c481bbb1cc7e827f35250529", + "sha256": "7dc424c87b53d6097e46df034a5359ed9d1932ec5dccd0ab42f1ef3655a7452f" + }, + "downloads": -1, + "filename": "clang_format-19.1.1-py2.py3-none-musllinux_1_2_x86_64.whl", + "has_sig": false, + "md5_digest": "62551578c481bbb1cc7e827f35250529", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2764007, + "upload_time": "2024-10-01T18:22:38", + "upload_time_iso_8601": "2024-10-01T18:22:38.775931Z", + "url": "https://files.pythonhosted.org/packages/3a/72/4f9a98c3d46eabb850636a19b7d2e34f0170a8301cc7e892b2774d8f4426/clang_format-19.1.1-py2.py3-none-musllinux_1_2_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "37bc308e7a42996cbe3891988420e3e58662504ac5ce7d9d41dd182b3a9733a0", + "md5": "14cf3ba5fb34fce643a42716459d2d4b", + "sha256": "6e67c7aa81cea8161db3d3654331103225104ad7622257b4f4e00f8563aced52" + }, + "downloads": -1, + "filename": "clang_format-19.1.1-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "14cf3ba5fb34fce643a42716459d2d4b", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1243431, + "upload_time": "2024-10-01T18:22:40", + "upload_time_iso_8601": "2024-10-01T18:22:40.414322Z", + "url": "https://files.pythonhosted.org/packages/37/bc/308e7a42996cbe3891988420e3e58662504ac5ce7d9d41dd182b3a9733a0/clang_format-19.1.1-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "896ece69b88264d8e00712262401e2d72957f20bb609c523cd7bdfc3b96fc83a", + "md5": "05402c40af8c93c6ac29dfde9b497851", + "sha256": "631aa55a56f96f12d9c6060fb6d09f397f32705c7a4331e1944a107f6c99f139" + }, + "downloads": -1, + "filename": "clang_format-19.1.1-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "05402c40af8c93c6ac29dfde9b497851", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1440640, + "upload_time": "2024-10-01T18:22:42", + "upload_time_iso_8601": "2024-10-01T18:22:42.643956Z", + "url": "https://files.pythonhosted.org/packages/89/6e/ce69b88264d8e00712262401e2d72957f20bb609c523cd7bdfc3b96fc83a/clang_format-19.1.1-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "4d33d91b271285c0f936f9af3e3fd16cd165a448a95a7c5662439cb936615d93", + "md5": "97f12a8634377bd4da75d9c1d5e41dff", + "sha256": "aeb3a1898ee86689602d583da3dcbd2f6cdf460538c2d7a3623a5012132ada1b" + }, + "downloads": -1, + "filename": "clang_format-19.1.1.tar.gz", + "has_sig": false, + "md5_digest": "97f12a8634377bd4da75d9c1d5e41dff", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 11120, + "upload_time": "2024-10-01T18:22:43", + "upload_time_iso_8601": "2024-10-01T18:22:43.860480Z", + "url": "https://files.pythonhosted.org/packages/4d/33/d91b271285c0f936f9af3e3fd16cd165a448a95a7c5662439cb936615d93/clang_format-19.1.1.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "19.1.2": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "c49e7e5225194f003db730a0d661fc6c7ed6e68859465a83b99142294f6bbb8d", + "md5": "52eb512fa8a2143c4739df2d07526912", + "sha256": "468fae82c5c4433eb74b3d5866eb45ffe293c85867a610aa2932d3367e69832f" + }, + "downloads": -1, + "filename": "clang_format-19.1.2-py2.py3-none-macosx_10_9_x86_64.whl", + "has_sig": false, + "md5_digest": "52eb512fa8a2143c4739df2d07526912", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1428113, + "upload_time": "2024-10-15T16:46:58", + "upload_time_iso_8601": "2024-10-15T16:46:58.119399Z", + "url": "https://files.pythonhosted.org/packages/c4/9e/7e5225194f003db730a0d661fc6c7ed6e68859465a83b99142294f6bbb8d/clang_format-19.1.2-py2.py3-none-macosx_10_9_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "149c34b4d715d2bf943e6fa25cca0d231ccab654a652a2d1205da0640a9a78c0", + "md5": "e885f3444a99b464e2d7b79f6f17b497", + "sha256": "a9c179c56a2fde07203aa5ce66dc89d9ca6c1ca963521f8b01bed947874a6389" + }, + "downloads": -1, + "filename": "clang_format-19.1.2-py2.py3-none-macosx_11_0_arm64.whl", + "has_sig": false, + "md5_digest": "e885f3444a99b464e2d7b79f6f17b497", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1398160, + "upload_time": "2024-10-15T16:46:59", + "upload_time_iso_8601": "2024-10-15T16:46:59.740359Z", + "url": "https://files.pythonhosted.org/packages/14/9c/34b4d715d2bf943e6fa25cca0d231ccab654a652a2d1205da0640a9a78c0/clang_format-19.1.2-py2.py3-none-macosx_11_0_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "889c037ba87678d7d9e0969ba2e64df51706f14695e534766dac080b777516c4", + "md5": "370bbc1f210b138d6e21c11b5a55d74f", + "sha256": "d03dc972927a54ba0e4f6aed01ddc3726ad417d585873b11d7a3c0e6363d3abe" + }, + "downloads": -1, + "filename": "clang_format-19.1.2-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "370bbc1f210b138d6e21c11b5a55d74f", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1731088, + "upload_time": "2024-10-15T16:47:01", + "upload_time_iso_8601": "2024-10-15T16:47:01.808539Z", + "url": "https://files.pythonhosted.org/packages/88/9c/037ba87678d7d9e0969ba2e64df51706f14695e534766dac080b777516c4/clang_format-19.1.2-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "2d5030df50a81456a1e7e7c39dd759ac6b432968b6f29744c342526b559fa555", + "md5": "a5d93265e3e8cadacd80d8c9d3a143c0", + "sha256": "56f39f9c030df47f85179c1a6968e8aad959395e88e7e58c830c33c4bbbc070c" + }, + "downloads": -1, + "filename": "clang_format-19.1.2-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "a5d93265e3e8cadacd80d8c9d3a143c0", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1908802, + "upload_time": "2024-10-15T16:47:03", + "upload_time_iso_8601": "2024-10-15T16:47:03.069374Z", + "url": "https://files.pythonhosted.org/packages/2d/50/30df50a81456a1e7e7c39dd759ac6b432968b6f29744c342526b559fa555/clang_format-19.1.2-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "0ecae6448d4411557305246cc70b0df9b2ce7a4d439b70059d8e47b142b8d6f9", + "md5": "17ad63ae5860840f75edb90295b25ac2", + "sha256": "eab18784d32b731070473492db11945afd8d5e44e3144a6308405b6f2dec9b05" + }, + "downloads": -1, + "filename": "clang_format-19.1.2-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "17ad63ae5860840f75edb90295b25ac2", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2622513, + "upload_time": "2024-10-15T16:47:04", + "upload_time_iso_8601": "2024-10-15T16:47:04.679907Z", + "url": "https://files.pythonhosted.org/packages/0e/ca/e6448d4411557305246cc70b0df9b2ce7a4d439b70059d8e47b142b8d6f9/clang_format-19.1.2-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "231b47f3c71ef8d8dea5674cb7a4d61a81fbae06852a0487112e94175b9fb05c", + "md5": "93d064f2fcde81de34f0b6ee04fbd645", + "sha256": "ed2475c7ecd8eae5029b5e6610940ed2e01156b3b9b56ac5df5bb5eabd252e54" + }, + "downloads": -1, + "filename": "clang_format-19.1.2-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "93d064f2fcde81de34f0b6ee04fbd645", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1723511, + "upload_time": "2024-10-15T16:47:06", + "upload_time_iso_8601": "2024-10-15T16:47:06.059224Z", + "url": "https://files.pythonhosted.org/packages/23/1b/47f3c71ef8d8dea5674cb7a4d61a81fbae06852a0487112e94175b9fb05c/clang_format-19.1.2-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "684645ae76e2f0e1e447235ddfbf0c1cca425a89975e11b442c567c3ce637f8a", + "md5": "01a962ba0e389120a789ef82cc6ee1fc", + "sha256": "0b0a61317358c7f40c1d178c8690facf9c4d44b3ff8d3270ff1417ba78d08e02" + }, + "downloads": -1, + "filename": "clang_format-19.1.2-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "01a962ba0e389120a789ef82cc6ee1fc", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1740335, + "upload_time": "2024-10-15T16:47:08", + "upload_time_iso_8601": "2024-10-15T16:47:08.901582Z", + "url": "https://files.pythonhosted.org/packages/68/46/45ae76e2f0e1e447235ddfbf0c1cca425a89975e11b442c567c3ce637f8a/clang_format-19.1.2-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "6e2c9d3b3da85142d06606989a7dc60e95565c0d6b28b876bb9eaab9ea7e5a5d", + "md5": "74a78fbf235e57606b03ece56525884f", + "sha256": "7f24d140a6b1081335437d0ec6dee0e59f41a53dc63608e17d5394079c370202" + }, + "downloads": -1, + "filename": "clang_format-19.1.2-py2.py3-none-musllinux_1_2_aarch64.whl", + "has_sig": false, + "md5_digest": "74a78fbf235e57606b03ece56525884f", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2676739, + "upload_time": "2024-10-15T16:47:10", + "upload_time_iso_8601": "2024-10-15T16:47:10.245568Z", + "url": "https://files.pythonhosted.org/packages/6e/2c/9d3b3da85142d06606989a7dc60e95565c0d6b28b876bb9eaab9ea7e5a5d/clang_format-19.1.2-py2.py3-none-musllinux_1_2_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "b6257dc33cace28cba6ab405b08cc72a7ac7d7c4c8ba5734510229d189cd965c", + "md5": "6329ea740d50c1e1d7c869ad40af2262", + "sha256": "93d8e42ee2d3e42f4e878610e715e858df37af0f647c0360322eb0661ca28bde" + }, + "downloads": -1, + "filename": "clang_format-19.1.2-py2.py3-none-musllinux_1_2_i686.whl", + "has_sig": false, + "md5_digest": "6329ea740d50c1e1d7c869ad40af2262", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2977151, + "upload_time": "2024-10-15T16:47:12", + "upload_time_iso_8601": "2024-10-15T16:47:12.447921Z", + "url": "https://files.pythonhosted.org/packages/b6/25/7dc33cace28cba6ab405b08cc72a7ac7d7c4c8ba5734510229d189cd965c/clang_format-19.1.2-py2.py3-none-musllinux_1_2_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "f19b4147e1ab0aec924cbae8936ddba4559275de98142bc1e48fae678ccdcba8", + "md5": "e63ad22710074d4cf73748e3dfe9781b", + "sha256": "14f152e14b8fb5398d3472892bada43a3c908591b9a90f5d905cff0be7ef9171" + }, + "downloads": -1, + "filename": "clang_format-19.1.2-py2.py3-none-musllinux_1_2_ppc64le.whl", + "has_sig": false, + "md5_digest": "e63ad22710074d4cf73748e3dfe9781b", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3125368, + "upload_time": "2024-10-15T16:47:14", + "upload_time_iso_8601": "2024-10-15T16:47:14.338140Z", + "url": "https://files.pythonhosted.org/packages/f1/9b/4147e1ab0aec924cbae8936ddba4559275de98142bc1e48fae678ccdcba8/clang_format-19.1.2-py2.py3-none-musllinux_1_2_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "c5dc10d7c863b97449a3bb721108bf3bebf212c11177d2f3b1799ae5a4b72b4d", + "md5": "35f43aac95d6a4b858ec7dad0e02d58f", + "sha256": "60763f95d40e70f4dbe9fe8195030074094cbe0c212e1d96c23c2f46e400d2f8" + }, + "downloads": -1, + "filename": "clang_format-19.1.2-py2.py3-none-musllinux_1_2_s390x.whl", + "has_sig": false, + "md5_digest": "35f43aac95d6a4b858ec7dad0e02d58f", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3070431, + "upload_time": "2024-10-15T16:47:16", + "upload_time_iso_8601": "2024-10-15T16:47:16.113749Z", + "url": "https://files.pythonhosted.org/packages/c5/dc/10d7c863b97449a3bb721108bf3bebf212c11177d2f3b1799ae5a4b72b4d/clang_format-19.1.2-py2.py3-none-musllinux_1_2_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "217ddfed4e160a10f3014e46c55ef4e3800c8d0017e90adf5306d7da4fb284dc", + "md5": "1e2d533f84fe1b578d9d5479233a05ba", + "sha256": "7698d0417912380d4f56387093572656c1da3ce025a0cd7e3952f3b97042c329" + }, + "downloads": -1, + "filename": "clang_format-19.1.2-py2.py3-none-musllinux_1_2_x86_64.whl", + "has_sig": false, + "md5_digest": "1e2d533f84fe1b578d9d5479233a05ba", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2763830, + "upload_time": "2024-10-15T16:47:18", + "upload_time_iso_8601": "2024-10-15T16:47:18.304266Z", + "url": "https://files.pythonhosted.org/packages/21/7d/dfed4e160a10f3014e46c55ef4e3800c8d0017e90adf5306d7da4fb284dc/clang_format-19.1.2-py2.py3-none-musllinux_1_2_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "0e0de91d3554aaf03afb6674a6d06a702a2fd90ddc19f0dd88b8339133f9f457", + "md5": "52278e759ea057f69c4f9dfb2e29bae0", + "sha256": "747a45ea91ec4aa84f77777fe0ca6f5b3107593e7c0e66422b7139a8daec4156" + }, + "downloads": -1, + "filename": "clang_format-19.1.2-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "52278e759ea057f69c4f9dfb2e29bae0", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1243288, + "upload_time": "2024-10-15T16:47:19", + "upload_time_iso_8601": "2024-10-15T16:47:19.734891Z", + "url": "https://files.pythonhosted.org/packages/0e/0d/e91d3554aaf03afb6674a6d06a702a2fd90ddc19f0dd88b8339133f9f457/clang_format-19.1.2-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "f61023f156e8ef7f738be25f18dd3520f768f44617af647ab58ad2678b8b0bba", + "md5": "72300b7847fcf011824ae28ac1a880c6", + "sha256": "5baa30593d4b56878776855b07dbb338cc83f14a0af171064329ba19c2118681" + }, + "downloads": -1, + "filename": "clang_format-19.1.2-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "72300b7847fcf011824ae28ac1a880c6", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1440532, + "upload_time": "2024-10-15T16:47:21", + "upload_time_iso_8601": "2024-10-15T16:47:21.826385Z", + "url": "https://files.pythonhosted.org/packages/f6/10/23f156e8ef7f738be25f18dd3520f768f44617af647ab58ad2678b8b0bba/clang_format-19.1.2-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "d2a0ab5762785d7ca92bc70ad89f14ca6391b3ce197cad4af40309de638ba7c6", + "md5": "336ed63a5b107f7cfe4bcb97c63f65fd", + "sha256": "08d57c5968121e6d285bb38820211b21ddbe2241e68082c3feb146c59e6d08cf" + }, + "downloads": -1, + "filename": "clang_format-19.1.2.tar.gz", + "has_sig": false, + "md5_digest": "336ed63a5b107f7cfe4bcb97c63f65fd", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 11118, + "upload_time": "2024-10-15T16:47:22", + "upload_time_iso_8601": "2024-10-15T16:47:22.995379Z", + "url": "https://files.pythonhosted.org/packages/d2/a0/ab5762785d7ca92bc70ad89f14ca6391b3ce197cad4af40309de638ba7c6/clang_format-19.1.2.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "19.1.3": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "4db089842f8e7bfde6b9c0dbb809c2cb261d4b26e3157ad9f5bf2745921f0173", + "md5": "b75e8f89374aabb341681aab11f9173e", + "sha256": "7c6142542c3353f32d5b1edd589d84cd6a4c5e8d4813c9c6f11598bb1f9730b3" + }, + "downloads": -1, + "filename": "clang_format-19.1.3-py2.py3-none-macosx_10_9_x86_64.whl", + "has_sig": false, + "md5_digest": "b75e8f89374aabb341681aab11f9173e", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1428150, + "upload_time": "2024-10-30T12:49:02", + "upload_time_iso_8601": "2024-10-30T12:49:02.458973Z", + "url": "https://files.pythonhosted.org/packages/4d/b0/89842f8e7bfde6b9c0dbb809c2cb261d4b26e3157ad9f5bf2745921f0173/clang_format-19.1.3-py2.py3-none-macosx_10_9_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "c6776040bb4e13406fd09997141a6ebd847df8ecddff3d1b55f4a4c18bd6cde1", + "md5": "ea3991d4b6e3a17f6b5a0a0326194456", + "sha256": "98af6016823a7b538bfb25dae33e90539cb661f1d9b38669514e32d82adab3f4" + }, + "downloads": -1, + "filename": "clang_format-19.1.3-py2.py3-none-macosx_11_0_arm64.whl", + "has_sig": false, + "md5_digest": "ea3991d4b6e3a17f6b5a0a0326194456", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1398211, + "upload_time": "2024-10-30T12:49:03", + "upload_time_iso_8601": "2024-10-30T12:49:03.853779Z", + "url": "https://files.pythonhosted.org/packages/c6/77/6040bb4e13406fd09997141a6ebd847df8ecddff3d1b55f4a4c18bd6cde1/clang_format-19.1.3-py2.py3-none-macosx_11_0_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "dedda04c581eb21893606f336a4a5536353623353c86cb6751c1ca1f7cb8271b", + "md5": "7fd3722e82334ab7316c7ccd0b9b2489", + "sha256": "7a94bcd46a3495bb5f7d08d4f02a1a012795b4e93120f4f44c206973693c2f5a" + }, + "downloads": -1, + "filename": "clang_format-19.1.3-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "7fd3722e82334ab7316c7ccd0b9b2489", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1731118, + "upload_time": "2024-10-30T12:49:05", + "upload_time_iso_8601": "2024-10-30T12:49:05.686728Z", + "url": "https://files.pythonhosted.org/packages/de/dd/a04c581eb21893606f336a4a5536353623353c86cb6751c1ca1f7cb8271b/clang_format-19.1.3-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "789d71510b503b1307ca3303195644a622d4efdd1b73e17be3d194c6abf235e2", + "md5": "b5d0645c5bd58cb4b330d72eb08d6570", + "sha256": "10179eb0193a67af86295335e7e965661c2e0fc2d7e98e78642d7a3bbd6f07e7" + }, + "downloads": -1, + "filename": "clang_format-19.1.3-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "b5d0645c5bd58cb4b330d72eb08d6570", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1908869, + "upload_time": "2024-10-30T12:49:08", + "upload_time_iso_8601": "2024-10-30T12:49:08.294602Z", + "url": "https://files.pythonhosted.org/packages/78/9d/71510b503b1307ca3303195644a622d4efdd1b73e17be3d194c6abf235e2/clang_format-19.1.3-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "ed162457a389d42e6c3cc14221a444e101b2776d85dce0ff23abea36ffeacb2a", + "md5": "26550917b79189338afb14b51fb12537", + "sha256": "b1e7cd625d0e74311db0e888c040f3464850364535ac85d4fdb551b0644edee4" + }, + "downloads": -1, + "filename": "clang_format-19.1.3-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "26550917b79189338afb14b51fb12537", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2622921, + "upload_time": "2024-10-30T12:49:10", + "upload_time_iso_8601": "2024-10-30T12:49:10.351761Z", + "url": "https://files.pythonhosted.org/packages/ed/16/2457a389d42e6c3cc14221a444e101b2776d85dce0ff23abea36ffeacb2a/clang_format-19.1.3-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "73bfbcbab1c1eb653b75e9f903a7e1c74b45bf30588778dde8668647fb591320", + "md5": "a3a8f788f5d9b11e8e259183cf149b4c", + "sha256": "98e0efb22638f72454bc6f1b3094e08f59a742743c95d8eadd2e90aa51a0ef5e" + }, + "downloads": -1, + "filename": "clang_format-19.1.3-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "a3a8f788f5d9b11e8e259183cf149b4c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1723502, + "upload_time": "2024-10-30T12:49:11", + "upload_time_iso_8601": "2024-10-30T12:49:11.790414Z", + "url": "https://files.pythonhosted.org/packages/73/bf/bcbab1c1eb653b75e9f903a7e1c74b45bf30588778dde8668647fb591320/clang_format-19.1.3-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "60a5019193fa2fa12e5c708fde7e7ac91853460fbee676179b872c7e10c0c3ae", + "md5": "97ca8d440cfd45e62e038b5f2b3eeacc", + "sha256": "ef7c248035886f11974882427f23a6135685e31da9668b606039184a9a911f30" + }, + "downloads": -1, + "filename": "clang_format-19.1.3-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "97ca8d440cfd45e62e038b5f2b3eeacc", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1740402, + "upload_time": "2024-10-30T12:49:13", + "upload_time_iso_8601": "2024-10-30T12:49:13.323540Z", + "url": "https://files.pythonhosted.org/packages/60/a5/019193fa2fa12e5c708fde7e7ac91853460fbee676179b872c7e10c0c3ae/clang_format-19.1.3-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "f307ff5315bcdac71c000cccd9de98618d1e9400e9e9fecf5dbfa72ea6984f21", + "md5": "4f0387bffa58eb5456df9cb0b5da08f5", + "sha256": "379768364419f777478442c45fd55324fdb436075efb2b448fad6f27688343eb" + }, + "downloads": -1, + "filename": "clang_format-19.1.3-py2.py3-none-musllinux_1_2_aarch64.whl", + "has_sig": false, + "md5_digest": "4f0387bffa58eb5456df9cb0b5da08f5", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2676878, + "upload_time": "2024-10-30T12:49:16", + "upload_time_iso_8601": "2024-10-30T12:49:16.414381Z", + "url": "https://files.pythonhosted.org/packages/f3/07/ff5315bcdac71c000cccd9de98618d1e9400e9e9fecf5dbfa72ea6984f21/clang_format-19.1.3-py2.py3-none-musllinux_1_2_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "9fefb2f6db948188946ebc1decc3238c942c2ee07a44989b4ea3113032bca900", + "md5": "dacadcfcc4ec621787ef1173ba511f30", + "sha256": "33cc6452a0fe0d7fde30f930ea81baab28432d5128fb6ad431d57fa7ae17f878" + }, + "downloads": -1, + "filename": "clang_format-19.1.3-py2.py3-none-musllinux_1_2_i686.whl", + "has_sig": false, + "md5_digest": "dacadcfcc4ec621787ef1173ba511f30", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2977470, + "upload_time": "2024-10-30T12:49:19", + "upload_time_iso_8601": "2024-10-30T12:49:19.182741Z", + "url": "https://files.pythonhosted.org/packages/9f/ef/b2f6db948188946ebc1decc3238c942c2ee07a44989b4ea3113032bca900/clang_format-19.1.3-py2.py3-none-musllinux_1_2_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "310fb161c330ce6ba521a98980d62ceea677ef5106fe263a34d359c71222dd0a", + "md5": "c078dcf9fbf040bb84620036d48d4c07", + "sha256": "418517be67ac2893a77dc2f6f343c5a36c312dbc1ddd61c4b2ef0ebec603ddab" + }, + "downloads": -1, + "filename": "clang_format-19.1.3-py2.py3-none-musllinux_1_2_ppc64le.whl", + "has_sig": false, + "md5_digest": "c078dcf9fbf040bb84620036d48d4c07", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3125934, + "upload_time": "2024-10-30T12:49:21", + "upload_time_iso_8601": "2024-10-30T12:49:21.298251Z", + "url": "https://files.pythonhosted.org/packages/31/0f/b161c330ce6ba521a98980d62ceea677ef5106fe263a34d359c71222dd0a/clang_format-19.1.3-py2.py3-none-musllinux_1_2_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "bdab8b072251686b3c99685b9632067ee8344d25c0e8946adf1df8f8b5294cf1", + "md5": "c9daa75144ef2ef3ada15632981bb2f6", + "sha256": "996b30272803b2b80a223ed5c5337a4d73340c5a6a30034457b42bd43b3c1877" + }, + "downloads": -1, + "filename": "clang_format-19.1.3-py2.py3-none-musllinux_1_2_s390x.whl", + "has_sig": false, + "md5_digest": "c9daa75144ef2ef3ada15632981bb2f6", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3070470, + "upload_time": "2024-10-30T12:49:22", + "upload_time_iso_8601": "2024-10-30T12:49:22.773905Z", + "url": "https://files.pythonhosted.org/packages/bd/ab/8b072251686b3c99685b9632067ee8344d25c0e8946adf1df8f8b5294cf1/clang_format-19.1.3-py2.py3-none-musllinux_1_2_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "321c942b4ed4ce72c0a50ac205d8d3ae9ee75e3e83cd8ccdd12f383d55bdb857", + "md5": "42e12a3e1f5a9992677d30eb718f4f46", + "sha256": "553f2098ed7e841f137c646793418893bc761794e5af1b057cf04ceaeb37af3d" + }, + "downloads": -1, + "filename": "clang_format-19.1.3-py2.py3-none-musllinux_1_2_x86_64.whl", + "has_sig": false, + "md5_digest": "42e12a3e1f5a9992677d30eb718f4f46", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2763800, + "upload_time": "2024-10-30T12:49:24", + "upload_time_iso_8601": "2024-10-30T12:49:24.273385Z", + "url": "https://files.pythonhosted.org/packages/32/1c/942b4ed4ce72c0a50ac205d8d3ae9ee75e3e83cd8ccdd12f383d55bdb857/clang_format-19.1.3-py2.py3-none-musllinux_1_2_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "9aa576025af44296bade3ccc71d3c3af1ba064a2073af7c202311556343062c8", + "md5": "ef2dffad339d5f3ef03baff776f655cb", + "sha256": "1cfab6132c257ee8020c9fa788b459793f423f872ff2af79a1ac3a2c80df8af5" + }, + "downloads": -1, + "filename": "clang_format-19.1.3-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "ef2dffad339d5f3ef03baff776f655cb", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1243262, + "upload_time": "2024-10-30T12:49:25", + "upload_time_iso_8601": "2024-10-30T12:49:25.867952Z", + "url": "https://files.pythonhosted.org/packages/9a/a5/76025af44296bade3ccc71d3c3af1ba064a2073af7c202311556343062c8/clang_format-19.1.3-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "c5fb1904fc1a8bd080cd58f2ce50ed20245076122c17af61f7ee3370a90f7c5c", + "md5": "0134381119990bfc306091e6e7d155c5", + "sha256": "9ce291c5e835146319f568fc0c5dee5a12ea32be9f2744261997870e50b4732b" + }, + "downloads": -1, + "filename": "clang_format-19.1.3-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "0134381119990bfc306091e6e7d155c5", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1441140, + "upload_time": "2024-10-30T12:49:27", + "upload_time_iso_8601": "2024-10-30T12:49:27.889481Z", + "url": "https://files.pythonhosted.org/packages/c5/fb/1904fc1a8bd080cd58f2ce50ed20245076122c17af61f7ee3370a90f7c5c/clang_format-19.1.3-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "c674a4e2384a673b3ea1e57eb12f9d7c4b9dce162177fe8648a4a2fd252263f3", + "md5": "b18721110855d783b9dd22ae1b148f96", + "sha256": "f067d00d01903668196d5c4890f535ff7a118ed59ec0b8cbdbf11c68785a6a98" + }, + "downloads": -1, + "filename": "clang_format-19.1.3.tar.gz", + "has_sig": false, + "md5_digest": "b18721110855d783b9dd22ae1b148f96", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 11119, + "upload_time": "2024-10-30T12:49:29", + "upload_time_iso_8601": "2024-10-30T12:49:29.715176Z", + "url": "https://files.pythonhosted.org/packages/c6/74/a4e2384a673b3ea1e57eb12f9d7c4b9dce162177fe8648a4a2fd252263f3/clang_format-19.1.3.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "19.1.4": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "2a7ba57ab80480a31b4f7b242aa86fb2ad9bb70e77cbfd298be7909deeda2880", + "md5": "6c626fbcc4c4b7926cd891be19743f40", + "sha256": "06b05e745bea7e032ffc819c821a3a8d3f0425a09b44b3375997e7f5eb1beba7" + }, + "downloads": -1, + "filename": "clang_format-19.1.4-py2.py3-none-macosx_10_9_x86_64.whl", + "has_sig": false, + "md5_digest": "6c626fbcc4c4b7926cd891be19743f40", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1428186, + "upload_time": "2024-11-21T20:48:15", + "upload_time_iso_8601": "2024-11-21T20:48:15.514102Z", + "url": "https://files.pythonhosted.org/packages/2a/7b/a57ab80480a31b4f7b242aa86fb2ad9bb70e77cbfd298be7909deeda2880/clang_format-19.1.4-py2.py3-none-macosx_10_9_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "77044a0c30c41eadb06006027d1b05e5594b1bb440caea60defbad4d375c7d46", + "md5": "cbb14d345e71d23981760317d778bfd8", + "sha256": "65d03aedff6e056ada784f95e85a94e1fbf265c54cc4c4d53832c609996de541" + }, + "downloads": -1, + "filename": "clang_format-19.1.4-py2.py3-none-macosx_11_0_arm64.whl", + "has_sig": false, + "md5_digest": "cbb14d345e71d23981760317d778bfd8", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1398345, + "upload_time": "2024-11-21T20:48:17", + "upload_time_iso_8601": "2024-11-21T20:48:17.150549Z", + "url": "https://files.pythonhosted.org/packages/77/04/4a0c30c41eadb06006027d1b05e5594b1bb440caea60defbad4d375c7d46/clang_format-19.1.4-py2.py3-none-macosx_11_0_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "8bf665fc5bcd6b741178f18ee5d629fed48c305218c81cf05408d66177433672", + "md5": "b70b0ada53a3e1f5513be08dc777c5a1", + "sha256": "026835a229022e2b5188811d0cdd2361e7abf8515ad5b6d23c6d4982f6a7bbdb" + }, + "downloads": -1, + "filename": "clang_format-19.1.4-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "b70b0ada53a3e1f5513be08dc777c5a1", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1731179, + "upload_time": "2024-11-21T20:48:19", + "upload_time_iso_8601": "2024-11-21T20:48:19.720038Z", + "url": "https://files.pythonhosted.org/packages/8b/f6/65fc5bcd6b741178f18ee5d629fed48c305218c81cf05408d66177433672/clang_format-19.1.4-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "4cdc772f9f42c305468fff4f9bad5fa43850d4dddf6711e9caef8884e8ae3a5d", + "md5": "d766a2c94cd4e2f4c1a9a52e4757bfe1", + "sha256": "249c550ae6a9b342174eb918147a2a9d2af735b8a07736917f5a19742437e98e" + }, + "downloads": -1, + "filename": "clang_format-19.1.4-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "d766a2c94cd4e2f4c1a9a52e4757bfe1", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1908933, + "upload_time": "2024-11-21T20:48:21", + "upload_time_iso_8601": "2024-11-21T20:48:21.111553Z", + "url": "https://files.pythonhosted.org/packages/4c/dc/772f9f42c305468fff4f9bad5fa43850d4dddf6711e9caef8884e8ae3a5d/clang_format-19.1.4-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "61bc878a507a33d2fe543078f9aea9fc682d3f92af481354302786c5f43b4ead", + "md5": "29e10420ecf6dacc764c1404f63c765a", + "sha256": "0607af9d40edb9f6f762132dacbc033d4e3b80263a49c25790fd81693413f207" + }, + "downloads": -1, + "filename": "clang_format-19.1.4-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "29e10420ecf6dacc764c1404f63c765a", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2622955, + "upload_time": "2024-11-21T20:48:22", + "upload_time_iso_8601": "2024-11-21T20:48:22.392639Z", + "url": "https://files.pythonhosted.org/packages/61/bc/878a507a33d2fe543078f9aea9fc682d3f92af481354302786c5f43b4ead/clang_format-19.1.4-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "20e8ef483f7d31d9b6607aa4d82c450462992ab085f606b67e98f8af666cc9ac", + "md5": "fee0f62aa877ad8a2cc9b8c3faa4fa64", + "sha256": "089d7b2062aceecdd6042036d6b8a2b91e481c6348f9be78acd94afad8f22f8f" + }, + "downloads": -1, + "filename": "clang_format-19.1.4-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "fee0f62aa877ad8a2cc9b8c3faa4fa64", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1723520, + "upload_time": "2024-11-21T20:48:23", + "upload_time_iso_8601": "2024-11-21T20:48:23.660223Z", + "url": "https://files.pythonhosted.org/packages/20/e8/ef483f7d31d9b6607aa4d82c450462992ab085f606b67e98f8af666cc9ac/clang_format-19.1.4-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "9a0b8012cb9ee1df999e16807cd18d69a2a92f9d72fcf980f88929323989d78a", + "md5": "ecb3bf600d00a9d89a53d39d53ae2b44", + "sha256": "a6e5a15a5160d2927004fed4a3ce1ee0cd0f546e3a71a96a09ca88f431d7d8d2" + }, + "downloads": -1, + "filename": "clang_format-19.1.4-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "ecb3bf600d00a9d89a53d39d53ae2b44", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1740414, + "upload_time": "2024-11-21T20:48:25", + "upload_time_iso_8601": "2024-11-21T20:48:25.575725Z", + "url": "https://files.pythonhosted.org/packages/9a/0b/8012cb9ee1df999e16807cd18d69a2a92f9d72fcf980f88929323989d78a/clang_format-19.1.4-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "03298f3adbfcc39d25448bbe9e48702dd3b59b26292dbaf41e42d6af341e446a", + "md5": "4e772ded90d2f1a3381279a20aa25c81", + "sha256": "6518c8f60d110e690ce9b9f4ceafb4dbc1e9f376c567e3590080aaea7eb0dc36" + }, + "downloads": -1, + "filename": "clang_format-19.1.4-py2.py3-none-musllinux_1_2_aarch64.whl", + "has_sig": false, + "md5_digest": "4e772ded90d2f1a3381279a20aa25c81", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2676813, + "upload_time": "2024-11-21T20:48:26", + "upload_time_iso_8601": "2024-11-21T20:48:26.855682Z", + "url": "https://files.pythonhosted.org/packages/03/29/8f3adbfcc39d25448bbe9e48702dd3b59b26292dbaf41e42d6af341e446a/clang_format-19.1.4-py2.py3-none-musllinux_1_2_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "0763137ad026d2faae47b680c3541ece385bcc4c800c0350d79d1f00e1bf3f71", + "md5": "fbaa358a1901dae1951dd8ceb991ddad", + "sha256": "2f6c37e1e201ec86b880b7b581b981dcf4f0cc45cdd2e59d67d883ed85a5b664" + }, + "downloads": -1, + "filename": "clang_format-19.1.4-py2.py3-none-musllinux_1_2_i686.whl", + "has_sig": false, + "md5_digest": "fbaa358a1901dae1951dd8ceb991ddad", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2977340, + "upload_time": "2024-11-21T20:48:28", + "upload_time_iso_8601": "2024-11-21T20:48:28.300349Z", + "url": "https://files.pythonhosted.org/packages/07/63/137ad026d2faae47b680c3541ece385bcc4c800c0350d79d1f00e1bf3f71/clang_format-19.1.4-py2.py3-none-musllinux_1_2_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "b3373ec6fab9ea2dcf61e6de5c7fc2ee14987cb5115518bb279dcc58812142ce", + "md5": "6de748ddbc62d04cfd69f8b01e055eb0", + "sha256": "8cea3c57593beb3426348edbc89a57df938818fc369f5768fbcb12f60e15a8e3" + }, + "downloads": -1, + "filename": "clang_format-19.1.4-py2.py3-none-musllinux_1_2_ppc64le.whl", + "has_sig": false, + "md5_digest": "6de748ddbc62d04cfd69f8b01e055eb0", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3125702, + "upload_time": "2024-11-21T20:48:29", + "upload_time_iso_8601": "2024-11-21T20:48:29.665161Z", + "url": "https://files.pythonhosted.org/packages/b3/37/3ec6fab9ea2dcf61e6de5c7fc2ee14987cb5115518bb279dcc58812142ce/clang_format-19.1.4-py2.py3-none-musllinux_1_2_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "fa2c8efa425960ad5087b01a089b9384efb1c76a396852bc2d423fe89c93e1c8", + "md5": "56028354de9017c6f371f53dc332eb29", + "sha256": "ccf6764d1193102d06bdd552fa3f02a73f6a6122b6d27de99a3b151c12578be9" + }, + "downloads": -1, + "filename": "clang_format-19.1.4-py2.py3-none-musllinux_1_2_s390x.whl", + "has_sig": false, + "md5_digest": "56028354de9017c6f371f53dc332eb29", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3070411, + "upload_time": "2024-11-21T20:48:31", + "upload_time_iso_8601": "2024-11-21T20:48:31.032329Z", + "url": "https://files.pythonhosted.org/packages/fa/2c/8efa425960ad5087b01a089b9384efb1c76a396852bc2d423fe89c93e1c8/clang_format-19.1.4-py2.py3-none-musllinux_1_2_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "fd8860e19b71723afd5a7786fa1f0002f690dec393708cffb775fd631764549f", + "md5": "ad85e164c1aff94883ddeaa3472c9749", + "sha256": "991e80afe974e13ebfa560ca3c9cd14ca725cf65bde861331f070b92f5b3f830" + }, + "downloads": -1, + "filename": "clang_format-19.1.4-py2.py3-none-musllinux_1_2_x86_64.whl", + "has_sig": false, + "md5_digest": "ad85e164c1aff94883ddeaa3472c9749", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2763799, + "upload_time": "2024-11-21T20:48:32", + "upload_time_iso_8601": "2024-11-21T20:48:32.448338Z", + "url": "https://files.pythonhosted.org/packages/fd/88/60e19b71723afd5a7786fa1f0002f690dec393708cffb775fd631764549f/clang_format-19.1.4-py2.py3-none-musllinux_1_2_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "52b628175c4a9adb96a80786e749eb73effff1a56c7e19df4684d70ca2655c4f", + "md5": "90762e58b91b628cf4374b7b73abc0e1", + "sha256": "ba7d361a8f93866a8320182188f93bb8a765cdac4a99006262a81aabff22bb72" + }, + "downloads": -1, + "filename": "clang_format-19.1.4-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "90762e58b91b628cf4374b7b73abc0e1", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1243300, + "upload_time": "2024-11-21T20:48:33", + "upload_time_iso_8601": "2024-11-21T20:48:33.804436Z", + "url": "https://files.pythonhosted.org/packages/52/b6/28175c4a9adb96a80786e749eb73effff1a56c7e19df4684d70ca2655c4f/clang_format-19.1.4-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "9eb1bc767d6873141a69d07fa68031d359bb1b27dd626b068b107e410b23e75b", + "md5": "87a154cfd5564267d68dcdc5a56e77a1", + "sha256": "66385c7d8ef28897f52bf3107786bf44bbb8f61848592d115459217cc56f39e5" + }, + "downloads": -1, + "filename": "clang_format-19.1.4-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "87a154cfd5564267d68dcdc5a56e77a1", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1441127, + "upload_time": "2024-11-21T20:48:35", + "upload_time_iso_8601": "2024-11-21T20:48:35.149579Z", + "url": "https://files.pythonhosted.org/packages/9e/b1/bc767d6873141a69d07fa68031d359bb1b27dd626b068b107e410b23e75b/clang_format-19.1.4-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "f791d72a202ab605be764291e56bb243a1651df693f318879aecb114d2922538", + "md5": "b044d104fb4763cff526f1dc4b6649e7", + "sha256": "03c46d4c728cccfa3ede2ae0998260f206f5590966bcf84beaa3223fc7165f6c" + }, + "downloads": -1, + "filename": "clang_format-19.1.4.tar.gz", + "has_sig": false, + "md5_digest": "b044d104fb4763cff526f1dc4b6649e7", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 11118, + "upload_time": "2024-11-21T20:48:36", + "upload_time_iso_8601": "2024-11-21T20:48:36.328518Z", + "url": "https://files.pythonhosted.org/packages/f7/91/d72a202ab605be764291e56bb243a1651df693f318879aecb114d2922538/clang_format-19.1.4.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "19.1.5": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "890d95d97521082387f32700608dc92a7ea260670ec104aa67b9af56115c2847", + "md5": "0e43dbc813d1de500730bd902edf50fd", + "sha256": "3726ba534024953c61f379c6c9c998fb3bd8265b9e9c8df6190d116591651bb7" + }, + "downloads": -1, + "filename": "clang_format-19.1.5-py2.py3-none-macosx_10_9_x86_64.whl", + "has_sig": false, + "md5_digest": "0e43dbc813d1de500730bd902edf50fd", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1428186, + "upload_time": "2024-12-09T16:12:27", + "upload_time_iso_8601": "2024-12-09T16:12:27.971871Z", + "url": "https://files.pythonhosted.org/packages/89/0d/95d97521082387f32700608dc92a7ea260670ec104aa67b9af56115c2847/clang_format-19.1.5-py2.py3-none-macosx_10_9_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "191f3ec261d38b7cdcd5d1a435627f7440bdc580bcb8dcdf4d0e5a5e72ba1ff0", + "md5": "3ce93cd56d05ce1f1f92962c11e2f87a", + "sha256": "64ba4ce03b5748de364497389d36f1a32da9a1f6824fa519ecff3c7dcfcdcc7b" + }, + "downloads": -1, + "filename": "clang_format-19.1.5-py2.py3-none-macosx_11_0_arm64.whl", + "has_sig": false, + "md5_digest": "3ce93cd56d05ce1f1f92962c11e2f87a", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1398351, + "upload_time": "2024-12-09T16:12:29", + "upload_time_iso_8601": "2024-12-09T16:12:29.744023Z", + "url": "https://files.pythonhosted.org/packages/19/1f/3ec261d38b7cdcd5d1a435627f7440bdc580bcb8dcdf4d0e5a5e72ba1ff0/clang_format-19.1.5-py2.py3-none-macosx_11_0_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "2a39298f883dc7cef4b39f3b4c4868aa494f02631d0402c1a26387af80f03280", + "md5": "209db5c4755eab49d5dddc5690a2b527", + "sha256": "ecff0642339dd3c35639592e8cdf309950182438a154b836b4f43f5ed127fed7" + }, + "downloads": -1, + "filename": "clang_format-19.1.5-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "209db5c4755eab49d5dddc5690a2b527", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1731069, + "upload_time": "2024-12-09T16:12:32", + "upload_time_iso_8601": "2024-12-09T16:12:32.052146Z", + "url": "https://files.pythonhosted.org/packages/2a/39/298f883dc7cef4b39f3b4c4868aa494f02631d0402c1a26387af80f03280/clang_format-19.1.5-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "425d9363b901e885a2325f16a0e4f0a07dbc8e36ba2f10ba9ff42c42c77eb100", + "md5": "c5a96d2868dd9219d2acfc665614b9b8", + "sha256": "65ef8799445bac597983638869f875ccd89fac91f43ce9c20ac6645fb53910e3" + }, + "downloads": -1, + "filename": "clang_format-19.1.5-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "c5a96d2868dd9219d2acfc665614b9b8", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1908824, + "upload_time": "2024-12-09T16:12:34", + "upload_time_iso_8601": "2024-12-09T16:12:34.061136Z", + "url": "https://files.pythonhosted.org/packages/42/5d/9363b901e885a2325f16a0e4f0a07dbc8e36ba2f10ba9ff42c42c77eb100/clang_format-19.1.5-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "fbdb884d4d2da2bf73d3d8fed383e7b29abd855304526bf18abee075373cb69a", + "md5": "4d32b52ec4046428b588146bb876a608", + "sha256": "b226d46ad383bcd70025bdc8d23eac79f49d02cd23f8d4412c882a9e6a51520f" + }, + "downloads": -1, + "filename": "clang_format-19.1.5-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "4d32b52ec4046428b588146bb876a608", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2622843, + "upload_time": "2024-12-09T16:12:36", + "upload_time_iso_8601": "2024-12-09T16:12:36.530087Z", + "url": "https://files.pythonhosted.org/packages/fb/db/884d4d2da2bf73d3d8fed383e7b29abd855304526bf18abee075373cb69a/clang_format-19.1.5-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "8f2f97f2113cd1e4b76e0897aa0154f3607e7ee32ec8b7aaa537bcc2675c21e9", + "md5": "e79a929948da1e0fdcede7c562730c70", + "sha256": "f8933c4783f4980e47f99d5bf20880e18d719441337ec5271af6d2dfe4efd67e" + }, + "downloads": -1, + "filename": "clang_format-19.1.5-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "e79a929948da1e0fdcede7c562730c70", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1723410, + "upload_time": "2024-12-09T16:12:38", + "upload_time_iso_8601": "2024-12-09T16:12:38.032120Z", + "url": "https://files.pythonhosted.org/packages/8f/2f/97f2113cd1e4b76e0897aa0154f3607e7ee32ec8b7aaa537bcc2675c21e9/clang_format-19.1.5-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "8945f90c1d186cd3cedd5f18642b46ff22e1875d140bae50979bfcd001b0ff33", + "md5": "46e2ae0d05534e25191d2f8c7ce6b9dc", + "sha256": "a91ef7774c1b500d27ab7edf548689c6fdfdb63aa1e0dc2fc6549de1e37f7d4a" + }, + "downloads": -1, + "filename": "clang_format-19.1.5-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "46e2ae0d05534e25191d2f8c7ce6b9dc", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1740306, + "upload_time": "2024-12-09T16:12:39", + "upload_time_iso_8601": "2024-12-09T16:12:39.529751Z", + "url": "https://files.pythonhosted.org/packages/89/45/f90c1d186cd3cedd5f18642b46ff22e1875d140bae50979bfcd001b0ff33/clang_format-19.1.5-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "bebaf33350038d3687a55b9d7657740de5c0250da49fe2c3a7a056bd87be1921", + "md5": "fdd52497f5d2b9dd493ab6f6941be816", + "sha256": "e3400d986698bb75e698aa29fce2b91f7c42719239a50eeac8dc075e458dbec6" + }, + "downloads": -1, + "filename": "clang_format-19.1.5-py2.py3-none-musllinux_1_2_aarch64.whl", + "has_sig": false, + "md5_digest": "fdd52497f5d2b9dd493ab6f6941be816", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2675580, + "upload_time": "2024-12-09T16:12:41", + "upload_time_iso_8601": "2024-12-09T16:12:41.297003Z", + "url": "https://files.pythonhosted.org/packages/be/ba/f33350038d3687a55b9d7657740de5c0250da49fe2c3a7a056bd87be1921/clang_format-19.1.5-py2.py3-none-musllinux_1_2_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "524a9c04392cf57c2674044d39fe039e106a8871fcf4b72b188741e54277d037", + "md5": "b5512ceba7654d899fa3410ca5fd99cc", + "sha256": "af2d6e5f985fe69be9fa948f603b8896b9c9b4deae303682cee2b9cbca55265b" + }, + "downloads": -1, + "filename": "clang_format-19.1.5-py2.py3-none-musllinux_1_2_i686.whl", + "has_sig": false, + "md5_digest": "b5512ceba7654d899fa3410ca5fd99cc", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2977902, + "upload_time": "2024-12-09T16:12:43", + "upload_time_iso_8601": "2024-12-09T16:12:43.550349Z", + "url": "https://files.pythonhosted.org/packages/52/4a/9c04392cf57c2674044d39fe039e106a8871fcf4b72b188741e54277d037/clang_format-19.1.5-py2.py3-none-musllinux_1_2_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "b3639493d4d82b7a7a1399ca091ae0909bf09cf23bbfd3a744f1874cce4f03bb", + "md5": "64412b96a8bd9bd937c73b65473b2d7b", + "sha256": "f70720045d1454e375a0d7755297215bcf11bdc026ee7097940e595d62edaa93" + }, + "downloads": -1, + "filename": "clang_format-19.1.5-py2.py3-none-musllinux_1_2_ppc64le.whl", + "has_sig": false, + "md5_digest": "64412b96a8bd9bd937c73b65473b2d7b", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3125796, + "upload_time": "2024-12-09T16:12:45", + "upload_time_iso_8601": "2024-12-09T16:12:45.303111Z", + "url": "https://files.pythonhosted.org/packages/b3/63/9493d4d82b7a7a1399ca091ae0909bf09cf23bbfd3a744f1874cce4f03bb/clang_format-19.1.5-py2.py3-none-musllinux_1_2_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "23613137aa39d681f31b869d0c8b99ba86927adc724143d59ba5540874278eb1", + "md5": "72b88f5cbb5ec034419686b6dfb2482e", + "sha256": "97cb404ba8a27e983d5e0c40cbdba4ff9f59e77208f814e0772df70bc6ab1549" + }, + "downloads": -1, + "filename": "clang_format-19.1.5-py2.py3-none-musllinux_1_2_s390x.whl", + "has_sig": false, + "md5_digest": "72b88f5cbb5ec034419686b6dfb2482e", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3069647, + "upload_time": "2024-12-09T16:12:47", + "upload_time_iso_8601": "2024-12-09T16:12:47.482567Z", + "url": "https://files.pythonhosted.org/packages/23/61/3137aa39d681f31b869d0c8b99ba86927adc724143d59ba5540874278eb1/clang_format-19.1.5-py2.py3-none-musllinux_1_2_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "8aae7beff6da60d9cb654d1513dda15719a5dce70ad38ef30877c8d5d1675959", + "md5": "a79d35623d6a1d86eb999f4c387b7994", + "sha256": "47aa71eed4e2958c11a2e05b77f5513df890949126a10cd7dc4bf23287a46a2c" + }, + "downloads": -1, + "filename": "clang_format-19.1.5-py2.py3-none-musllinux_1_2_x86_64.whl", + "has_sig": false, + "md5_digest": "a79d35623d6a1d86eb999f4c387b7994", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2763142, + "upload_time": "2024-12-09T16:12:49", + "upload_time_iso_8601": "2024-12-09T16:12:49.844074Z", + "url": "https://files.pythonhosted.org/packages/8a/ae/7beff6da60d9cb654d1513dda15719a5dce70ad38ef30877c8d5d1675959/clang_format-19.1.5-py2.py3-none-musllinux_1_2_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "06b371dbc718a7201d1191380d2b41d85a541efd40475bb439666c82c07551be", + "md5": "605162679afce3209a2d160d713067ff", + "sha256": "d7ac4fc1f73b13c7a353c5ebe0f654d909e12e9972697ad0d17c903a55ec97c2" + }, + "downloads": -1, + "filename": "clang_format-19.1.5-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "605162679afce3209a2d160d713067ff", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1243307, + "upload_time": "2024-12-09T16:12:51", + "upload_time_iso_8601": "2024-12-09T16:12:51.307532Z", + "url": "https://files.pythonhosted.org/packages/06/b3/71dbc718a7201d1191380d2b41d85a541efd40475bb439666c82c07551be/clang_format-19.1.5-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "b23ba52d1ecf156e2dcab803d04ff317e898b8edc39e832ca76b6f2158ddc2f9", + "md5": "38bc9adc5548f46b4c45cd09a85666ed", + "sha256": "6bb35cbb5fcd9726a6c3575c04c8e0204429846aa7d2119cf9b1327c0f1b543a" + }, + "downloads": -1, + "filename": "clang_format-19.1.5-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "38bc9adc5548f46b4c45cd09a85666ed", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1441126, + "upload_time": "2024-12-09T16:12:52", + "upload_time_iso_8601": "2024-12-09T16:12:52.967839Z", + "url": "https://files.pythonhosted.org/packages/b2/3b/a52d1ecf156e2dcab803d04ff317e898b8edc39e832ca76b6f2158ddc2f9/clang_format-19.1.5-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "81faeca5715fad300de89f6759dcb0728b171779587e01f6dc1a4456f47a50a3", + "md5": "ba5fafa3daa16670c975d215fd1ff901", + "sha256": "77693ceb22ebf60b82a27d454059d27e0574df31e8d257d8075c699915d5e91c" + }, + "downloads": -1, + "filename": "clang_format-19.1.5.tar.gz", + "has_sig": false, + "md5_digest": "ba5fafa3daa16670c975d215fd1ff901", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 11120, + "upload_time": "2024-12-09T16:12:55", + "upload_time_iso_8601": "2024-12-09T16:12:55.053627Z", + "url": "https://files.pythonhosted.org/packages/81/fa/eca5715fad300de89f6759dcb0728b171779587e01f6dc1a4456f47a50a3/clang_format-19.1.5.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "19.1.6": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "757d25ad1843b90f65e7369936ef3a1a3e38cdf556dde3ec789a3db9291af833", + "md5": "dfb1e086a346a3f30d4116217eb865db", + "sha256": "c125e84d74cf99b1909c50d69defb900cabd1f8382306775f38c2b8a62e107f4" + }, + "downloads": -1, + "filename": "clang_format-19.1.6-py2.py3-none-macosx_10_9_x86_64.whl", + "has_sig": false, + "md5_digest": "dfb1e086a346a3f30d4116217eb865db", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1428186, + "upload_time": "2025-01-03T13:44:27", + "upload_time_iso_8601": "2025-01-03T13:44:27.584847Z", + "url": "https://files.pythonhosted.org/packages/75/7d/25ad1843b90f65e7369936ef3a1a3e38cdf556dde3ec789a3db9291af833/clang_format-19.1.6-py2.py3-none-macosx_10_9_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "f85fae13d65a177ed16f015bf9e452aecf594a6773dffa99c977d12fc0186b01", + "md5": "138d9c466030071902e1637a95f36c1b", + "sha256": "01589ad3c94f6ddb409f91f78195dac1e67026193650230b6a0284f8a75ccef1" + }, + "downloads": -1, + "filename": "clang_format-19.1.6-py2.py3-none-macosx_11_0_arm64.whl", + "has_sig": false, + "md5_digest": "138d9c466030071902e1637a95f36c1b", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1398347, + "upload_time": "2025-01-03T13:44:30", + "upload_time_iso_8601": "2025-01-03T13:44:30.039411Z", + "url": "https://files.pythonhosted.org/packages/f8/5f/ae13d65a177ed16f015bf9e452aecf594a6773dffa99c977d12fc0186b01/clang_format-19.1.6-py2.py3-none-macosx_11_0_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "23fad2dbfb92ee9d8594cdf715103dc7b056bcc144c537e3d622513ee8f44b3f", + "md5": "9352e3664bf5da3c806d0abe0e323c9b", + "sha256": "90ad17c94d0b8b513c5db1f7779224584992af2232f19df15212cd6f205f2426" + }, + "downloads": -1, + "filename": "clang_format-19.1.6-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "9352e3664bf5da3c806d0abe0e323c9b", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1731070, + "upload_time": "2025-01-03T13:44:33", + "upload_time_iso_8601": "2025-01-03T13:44:33.210240Z", + "url": "https://files.pythonhosted.org/packages/23/fa/d2dbfb92ee9d8594cdf715103dc7b056bcc144c537e3d622513ee8f44b3f/clang_format-19.1.6-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "fb32386c8a1125268c9cd75989f92f3b2f7cc73d86513460a8e150852a021d99", + "md5": "76d1275d7acb446d4e1a9d96eb96b846", + "sha256": "bee107f468cc9dbcc6c43fb0be06e016a5530183926af270c2d8a8d78c1e317f" + }, + "downloads": -1, + "filename": "clang_format-19.1.6-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "76d1275d7acb446d4e1a9d96eb96b846", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1908819, + "upload_time": "2025-01-03T13:44:36", + "upload_time_iso_8601": "2025-01-03T13:44:36.358382Z", + "url": "https://files.pythonhosted.org/packages/fb/32/386c8a1125268c9cd75989f92f3b2f7cc73d86513460a8e150852a021d99/clang_format-19.1.6-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "35a553522458b98b49ec12177557022ba6e07d8660660175e2b06f32c51c1134", + "md5": "c55baee75e48d59222d088dd0eb2ccb5", + "sha256": "195c3145cd619cd9d364ea4c42afaf767506019e836048a758382c7ee8b31cf7" + }, + "downloads": -1, + "filename": "clang_format-19.1.6-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "c55baee75e48d59222d088dd0eb2ccb5", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2622842, + "upload_time": "2025-01-03T13:44:39", + "upload_time_iso_8601": "2025-01-03T13:44:39.723400Z", + "url": "https://files.pythonhosted.org/packages/35/a5/53522458b98b49ec12177557022ba6e07d8660660175e2b06f32c51c1134/clang_format-19.1.6-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "260f405c1935d5db9280800a5537256eebe3645f409208b947cac2787b4156a0", + "md5": "a569b6b272ba60da14300a007f5bef70", + "sha256": "b1c0f59c03ab6dbf3d212c54ccbc93d6b748c76782b2d92968e7abf4ff97ef11" + }, + "downloads": -1, + "filename": "clang_format-19.1.6-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "a569b6b272ba60da14300a007f5bef70", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1723401, + "upload_time": "2025-01-03T13:44:43", + "upload_time_iso_8601": "2025-01-03T13:44:43.476626Z", + "url": "https://files.pythonhosted.org/packages/26/0f/405c1935d5db9280800a5537256eebe3645f409208b947cac2787b4156a0/clang_format-19.1.6-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "47c2f05bc157eb7955674c66c107fac304bbfaf3d10caebdc1e8967718529e58", + "md5": "8fc61ec1355eee9e5bd48b2e1a408aaa", + "sha256": "309ba18d96275a60930974c6af33324bb45c524174ab5a0b76089150fd371392" + }, + "downloads": -1, + "filename": "clang_format-19.1.6-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "8fc61ec1355eee9e5bd48b2e1a408aaa", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1740307, + "upload_time": "2025-01-03T13:44:46", + "upload_time_iso_8601": "2025-01-03T13:44:46.545965Z", + "url": "https://files.pythonhosted.org/packages/47/c2/f05bc157eb7955674c66c107fac304bbfaf3d10caebdc1e8967718529e58/clang_format-19.1.6-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "df8899aa569292a39b7212048f4adb6a6ce2a21e904e35b867d986eace69ba11", + "md5": "a37fb538d4f92e69e67ff609cb66a040", + "sha256": "ea1e72cbb3228978c0b7dc4034193c32a533542e756078d5a4f206f3c4baf91b" + }, + "downloads": -1, + "filename": "clang_format-19.1.6-py2.py3-none-musllinux_1_2_aarch64.whl", + "has_sig": false, + "md5_digest": "a37fb538d4f92e69e67ff609cb66a040", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2675578, + "upload_time": "2025-01-03T13:44:49", + "upload_time_iso_8601": "2025-01-03T13:44:49.678448Z", + "url": "https://files.pythonhosted.org/packages/df/88/99aa569292a39b7212048f4adb6a6ce2a21e904e35b867d986eace69ba11/clang_format-19.1.6-py2.py3-none-musllinux_1_2_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "d86233118fb7ce4e675c72e86b3c402bfcb68da40b6ac95c7d0a6cbc4ccc3b1d", + "md5": "063c8f895d07f7819b6e3482540a810f", + "sha256": "d0d60f08f797f9d884667fa544e3b4abab89926379ea24db1ff098e56bcf9547" + }, + "downloads": -1, + "filename": "clang_format-19.1.6-py2.py3-none-musllinux_1_2_i686.whl", + "has_sig": false, + "md5_digest": "063c8f895d07f7819b6e3482540a810f", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2977899, + "upload_time": "2025-01-03T13:44:52", + "upload_time_iso_8601": "2025-01-03T13:44:52.473206Z", + "url": "https://files.pythonhosted.org/packages/d8/62/33118fb7ce4e675c72e86b3c402bfcb68da40b6ac95c7d0a6cbc4ccc3b1d/clang_format-19.1.6-py2.py3-none-musllinux_1_2_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "6e4c3a43855681c9c95920f3b874e15bf077668fda147b37a8d2a76d84cc52d4", + "md5": "8141da80f537c0e3ce565fd89f205e0e", + "sha256": "2eab6e47e54bc47387f8fea5463f66771ff7c162aabd2a4108f14cb2b53f1611" + }, + "downloads": -1, + "filename": "clang_format-19.1.6-py2.py3-none-musllinux_1_2_ppc64le.whl", + "has_sig": false, + "md5_digest": "8141da80f537c0e3ce565fd89f205e0e", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3125799, + "upload_time": "2025-01-03T13:44:55", + "upload_time_iso_8601": "2025-01-03T13:44:55.937200Z", + "url": "https://files.pythonhosted.org/packages/6e/4c/3a43855681c9c95920f3b874e15bf077668fda147b37a8d2a76d84cc52d4/clang_format-19.1.6-py2.py3-none-musllinux_1_2_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "dfa451c9c0aa3c0448025b6d18c20e9393d9236531457accbad945d3a59455ab", + "md5": "2b3377c3c658f5dc39548058f8c2b9e9", + "sha256": "c8e8b4476812c255ee5d60e7e88446db7677034d5af339a65415d6b0204b1664" + }, + "downloads": -1, + "filename": "clang_format-19.1.6-py2.py3-none-musllinux_1_2_s390x.whl", + "has_sig": false, + "md5_digest": "2b3377c3c658f5dc39548058f8c2b9e9", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3069620, + "upload_time": "2025-01-03T13:44:59", + "upload_time_iso_8601": "2025-01-03T13:44:59.051809Z", + "url": "https://files.pythonhosted.org/packages/df/a4/51c9c0aa3c0448025b6d18c20e9393d9236531457accbad945d3a59455ab/clang_format-19.1.6-py2.py3-none-musllinux_1_2_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "cb0018e58447a881d483e7312382545102bb191c5e2831f34a1bc8090cbbfae2", + "md5": "c8dc2d711153203b384e3dfa5bcea17e", + "sha256": "090ee6fbbf7d086ad6d160e0b38f1f99030ad89c8ac5a3b57b57ebfab850a78a" + }, + "downloads": -1, + "filename": "clang_format-19.1.6-py2.py3-none-musllinux_1_2_x86_64.whl", + "has_sig": false, + "md5_digest": "c8dc2d711153203b384e3dfa5bcea17e", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2763144, + "upload_time": "2025-01-03T13:45:02", + "upload_time_iso_8601": "2025-01-03T13:45:02.252916Z", + "url": "https://files.pythonhosted.org/packages/cb/00/18e58447a881d483e7312382545102bb191c5e2831f34a1bc8090cbbfae2/clang_format-19.1.6-py2.py3-none-musllinux_1_2_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "f7881eae839eb797c3b735448918fb8a2c0dd49903038262f279381d2d8a5b46", + "md5": "b1b43b3ed46c39f3eacb537f76aec0e3", + "sha256": "decb325117b7d7b16d3e86730a181c25278e4587bf1f3c09453a5d70f3c004f9" + }, + "downloads": -1, + "filename": "clang_format-19.1.6-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "b1b43b3ed46c39f3eacb537f76aec0e3", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1243269, + "upload_time": "2025-01-03T13:45:04", + "upload_time_iso_8601": "2025-01-03T13:45:04.462963Z", + "url": "https://files.pythonhosted.org/packages/f7/88/1eae839eb797c3b735448918fb8a2c0dd49903038262f279381d2d8a5b46/clang_format-19.1.6-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "c403d7f77d9b6dfc7b8cf9900e4403a106aa527d60659a0a0c3c6cabf97fb452", + "md5": "4d52828e84045fb29066aced4cba923b", + "sha256": "8f7aa27f9f4058dd097997d4adf41e97696246c470a7335a7ca3bf50ce17f6bb" + }, + "downloads": -1, + "filename": "clang_format-19.1.6-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "4d52828e84045fb29066aced4cba923b", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1441129, + "upload_time": "2025-01-03T13:45:06", + "upload_time_iso_8601": "2025-01-03T13:45:06.393887Z", + "url": "https://files.pythonhosted.org/packages/c4/03/d7f77d9b6dfc7b8cf9900e4403a106aa527d60659a0a0c3c6cabf97fb452/clang_format-19.1.6-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "4cbb5311547bb1e3079ac2cf18597b522dcd47cef90c3086531a393b3006ffe8", + "md5": "c3072f859b5fa7af3aec85a7b9f3c41b", + "sha256": "0819f5fb36a3b33994e364eb6fb5aaf920cc2f4f31ced31758566ae1f3bf0380" + }, + "downloads": -1, + "filename": "clang_format-19.1.6.tar.gz", + "has_sig": false, + "md5_digest": "c3072f859b5fa7af3aec85a7b9f3c41b", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 11121, + "upload_time": "2025-01-03T13:45:07", + "upload_time_iso_8601": "2025-01-03T13:45:07.805962Z", + "url": "https://files.pythonhosted.org/packages/4c/bb/5311547bb1e3079ac2cf18597b522dcd47cef90c3086531a393b3006ffe8/clang_format-19.1.6.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "19.1.7": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "5ac32f1c53bc298c1740d0c9f8dc2d9b7030be4826b6f2aa8a04f07ef25a3d9b", + "md5": "e3afa8bac4d4ae9aab7d2173b36789d7", + "sha256": "a09f34d2c89d176581858ff718c327eebc14eb6415c176dab4af5bfd8582a999" + }, + "downloads": -1, + "filename": "clang_format-19.1.7-py2.py3-none-macosx_10_9_x86_64.whl", + "has_sig": false, + "md5_digest": "e3afa8bac4d4ae9aab7d2173b36789d7", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1428184, + "upload_time": "2025-01-14T20:03:14", + "upload_time_iso_8601": "2025-01-14T20:03:14.003969Z", + "url": "https://files.pythonhosted.org/packages/5a/c3/2f1c53bc298c1740d0c9f8dc2d9b7030be4826b6f2aa8a04f07ef25a3d9b/clang_format-19.1.7-py2.py3-none-macosx_10_9_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "8e9d7c246a3d08105de305553d14971ed6c16cde06d20ab12d6ce7f243cf66f0", + "md5": "1ba730cd66eb90cb60aa153380fead39", + "sha256": "776f89c7b056c498c0e256485bc031cbf514aaebe71e929ed54e50c478524b65" + }, + "downloads": -1, + "filename": "clang_format-19.1.7-py2.py3-none-macosx_11_0_arm64.whl", + "has_sig": false, + "md5_digest": "1ba730cd66eb90cb60aa153380fead39", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1398224, + "upload_time": "2025-01-14T20:03:18", + "upload_time_iso_8601": "2025-01-14T20:03:18.068370Z", + "url": "https://files.pythonhosted.org/packages/8e/9d/7c246a3d08105de305553d14971ed6c16cde06d20ab12d6ce7f243cf66f0/clang_format-19.1.7-py2.py3-none-macosx_11_0_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "b17d002aa5571351ee7f00f87aae5104cdd30cad1a46f25936226f7d2aed06bf", + "md5": "cd76b947cf694b7ac6324413656e75fe", + "sha256": "dac394c83a9233ab6707f66e1cdbd950f8b014b58604142a5b6f7998bf0bcc8c" + }, + "downloads": -1, + "filename": "clang_format-19.1.7-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "cd76b947cf694b7ac6324413656e75fe", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1730962, + "upload_time": "2025-01-14T20:03:22", + "upload_time_iso_8601": "2025-01-14T20:03:22.020884Z", + "url": "https://files.pythonhosted.org/packages/b1/7d/002aa5571351ee7f00f87aae5104cdd30cad1a46f25936226f7d2aed06bf/clang_format-19.1.7-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "1cfe24b7c13af432e609d65dc32c47c61f0a6c3b80d78eb7b3df37daf0395c56", + "md5": "ba4d48c33765566369c88aec9b399828", + "sha256": "bbd4f94d929edf6d8d81e990dfaafc22bb10deaefcb2762150a136f281b01c00" + }, + "downloads": -1, + "filename": "clang_format-19.1.7-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "ba4d48c33765566369c88aec9b399828", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1908820, + "upload_time": "2025-01-14T20:03:24", + "upload_time_iso_8601": "2025-01-14T20:03:24.787275Z", + "url": "https://files.pythonhosted.org/packages/1c/fe/24b7c13af432e609d65dc32c47c61f0a6c3b80d78eb7b3df37daf0395c56/clang_format-19.1.7-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "7da886595ffd6ea0bf3a3013aad94e3d55be32ef987567781eddf4621e316d09", + "md5": "688bb8100fdc7372b8bea425eede1f9a", + "sha256": "bdcda63fffdbe2aac23b54d46408a6283ad16676a5230a95b3ed49eacd99129b" + }, + "downloads": -1, + "filename": "clang_format-19.1.7-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "688bb8100fdc7372b8bea425eede1f9a", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2622838, + "upload_time": "2025-01-14T20:03:28", + "upload_time_iso_8601": "2025-01-14T20:03:28.358889Z", + "url": "https://files.pythonhosted.org/packages/7d/a8/86595ffd6ea0bf3a3013aad94e3d55be32ef987567781eddf4621e316d09/clang_format-19.1.7-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "48d1731ebf78c5d5cc043c20b0755c89239350b8e75ac5d667b99689e8110bc7", + "md5": "eb1c7836c4268720f12eba31a5b2baec", + "sha256": "c13a5802da986b1400afbee97162c29f841890ab9e20a0be7ede18189219f5f1" + }, + "downloads": -1, + "filename": "clang_format-19.1.7-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "eb1c7836c4268720f12eba31a5b2baec", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1723352, + "upload_time": "2025-01-14T20:03:31", + "upload_time_iso_8601": "2025-01-14T20:03:31.435562Z", + "url": "https://files.pythonhosted.org/packages/48/d1/731ebf78c5d5cc043c20b0755c89239350b8e75ac5d667b99689e8110bc7/clang_format-19.1.7-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "3ce70e526915a3a4a23100cc721c24226a192fa0385d394019d06920dc83fe6c", + "md5": "bd88db7d97c0205bd67eb3eb13a09d67", + "sha256": "f4906fb463dd2033032978f56962caab268c9428a384126b9400543eb667f11c" + }, + "downloads": -1, + "filename": "clang_format-19.1.7-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "bd88db7d97c0205bd67eb3eb13a09d67", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1740347, + "upload_time": "2025-01-14T20:03:36", + "upload_time_iso_8601": "2025-01-14T20:03:36.389263Z", + "url": "https://files.pythonhosted.org/packages/3c/e7/0e526915a3a4a23100cc721c24226a192fa0385d394019d06920dc83fe6c/clang_format-19.1.7-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "5204ed8e2af6b3e29655a858b3aad145f3f0539df0dd1c77815b95f578260bd3", + "md5": "0dd8048cfb3f801bf980417647ed5d28", + "sha256": "ffca915c09aed9137f8c649ad7521bd5ce690c939121db1ba54af2ba63ac8374" + }, + "downloads": -1, + "filename": "clang_format-19.1.7-py2.py3-none-musllinux_1_2_aarch64.whl", + "has_sig": false, + "md5_digest": "0dd8048cfb3f801bf980417647ed5d28", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2675802, + "upload_time": "2025-01-14T20:03:39", + "upload_time_iso_8601": "2025-01-14T20:03:39.939562Z", + "url": "https://files.pythonhosted.org/packages/52/04/ed8e2af6b3e29655a858b3aad145f3f0539df0dd1c77815b95f578260bd3/clang_format-19.1.7-py2.py3-none-musllinux_1_2_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "9aab7874a6f45c167f4cc4d02f517b85d14b6b5fa8412f6e9c7482588d00fccb", + "md5": "953711a697c3f1f3221178af2bcd58f4", + "sha256": "fc011dc7bbe3ac8a32e0caa37ab8ba6c1639ceef6ecd04feea8d37360fc175e4" + }, + "downloads": -1, + "filename": "clang_format-19.1.7-py2.py3-none-musllinux_1_2_i686.whl", + "has_sig": false, + "md5_digest": "953711a697c3f1f3221178af2bcd58f4", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2977872, + "upload_time": "2025-01-14T20:03:43", + "upload_time_iso_8601": "2025-01-14T20:03:43.134271Z", + "url": "https://files.pythonhosted.org/packages/9a/ab/7874a6f45c167f4cc4d02f517b85d14b6b5fa8412f6e9c7482588d00fccb/clang_format-19.1.7-py2.py3-none-musllinux_1_2_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "46b5c87b6c46eb7e9d0f07e2bd56cd0a62bf7e679f146b4e1447110cfae4bd01", + "md5": "76b54fe241e3568bf641b2c75f4ed212", + "sha256": "afdfb11584f5a6f15127a7061673a7ea12a0393fe9ee8d2ed84e74bb191ffc3b" + }, + "downloads": -1, + "filename": "clang_format-19.1.7-py2.py3-none-musllinux_1_2_ppc64le.whl", + "has_sig": false, + "md5_digest": "76b54fe241e3568bf641b2c75f4ed212", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3125795, + "upload_time": "2025-01-14T20:03:45", + "upload_time_iso_8601": "2025-01-14T20:03:45.558436Z", + "url": "https://files.pythonhosted.org/packages/46/b5/c87b6c46eb7e9d0f07e2bd56cd0a62bf7e679f146b4e1447110cfae4bd01/clang_format-19.1.7-py2.py3-none-musllinux_1_2_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "223e7ea08aba446c1e838367d3c0e13eb3d2e482b23e099a25149d4f7f6b8c75", + "md5": "69b7b0bd7df31d84dc3bc05c97b0dfef", + "sha256": "6ce81d5b08e0169dc52037d3ff1802eafcaf86c281ceb8b38b8359ba7b6b7bdc" + }, + "downloads": -1, + "filename": "clang_format-19.1.7-py2.py3-none-musllinux_1_2_s390x.whl", + "has_sig": false, + "md5_digest": "69b7b0bd7df31d84dc3bc05c97b0dfef", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3069663, + "upload_time": "2025-01-14T20:03:48", + "upload_time_iso_8601": "2025-01-14T20:03:48.471275Z", + "url": "https://files.pythonhosted.org/packages/22/3e/7ea08aba446c1e838367d3c0e13eb3d2e482b23e099a25149d4f7f6b8c75/clang_format-19.1.7-py2.py3-none-musllinux_1_2_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "f5f96ce7fe8ff52ded01d02a568358f2ddf993347e44202b6506b039a583b7ed", + "md5": "0b9e028299f66e754ff4bee340906142", + "sha256": "d27ac1a5a8783c9271d41cd5851766ca547ea003efa4e3764f880f319b2d3ed3" + }, + "downloads": -1, + "filename": "clang_format-19.1.7-py2.py3-none-musllinux_1_2_x86_64.whl", + "has_sig": false, + "md5_digest": "0b9e028299f66e754ff4bee340906142", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2763172, + "upload_time": "2025-01-14T20:03:50", + "upload_time_iso_8601": "2025-01-14T20:03:50.258946Z", + "url": "https://files.pythonhosted.org/packages/f5/f9/6ce7fe8ff52ded01d02a568358f2ddf993347e44202b6506b039a583b7ed/clang_format-19.1.7-py2.py3-none-musllinux_1_2_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "82fa77fe5636bb6b6252918bf129226a248506af218a2256deece3a9d95af850", + "md5": "a41122e74e7dee6837ebeac223cfb3b9", + "sha256": "5dfde0be33f038114af89efb917144c2f766f8b7f3a3d3e4cb9c25f76d71ef81" + }, + "downloads": -1, + "filename": "clang_format-19.1.7-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "a41122e74e7dee6837ebeac223cfb3b9", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1243262, + "upload_time": "2025-01-14T20:03:52", + "upload_time_iso_8601": "2025-01-14T20:03:52.728986Z", + "url": "https://files.pythonhosted.org/packages/82/fa/77fe5636bb6b6252918bf129226a248506af218a2256deece3a9d95af850/clang_format-19.1.7-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "e4320b44f3582b9df0b8f90266ef43975e37ec8ad52bae4f85b71552f264d5a2", + "md5": "eadc064f38f471e7203ae6e9927ac8d5", + "sha256": "3e3c75fbdf8827bbb7277226b3057fc3785dabe7284d3a9d15fceb250f68f529" + }, + "downloads": -1, + "filename": "clang_format-19.1.7-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "eadc064f38f471e7203ae6e9927ac8d5", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1441132, + "upload_time": "2025-01-14T20:03:54", + "upload_time_iso_8601": "2025-01-14T20:03:54.770750Z", + "url": "https://files.pythonhosted.org/packages/e4/32/0b44f3582b9df0b8f90266ef43975e37ec8ad52bae4f85b71552f264d5a2/clang_format-19.1.7-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "8eee71d017fe603c06b83d6720df6b3f6f07f03abf330f39beee3fee2a067c56", + "md5": "d7ebfb979265a60d3a4cc3d28013e621", + "sha256": "bd6fc5272a41034a7844149203461d1f311bece9ed100d22eb3eebd952a25f49" + }, + "downloads": -1, + "filename": "clang_format-19.1.7.tar.gz", + "has_sig": false, + "md5_digest": "d7ebfb979265a60d3a4cc3d28013e621", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 11122, + "upload_time": "2025-01-14T20:03:56", + "upload_time_iso_8601": "2025-01-14T20:03:56.302084Z", + "url": "https://files.pythonhosted.org/packages/8e/ee/71d017fe603c06b83d6720df6b3f6f07f03abf330f39beee3fee2a067c56/clang_format-19.1.7.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "20.1.0": [ + { + "comment_text": null, + "digests": { + "blake2b_256": "fe8fc19cdf93429efb77b187604c8dbbd875c8d1d15317ff6f817fff924995c1", + "md5": "e66d43e76d1e86879d65164b9863a6f9", + "sha256": "1a023510c49a5c0bf9966263503b3af20f42ef6425d8f4a53141c41c58f84d25" + }, + "downloads": -1, + "filename": "clang_format-20.1.0-py2.py3-none-macosx_10_9_x86_64.whl", + "has_sig": false, + "md5_digest": "e66d43e76d1e86879d65164b9863a6f9", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1435838, + "upload_time": "2025-03-10T18:35:15", + "upload_time_iso_8601": "2025-03-10T18:35:15.854071Z", + "url": "https://files.pythonhosted.org/packages/fe/8f/c19cdf93429efb77b187604c8dbbd875c8d1d15317ff6f817fff924995c1/clang_format-20.1.0-py2.py3-none-macosx_10_9_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "6e5bc42ee06502d7d31a70257a6695695bcba0cb1554244009356bb38612e97c", + "md5": "a1c4eb51b22ccb069bcdd9c0fa855ab1", + "sha256": "82b2a19e5b345fcf7d6bf478b5d48e242eb84d47ae04cb54ae0561464f812bcd" + }, + "downloads": -1, + "filename": "clang_format-20.1.0-py2.py3-none-macosx_11_0_arm64.whl", + "has_sig": false, + "md5_digest": "a1c4eb51b22ccb069bcdd9c0fa855ab1", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1410078, + "upload_time": "2025-03-10T18:35:18", + "upload_time_iso_8601": "2025-03-10T18:35:18.000935Z", + "url": "https://files.pythonhosted.org/packages/6e/5b/c42ee06502d7d31a70257a6695695bcba0cb1554244009356bb38612e97c/clang_format-20.1.0-py2.py3-none-macosx_11_0_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "c2489655affbd8e26e6aaa37525cbf5c7f5db654a6948fd036a2358173a6410b", + "md5": "18f31832afd224362a9104e475217567", + "sha256": "e1cd4a018ea15a5f675158ab1468d4a2e827f8266fa56773916a5f294a32c51d" + }, + "downloads": -1, + "filename": "clang_format-20.1.0-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "18f31832afd224362a9104e475217567", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1793541, + "upload_time": "2025-03-10T18:35:19", + "upload_time_iso_8601": "2025-03-10T18:35:19.940316Z", + "url": "https://files.pythonhosted.org/packages/c2/48/9655affbd8e26e6aaa37525cbf5c7f5db654a6948fd036a2358173a6410b/clang_format-20.1.0-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "e8d6103d6afefd49e334c1ed26f9aa8d5a5a9ed6ff02c113aa77452f3572763b", + "md5": "ea716484aaf9e475f6616e0324c8041c", + "sha256": "c20b5be0d9347b5b3a2c4af67e3e9d7a7254a8a9fa7f17628639e2c0a3fea8e9" + }, + "downloads": -1, + "filename": "clang_format-20.1.0-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "ea716484aaf9e475f6616e0324c8041c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1967854, + "upload_time": "2025-03-10T18:35:21", + "upload_time_iso_8601": "2025-03-10T18:35:21.600155Z", + "url": "https://files.pythonhosted.org/packages/e8/d6/103d6afefd49e334c1ed26f9aa8d5a5a9ed6ff02c113aa77452f3572763b/clang_format-20.1.0-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "215299d2d97dbd86ee521473fd6a4ac244fc517878779ed8dde20a4fddbf3a7c", + "md5": "7b0ddd773a148baac71828f832ac890e", + "sha256": "48369361bf8bef60ca3aeee51c8d55821bb62228489c1a1155703a2634598df6" + }, + "downloads": -1, + "filename": "clang_format-20.1.0-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "7b0ddd773a148baac71828f832ac890e", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2724153, + "upload_time": "2025-03-10T18:35:23", + "upload_time_iso_8601": "2025-03-10T18:35:23.205736Z", + "url": "https://files.pythonhosted.org/packages/21/52/99d2d97dbd86ee521473fd6a4ac244fc517878779ed8dde20a4fddbf3a7c/clang_format-20.1.0-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "7c471c2b2b4c2cc4ab75968dbd183923d3218a0a3245760f4119fbcc96e74c5f", + "md5": "25cfd57d16ae50a0c413b355fc86f477", + "sha256": "934bc103f9cd3009ee7259ac54df08dbcef38d4c970c0171bc68517f67e4720f" + }, + "downloads": -1, + "filename": "clang_format-20.1.0-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "25cfd57d16ae50a0c413b355fc86f477", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1787699, + "upload_time": "2025-03-10T18:35:24", + "upload_time_iso_8601": "2025-03-10T18:35:24.642372Z", + "url": "https://files.pythonhosted.org/packages/7c/47/1c2b2b4c2cc4ab75968dbd183923d3218a0a3245760f4119fbcc96e74c5f/clang_format-20.1.0-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "68f58ce5f9574c6dceff35ae15405572e154239fb714fa38815830f16c45e75a", + "md5": "aa7747e62e7504d9a6d15a12f21a0c7c", + "sha256": "6d054c0a328926436262ba0e00b527059e14c7f65bf5bad5a8f82fbed680bd53" + }, + "downloads": -1, + "filename": "clang_format-20.1.0-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "aa7747e62e7504d9a6d15a12f21a0c7c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1800504, + "upload_time": "2025-03-10T18:35:26", + "upload_time_iso_8601": "2025-03-10T18:35:26.363540Z", + "url": "https://files.pythonhosted.org/packages/68/f5/8ce5f9574c6dceff35ae15405572e154239fb714fa38815830f16c45e75a/clang_format-20.1.0-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "ab8ff8cf2c7b82860e1ea6693d2c4013e0dabf3fbd436ce1156d6dd4016205b3", + "md5": "f4a40d34becd6e21497b1b0685af1dc2", + "sha256": "5e5d6bc8d2f54d8e8058b93627468c571ce971c541cd3ea7751cd6d711eb5a19" + }, + "downloads": -1, + "filename": "clang_format-20.1.0-py2.py3-none-musllinux_1_2_aarch64.whl", + "has_sig": false, + "md5_digest": "f4a40d34becd6e21497b1b0685af1dc2", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2774907, + "upload_time": "2025-03-10T18:35:27", + "upload_time_iso_8601": "2025-03-10T18:35:27.974440Z", + "url": "https://files.pythonhosted.org/packages/ab/8f/f8cf2c7b82860e1ea6693d2c4013e0dabf3fbd436ce1156d6dd4016205b3/clang_format-20.1.0-py2.py3-none-musllinux_1_2_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "383e0f92db9399282a1b638ec6d3e91d9fe8ac19d4e96b8177f11cf3ef447076", + "md5": "0cbaecab1db6fa8fe9a7857c87c24d7d", + "sha256": "5a2dbe11203275627cea3286f018b4eee36670607b76b467f067132c8eb999d0" + }, + "downloads": -1, + "filename": "clang_format-20.1.0-py2.py3-none-musllinux_1_2_i686.whl", + "has_sig": false, + "md5_digest": "0cbaecab1db6fa8fe9a7857c87c24d7d", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3100245, + "upload_time": "2025-03-10T18:35:29", + "upload_time_iso_8601": "2025-03-10T18:35:29.442261Z", + "url": "https://files.pythonhosted.org/packages/38/3e/0f92db9399282a1b638ec6d3e91d9fe8ac19d4e96b8177f11cf3ef447076/clang_format-20.1.0-py2.py3-none-musllinux_1_2_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "73493e616a7adcb112f840dcf0ee8d31e20524339bcf000859809e1acf9a5560", + "md5": "6497ca3dd5f6e207fc979284bf15be4f", + "sha256": "85599f9f2314d3a82c002362e1119d49726ef8dc2082497acfea2892e9a446f1" + }, + "downloads": -1, + "filename": "clang_format-20.1.0-py2.py3-none-musllinux_1_2_ppc64le.whl", + "has_sig": false, + "md5_digest": "6497ca3dd5f6e207fc979284bf15be4f", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3185237, + "upload_time": "2025-03-10T18:35:30", + "upload_time_iso_8601": "2025-03-10T18:35:30.909623Z", + "url": "https://files.pythonhosted.org/packages/73/49/3e616a7adcb112f840dcf0ee8d31e20524339bcf000859809e1acf9a5560/clang_format-20.1.0-py2.py3-none-musllinux_1_2_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "675f552bb52a65879633be2a8505d60959d2ed37d194b26442d206ba84eea0ca", + "md5": "abd666367ed2b529ed566dad5c3d0aed", + "sha256": "5413c54938d31673ae9c3043527ee4414e0b8980b89b8417bd9663bf18ab2010" + }, + "downloads": -1, + "filename": "clang_format-20.1.0-py2.py3-none-musllinux_1_2_s390x.whl", + "has_sig": false, + "md5_digest": "abd666367ed2b529ed566dad5c3d0aed", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3223919, + "upload_time": "2025-03-10T18:35:32", + "upload_time_iso_8601": "2025-03-10T18:35:32.940003Z", + "url": "https://files.pythonhosted.org/packages/67/5f/552bb52a65879633be2a8505d60959d2ed37d194b26442d206ba84eea0ca/clang_format-20.1.0-py2.py3-none-musllinux_1_2_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "b0646bb551309822eb3816bd8d21e9354708223299ebd793a98ff58489a8dd4d", + "md5": "8ba0759f815f242ed7bbc9ac2d0ec5ea", + "sha256": "ca6410aacd5e7b827f9025a52ac01344ed5df58bd27adbce0d1564ea331919ea" + }, + "downloads": -1, + "filename": "clang_format-20.1.0-py2.py3-none-musllinux_1_2_x86_64.whl", + "has_sig": false, + "md5_digest": "8ba0759f815f242ed7bbc9ac2d0ec5ea", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2881331, + "upload_time": "2025-03-10T18:35:34", + "upload_time_iso_8601": "2025-03-10T18:35:34.735948Z", + "url": "https://files.pythonhosted.org/packages/b0/64/6bb551309822eb3816bd8d21e9354708223299ebd793a98ff58489a8dd4d/clang_format-20.1.0-py2.py3-none-musllinux_1_2_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "7c46e3baa4bd5d4ec446dd4445c606e056db7268bc875acd99f3d5f1eb1bb55b", + "md5": "f575a114f6b6794356613f95568516a8", + "sha256": "700b32da1e03c485a53113b41693846e930c3066803e713064a1ff2797dbeba3" + }, + "downloads": -1, + "filename": "clang_format-20.1.0-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "f575a114f6b6794356613f95568516a8", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1258537, + "upload_time": "2025-03-10T18:35:36", + "upload_time_iso_8601": "2025-03-10T18:35:36.077223Z", + "url": "https://files.pythonhosted.org/packages/7c/46/e3baa4bd5d4ec446dd4445c606e056db7268bc875acd99f3d5f1eb1bb55b/clang_format-20.1.0-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "0faae4d6630dd39bd26a08d2509bd14736ba2981017b5e46eca6f51c79adb6e4", + "md5": "deedecc061ebeab6c9449d2b840223ad", + "sha256": "ade5b45e2faadddbf3fabe93b65d04567ded59fb483708a8417bacc4a96d5bc3" + }, + "downloads": -1, + "filename": "clang_format-20.1.0-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "deedecc061ebeab6c9449d2b840223ad", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1442930, + "upload_time": "2025-03-10T18:35:37", + "upload_time_iso_8601": "2025-03-10T18:35:37.414989Z", + "url": "https://files.pythonhosted.org/packages/0f/aa/e4d6630dd39bd26a08d2509bd14736ba2981017b5e46eca6f51c79adb6e4/clang_format-20.1.0-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "b8c24892f276102d73df28d71ec42fdfc289feff5677d788230300452f5a728e", + "md5": "a4a3287f275332992eadaf1ca4c44088", + "sha256": "dc4b094b4cd1824342b1f6f78f41d2c7f336df89e785b506fcd098d1d3f02d82" + }, + "downloads": -1, + "filename": "clang_format-20.1.0.tar.gz", + "has_sig": false, + "md5_digest": "a4a3287f275332992eadaf1ca4c44088", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 11226, + "upload_time": "2025-03-10T18:35:39", + "upload_time_iso_8601": "2025-03-10T18:35:39.256928Z", + "url": "https://files.pythonhosted.org/packages/b8/c2/4892f276102d73df28d71ec42fdfc289feff5677d788230300452f5a728e/clang_format-20.1.0.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "20.1.3": [ + { + "comment_text": null, + "digests": { + "blake2b_256": "595711efc2f350454f421a9e9cbdce6046c7a12f2fa3537e946b03bdc2871dc0", + "md5": "ee39f13f100fcbfde2b50384d03ea49d", + "sha256": "1380f866e4ca1dd92167d9fb7f7847fdf2b11a6f435811da15ee5e04853aaf1b" + }, + "downloads": -1, + "filename": "clang_format-20.1.3-py2.py3-none-macosx_10_9_x86_64.whl", + "has_sig": false, + "md5_digest": "ee39f13f100fcbfde2b50384d03ea49d", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1436122, + "upload_time": "2025-04-28T13:35:13", + "upload_time_iso_8601": "2025-04-28T13:35:13.180357Z", + "url": "https://files.pythonhosted.org/packages/59/57/11efc2f350454f421a9e9cbdce6046c7a12f2fa3537e946b03bdc2871dc0/clang_format-20.1.3-py2.py3-none-macosx_10_9_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "a8ab4311f99f6cb3cb88146f08b63224d1fa7963206b5b4f4582e662518e4bd3", + "md5": "2f8ce98ec60a036c48cce33d9dfd0123", + "sha256": "e6440f53333a42c46ea3f78cbf2f19ccec2d40f4233ee7ca027d3b6a75e81558" + }, + "downloads": -1, + "filename": "clang_format-20.1.3-py2.py3-none-macosx_11_0_arm64.whl", + "has_sig": false, + "md5_digest": "2f8ce98ec60a036c48cce33d9dfd0123", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1410102, + "upload_time": "2025-04-28T13:35:15", + "upload_time_iso_8601": "2025-04-28T13:35:15.587865Z", + "url": "https://files.pythonhosted.org/packages/a8/ab/4311f99f6cb3cb88146f08b63224d1fa7963206b5b4f4582e662518e4bd3/clang_format-20.1.3-py2.py3-none-macosx_11_0_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "0ac3244e279da51c9622c548641c9e398fa58f0b414cfb4e1ef2ddd7034061b7", + "md5": "bc9af4c28617e5c35eee47d8c5dee8e5", + "sha256": "f5aff27ada318fa5204a5f916779b53c44c12a41e2de42ec0b2bc336865fddb2" + }, + "downloads": -1, + "filename": "clang_format-20.1.3-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "bc9af4c28617e5c35eee47d8c5dee8e5", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1793492, + "upload_time": "2025-04-28T13:35:17", + "upload_time_iso_8601": "2025-04-28T13:35:17.551469Z", + "url": "https://files.pythonhosted.org/packages/0a/c3/244e279da51c9622c548641c9e398fa58f0b414cfb4e1ef2ddd7034061b7/clang_format-20.1.3-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "e6931dfc36705e611fb78eff5843f612459490a1f185cc46d961eceb39841c67", + "md5": "c905beb768868d3b2f1e7b51f4974511", + "sha256": "40272f1ba17c430ac8f6ffc4e6bf4a57e859ce655438afea677faf962da20de0" + }, + "downloads": -1, + "filename": "clang_format-20.1.3-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "c905beb768868d3b2f1e7b51f4974511", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1968079, + "upload_time": "2025-04-28T13:35:18", + "upload_time_iso_8601": "2025-04-28T13:35:18.989542Z", + "url": "https://files.pythonhosted.org/packages/e6/93/1dfc36705e611fb78eff5843f612459490a1f185cc46d961eceb39841c67/clang_format-20.1.3-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "c7332bf9c32f405b9393a3f99f027d3e6ba4e0a98b8a17dd09ff049f6dfbbeac", + "md5": "693e48d0cc781073e97e3cd67d0671d8", + "sha256": "622cf026ce331c33b267f05edea027cee3b6ca96028ea695c8c73708d99e9918" + }, + "downloads": -1, + "filename": "clang_format-20.1.3-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "693e48d0cc781073e97e3cd67d0671d8", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2724419, + "upload_time": "2025-04-28T13:35:20", + "upload_time_iso_8601": "2025-04-28T13:35:20.401133Z", + "url": "https://files.pythonhosted.org/packages/c7/33/2bf9c32f405b9393a3f99f027d3e6ba4e0a98b8a17dd09ff049f6dfbbeac/clang_format-20.1.3-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "3dcf3b84d415c570e4d5c3120f83de3832b8698a0cc765384d1da5161bfd5d58", + "md5": "24b81277229925c2de4240b16dadb36b", + "sha256": "789944ef03de0b97bd5f621d3f05d3cf8a0a2a77cc937ed5bc334184fa223fc8" + }, + "downloads": -1, + "filename": "clang_format-20.1.3-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "24b81277229925c2de4240b16dadb36b", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1788249, + "upload_time": "2025-04-28T13:35:21", + "upload_time_iso_8601": "2025-04-28T13:35:21.830501Z", + "url": "https://files.pythonhosted.org/packages/3d/cf/3b84d415c570e4d5c3120f83de3832b8698a0cc765384d1da5161bfd5d58/clang_format-20.1.3-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "d3e270887cb55ef738be4e7431d2f0280e305953e6a1406e52548b7b9d1dd0ba", + "md5": "d492ec86611c2062532258a48aea87ea", + "sha256": "de902d607f54ce2047f45afae29d2ecefe2138b73558f619d2758a619bac75c2" + }, + "downloads": -1, + "filename": "clang_format-20.1.3-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "d492ec86611c2062532258a48aea87ea", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1800488, + "upload_time": "2025-04-28T13:35:23", + "upload_time_iso_8601": "2025-04-28T13:35:23.244733Z", + "url": "https://files.pythonhosted.org/packages/d3/e2/70887cb55ef738be4e7431d2f0280e305953e6a1406e52548b7b9d1dd0ba/clang_format-20.1.3-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "70aecae4b5678970035f27a3594c43a22f3a434dafff9460c29d4c00e0582269", + "md5": "a4076d5978c8e0108f70f0e3ec4eed51", + "sha256": "2ff61a21394124e11b51d8ac7b3cda7a19643a2b45c0b20381dc6757d3764e46" + }, + "downloads": -1, + "filename": "clang_format-20.1.3-py2.py3-none-musllinux_1_2_aarch64.whl", + "has_sig": false, + "md5_digest": "a4076d5978c8e0108f70f0e3ec4eed51", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2775071, + "upload_time": "2025-04-28T13:35:24", + "upload_time_iso_8601": "2025-04-28T13:35:24.735443Z", + "url": "https://files.pythonhosted.org/packages/70/ae/cae4b5678970035f27a3594c43a22f3a434dafff9460c29d4c00e0582269/clang_format-20.1.3-py2.py3-none-musllinux_1_2_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "6e9c617c1d951189f4c16aa5129f5f4642c15c14ef04047883096dd88e29237b", + "md5": "26b39e8a4fa3daa3db701f1bc3e662d9", + "sha256": "f9edfd36ffb9566e24c35b0783a98275dbcd70ec73efaf51fe9ea22df1b11587" + }, + "downloads": -1, + "filename": "clang_format-20.1.3-py2.py3-none-musllinux_1_2_i686.whl", + "has_sig": false, + "md5_digest": "26b39e8a4fa3daa3db701f1bc3e662d9", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3100386, + "upload_time": "2025-04-28T13:35:27", + "upload_time_iso_8601": "2025-04-28T13:35:27.171001Z", + "url": "https://files.pythonhosted.org/packages/6e/9c/617c1d951189f4c16aa5129f5f4642c15c14ef04047883096dd88e29237b/clang_format-20.1.3-py2.py3-none-musllinux_1_2_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "863ff316c56914692947c2874533d71277bb403274be7b4430b230944fc75dd6", + "md5": "99dc174f6794ee583a046e84f0b2c671", + "sha256": "67c182d447d351423a0b80de446a459f9833ba234e32a3fb4a93e04d995468d2" + }, + "downloads": -1, + "filename": "clang_format-20.1.3-py2.py3-none-musllinux_1_2_ppc64le.whl", + "has_sig": false, + "md5_digest": "99dc174f6794ee583a046e84f0b2c671", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3186173, + "upload_time": "2025-04-28T13:35:28", + "upload_time_iso_8601": "2025-04-28T13:35:28.747571Z", + "url": "https://files.pythonhosted.org/packages/86/3f/f316c56914692947c2874533d71277bb403274be7b4430b230944fc75dd6/clang_format-20.1.3-py2.py3-none-musllinux_1_2_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "33fb01b500cd177f6cc3ce0176b049afc3ac17fc1a47b3ef1c214fb4ca2714bb", + "md5": "63f55a72df87920613aa59ca38ec6341", + "sha256": "6491d9dd9eb5e92e4a0554d5f7200d93d27e0e6bf440d780a7d525d7c6991ec3" + }, + "downloads": -1, + "filename": "clang_format-20.1.3-py2.py3-none-musllinux_1_2_s390x.whl", + "has_sig": false, + "md5_digest": "63f55a72df87920613aa59ca38ec6341", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3224130, + "upload_time": "2025-04-28T13:35:30", + "upload_time_iso_8601": "2025-04-28T13:35:30.553457Z", + "url": "https://files.pythonhosted.org/packages/33/fb/01b500cd177f6cc3ce0176b049afc3ac17fc1a47b3ef1c214fb4ca2714bb/clang_format-20.1.3-py2.py3-none-musllinux_1_2_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "7596f502059ac94e38fa21d67b2ea4063671d8a9f041f88e145d4db63066822c", + "md5": "dea716007333c6f7188ee47399f612b5", + "sha256": "98d508344b830783e8d2dac76f63fbc3c21b7f299fa83715e7f71702479d0bda" + }, + "downloads": -1, + "filename": "clang_format-20.1.3-py2.py3-none-musllinux_1_2_x86_64.whl", + "has_sig": false, + "md5_digest": "dea716007333c6f7188ee47399f612b5", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2881596, + "upload_time": "2025-04-28T13:35:31", + "upload_time_iso_8601": "2025-04-28T13:35:31.972959Z", + "url": "https://files.pythonhosted.org/packages/75/96/f502059ac94e38fa21d67b2ea4063671d8a9f041f88e145d4db63066822c/clang_format-20.1.3-py2.py3-none-musllinux_1_2_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "1f4d8a49531b8cf6e006943e573390b142ed2914ac107da38c9f3df522974edf", + "md5": "6abfadaeb7ebabf7ae9faa23eb38cb50", + "sha256": "8ab1c0fe45e6baa34910cc9195160a2854ac71ae40d6f83ae5b4dc467969d1ab" + }, + "downloads": -1, + "filename": "clang_format-20.1.3-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "6abfadaeb7ebabf7ae9faa23eb38cb50", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1258802, + "upload_time": "2025-04-28T13:35:33", + "upload_time_iso_8601": "2025-04-28T13:35:33.432046Z", + "url": "https://files.pythonhosted.org/packages/1f/4d/8a49531b8cf6e006943e573390b142ed2914ac107da38c9f3df522974edf/clang_format-20.1.3-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "08e00bd989900eadb896520442f80d6af1a67bbc5fd0ace965a425c979c3943d", + "md5": "8dd16bdad39e4f7712effada36c94788", + "sha256": "2584cac1070c058432c6374bac0099464e8c2f5e61bbe51cd8ad58c883e0911f" + }, + "downloads": -1, + "filename": "clang_format-20.1.3-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "8dd16bdad39e4f7712effada36c94788", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1443493, + "upload_time": "2025-04-28T13:35:35", + "upload_time_iso_8601": "2025-04-28T13:35:35.213080Z", + "url": "https://files.pythonhosted.org/packages/08/e0/0bd989900eadb896520442f80d6af1a67bbc5fd0ace965a425c979c3943d/clang_format-20.1.3-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "0cf3c6641b19aad867eff10add438e1a8f4fd2f801a6a641daed865173cc0794", + "md5": "3db2e02f9e67d5f4b533039f6be88296", + "sha256": "3ec909edce6d9ef1f6f0f78b0ef75519a88e9678c4ea3758d39b08c3acfabd1b" + }, + "downloads": -1, + "filename": "clang_format-20.1.3.tar.gz", + "has_sig": false, + "md5_digest": "3db2e02f9e67d5f4b533039f6be88296", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 11225, + "upload_time": "2025-04-28T13:35:36", + "upload_time_iso_8601": "2025-04-28T13:35:36.964120Z", + "url": "https://files.pythonhosted.org/packages/0c/f3/c6641b19aad867eff10add438e1a8f4fd2f801a6a641daed865173cc0794/clang_format-20.1.3.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "20.1.4": [ + { + "comment_text": null, + "digests": { + "blake2b_256": "006628a279ee685f04683dbca3d5b731eb38cb1df699e4a80a083c59325ae5fe", + "md5": "1d316edec0a61d7c7916cf1333ad3731", + "sha256": "30d8f8d56adc04a9cefa84e1d0883514cdff4a3d7acb123141ce4b3a5108a2bb" + }, + "downloads": -1, + "filename": "clang_format-20.1.4-py2.py3-none-macosx_10_9_x86_64.whl", + "has_sig": false, + "md5_digest": "1d316edec0a61d7c7916cf1333ad3731", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1436170, + "upload_time": "2025-05-07T11:23:38", + "upload_time_iso_8601": "2025-05-07T11:23:38.047888Z", + "url": "https://files.pythonhosted.org/packages/00/66/28a279ee685f04683dbca3d5b731eb38cb1df699e4a80a083c59325ae5fe/clang_format-20.1.4-py2.py3-none-macosx_10_9_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "67d30ab81a89206d51077ce890e95253d97753be776ca1077c6c5a7c783a5ba0", + "md5": "e155bd7a669d8e9fd8288f1891285f76", + "sha256": "16d579183117b5c67e353aad8981d6b7cff5d150f183e53e7a388aae0fed6986" + }, + "downloads": -1, + "filename": "clang_format-20.1.4-py2.py3-none-macosx_11_0_arm64.whl", + "has_sig": false, + "md5_digest": "e155bd7a669d8e9fd8288f1891285f76", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1410093, + "upload_time": "2025-05-07T11:23:40", + "upload_time_iso_8601": "2025-05-07T11:23:40.234051Z", + "url": "https://files.pythonhosted.org/packages/67/d3/0ab81a89206d51077ce890e95253d97753be776ca1077c6c5a7c783a5ba0/clang_format-20.1.4-py2.py3-none-macosx_11_0_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "e639a899fc5964e51047936ec9bca8b3dee25d9a50e5826926297331368fef51", + "md5": "3f3e0f6a1b9c492bf319f63c8c7b1011", + "sha256": "ec00d2d2ac5150a54ec6cd53dfd9d4210414e0fd92c069f75b09b7d8655007cd" + }, + "downloads": -1, + "filename": "clang_format-20.1.4-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "3f3e0f6a1b9c492bf319f63c8c7b1011", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1793684, + "upload_time": "2025-05-07T11:23:41", + "upload_time_iso_8601": "2025-05-07T11:23:41.719923Z", + "url": "https://files.pythonhosted.org/packages/e6/39/a899fc5964e51047936ec9bca8b3dee25d9a50e5826926297331368fef51/clang_format-20.1.4-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "c201262b811ae3e2fc3c4b66f4e1d3e3f3399efc328f45a9e3755767e94e8243", + "md5": "940137e351f6467977203c4879ab234f", + "sha256": "f0cb3384ae2a6bbdda7bcf381f4e677b8ff854f4991292ac54b50a88542a2edb" + }, + "downloads": -1, + "filename": "clang_format-20.1.4-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "940137e351f6467977203c4879ab234f", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1968017, + "upload_time": "2025-05-07T11:23:43", + "upload_time_iso_8601": "2025-05-07T11:23:43.394037Z", + "url": "https://files.pythonhosted.org/packages/c2/01/262b811ae3e2fc3c4b66f4e1d3e3f3399efc328f45a9e3755767e94e8243/clang_format-20.1.4-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "a0f7299cee6a94943f05404dfafad7feaee7936b93cf91646f5b2f4461c98f21", + "md5": "184fad93f50ac18d79e42223af619250", + "sha256": "47221a8cdee0197df320a2e801bc4b6991d91401f85783248b54975cd4d13f21" + }, + "downloads": -1, + "filename": "clang_format-20.1.4-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "184fad93f50ac18d79e42223af619250", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2724285, + "upload_time": "2025-05-07T11:23:44", + "upload_time_iso_8601": "2025-05-07T11:23:44.987938Z", + "url": "https://files.pythonhosted.org/packages/a0/f7/299cee6a94943f05404dfafad7feaee7936b93cf91646f5b2f4461c98f21/clang_format-20.1.4-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "5d2191fce83ddc210b920b62412ce8ecd8cc41fa6f6ee6a0e241a3a6e390f744", + "md5": "fa1ba7dd61c52a3605d6ce2ad30aab20", + "sha256": "4bd766c8b73c742972d91f672188a9b00c93eb84d48e7415806e8ba1b2793c8d" + }, + "downloads": -1, + "filename": "clang_format-20.1.4-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "fa1ba7dd61c52a3605d6ce2ad30aab20", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1788254, + "upload_time": "2025-05-07T11:23:46", + "upload_time_iso_8601": "2025-05-07T11:23:46.556935Z", + "url": "https://files.pythonhosted.org/packages/5d/21/91fce83ddc210b920b62412ce8ecd8cc41fa6f6ee6a0e241a3a6e390f744/clang_format-20.1.4-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "b395e5011f1d6566a78570f7fbeece871edb75bf29bdf212729f2cada226c9ff", + "md5": "d253ea6712b0f655fc7758eb019231d3", + "sha256": "29e4391cd0a4721178d45fb41404b79b8e39119eedfa574915d7568eb6ea5658" + }, + "downloads": -1, + "filename": "clang_format-20.1.4-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "d253ea6712b0f655fc7758eb019231d3", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1800519, + "upload_time": "2025-05-07T11:23:48", + "upload_time_iso_8601": "2025-05-07T11:23:48.072930Z", + "url": "https://files.pythonhosted.org/packages/b3/95/e5011f1d6566a78570f7fbeece871edb75bf29bdf212729f2cada226c9ff/clang_format-20.1.4-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "86e46fd704d9169d065796e847b579f2ec350aac15ed618bde2664981c8f4e9d", + "md5": "ec3af8c389a7c807ca4e83edac05f669", + "sha256": "11cc2e994159fdc82f241ca63917f6c8c42b5495763d065a75b678456ded209a" + }, + "downloads": -1, + "filename": "clang_format-20.1.4-py2.py3-none-musllinux_1_2_aarch64.whl", + "has_sig": false, + "md5_digest": "ec3af8c389a7c807ca4e83edac05f669", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2775005, + "upload_time": "2025-05-07T11:23:49", + "upload_time_iso_8601": "2025-05-07T11:23:49.574730Z", + "url": "https://files.pythonhosted.org/packages/86/e4/6fd704d9169d065796e847b579f2ec350aac15ed618bde2664981c8f4e9d/clang_format-20.1.4-py2.py3-none-musllinux_1_2_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "472543cf230a94af0fc8daf74f856754d2280b0cebd508ca6a31f2e672ee8da2", + "md5": "1d7ae1f6aa64466bf6f7ac4ad8f535b0", + "sha256": "747e55cc574ae63cef4d1b81e53f2e6702b13c70a224164fa56c367f1acf9db4" + }, + "downloads": -1, + "filename": "clang_format-20.1.4-py2.py3-none-musllinux_1_2_i686.whl", + "has_sig": false, + "md5_digest": "1d7ae1f6aa64466bf6f7ac4ad8f535b0", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3100414, + "upload_time": "2025-05-07T11:23:51", + "upload_time_iso_8601": "2025-05-07T11:23:51.196141Z", + "url": "https://files.pythonhosted.org/packages/47/25/43cf230a94af0fc8daf74f856754d2280b0cebd508ca6a31f2e672ee8da2/clang_format-20.1.4-py2.py3-none-musllinux_1_2_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "848f1890ab2037d0624c218917d2417f190c6e88c7b9c90eac082573a92bb4d8", + "md5": "6a276b181204feac21db65ba1cb707dc", + "sha256": "f4b6cd9c948787aaa2b9204099fb9a018726b68959271f33761caa8bcb7d8062" + }, + "downloads": -1, + "filename": "clang_format-20.1.4-py2.py3-none-musllinux_1_2_ppc64le.whl", + "has_sig": false, + "md5_digest": "6a276b181204feac21db65ba1cb707dc", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3186247, + "upload_time": "2025-05-07T11:23:53", + "upload_time_iso_8601": "2025-05-07T11:23:53.144104Z", + "url": "https://files.pythonhosted.org/packages/84/8f/1890ab2037d0624c218917d2417f190c6e88c7b9c90eac082573a92bb4d8/clang_format-20.1.4-py2.py3-none-musllinux_1_2_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "2d2041cd412334fb8ab821a85a89cb779c7eb3cfa0b6d3d64d6797edafb5c0f2", + "md5": "70cc74e21ec61ac248c5d63856e4c0e3", + "sha256": "b76a43a8a348cc8f315e9369fcdb5627e6d4c4dfcb8d5452667bac0adcf10b0f" + }, + "downloads": -1, + "filename": "clang_format-20.1.4-py2.py3-none-musllinux_1_2_s390x.whl", + "has_sig": false, + "md5_digest": "70cc74e21ec61ac248c5d63856e4c0e3", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3223867, + "upload_time": "2025-05-07T11:23:54", + "upload_time_iso_8601": "2025-05-07T11:23:54.808417Z", + "url": "https://files.pythonhosted.org/packages/2d/20/41cd412334fb8ab821a85a89cb779c7eb3cfa0b6d3d64d6797edafb5c0f2/clang_format-20.1.4-py2.py3-none-musllinux_1_2_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "ed232902cf717dd3972ce8947d2328a87a009eaa98dd70321b354458d5289038", + "md5": "036c86e75fadee29fd1d8c1dbe55db2f", + "sha256": "29e807be03fb84d7a61c305a356888c17af69a124b25fe0d3795b207447fc629" + }, + "downloads": -1, + "filename": "clang_format-20.1.4-py2.py3-none-musllinux_1_2_x86_64.whl", + "has_sig": false, + "md5_digest": "036c86e75fadee29fd1d8c1dbe55db2f", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2881639, + "upload_time": "2025-05-07T11:23:56", + "upload_time_iso_8601": "2025-05-07T11:23:56.726506Z", + "url": "https://files.pythonhosted.org/packages/ed/23/2902cf717dd3972ce8947d2328a87a009eaa98dd70321b354458d5289038/clang_format-20.1.4-py2.py3-none-musllinux_1_2_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "ee9e4f96dd2fe8de44e997991ca5f9a689c3209c3baab6270359152ba8e4548b", + "md5": "c04a6cd44ee06a3fc64e443fd9255bc8", + "sha256": "808abb39b6ba72ace47d426b0c945a6915d69c6e71550d913e502960b821b968" + }, + "downloads": -1, + "filename": "clang_format-20.1.4-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "c04a6cd44ee06a3fc64e443fd9255bc8", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1258812, + "upload_time": "2025-05-07T11:23:58", + "upload_time_iso_8601": "2025-05-07T11:23:58.285844Z", + "url": "https://files.pythonhosted.org/packages/ee/9e/4f96dd2fe8de44e997991ca5f9a689c3209c3baab6270359152ba8e4548b/clang_format-20.1.4-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "401b7c924d5c5855ce848476c8520bcb1631c6ed869e1df9030d615b460f7f26", + "md5": "b095717a4691cbdf914829e8973df6e3", + "sha256": "57a148289b31d8e9751c73e38de8a175d8d50ff4dd072491fab7207be952ba17" + }, + "downloads": -1, + "filename": "clang_format-20.1.4-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "b095717a4691cbdf914829e8973df6e3", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1443580, + "upload_time": "2025-05-07T11:24:00", + "upload_time_iso_8601": "2025-05-07T11:24:00.201071Z", + "url": "https://files.pythonhosted.org/packages/40/1b/7c924d5c5855ce848476c8520bcb1631c6ed869e1df9030d615b460f7f26/clang_format-20.1.4-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "6f55b0c66a826ed8a16ea09f5ca5bad270a0d3bbf8dff1bbdadbe264b898b1ed", + "md5": "79732a14e22d48004921200edf6b0a34", + "sha256": "236759b490bf82283a5a5725035384d776f5d23832af6f077508129c20117853" + }, + "downloads": -1, + "filename": "clang_format-20.1.4-py2.py3-none-win_arm64.whl", + "has_sig": false, + "md5_digest": "79732a14e22d48004921200edf6b0a34", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1319182, + "upload_time": "2025-05-07T11:24:02", + "upload_time_iso_8601": "2025-05-07T11:24:02.225948Z", + "url": "https://files.pythonhosted.org/packages/6f/55/b0c66a826ed8a16ea09f5ca5bad270a0d3bbf8dff1bbdadbe264b898b1ed/clang_format-20.1.4-py2.py3-none-win_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "6721b2e572e8032aa19434a5ebe7c337bc9bb6a1a115dac2b958e69f834644fb", + "md5": "f4155ec34fd57950cfbf3e516f2e7652", + "sha256": "4fb181078b1c3bc46657b98086cbc691dbe4f211dbce552cb296d02b791d8943" + }, + "downloads": -1, + "filename": "clang_format-20.1.4.tar.gz", + "has_sig": false, + "md5_digest": "f4155ec34fd57950cfbf3e516f2e7652", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 11337, + "upload_time": "2025-05-07T11:24:03", + "upload_time_iso_8601": "2025-05-07T11:24:03.935971Z", + "url": "https://files.pythonhosted.org/packages/67/21/b2e572e8032aa19434a5ebe7c337bc9bb6a1a115dac2b958e69f834644fb/clang_format-20.1.4.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "20.1.5": [ + { + "comment_text": null, + "digests": { + "blake2b_256": "70339285ac075b1943d2df60814cb850f9a156fd6bea617213c03432058c6abe", + "md5": "df295c3116e0d054c1b20f1cdf87f1e7", + "sha256": "ee886b41fd7a671a38d207af05006a187b7fc0f5e2463d66fce8c8b4f4cd30c7" + }, + "downloads": -1, + "filename": "clang_format-20.1.5-py2.py3-none-macosx_10_9_x86_64.whl", + "has_sig": false, + "md5_digest": "df295c3116e0d054c1b20f1cdf87f1e7", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1436195, + "upload_time": "2025-05-21T17:34:31", + "upload_time_iso_8601": "2025-05-21T17:34:31.658743Z", + "url": "https://files.pythonhosted.org/packages/70/33/9285ac075b1943d2df60814cb850f9a156fd6bea617213c03432058c6abe/clang_format-20.1.5-py2.py3-none-macosx_10_9_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "5b63d9c7df116848ad96ccc913691d26ad88baae1a378a9fb21464807a9b5050", + "md5": "052039c4490fb5610af8b7a3e689cf63", + "sha256": "cffbcc410ef535a60ab918699ac38d22fa231059cba2bc6c1226a5de69af2c38" + }, + "downloads": -1, + "filename": "clang_format-20.1.5-py2.py3-none-macosx_11_0_arm64.whl", + "has_sig": false, + "md5_digest": "052039c4490fb5610af8b7a3e689cf63", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1410105, + "upload_time": "2025-05-21T17:34:33", + "upload_time_iso_8601": "2025-05-21T17:34:33.711464Z", + "url": "https://files.pythonhosted.org/packages/5b/63/d9c7df116848ad96ccc913691d26ad88baae1a378a9fb21464807a9b5050/clang_format-20.1.5-py2.py3-none-macosx_11_0_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "b712b84f1649b83a31b9bba4368534cb6aad119dd3e8a57ef56b2ee70ae201dd", + "md5": "68178fa38119e06ef172af89efa84988", + "sha256": "8e0b8e8bdf513f8ac27b82ec940440d836177836d5bc30d1002632e7f4308aab" + }, + "downloads": -1, + "filename": "clang_format-20.1.5-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "68178fa38119e06ef172af89efa84988", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1793677, + "upload_time": "2025-05-21T17:34:36", + "upload_time_iso_8601": "2025-05-21T17:34:36.435264Z", + "url": "https://files.pythonhosted.org/packages/b7/12/b84f1649b83a31b9bba4368534cb6aad119dd3e8a57ef56b2ee70ae201dd/clang_format-20.1.5-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "bbc52652e9f4433d5e60df41092f8068ae983636295a3d6ede035898f02dbd8f", + "md5": "b55143827275dc5fb10db932e84d8cb8", + "sha256": "9f82d954ed96cb01a5b6fdcbd87339837b2a310ce65dcd89c88821b6207b6e00" + }, + "downloads": -1, + "filename": "clang_format-20.1.5-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "b55143827275dc5fb10db932e84d8cb8", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1968081, + "upload_time": "2025-05-21T17:34:38", + "upload_time_iso_8601": "2025-05-21T17:34:38.855167Z", + "url": "https://files.pythonhosted.org/packages/bb/c5/2652e9f4433d5e60df41092f8068ae983636295a3d6ede035898f02dbd8f/clang_format-20.1.5-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "68de50317d315afafcad7ce6a7c574ba7c86e82a37d5ea1d50d70e87fcda25b3", + "md5": "9074b8432b9c4a2a5017cd3994a168ad", + "sha256": "6f0d7e54f25374c7849ec639f2e666b35c18bfe76cdacb7e3fdfc92647c99387" + }, + "downloads": -1, + "filename": "clang_format-20.1.5-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "9074b8432b9c4a2a5017cd3994a168ad", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2724727, + "upload_time": "2025-05-21T17:34:41", + "upload_time_iso_8601": "2025-05-21T17:34:41.293315Z", + "url": "https://files.pythonhosted.org/packages/68/de/50317d315afafcad7ce6a7c574ba7c86e82a37d5ea1d50d70e87fcda25b3/clang_format-20.1.5-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "834daf26854a68d1475d1e076a07e6ecf9d96c06a46809455be07e3d2cb53a89", + "md5": "084aec498068d8ae29ed32f41b6eaa9b", + "sha256": "4412731a18ed0749b8357c41bbe277baed514b117345f1f8e3dbc61bf7b6d78e" + }, + "downloads": -1, + "filename": "clang_format-20.1.5-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "084aec498068d8ae29ed32f41b6eaa9b", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1788363, + "upload_time": "2025-05-21T17:34:43", + "upload_time_iso_8601": "2025-05-21T17:34:43.591274Z", + "url": "https://files.pythonhosted.org/packages/83/4d/af26854a68d1475d1e076a07e6ecf9d96c06a46809455be07e3d2cb53a89/clang_format-20.1.5-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "64d5d4992e56e6b53318e42216e5fef69f5f79242e4a15862be437f08197c87e", + "md5": "a5386c2438d9b864ac2824f9aa962b5d", + "sha256": "c9dbc67e23bafa578367b815425573697a7e3d342e5aed17ae02cb0108007e74" + }, + "downloads": -1, + "filename": "clang_format-20.1.5-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "a5386c2438d9b864ac2824f9aa962b5d", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1800414, + "upload_time": "2025-05-21T17:34:45", + "upload_time_iso_8601": "2025-05-21T17:34:45.848964Z", + "url": "https://files.pythonhosted.org/packages/64/d5/d4992e56e6b53318e42216e5fef69f5f79242e4a15862be437f08197c87e/clang_format-20.1.5-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "91c8636246d5ba8dbd7161c0046d624861a0666923185858d6d86def00b82c9d", + "md5": "1fe6f77eb7eca5e1bce4ebc4597acaf8", + "sha256": "269d0a12cf6177f2bb806f73130189efac311bd2d24bd5ab8e12f9486b31f591" + }, + "downloads": -1, + "filename": "clang_format-20.1.5-py2.py3-none-musllinux_1_2_aarch64.whl", + "has_sig": false, + "md5_digest": "1fe6f77eb7eca5e1bce4ebc4597acaf8", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2774900, + "upload_time": "2025-05-21T17:34:47", + "upload_time_iso_8601": "2025-05-21T17:34:47.704298Z", + "url": "https://files.pythonhosted.org/packages/91/c8/636246d5ba8dbd7161c0046d624861a0666923185858d6d86def00b82c9d/clang_format-20.1.5-py2.py3-none-musllinux_1_2_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "d9b38f454a7ac26b8fa165f7f22d6469271a4f6f2a47c33775a7e24fdcb6ba4e", + "md5": "5b54774b056a33788b0d66fd2aff40a1", + "sha256": "9d2b233edaa1323ea9e736f598ba6a845ecb5fa3d21fe88dbb5be12974b8cc78" + }, + "downloads": -1, + "filename": "clang_format-20.1.5-py2.py3-none-musllinux_1_2_i686.whl", + "has_sig": false, + "md5_digest": "5b54774b056a33788b0d66fd2aff40a1", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3100372, + "upload_time": "2025-05-21T17:34:50", + "upload_time_iso_8601": "2025-05-21T17:34:50.127835Z", + "url": "https://files.pythonhosted.org/packages/d9/b3/8f454a7ac26b8fa165f7f22d6469271a4f6f2a47c33775a7e24fdcb6ba4e/clang_format-20.1.5-py2.py3-none-musllinux_1_2_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "a5c8e2fdbfcf1001eb57f989ab547641aa45f3199e802644af405835582b3d35", + "md5": "51f1d6e250a9ec05033e237f9d7a9747", + "sha256": "626e29e1014e044166d856ef439955622e5e6ba50662fe4b4142f41ecebafefe" + }, + "downloads": -1, + "filename": "clang_format-20.1.5-py2.py3-none-musllinux_1_2_ppc64le.whl", + "has_sig": false, + "md5_digest": "51f1d6e250a9ec05033e237f9d7a9747", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3186358, + "upload_time": "2025-05-21T17:34:52", + "upload_time_iso_8601": "2025-05-21T17:34:52.523257Z", + "url": "https://files.pythonhosted.org/packages/a5/c8/e2fdbfcf1001eb57f989ab547641aa45f3199e802644af405835582b3d35/clang_format-20.1.5-py2.py3-none-musllinux_1_2_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "76e6ae273965cada035e25fe9775a104a78616e50e025f3352bb11c0322ca772", + "md5": "4a1a87984616345158557b80b0d6ae1a", + "sha256": "dba394d7fb285d1adb48a9a46f7241afd2bd8569d63efc76ffe3c381f72c3c7e" + }, + "downloads": -1, + "filename": "clang_format-20.1.5-py2.py3-none-musllinux_1_2_s390x.whl", + "has_sig": false, + "md5_digest": "4a1a87984616345158557b80b0d6ae1a", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3223942, + "upload_time": "2025-05-21T17:34:54", + "upload_time_iso_8601": "2025-05-21T17:34:54.277152Z", + "url": "https://files.pythonhosted.org/packages/76/e6/ae273965cada035e25fe9775a104a78616e50e025f3352bb11c0322ca772/clang_format-20.1.5-py2.py3-none-musllinux_1_2_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "6ce38df1982bacd2a40d50210ec07e0e0d4ba86a9a53a69d953ae4e09e8478aa", + "md5": "e958388acb201636d581635f36dce8fa", + "sha256": "7abe250990f6eaf89a201cf89f296c18bdb2c135dd44b949a6007ffd31c4522c" + }, + "downloads": -1, + "filename": "clang_format-20.1.5-py2.py3-none-musllinux_1_2_x86_64.whl", + "has_sig": false, + "md5_digest": "e958388acb201636d581635f36dce8fa", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2881707, + "upload_time": "2025-05-21T17:34:56", + "upload_time_iso_8601": "2025-05-21T17:34:56.078065Z", + "url": "https://files.pythonhosted.org/packages/6c/e3/8df1982bacd2a40d50210ec07e0e0d4ba86a9a53a69d953ae4e09e8478aa/clang_format-20.1.5-py2.py3-none-musllinux_1_2_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "0581be1ecf3d7a659b1a749df7d573e1bbb657192fafb2dd9071230d86a58674", + "md5": "6206c4618f7d9869e703371bf0621a1c", + "sha256": "e389a7aa1e99988764060e8fd06b71517dd5d86e3d5285cb9f8eefb1823b4233" + }, + "downloads": -1, + "filename": "clang_format-20.1.5-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "6206c4618f7d9869e703371bf0621a1c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1259005, + "upload_time": "2025-05-21T17:34:58", + "upload_time_iso_8601": "2025-05-21T17:34:58.982056Z", + "url": "https://files.pythonhosted.org/packages/05/81/be1ecf3d7a659b1a749df7d573e1bbb657192fafb2dd9071230d86a58674/clang_format-20.1.5-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "07b7b6a1f6947c7bd493587fd6cb63954e58d731962f0bd7995ff3c038f69634", + "md5": "201915130707d222250ab5bfb4d221a6", + "sha256": "45e23bceb0ec646acd14a6274ea92ddc6d959bed4a8c1c338346e4da403b1c96" + }, + "downloads": -1, + "filename": "clang_format-20.1.5-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "201915130707d222250ab5bfb4d221a6", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1443585, + "upload_time": "2025-05-21T17:35:00", + "upload_time_iso_8601": "2025-05-21T17:35:00.950599Z", + "url": "https://files.pythonhosted.org/packages/07/b7/b6a1f6947c7bd493587fd6cb63954e58d731962f0bd7995ff3c038f69634/clang_format-20.1.5-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "488cec74c30b67bd6aa5cc5b1c939e10baf8a66327119df2aea2df15e521a18d", + "md5": "c66e47e6274b86993920d690a4c4f437", + "sha256": "5af73b84c98461bdab8f0b6c1bc49a7935a3362c3183315421607805a0b3e03b" + }, + "downloads": -1, + "filename": "clang_format-20.1.5-py2.py3-none-win_arm64.whl", + "has_sig": false, + "md5_digest": "c66e47e6274b86993920d690a4c4f437", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1319234, + "upload_time": "2025-05-21T17:35:03", + "upload_time_iso_8601": "2025-05-21T17:35:03.205710Z", + "url": "https://files.pythonhosted.org/packages/48/8c/ec74c30b67bd6aa5cc5b1c939e10baf8a66327119df2aea2df15e521a18d/clang_format-20.1.5-py2.py3-none-win_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "5529717868450c8829a85e8565c4ed7afe5168ddbe17cfcc82f2600f1da7f2ae", + "md5": "d11c0a07e9a1b10da4b838ba1fccc2e7", + "sha256": "16c99e744009822d8574b163d679d3a13c81d26beb8512e55a74651b8972f64d" + }, + "downloads": -1, + "filename": "clang_format-20.1.5.tar.gz", + "has_sig": false, + "md5_digest": "d11c0a07e9a1b10da4b838ba1fccc2e7", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 11533, + "upload_time": "2025-05-21T17:35:04", + "upload_time_iso_8601": "2025-05-21T17:35:04.653655Z", + "url": "https://files.pythonhosted.org/packages/55/29/717868450c8829a85e8565c4ed7afe5168ddbe17cfcc82f2600f1da7f2ae/clang_format-20.1.5.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "20.1.6": [ + { + "comment_text": null, + "digests": { + "blake2b_256": "acf701502ff0869985df8b47ae62cdace425f02dfcd61b463a046f873ad5d2e2", + "md5": "c1c07648a8e72df27bc93ef79198c190", + "sha256": "8ce12618431d8955026c30a2d19a3ae9ddc6d918ad24a4e00a10f8f130454469" + }, + "downloads": -1, + "filename": "clang_format-20.1.6-py2.py3-none-macosx_10_9_x86_64.whl", + "has_sig": false, + "md5_digest": "c1c07648a8e72df27bc93ef79198c190", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1436533, + "upload_time": "2025-06-11T17:40:08", + "upload_time_iso_8601": "2025-06-11T17:40:08.564763Z", + "url": "https://files.pythonhosted.org/packages/ac/f7/01502ff0869985df8b47ae62cdace425f02dfcd61b463a046f873ad5d2e2/clang_format-20.1.6-py2.py3-none-macosx_10_9_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "fd27171dcef3288369bc0f7034307cebc6ea5d9a2b03d44e5cfa5a218f0e4f53", + "md5": "2e45f096b2873770782314993098dce7", + "sha256": "bfc4a9922ee1f7c0ec5a8250cb72e755a1ddc73e5d50866efe00561be6fc69eb" + }, + "downloads": -1, + "filename": "clang_format-20.1.6-py2.py3-none-macosx_11_0_arm64.whl", + "has_sig": false, + "md5_digest": "2e45f096b2873770782314993098dce7", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1410536, + "upload_time": "2025-06-11T17:40:10", + "upload_time_iso_8601": "2025-06-11T17:40:10.826441Z", + "url": "https://files.pythonhosted.org/packages/fd/27/171dcef3288369bc0f7034307cebc6ea5d9a2b03d44e5cfa5a218f0e4f53/clang_format-20.1.6-py2.py3-none-macosx_11_0_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "b1512a0f401f5a5e27f97b8ebfed6ca9c4ccc2809cabafa2f97c7ac8e5b0d882", + "md5": "3000b7e38f382a6afa3d489a831edabc", + "sha256": "8ce920b103447d21ff44d41a7ad412794bde1b737426a126c8ab141f00bbfba8" + }, + "downloads": -1, + "filename": "clang_format-20.1.6-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "3000b7e38f382a6afa3d489a831edabc", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1794360, + "upload_time": "2025-06-11T17:40:12", + "upload_time_iso_8601": "2025-06-11T17:40:12.649854Z", + "url": "https://files.pythonhosted.org/packages/b1/51/2a0f401f5a5e27f97b8ebfed6ca9c4ccc2809cabafa2f97c7ac8e5b0d882/clang_format-20.1.6-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "3d42ab2d740904220c47282e70014df3ae7b89b65a5af687fa91c471770a17ef", + "md5": "6377eea7a35b15fa68faf5a650269da6", + "sha256": "2ea00197fe650f29b77dd870cd87891e15d9d2dac75c4e9072f4eee99a928dcb" + }, + "downloads": -1, + "filename": "clang_format-20.1.6-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "6377eea7a35b15fa68faf5a650269da6", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1968072, + "upload_time": "2025-06-11T17:40:14", + "upload_time_iso_8601": "2025-06-11T17:40:14.132090Z", + "url": "https://files.pythonhosted.org/packages/3d/42/ab2d740904220c47282e70014df3ae7b89b65a5af687fa91c471770a17ef/clang_format-20.1.6-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "7faf7b888ed7f8d20fe727b11ba85f1f1d73d4a9033b4a74bebb7316e5289099", + "md5": "6e35706b8a5cce7b9efbf1dc0a5b0bd2", + "sha256": "779153a039c8552438dd9a3925f5dad20d8b5a812329703f98cd5da7bb91556c" + }, + "downloads": -1, + "filename": "clang_format-20.1.6-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "6e35706b8a5cce7b9efbf1dc0a5b0bd2", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2724229, + "upload_time": "2025-06-11T17:40:15", + "upload_time_iso_8601": "2025-06-11T17:40:15.712373Z", + "url": "https://files.pythonhosted.org/packages/7f/af/7b888ed7f8d20fe727b11ba85f1f1d73d4a9033b4a74bebb7316e5289099/clang_format-20.1.6-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "b9d6cc997ebb3c9d8b6a2bb2a7b9c7f7ca225c4bf08a2b49b565324982a2fbb5", + "md5": "36b334dc2749ee0d0e259b6e77728c74", + "sha256": "d84fffa03432c400bb560f3c8181c2dfa6be05b9b866f7d0180dfb41e0f91907" + }, + "downloads": -1, + "filename": "clang_format-20.1.6-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "36b334dc2749ee0d0e259b6e77728c74", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1789560, + "upload_time": "2025-06-11T17:40:17", + "upload_time_iso_8601": "2025-06-11T17:40:17.458078Z", + "url": "https://files.pythonhosted.org/packages/b9/d6/cc997ebb3c9d8b6a2bb2a7b9c7f7ca225c4bf08a2b49b565324982a2fbb5/clang_format-20.1.6-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "b95e7713e11945fa8018589e37a60052a1b1a2485be2292fcf382d154231eab6", + "md5": "aff94ac4ad6595e6c62e9db7b9ae2af1", + "sha256": "0ea008a20951527d35a1e2b8febdca3c47c6f8e9a1bd174601c891e20053ef2e" + }, + "downloads": -1, + "filename": "clang_format-20.1.6-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "aff94ac4ad6595e6c62e9db7b9ae2af1", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1801137, + "upload_time": "2025-06-11T17:40:19", + "upload_time_iso_8601": "2025-06-11T17:40:19.132699Z", + "url": "https://files.pythonhosted.org/packages/b9/5e/7713e11945fa8018589e37a60052a1b1a2485be2292fcf382d154231eab6/clang_format-20.1.6-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "aef213d26a67518286193748a5f52e9731ccf962f1012f7881f76ed29ae56fcd", + "md5": "d80b04615ca80b1a53265d1c30dc61dd", + "sha256": "12626f058755198b92b26076312cc1052f8dd7868bd6cf61b65d2911154ef6df" + }, + "downloads": -1, + "filename": "clang_format-20.1.6-py2.py3-none-musllinux_1_2_aarch64.whl", + "has_sig": false, + "md5_digest": "d80b04615ca80b1a53265d1c30dc61dd", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2774848, + "upload_time": "2025-06-11T17:40:20", + "upload_time_iso_8601": "2025-06-11T17:40:20.986542Z", + "url": "https://files.pythonhosted.org/packages/ae/f2/13d26a67518286193748a5f52e9731ccf962f1012f7881f76ed29ae56fcd/clang_format-20.1.6-py2.py3-none-musllinux_1_2_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "3e3cf9605439070fac06ace0af80ce6cabdc74b6f66852f123e6236d2aa89d27", + "md5": "ac3daefca8283b138816d3d213a77145", + "sha256": "ce8f5bbacba3f05adc2cd64a1780e36c81b54a2caa0b4c618c611b2b45124930" + }, + "downloads": -1, + "filename": "clang_format-20.1.6-py2.py3-none-musllinux_1_2_i686.whl", + "has_sig": false, + "md5_digest": "ac3daefca8283b138816d3d213a77145", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3100395, + "upload_time": "2025-06-11T17:40:22", + "upload_time_iso_8601": "2025-06-11T17:40:22.545405Z", + "url": "https://files.pythonhosted.org/packages/3e/3c/f9605439070fac06ace0af80ce6cabdc74b6f66852f123e6236d2aa89d27/clang_format-20.1.6-py2.py3-none-musllinux_1_2_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "d000b09ec2845a58cc041207ca6b7b4ab911170fe8e4290a586b955c8196147c", + "md5": "e05122c7c5c14a8a892ab3211d02b588", + "sha256": "5351f353062bb0df9c31b4e84c8a9d6b472f9f0727ebd5ab1f96fd3e792756fa" + }, + "downloads": -1, + "filename": "clang_format-20.1.6-py2.py3-none-musllinux_1_2_ppc64le.whl", + "has_sig": false, + "md5_digest": "e05122c7c5c14a8a892ab3211d02b588", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3186577, + "upload_time": "2025-06-11T17:40:23", + "upload_time_iso_8601": "2025-06-11T17:40:23.930616Z", + "url": "https://files.pythonhosted.org/packages/d0/00/b09ec2845a58cc041207ca6b7b4ab911170fe8e4290a586b955c8196147c/clang_format-20.1.6-py2.py3-none-musllinux_1_2_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "3014ecf9d774f18d840f7f7fd474ff250f2bd0261632043342d1bab07c405d34", + "md5": "45bc4a10f7231d4cc2fc00bc00a9bcd0", + "sha256": "58b3ef54bc32304990f1890cc982607f69359e46b0e98350718125bea24566de" + }, + "downloads": -1, + "filename": "clang_format-20.1.6-py2.py3-none-musllinux_1_2_s390x.whl", + "has_sig": false, + "md5_digest": "45bc4a10f7231d4cc2fc00bc00a9bcd0", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3224416, + "upload_time": "2025-06-11T17:40:25", + "upload_time_iso_8601": "2025-06-11T17:40:25.838655Z", + "url": "https://files.pythonhosted.org/packages/30/14/ecf9d774f18d840f7f7fd474ff250f2bd0261632043342d1bab07c405d34/clang_format-20.1.6-py2.py3-none-musllinux_1_2_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "6d3189ece88b0c8a45be7ff65f716c59369e892c53c20f51ef20cec851aebb99", + "md5": "fbb0b672ba829a24f0fa7e211bae88f6", + "sha256": "e1e59c3a23d033df261ce8048c96f0493285cff1b65d3f519b77a47854653d27" + }, + "downloads": -1, + "filename": "clang_format-20.1.6-py2.py3-none-musllinux_1_2_x86_64.whl", + "has_sig": false, + "md5_digest": "fbb0b672ba829a24f0fa7e211bae88f6", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2881602, + "upload_time": "2025-06-11T17:40:27", + "upload_time_iso_8601": "2025-06-11T17:40:27.328488Z", + "url": "https://files.pythonhosted.org/packages/6d/31/89ece88b0c8a45be7ff65f716c59369e892c53c20f51ef20cec851aebb99/clang_format-20.1.6-py2.py3-none-musllinux_1_2_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "086edad272cd97ad72e323258bcd55bbe62f23805d54daacbbffc50155215e9f", + "md5": "e70242933d20d54862f0fdbbaec6054c", + "sha256": "d1d64ccfb14dcd93cd98321191e9fbaef049774d050f0c084b7aede41e79fee2" + }, + "downloads": -1, + "filename": "clang_format-20.1.6-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "e70242933d20d54862f0fdbbaec6054c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1259307, + "upload_time": "2025-06-11T17:40:28", + "upload_time_iso_8601": "2025-06-11T17:40:28.763757Z", + "url": "https://files.pythonhosted.org/packages/08/6e/dad272cd97ad72e323258bcd55bbe62f23805d54daacbbffc50155215e9f/clang_format-20.1.6-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "76d02781f7699ce9ff1f5f9035d30cdb4c46f40b6acf191e0100543c289f46be", + "md5": "0b10c9d34ad5b4b01f0b70bab825aa6b", + "sha256": "11530ff352c64176ba4297ad398452d9fcd442b4a8bb2a804cc7915bc94b96e1" + }, + "downloads": -1, + "filename": "clang_format-20.1.6-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "0b10c9d34ad5b4b01f0b70bab825aa6b", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1444207, + "upload_time": "2025-06-11T17:40:30", + "upload_time_iso_8601": "2025-06-11T17:40:30.423671Z", + "url": "https://files.pythonhosted.org/packages/76/d0/2781f7699ce9ff1f5f9035d30cdb4c46f40b6acf191e0100543c289f46be/clang_format-20.1.6-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "73e428e2eaed0ff559a5f691f28c656a0f3e147983f34fb5c42818231023e0eb", + "md5": "0bbd5b1764a628ef19a635b78728013a", + "sha256": "c93c8b7feed66521349918f741b40ef6eaf85dfa1b5eb1303a49ed4608fd882a" + }, + "downloads": -1, + "filename": "clang_format-20.1.6-py2.py3-none-win_arm64.whl", + "has_sig": false, + "md5_digest": "0bbd5b1764a628ef19a635b78728013a", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1319574, + "upload_time": "2025-06-11T17:40:32", + "upload_time_iso_8601": "2025-06-11T17:40:32.085920Z", + "url": "https://files.pythonhosted.org/packages/73/e4/28e2eaed0ff559a5f691f28c656a0f3e147983f34fb5c42818231023e0eb/clang_format-20.1.6-py2.py3-none-win_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "b911be14f673cc84f7241755ed7680174032aa6ad1fca29d2b644eaee3b32eba", + "md5": "9476ac4df598a841f7caa753f4b60a00", + "sha256": "15dbc113b4d2f1eb545adb9b815b96c2d64aff947de9453802e47ef1c5267996" + }, + "downloads": -1, + "filename": "clang_format-20.1.6.tar.gz", + "has_sig": false, + "md5_digest": "9476ac4df598a841f7caa753f4b60a00", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 11534, + "upload_time": "2025-06-11T17:40:34", + "upload_time_iso_8601": "2025-06-11T17:40:34.516908Z", + "url": "https://files.pythonhosted.org/packages/b9/11/be14f673cc84f7241755ed7680174032aa6ad1fca29d2b644eaee3b32eba/clang_format-20.1.6.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "20.1.7": [ + { + "comment_text": null, + "digests": { + "blake2b_256": "98c7d6b6b2f37e559cefc07426170368ddb5951753b7a831668666c5d91d6b79", + "md5": "d2a891ee815c2305ea373ddb7fb992aa", + "sha256": "70a904719a1bd6653d77ddc6d7b40418845912a1a2a419b9116b819a6b619f8c" + }, + "downloads": -1, + "filename": "clang_format-20.1.7-py2.py3-none-macosx_10_9_x86_64.whl", + "has_sig": false, + "md5_digest": "d2a891ee815c2305ea373ddb7fb992aa", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1436729, + "upload_time": "2025-06-26T12:57:02", + "upload_time_iso_8601": "2025-06-26T12:57:02.479994Z", + "url": "https://files.pythonhosted.org/packages/98/c7/d6b6b2f37e559cefc07426170368ddb5951753b7a831668666c5d91d6b79/clang_format-20.1.7-py2.py3-none-macosx_10_9_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "a08cae7bc9122a2c7505506bba4aae9d9f38c01435b735a38c65985d30efc943", + "md5": "185b86a7e39876b93a8a0471d21800c2", + "sha256": "e5257e8188569e4e47fceb3ba3317b0b44dc5ab5046c8cc2d58c626430c747a6" + }, + "downloads": -1, + "filename": "clang_format-20.1.7-py2.py3-none-macosx_11_0_arm64.whl", + "has_sig": false, + "md5_digest": "185b86a7e39876b93a8a0471d21800c2", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1410576, + "upload_time": "2025-06-26T12:57:04", + "upload_time_iso_8601": "2025-06-26T12:57:04.441614Z", + "url": "https://files.pythonhosted.org/packages/a0/8c/ae7bc9122a2c7505506bba4aae9d9f38c01435b735a38c65985d30efc943/clang_format-20.1.7-py2.py3-none-macosx_11_0_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "19c16777ef4eafa63d35dda0cda2803e818d17a0a9fe3216837eab1f169afbee", + "md5": "f79a1d237a6ca09106a39a773a1a3a7d", + "sha256": "1dad1e6f9eb732b76046bf5810c6ee78b9e6cd6b3616cb75d9bde06ecd3222e6" + }, + "downloads": -1, + "filename": "clang_format-20.1.7-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "has_sig": false, + "md5_digest": "f79a1d237a6ca09106a39a773a1a3a7d", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1794265, + "upload_time": "2025-06-26T12:57:05", + "upload_time_iso_8601": "2025-06-26T12:57:05.722628Z", + "url": "https://files.pythonhosted.org/packages/19/c1/6777ef4eafa63d35dda0cda2803e818d17a0a9fe3216837eab1f169afbee/clang_format-20.1.7-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "548f33a426e3b61cff30e4d8d7173508da277ece67296428b7657da681c821d5", + "md5": "a02a1c8461ec0fcc33b44d342cc92d62", + "sha256": "b27ed7fe674e8a77461c8d5b117ed96021aa18233917b3fe54b95391e0b22d04" + }, + "downloads": -1, + "filename": "clang_format-20.1.7-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "has_sig": false, + "md5_digest": "a02a1c8461ec0fcc33b44d342cc92d62", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1968022, + "upload_time": "2025-06-26T12:57:07", + "upload_time_iso_8601": "2025-06-26T12:57:07.030666Z", + "url": "https://files.pythonhosted.org/packages/54/8f/33a426e3b61cff30e4d8d7173508da277ece67296428b7657da681c821d5/clang_format-20.1.7-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "da1ffc0fe12a27153370ca55490bedd29f11611b1a1336779472dec5f3d6af94", + "md5": "ada1efe2260bcca7a067e974c10dffda", + "sha256": "bd144f093b4a3ac8a0f0d0ebb9b013974884d9da0627b9905949c6f3213aa850" + }, + "downloads": -1, + "filename": "clang_format-20.1.7-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "has_sig": false, + "md5_digest": "ada1efe2260bcca7a067e974c10dffda", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2724211, + "upload_time": "2025-06-26T12:57:08", + "upload_time_iso_8601": "2025-06-26T12:57:08.750751Z", + "url": "https://files.pythonhosted.org/packages/da/1f/fc0fe12a27153370ca55490bedd29f11611b1a1336779472dec5f3d6af94/clang_format-20.1.7-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "c0fd7d7462d307d8827de0b8b183b3b467643e14c61e880b5485e7aa80a11db7", + "md5": "de104ec3394acd95727024c36c073653", + "sha256": "d79484ce2c8f621242046c4bb0aefd49445ec5c7bc3c404af97490289791b777" + }, + "downloads": -1, + "filename": "clang_format-20.1.7-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "has_sig": false, + "md5_digest": "de104ec3394acd95727024c36c073653", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1789853, + "upload_time": "2025-06-26T12:57:10", + "upload_time_iso_8601": "2025-06-26T12:57:10.314231Z", + "url": "https://files.pythonhosted.org/packages/c0/fd/7d7462d307d8827de0b8b183b3b467643e14c61e880b5485e7aa80a11db7/clang_format-20.1.7-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "8b7f55985595ffbf9bcec64ad36e9a0451cf8556ba0fb1a80781943de106cfa3", + "md5": "2db541ee17922b25f6a60aa9f4411d81", + "sha256": "99cbfb99dab836027498190f55e543bed51bae33ae6dc256861e7aa91368de98" + }, + "downloads": -1, + "filename": "clang_format-20.1.7-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "has_sig": false, + "md5_digest": "2db541ee17922b25f6a60aa9f4411d81", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1801091, + "upload_time": "2025-06-26T12:57:11", + "upload_time_iso_8601": "2025-06-26T12:57:11.708244Z", + "url": "https://files.pythonhosted.org/packages/8b/7f/55985595ffbf9bcec64ad36e9a0451cf8556ba0fb1a80781943de106cfa3/clang_format-20.1.7-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "842e04009020237243f8785188810ee33bc9ce0773e3ccba2599768381dac088", + "md5": "0b638ef80dd5b18b1284525fc8dddadd", + "sha256": "4c05114a10efe85c11fde518fe0fadc2977ce4a997a26ceaac88521daee83bbd" + }, + "downloads": -1, + "filename": "clang_format-20.1.7-py2.py3-none-musllinux_1_2_aarch64.whl", + "has_sig": false, + "md5_digest": "0b638ef80dd5b18b1284525fc8dddadd", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2774653, + "upload_time": "2025-06-26T12:57:13", + "upload_time_iso_8601": "2025-06-26T12:57:13.248714Z", + "url": "https://files.pythonhosted.org/packages/84/2e/04009020237243f8785188810ee33bc9ce0773e3ccba2599768381dac088/clang_format-20.1.7-py2.py3-none-musllinux_1_2_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "1c228f98cf57f54a06ff3a08dd79fba25617a4495614b6458bc69e46e81caa96", + "md5": "696928fff7baaced85df5fc02a35ce84", + "sha256": "9cd4d64dc0e34b23badad0ce3a235fb5c8ac63651d9f91d1c806356212cbca6c" + }, + "downloads": -1, + "filename": "clang_format-20.1.7-py2.py3-none-musllinux_1_2_i686.whl", + "has_sig": false, + "md5_digest": "696928fff7baaced85df5fc02a35ce84", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3100264, + "upload_time": "2025-06-26T12:57:14", + "upload_time_iso_8601": "2025-06-26T12:57:14.590573Z", + "url": "https://files.pythonhosted.org/packages/1c/22/8f98cf57f54a06ff3a08dd79fba25617a4495614b6458bc69e46e81caa96/clang_format-20.1.7-py2.py3-none-musllinux_1_2_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "0b93b5dc2959423b203f8a8db35ff7f19a114c50df265728714dcaf90d779d4f", + "md5": "3c73e882feab7e88ff23642a6639806c", + "sha256": "11431cb437ed22be85744ea47b3a6801bc61de7ac4b775bf1cb89ee190c992d4" + }, + "downloads": -1, + "filename": "clang_format-20.1.7-py2.py3-none-musllinux_1_2_ppc64le.whl", + "has_sig": false, + "md5_digest": "3c73e882feab7e88ff23642a6639806c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3186502, + "upload_time": "2025-06-26T12:57:16", + "upload_time_iso_8601": "2025-06-26T12:57:16.176325Z", + "url": "https://files.pythonhosted.org/packages/0b/93/b5dc2959423b203f8a8db35ff7f19a114c50df265728714dcaf90d779d4f/clang_format-20.1.7-py2.py3-none-musllinux_1_2_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "daa63ae4861b2fd3eba3b47d46e5c31b4dac0065a8048dc77825a85ac141e991", + "md5": "94a00e070c96998a0d06c8a966704c1f", + "sha256": "29f5fe39e60579ca253d31c1122ce06a80716400ec7e5dc38833da80f88dbbd5" + }, + "downloads": -1, + "filename": "clang_format-20.1.7-py2.py3-none-musllinux_1_2_s390x.whl", + "has_sig": false, + "md5_digest": "94a00e070c96998a0d06c8a966704c1f", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3224655, + "upload_time": "2025-06-26T12:57:18", + "upload_time_iso_8601": "2025-06-26T12:57:18.012424Z", + "url": "https://files.pythonhosted.org/packages/da/a6/3ae4861b2fd3eba3b47d46e5c31b4dac0065a8048dc77825a85ac141e991/clang_format-20.1.7-py2.py3-none-musllinux_1_2_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "64df8668d80685b0556fead8ecc9ff221574d9f2b4011a68da155c54acab6dc6", + "md5": "68498569c7a2edc5f757c02d270d72b6", + "sha256": "6db0b7271af8cbc2656b3b6b31e4276d5c6b8ceafb1981760f4738cfbe0a9e43" + }, + "downloads": -1, + "filename": "clang_format-20.1.7-py2.py3-none-musllinux_1_2_x86_64.whl", + "has_sig": false, + "md5_digest": "68498569c7a2edc5f757c02d270d72b6", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2881843, + "upload_time": "2025-06-26T12:57:19", + "upload_time_iso_8601": "2025-06-26T12:57:19.347453Z", + "url": "https://files.pythonhosted.org/packages/64/df/8668d80685b0556fead8ecc9ff221574d9f2b4011a68da155c54acab6dc6/clang_format-20.1.7-py2.py3-none-musllinux_1_2_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "5ce85f105c2195fe565b9b5203f533f6d727a73d98ef3b295e3f2f01ddf5d847", + "md5": "a8fe0afc891000d54b5642486fdf0e13", + "sha256": "7bd56bd0f519959488977dcddddba4e4fd07cba6225ed09ad658caa1f7286d1f" + }, + "downloads": -1, + "filename": "clang_format-20.1.7-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "a8fe0afc891000d54b5642486fdf0e13", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1259337, + "upload_time": "2025-06-26T12:57:21", + "upload_time_iso_8601": "2025-06-26T12:57:21.029232Z", + "url": "https://files.pythonhosted.org/packages/5c/e8/5f105c2195fe565b9b5203f533f6d727a73d98ef3b295e3f2f01ddf5d847/clang_format-20.1.7-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "310da3685e3287d3ff3676297da331d7a05110dee049c773af2d6a1f5c8df0b0", + "md5": "1c88deabc9c0b86c842d47e3154c2df3", + "sha256": "4a9b909b1a9eb0b91aae51fdeeeb013ce20f9079d2e0fa8b8381e97c268dc889" + }, + "downloads": -1, + "filename": "clang_format-20.1.7-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "1c88deabc9c0b86c842d47e3154c2df3", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1444266, + "upload_time": "2025-06-26T12:57:22", + "upload_time_iso_8601": "2025-06-26T12:57:22.370527Z", + "url": "https://files.pythonhosted.org/packages/31/0d/a3685e3287d3ff3676297da331d7a05110dee049c773af2d6a1f5c8df0b0/clang_format-20.1.7-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "88935242ed23c0ec6b2e28509452b41c732789822c9e5aa4a899e406f9d15d64", + "md5": "306c0b77636fee17db6a878132f3061c", + "sha256": "d11c62d38b9144d30021b884b0f95e7270a6bcbf4f22bdd7dae94a531d82fbba" + }, + "downloads": -1, + "filename": "clang_format-20.1.7-py2.py3-none-win_arm64.whl", + "has_sig": false, + "md5_digest": "306c0b77636fee17db6a878132f3061c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1319591, + "upload_time": "2025-06-26T12:57:23", + "upload_time_iso_8601": "2025-06-26T12:57:23.704918Z", + "url": "https://files.pythonhosted.org/packages/88/93/5242ed23c0ec6b2e28509452b41c732789822c9e5aa4a899e406f9d15d64/clang_format-20.1.7-py2.py3-none-win_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "a7afe138e1be1812ce0261ceaf5695e7d4299fa4d5085e1ed16e9157c4cda3ea", + "md5": "cf289fc5bb69ff6e97f5ec9fd6bcb4a4", + "sha256": "2b0d76b9bf1f993bad33d2216b5fce4c407bc748fa31659ab7f51ca60df113c9" + }, + "downloads": -1, + "filename": "clang_format-20.1.7.tar.gz", + "has_sig": false, + "md5_digest": "cf289fc5bb69ff6e97f5ec9fd6bcb4a4", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 11535, + "upload_time": "2025-06-26T12:57:25", + "upload_time_iso_8601": "2025-06-26T12:57:25.283686Z", + "url": "https://files.pythonhosted.org/packages/a7/af/e138e1be1812ce0261ceaf5695e7d4299fa4d5085e1ed16e9157c4cda3ea/clang_format-20.1.7.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "20.1.8": [ + { + "comment_text": null, + "digests": { + "blake2b_256": "4fcd6dab2c15bb2f13ad13015fb92eda0b49b3bd866153072e4d9796f7b220e4", + "md5": "b0c46767d97807d6b9d6ac918f6570c3", + "sha256": "e9422bc81b3bea6c0ee773662fbe3bfd8a9479ae70e59008095dfae7001c5a84" + }, + "downloads": -1, + "filename": "clang_format-20.1.8-py2.py3-none-macosx_10_9_x86_64.whl", + "has_sig": false, + "md5_digest": "b0c46767d97807d6b9d6ac918f6570c3", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1429486, + "upload_time": "2025-07-10T11:39:38", + "upload_time_iso_8601": "2025-07-10T11:39:38.665707Z", + "url": "https://files.pythonhosted.org/packages/4f/cd/6dab2c15bb2f13ad13015fb92eda0b49b3bd866153072e4d9796f7b220e4/clang_format-20.1.8-py2.py3-none-macosx_10_9_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "d84c3efe4fe6910e1e00dcec0c8d9ef715164500f043e9911bdf253370ff917b", + "md5": "7550cfa8ef30b4c2563b7cbda94b0f03", + "sha256": "c0cf62720247a7dd1e2d610816a2f7d7016433f9c2869880cba655449bd09616" + }, + "downloads": -1, + "filename": "clang_format-20.1.8-py2.py3-none-macosx_11_0_arm64.whl", + "has_sig": false, + "md5_digest": "7550cfa8ef30b4c2563b7cbda94b0f03", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1400840, + "upload_time": "2025-07-10T11:39:40", + "upload_time_iso_8601": "2025-07-10T11:39:40.516019Z", + "url": "https://files.pythonhosted.org/packages/d8/4c/3efe4fe6910e1e00dcec0c8d9ef715164500f043e9911bdf253370ff917b/clang_format-20.1.8-py2.py3-none-macosx_11_0_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "dcc3af601563d3bfa4c514406347c13dc639f984df7c9e13df3a0adf3a650fc9", + "md5": "aa03a9b65c7ae791fd6da487cdec7d80", + "sha256": "4f998e5c19e10f69b87af6991ccb14db934b5fa36fd28c7dbfc17dee957007f4" + }, + "downloads": -1, + "filename": "clang_format-20.1.8-py2.py3-none-manylinux2014_i686.manylinux_2_17_i686.whl", + "has_sig": false, + "md5_digest": "aa03a9b65c7ae791fd6da487cdec7d80", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1777504, + "upload_time": "2025-07-10T11:39:42", + "upload_time_iso_8601": "2025-07-10T11:39:42.266165Z", + "url": "https://files.pythonhosted.org/packages/dc/c3/af601563d3bfa4c514406347c13dc639f984df7c9e13df3a0adf3a650fc9/clang_format-20.1.8-py2.py3-none-manylinux2014_i686.manylinux_2_17_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "06607c2ff3019599ad985d0a61f74ba8226d538c72485b0e3d25b1899601a9f5", + "md5": "b61d8ca3d427809fc6d1ca0589838d4d", + "sha256": "34de32fe53452a07497793d5faf3fd03f7cf8b960b915417471ae81227461a39" + }, + "downloads": -1, + "filename": "clang_format-20.1.8-py2.py3-none-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", + "has_sig": false, + "md5_digest": "b61d8ca3d427809fc6d1ca0589838d4d", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1692081, + "upload_time": "2025-07-10T11:39:43", + "upload_time_iso_8601": "2025-07-10T11:39:43.670990Z", + "url": "https://files.pythonhosted.org/packages/06/60/7c2ff3019599ad985d0a61f74ba8226d538c72485b0e3d25b1899601a9f5/clang_format-20.1.8-py2.py3-none-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "9974956bc5455ce102767805b2eafcada0de003c391adb8299222432091af309", + "md5": "ef13b2b8d03182563dd6375c04e8db21", + "sha256": "1397b1b700ee78af73b14c5d65ad777c570c79a175c220768056fbcb7afed113" + }, + "downloads": -1, + "filename": "clang_format-20.1.8-py2.py3-none-manylinux_2_27_ppc64le.manylinux_2_28_ppc64le.whl", + "has_sig": false, + "md5_digest": "ef13b2b8d03182563dd6375c04e8db21", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1987169, + "upload_time": "2025-07-10T11:39:45", + "upload_time_iso_8601": "2025-07-10T11:39:45.465856Z", + "url": "https://files.pythonhosted.org/packages/99/74/956bc5455ce102767805b2eafcada0de003c391adb8299222432091af309/clang_format-20.1.8-py2.py3-none-manylinux_2_27_ppc64le.manylinux_2_28_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "703f0c141c391a0d4bd4012758f68a27ddc1db8b48814f96eb459417e197124a", + "md5": "978130cbcf9f9bff5ae069485f1ceefb", + "sha256": "e195b5f6b79d89d42d4094d103f0a4f47ff3997d6474811622b95ab596f01fd2" + }, + "downloads": -1, + "filename": "clang_format-20.1.8-py2.py3-none-manylinux_2_27_s390x.manylinux_2_28_s390x.whl", + "has_sig": false, + "md5_digest": "978130cbcf9f9bff5ae069485f1ceefb", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2005960, + "upload_time": "2025-07-10T11:39:47", + "upload_time_iso_8601": "2025-07-10T11:39:47.163409Z", + "url": "https://files.pythonhosted.org/packages/70/3f/0c141c391a0d4bd4012758f68a27ddc1db8b48814f96eb459417e197124a/clang_format-20.1.8-py2.py3-none-manylinux_2_27_s390x.manylinux_2_28_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "a677786aa0fc8a75d8ce94966bb33e44c63fec1964cbf343ee862ed6a5be38c1", + "md5": "deb5669457e02d8f50452a5b30e92159", + "sha256": "7c6bcb7e01ba4f05a4c980fda147b330f7e4833c2aea8c92a0c2df9573ae7afe" + }, + "downloads": -1, + "filename": "clang_format-20.1.8-py2.py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", + "has_sig": false, + "md5_digest": "deb5669457e02d8f50452a5b30e92159", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1777063, + "upload_time": "2025-07-10T11:39:48", + "upload_time_iso_8601": "2025-07-10T11:39:48.962243Z", + "url": "https://files.pythonhosted.org/packages/a6/77/786aa0fc8a75d8ce94966bb33e44c63fec1964cbf343ee862ed6a5be38c1/clang_format-20.1.8-py2.py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "bc0b79cc55d7a64f3798a044c1f12c288048c6551af834700ac2ed1204c1181d", + "md5": "ab163b752850183d0be4b2c8e28d09fe", + "sha256": "d99a5f3d7a252ab762ed79bc2a271a63fe593ae2e2565ce287835c00ce13c37e" + }, + "downloads": -1, + "filename": "clang_format-20.1.8-py2.py3-none-manylinux_2_31_armv7l.whl", + "has_sig": false, + "md5_digest": "ab163b752850183d0be4b2c8e28d09fe", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1626598, + "upload_time": "2025-07-10T11:39:50", + "upload_time_iso_8601": "2025-07-10T11:39:50.468123Z", + "url": "https://files.pythonhosted.org/packages/bc/0b/79cc55d7a64f3798a044c1f12c288048c6551af834700ac2ed1204c1181d/clang_format-20.1.8-py2.py3-none-manylinux_2_31_armv7l.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "cfa2913509f0e845b2beb0d298a9ec78c230a3a1f659c6928f990e84b842da4a", + "md5": "e56a0f6f6e6c5139b37e88674a1be243", + "sha256": "0a687c6efd7708227eafec37e98143e0b4b7dbeca82ff8e1de110d434f4e63ac" + }, + "downloads": -1, + "filename": "clang_format-20.1.8-py2.py3-none-musllinux_1_2_aarch64.whl", + "has_sig": false, + "md5_digest": "e56a0f6f6e6c5139b37e88674a1be243", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2689936, + "upload_time": "2025-07-10T11:39:52", + "upload_time_iso_8601": "2025-07-10T11:39:52.080382Z", + "url": "https://files.pythonhosted.org/packages/cf/a2/913509f0e845b2beb0d298a9ec78c230a3a1f659c6928f990e84b842da4a/clang_format-20.1.8-py2.py3-none-musllinux_1_2_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "0e297cb26c5884040d4cb2f1e3ece6d37ebaf318d7cd281339affc94d1a9803c", + "md5": "37610e8c0325dc2978370ff89b30e21a", + "sha256": "d6491195d8edc788de8abfaea30b78ff74ad3f5ee89653cd0a27a4af4feb1317" + }, + "downloads": -1, + "filename": "clang_format-20.1.8-py2.py3-none-musllinux_1_2_armv7l.whl", + "has_sig": false, + "md5_digest": "37610e8c0325dc2978370ff89b30e21a", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2462082, + "upload_time": "2025-07-10T11:39:53", + "upload_time_iso_8601": "2025-07-10T11:39:53.730657Z", + "url": "https://files.pythonhosted.org/packages/0e/29/7cb26c5884040d4cb2f1e3ece6d37ebaf318d7cd281339affc94d1a9803c/clang_format-20.1.8-py2.py3-none-musllinux_1_2_armv7l.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "6a5511ba71667856abfc7872c33e71b15c551d2d0fc3ef86ef73f92a46b2749c", + "md5": "054e75a15e7c47f88098144df23f6b5f", + "sha256": "9ceae6a1fbd594ec2a31157997378b70df42273795a0177be0725a4e96336231" + }, + "downloads": -1, + "filename": "clang_format-20.1.8-py2.py3-none-musllinux_1_2_i686.whl", + "has_sig": false, + "md5_digest": "054e75a15e7c47f88098144df23f6b5f", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2927834, + "upload_time": "2025-07-10T11:39:55", + "upload_time_iso_8601": "2025-07-10T11:39:55.264997Z", + "url": "https://files.pythonhosted.org/packages/6a/55/11ba71667856abfc7872c33e71b15c551d2d0fc3ef86ef73f92a46b2749c/clang_format-20.1.8-py2.py3-none-musllinux_1_2_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "e671496d2bafcb03b16a6fff25e73dcbe5aedcf68dd138580022b3114a3f7a84", + "md5": "377d82a457158a77ce9b19900acb548a", + "sha256": "941396455b529ca130fae24d6d95bdf9a236d2ad22318991090d0b7ae53d236a" + }, + "downloads": -1, + "filename": "clang_format-20.1.8-py2.py3-none-musllinux_1_2_ppc64le.whl", + "has_sig": false, + "md5_digest": "377d82a457158a77ce9b19900acb548a", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3054954, + "upload_time": "2025-07-10T11:39:56", + "upload_time_iso_8601": "2025-07-10T11:39:56.823391Z", + "url": "https://files.pythonhosted.org/packages/e6/71/496d2bafcb03b16a6fff25e73dcbe5aedcf68dd138580022b3114a3f7a84/clang_format-20.1.8-py2.py3-none-musllinux_1_2_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "d5b98e5595a8d301c9695802664e4e00548a4c88a9fb6e434aac43e4778f06e1", + "md5": "bcdaaf7808495b075c2a406f4071126e", + "sha256": "8dbbdfce85bdde675dee98fdbcddee445e6a9492b2a2b04afabfd33525be5642" + }, + "downloads": -1, + "filename": "clang_format-20.1.8-py2.py3-none-musllinux_1_2_s390x.whl", + "has_sig": false, + "md5_digest": "bcdaaf7808495b075c2a406f4071126e", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3159351, + "upload_time": "2025-07-10T11:39:58", + "upload_time_iso_8601": "2025-07-10T11:39:58.950192Z", + "url": "https://files.pythonhosted.org/packages/d5/b9/8e5595a8d301c9695802664e4e00548a4c88a9fb6e434aac43e4778f06e1/clang_format-20.1.8-py2.py3-none-musllinux_1_2_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "5150d385c1eb678061a18ab1de198e8400bb8c69003ec54fd4220f1c34ea6c46", + "md5": "3d6694926f98553db2a2407349c732c2", + "sha256": "abc1b72f42db5db695d539b0a1b3cc3c125dfaa9c5baea0a94a3a2d6d1e50c1f" + }, + "downloads": -1, + "filename": "clang_format-20.1.8-py2.py3-none-musllinux_1_2_x86_64.whl", + "has_sig": false, + "md5_digest": "3d6694926f98553db2a2407349c732c2", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2809188, + "upload_time": "2025-07-10T11:40:00", + "upload_time_iso_8601": "2025-07-10T11:40:00.797807Z", + "url": "https://files.pythonhosted.org/packages/51/50/d385c1eb678061a18ab1de198e8400bb8c69003ec54fd4220f1c34ea6c46/clang_format-20.1.8-py2.py3-none-musllinux_1_2_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "a72de02502cd8c845f0b3e17c556648fd481aca0d77935adf8684cda5e4293e5", + "md5": "cd33086512f4faa330a5f21fdd0584df", + "sha256": "635b57361fa3caeb9449aa62584d7cd38fbee81dbf3addd6b1d7c377eb34e766" + }, + "downloads": -1, + "filename": "clang_format-20.1.8-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "cd33086512f4faa330a5f21fdd0584df", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1261819, + "upload_time": "2025-07-10T11:40:02", + "upload_time_iso_8601": "2025-07-10T11:40:02.194661Z", + "url": "https://files.pythonhosted.org/packages/a7/2d/e02502cd8c845f0b3e17c556648fd481aca0d77935adf8684cda5e4293e5/clang_format-20.1.8-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "bdee656287efdf58dccc7a7299fab547fe1313b49ca1ea1607ea475b262d640f", + "md5": "c4e9b55a14ed6395b32f5561efd9f235", + "sha256": "346ac8cab571eaba4d6b89dfa30fdbbc512db82a66ab0eeb1763cacc5977e325" + }, + "downloads": -1, + "filename": "clang_format-20.1.8-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "c4e9b55a14ed6395b32f5561efd9f235", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1414174, + "upload_time": "2025-07-10T11:40:03", + "upload_time_iso_8601": "2025-07-10T11:40:03.701096Z", + "url": "https://files.pythonhosted.org/packages/bd/ee/656287efdf58dccc7a7299fab547fe1313b49ca1ea1607ea475b262d640f/clang_format-20.1.8-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "8b2771cd96599d47229bd819dcc0c688a859764bb1b4960a23b8a75f8558c044", + "md5": "82841ae5a62343ef0cda5c149d68d62a", + "sha256": "d18b7b69697e97b6917a69f4bf48bf94e3827b016b491c90dd0f6ab917e37cf9" + }, + "downloads": -1, + "filename": "clang_format-20.1.8-py2.py3-none-win_arm64.whl", + "has_sig": false, + "md5_digest": "82841ae5a62343ef0cda5c149d68d62a", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1319592, + "upload_time": "2025-07-10T11:40:05", + "upload_time_iso_8601": "2025-07-10T11:40:05.441284Z", + "url": "https://files.pythonhosted.org/packages/8b/27/71cd96599d47229bd819dcc0c688a859764bb1b4960a23b8a75f8558c044/clang_format-20.1.8-py2.py3-none-win_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "62e56560d6466378597f76292a6f54702dcf8a3746edfbd5fbdcb54b12e9ac46", + "md5": "0daeaadaacadda2a8b87c6040c512dd0", + "sha256": "8ebd717257d8c7daf6bb1f703a4024f009a58941723eeb0d92ec493ce26aa520" + }, + "downloads": -1, + "filename": "clang_format-20.1.8.tar.gz", + "has_sig": false, + "md5_digest": "0daeaadaacadda2a8b87c6040c512dd0", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 11500, + "upload_time": "2025-07-10T11:40:06", + "upload_time_iso_8601": "2025-07-10T11:40:06.899369Z", + "url": "https://files.pythonhosted.org/packages/62/e5/6560d6466378597f76292a6f54702dcf8a3746edfbd5fbdcb54b12e9ac46/clang_format-20.1.8.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "21.1.0": [ + { + "comment_text": null, + "digests": { + "blake2b_256": "3e955e8639f364589ed76245ee9f7fbe6cf3efa1c88dd83529572c1fea2c3b4e", + "md5": "e78dca50a0d5ff2520fc93b456a4e961", + "sha256": "6236a95eef907ec29bbe10dd1f91c87c229cb808675b44718420ae10ee50b6b0" + }, + "downloads": -1, + "filename": "clang_format-21.1.0-py2.py3-none-macosx_10_9_x86_64.whl", + "has_sig": false, + "md5_digest": "e78dca50a0d5ff2520fc93b456a4e961", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1440178, + "upload_time": "2025-08-28T13:00:41", + "upload_time_iso_8601": "2025-08-28T13:00:41.807290Z", + "url": "https://files.pythonhosted.org/packages/3e/95/5e8639f364589ed76245ee9f7fbe6cf3efa1c88dd83529572c1fea2c3b4e/clang_format-21.1.0-py2.py3-none-macosx_10_9_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "76bc8245836650263de3217341c5724948844531e10350832f9be403b1b3df28", + "md5": "4769661178b43224d15e2341fa187d0d", + "sha256": "73c920788579fa482a9e852ecc11dfae8dedcc05f3c074bcc6b2b9eb76042783" + }, + "downloads": -1, + "filename": "clang_format-21.1.0-py2.py3-none-macosx_11_0_arm64.whl", + "has_sig": false, + "md5_digest": "4769661178b43224d15e2341fa187d0d", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1458792, + "upload_time": "2025-08-28T13:00:43", + "upload_time_iso_8601": "2025-08-28T13:00:43.513752Z", + "url": "https://files.pythonhosted.org/packages/76/bc/8245836650263de3217341c5724948844531e10350832f9be403b1b3df28/clang_format-21.1.0-py2.py3-none-macosx_11_0_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "22a28a86457403df98a4707a00b6cbb9ddae9f50fc6338b72329155b72692248", + "md5": "a75dd0b2460746db6137ba547450651e", + "sha256": "659431fda408ddcc7db5a4b61ee7ca805f00e21536f97807148fd62922e6f60e" + }, + "downloads": -1, + "filename": "clang_format-21.1.0-py2.py3-none-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", + "has_sig": false, + "md5_digest": "a75dd0b2460746db6137ba547450651e", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1725539, + "upload_time": "2025-08-28T13:00:44", + "upload_time_iso_8601": "2025-08-28T13:00:44.907536Z", + "url": "https://files.pythonhosted.org/packages/22/a2/8a86457403df98a4707a00b6cbb9ddae9f50fc6338b72329155b72692248/clang_format-21.1.0-py2.py3-none-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "d7afd54a065e40c9a37aa5bb73223e57d0f7cced05d3f9b63db2b49f8837eaf4", + "md5": "d27a2bdb74c76941ddfa3063d6f4fdc2", + "sha256": "fa5b838305c8cf0196b47a8351824dfda96aa5c5a8b01af0399fe02a082d0242" + }, + "downloads": -1, + "filename": "clang_format-21.1.0-py2.py3-none-manylinux_2_26_i686.manylinux_2_28_i686.whl", + "has_sig": false, + "md5_digest": "d27a2bdb74c76941ddfa3063d6f4fdc2", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1856753, + "upload_time": "2025-08-28T13:00:46", + "upload_time_iso_8601": "2025-08-28T13:00:46.252395Z", + "url": "https://files.pythonhosted.org/packages/d7/af/d54a065e40c9a37aa5bb73223e57d0f7cced05d3f9b63db2b49f8837eaf4/clang_format-21.1.0-py2.py3-none-manylinux_2_26_i686.manylinux_2_28_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "b39d31ec938f57b3ab53fa8d262d50508e7784bb4ba6a4c8342b6cdb1fb32262", + "md5": "b1f2e54636e5818d8b944810e97d4f98", + "sha256": "6fb29b6eaf11e05b09221125b72727e756746c66b192b6c377bbf5367783517b" + }, + "downloads": -1, + "filename": "clang_format-21.1.0-py2.py3-none-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", + "has_sig": false, + "md5_digest": "b1f2e54636e5818d8b944810e97d4f98", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2031520, + "upload_time": "2025-08-28T13:00:47", + "upload_time_iso_8601": "2025-08-28T13:00:47.538117Z", + "url": "https://files.pythonhosted.org/packages/b3/9d/31ec938f57b3ab53fa8d262d50508e7784bb4ba6a4c8342b6cdb1fb32262/clang_format-21.1.0-py2.py3-none-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "261449abed6b23b285f2f6a4e8d7bd2613f636f54cdd3df3948d5c1d990b62c1", + "md5": "8cf0a15026541f3ae902318781244717", + "sha256": "484519c41d1907c4830402b5445163eb5ba1bf347e6c1afb4cc2f5bdb5900290" + }, + "downloads": -1, + "filename": "clang_format-21.1.0-py2.py3-none-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", + "has_sig": false, + "md5_digest": "8cf0a15026541f3ae902318781244717", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2047836, + "upload_time": "2025-08-28T13:00:49", + "upload_time_iso_8601": "2025-08-28T13:00:49.461268Z", + "url": "https://files.pythonhosted.org/packages/26/14/49abed6b23b285f2f6a4e8d7bd2613f636f54cdd3df3948d5c1d990b62c1/clang_format-21.1.0-py2.py3-none-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "0c10a59f69789fa3f1b4714384bfaaa311c1dfc061594880c5b0b05bf9f84bf1", + "md5": "6455827ce404af2a2bccef78544d37e1", + "sha256": "e92b8c2b19dfeba7c63d44ac3b2a87e9702a43daef8c8eaca390ae1c691a9c5f" + }, + "downloads": -1, + "filename": "clang_format-21.1.0-py2.py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", + "has_sig": false, + "md5_digest": "6455827ce404af2a2bccef78544d37e1", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1805067, + "upload_time": "2025-08-28T13:00:50", + "upload_time_iso_8601": "2025-08-28T13:00:50.798631Z", + "url": "https://files.pythonhosted.org/packages/0c/10/a59f69789fa3f1b4714384bfaaa311c1dfc061594880c5b0b05bf9f84bf1/clang_format-21.1.0-py2.py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "26dffe20812714cf26d8bff2528a308352ba993c3954fc0cd1534be861946530", + "md5": "f510872a759d5a0b3459e3faf3e43858", + "sha256": "c4b5ce86476e1e45171fed46256ad93d0b0769fbc3f6be3db331dbe51e62e1b9" + }, + "downloads": -1, + "filename": "clang_format-21.1.0-py2.py3-none-manylinux_2_31_armv7l.whl", + "has_sig": false, + "md5_digest": "f510872a759d5a0b3459e3faf3e43858", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1643122, + "upload_time": "2025-08-28T13:00:52", + "upload_time_iso_8601": "2025-08-28T13:00:52.427252Z", + "url": "https://files.pythonhosted.org/packages/26/df/fe20812714cf26d8bff2528a308352ba993c3954fc0cd1534be861946530/clang_format-21.1.0-py2.py3-none-manylinux_2_31_armv7l.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "18bc8a655088dccc0670d72ebb89b1c8da8f43c08106aeadeb1c5a3103e62e39", + "md5": "c46b2d4083a5972d00d095165f80a9c1", + "sha256": "454681bb79c5abca98b611865bcfc1ac5e71a561d97ccc2ca7f9c18b04376280" + }, + "downloads": -1, + "filename": "clang_format-21.1.0-py2.py3-none-musllinux_1_2_aarch64.whl", + "has_sig": false, + "md5_digest": "c46b2d4083a5972d00d095165f80a9c1", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2701115, + "upload_time": "2025-08-28T13:00:53", + "upload_time_iso_8601": "2025-08-28T13:00:53.627420Z", + "url": "https://files.pythonhosted.org/packages/18/bc/8a655088dccc0670d72ebb89b1c8da8f43c08106aeadeb1c5a3103e62e39/clang_format-21.1.0-py2.py3-none-musllinux_1_2_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "71571e2041a0697b6f1da879ae4d57acbe86cf1c6af162a25ece543713f25eed", + "md5": "723e2decd8fd4fada91226931e288a82", + "sha256": "51315e8bc85265d18ee8bff67a832a9e0f07c082b55f7481b614f00f8a0d336d" + }, + "downloads": -1, + "filename": "clang_format-21.1.0-py2.py3-none-musllinux_1_2_armv7l.whl", + "has_sig": false, + "md5_digest": "723e2decd8fd4fada91226931e288a82", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2480511, + "upload_time": "2025-08-28T13:00:55", + "upload_time_iso_8601": "2025-08-28T13:00:55.088189Z", + "url": "https://files.pythonhosted.org/packages/71/57/1e2041a0697b6f1da879ae4d57acbe86cf1c6af162a25ece543713f25eed/clang_format-21.1.0-py2.py3-none-musllinux_1_2_armv7l.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "3206c8461be6f92a1b1f023fc5c3cbb5b06fc497989835d5d82fdb3a81e4c03e", + "md5": "87d49c0119242854c3a7b9e3925d8293", + "sha256": "1c22fd3a8d74cc327d1c4fea81c2dfe23c117a0ae519e8b146b9ae9536ab3932" + }, + "downloads": -1, + "filename": "clang_format-21.1.0-py2.py3-none-musllinux_1_2_i686.whl", + "has_sig": false, + "md5_digest": "87d49c0119242854c3a7b9e3925d8293", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2953793, + "upload_time": "2025-08-28T13:00:56", + "upload_time_iso_8601": "2025-08-28T13:00:56.500142Z", + "url": "https://files.pythonhosted.org/packages/32/06/c8461be6f92a1b1f023fc5c3cbb5b06fc497989835d5d82fdb3a81e4c03e/clang_format-21.1.0-py2.py3-none-musllinux_1_2_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "681596fae51d1b7453cc7ffc551a8c8bda33fa0a8a281caf7f19a61fe682b3c2", + "md5": "afed1206c6601e11f032a527278f316e", + "sha256": "89a27520f6a15184e66f92f3636c2596d4646c1211f57dda0122ab53531455dd" + }, + "downloads": -1, + "filename": "clang_format-21.1.0-py2.py3-none-musllinux_1_2_ppc64le.whl", + "has_sig": false, + "md5_digest": "afed1206c6601e11f032a527278f316e", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3075710, + "upload_time": "2025-08-28T13:00:58", + "upload_time_iso_8601": "2025-08-28T13:00:58.309474Z", + "url": "https://files.pythonhosted.org/packages/68/15/96fae51d1b7453cc7ffc551a8c8bda33fa0a8a281caf7f19a61fe682b3c2/clang_format-21.1.0-py2.py3-none-musllinux_1_2_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "52130ea5cf75c6ca46ba004e6fa4e0f5d3a5371684605fe7efa5715769a1819b", + "md5": "0e5ea95c7d59ac405d4892936def29d2", + "sha256": "37459d13972baa75f5ae89a1a5c964dc3dbd4cf817405331ee4e43f4c93726e4" + }, + "downloads": -1, + "filename": "clang_format-21.1.0-py2.py3-none-musllinux_1_2_s390x.whl", + "has_sig": false, + "md5_digest": "0e5ea95c7d59ac405d4892936def29d2", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3159782, + "upload_time": "2025-08-28T13:00:59", + "upload_time_iso_8601": "2025-08-28T13:00:59.964976Z", + "url": "https://files.pythonhosted.org/packages/52/13/0ea5cf75c6ca46ba004e6fa4e0f5d3a5371684605fe7efa5715769a1819b/clang_format-21.1.0-py2.py3-none-musllinux_1_2_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "06af24a6690a71223514df7425572fff53136ce0e10c717a50809f507e4d059b", + "md5": "64e379d0a23fa39335f6126d90138d6e", + "sha256": "adbb8f3c1a762760e1bfc262c0503e8f5644237245a5a391fa3f5e9c07a67a17" + }, + "downloads": -1, + "filename": "clang_format-21.1.0-py2.py3-none-musllinux_1_2_x86_64.whl", + "has_sig": false, + "md5_digest": "64e379d0a23fa39335f6126d90138d6e", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2811821, + "upload_time": "2025-08-28T13:01:01", + "upload_time_iso_8601": "2025-08-28T13:01:01.595441Z", + "url": "https://files.pythonhosted.org/packages/06/af/24a6690a71223514df7425572fff53136ce0e10c717a50809f507e4d059b/clang_format-21.1.0-py2.py3-none-musllinux_1_2_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "fa5b87793d3e483d5581fe80ae10b8ee0eb08e3bb30635a094f312c689b5fc2a", + "md5": "d5cb585917c2485472e31590bb398ab4", + "sha256": "9b6c9829ce8f7147f46c02258034e5c61d2a2422d318d7106f3be610b3af5d0f" + }, + "downloads": -1, + "filename": "clang_format-21.1.0-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "d5cb585917c2485472e31590bb398ab4", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1271179, + "upload_time": "2025-08-28T13:01:03", + "upload_time_iso_8601": "2025-08-28T13:01:03.018385Z", + "url": "https://files.pythonhosted.org/packages/fa/5b/87793d3e483d5581fe80ae10b8ee0eb08e3bb30635a094f312c689b5fc2a/clang_format-21.1.0-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "968ea8f1c3402fd1b4d82f070b54c0a14b6f013b56afb89e94c87de22e1dc460", + "md5": "227e956bd3f8b7b296be63e0af949d75", + "sha256": "66ce3758896d0fe1e4161425aae40d62d4154cfaf99516b5956a60ad29983671" + }, + "downloads": -1, + "filename": "clang_format-21.1.0-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "227e956bd3f8b7b296be63e0af949d75", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1426251, + "upload_time": "2025-08-28T13:01:04", + "upload_time_iso_8601": "2025-08-28T13:01:04.317441Z", + "url": "https://files.pythonhosted.org/packages/96/8e/a8f1c3402fd1b4d82f070b54c0a14b6f013b56afb89e94c87de22e1dc460/clang_format-21.1.0-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "1b13cd1ee25536e8521052a97905bccab2f752b118b5d9e64c74738938af8ad6", + "md5": "79a76f3330b673f31c2b3fc20085f3d3", + "sha256": "827b2edd312242d80f468de07e7828596b8ec552f64d8a335c89464990b4cf45" + }, + "downloads": -1, + "filename": "clang_format-21.1.0-py2.py3-none-win_arm64.whl", + "has_sig": false, + "md5_digest": "79a76f3330b673f31c2b3fc20085f3d3", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1327118, + "upload_time": "2025-08-28T13:01:05", + "upload_time_iso_8601": "2025-08-28T13:01:05.663678Z", + "url": "https://files.pythonhosted.org/packages/1b/13/cd1ee25536e8521052a97905bccab2f752b118b5d9e64c74738938af8ad6/clang_format-21.1.0-py2.py3-none-win_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "3deea74fc859121d1953b5fdfe0fd72ee50ed4d6755503a6c5298bc779eff6dd", + "md5": "fe11938fee706c7a8138893d82d44b88", + "sha256": "68c156ae00c54ddc6387c2ee0131da6a787af4db631a9f351b0d797cc992a6f0" + }, + "downloads": -1, + "filename": "clang_format-21.1.0.tar.gz", + "has_sig": false, + "md5_digest": "fe11938fee706c7a8138893d82d44b88", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 11500, + "upload_time": "2025-08-28T13:01:07", + "upload_time_iso_8601": "2025-08-28T13:01:07.054030Z", + "url": "https://files.pythonhosted.org/packages/3d/ee/a74fc859121d1953b5fdfe0fd72ee50ed4d6755503a6c5298bc779eff6dd/clang_format-21.1.0.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "21.1.1": [ + { + "comment_text": null, + "digests": { + "blake2b_256": "d1abf71653a551617589bfa02f4d5d48c3f16cd53f7da5ea95e9dfc11301ac51", + "md5": "957ab3f64ebb5b02c44b32962aa47f49", + "sha256": "f0c9ccba2b8f1a705c25b5f419aa7f66eaf11608ee8fc7f256d5f2bfb95370cc" + }, + "downloads": -1, + "filename": "clang_format-21.1.1-py2.py3-none-macosx_10_9_x86_64.whl", + "has_sig": false, + "md5_digest": "957ab3f64ebb5b02c44b32962aa47f49", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1440165, + "upload_time": "2025-09-15T13:30:44", + "upload_time_iso_8601": "2025-09-15T13:30:44.327598Z", + "url": "https://files.pythonhosted.org/packages/d1/ab/f71653a551617589bfa02f4d5d48c3f16cd53f7da5ea95e9dfc11301ac51/clang_format-21.1.1-py2.py3-none-macosx_10_9_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "dcec473d9b6742553fe2eb4a1f2265643e42ea16fb067e63bf823b09325bdd71", + "md5": "6b935a4b4a7732dad51b8889327d1fea", + "sha256": "6846e08985b5fe02754d6d3c74acbbc45b63bd6a8519c046133db29b7acf2535" + }, + "downloads": -1, + "filename": "clang_format-21.1.1-py2.py3-none-macosx_11_0_arm64.whl", + "has_sig": false, + "md5_digest": "6b935a4b4a7732dad51b8889327d1fea", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1458782, + "upload_time": "2025-09-15T13:30:46", + "upload_time_iso_8601": "2025-09-15T13:30:46.334908Z", + "url": "https://files.pythonhosted.org/packages/dc/ec/473d9b6742553fe2eb4a1f2265643e42ea16fb067e63bf823b09325bdd71/clang_format-21.1.1-py2.py3-none-macosx_11_0_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "fc2a434f4bdf50dbda0a70dd5a55dcd319a05af573fc3de2f10dd9ec72700b72", + "md5": "5cfa60e26f3c0cddb969aa56aeba4ca4", + "sha256": "05bcf1cf294659ce4264572c96f660683bb377b021af4e3146dd6b324bc980ba" + }, + "downloads": -1, + "filename": "clang_format-21.1.1-py2.py3-none-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", + "has_sig": false, + "md5_digest": "5cfa60e26f3c0cddb969aa56aeba4ca4", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1725531, + "upload_time": "2025-09-15T13:30:47", + "upload_time_iso_8601": "2025-09-15T13:30:47.633985Z", + "url": "https://files.pythonhosted.org/packages/fc/2a/434f4bdf50dbda0a70dd5a55dcd319a05af573fc3de2f10dd9ec72700b72/clang_format-21.1.1-py2.py3-none-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "b329bb463722317f57b8185c26c2f93411d5f0185aae1fcd42420c3ad14faeaa", + "md5": "a523183843c3727925c2d757951bf146", + "sha256": "5fc34267ed5bbbb9cf8e81162e7478842782981a88615bb4e574ff05eb09fb7f" + }, + "downloads": -1, + "filename": "clang_format-21.1.1-py2.py3-none-manylinux_2_26_i686.manylinux_2_28_i686.whl", + "has_sig": false, + "md5_digest": "a523183843c3727925c2d757951bf146", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1856742, + "upload_time": "2025-09-15T13:30:49", + "upload_time_iso_8601": "2025-09-15T13:30:49.242960Z", + "url": "https://files.pythonhosted.org/packages/b3/29/bb463722317f57b8185c26c2f93411d5f0185aae1fcd42420c3ad14faeaa/clang_format-21.1.1-py2.py3-none-manylinux_2_26_i686.manylinux_2_28_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "a03135dcd64c1b3f6d5ca77788aaaeeee03398111b944a2769e45612d9922003", + "md5": "3a4b341127ed662f0f88e0a730006827", + "sha256": "7bb373df9bbcc20ae3fd69f809824847e499dd86ce0c0b44285e8b34f69d2693" + }, + "downloads": -1, + "filename": "clang_format-21.1.1-py2.py3-none-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", + "has_sig": false, + "md5_digest": "3a4b341127ed662f0f88e0a730006827", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2031512, + "upload_time": "2025-09-15T13:30:51", + "upload_time_iso_8601": "2025-09-15T13:30:51.083083Z", + "url": "https://files.pythonhosted.org/packages/a0/31/35dcd64c1b3f6d5ca77788aaaeeee03398111b944a2769e45612d9922003/clang_format-21.1.1-py2.py3-none-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "6a65e284e0aaa1e31da8694d65fdf515ee1ecdbae829321ef6e7aeb494eaeae4", + "md5": "ddb76b639fc6608d0fc65e27829382fb", + "sha256": "405fe6f72d8decfd6dc3f9994fb6675b9ba7bc5ddda362979aa26c63e4e4424c" + }, + "downloads": -1, + "filename": "clang_format-21.1.1-py2.py3-none-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", + "has_sig": false, + "md5_digest": "ddb76b639fc6608d0fc65e27829382fb", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2047833, + "upload_time": "2025-09-15T13:30:52", + "upload_time_iso_8601": "2025-09-15T13:30:52.591700Z", + "url": "https://files.pythonhosted.org/packages/6a/65/e284e0aaa1e31da8694d65fdf515ee1ecdbae829321ef6e7aeb494eaeae4/clang_format-21.1.1-py2.py3-none-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "101692b69225753e3accf1d3b94b1c0ca3aef7e6f3ff07d5caac5bf2d2dbd919", + "md5": "26022016bc44f522bf9ae13e7918d81c", + "sha256": "6e4b0e8e383b871ca3e3bc99fee21adea44091baecb37b210de74f91dff421ac" + }, + "downloads": -1, + "filename": "clang_format-21.1.1-py2.py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", + "has_sig": false, + "md5_digest": "26022016bc44f522bf9ae13e7918d81c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1805059, + "upload_time": "2025-09-15T13:30:54", + "upload_time_iso_8601": "2025-09-15T13:30:54.317071Z", + "url": "https://files.pythonhosted.org/packages/10/16/92b69225753e3accf1d3b94b1c0ca3aef7e6f3ff07d5caac5bf2d2dbd919/clang_format-21.1.1-py2.py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "8f7e5274208d3d80868d7ff392e020cec6794f7e12bb9391d5b02ee3a120d8ad", + "md5": "f5203aaf623c825556e6f1b773a733a0", + "sha256": "8a1c8fd436b6f158b234e5c6c5e19192d92d12b88059a6a36174550f2a1c1d6d" + }, + "downloads": -1, + "filename": "clang_format-21.1.1-py2.py3-none-manylinux_2_31_armv7l.whl", + "has_sig": false, + "md5_digest": "f5203aaf623c825556e6f1b773a733a0", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1643111, + "upload_time": "2025-09-15T13:30:56", + "upload_time_iso_8601": "2025-09-15T13:30:56.040404Z", + "url": "https://files.pythonhosted.org/packages/8f/7e/5274208d3d80868d7ff392e020cec6794f7e12bb9391d5b02ee3a120d8ad/clang_format-21.1.1-py2.py3-none-manylinux_2_31_armv7l.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "cfc4d429dfc341e3e42f01cfc1dbe8dcd18cd7a1d45962f338c72f850de8b29e", + "md5": "1d90c265145249159e6446e7137aaa9c", + "sha256": "54206d553f16652912e7aef1c92073f08444a337b3d606a96a665f54c21a6818" + }, + "downloads": -1, + "filename": "clang_format-21.1.1-py2.py3-none-musllinux_1_2_aarch64.whl", + "has_sig": false, + "md5_digest": "1d90c265145249159e6446e7137aaa9c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2701109, + "upload_time": "2025-09-15T13:30:57", + "upload_time_iso_8601": "2025-09-15T13:30:57.838566Z", + "url": "https://files.pythonhosted.org/packages/cf/c4/d429dfc341e3e42f01cfc1dbe8dcd18cd7a1d45962f338c72f850de8b29e/clang_format-21.1.1-py2.py3-none-musllinux_1_2_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "cd2e2c689497dfce43f43982d6632110642fa292101020bc5ad7d8235ca44de0", + "md5": "482f45f7de71037d0b2ce6c31bb54e12", + "sha256": "551d07d005b62497a74bc33ffdf99d38f3da460f5dd66c95b776b3b9af0269a9" + }, + "downloads": -1, + "filename": "clang_format-21.1.1-py2.py3-none-musllinux_1_2_armv7l.whl", + "has_sig": false, + "md5_digest": "482f45f7de71037d0b2ce6c31bb54e12", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2480501, + "upload_time": "2025-09-15T13:30:59", + "upload_time_iso_8601": "2025-09-15T13:30:59.104682Z", + "url": "https://files.pythonhosted.org/packages/cd/2e/2c689497dfce43f43982d6632110642fa292101020bc5ad7d8235ca44de0/clang_format-21.1.1-py2.py3-none-musllinux_1_2_armv7l.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "2d6adbf688cc286bfd889bcfdc0855c5780aaf20f6df8c0b314928c07773e8c6", + "md5": "87d9fb7fb39c34d3fa7c868637359116", + "sha256": "ac50a8afa1b9e8b1190a8ea7cc2e0ab7db66e17f2e20e9eb623435b0b1fc4a73" + }, + "downloads": -1, + "filename": "clang_format-21.1.1-py2.py3-none-musllinux_1_2_i686.whl", + "has_sig": false, + "md5_digest": "87d9fb7fb39c34d3fa7c868637359116", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2953781, + "upload_time": "2025-09-15T13:31:00", + "upload_time_iso_8601": "2025-09-15T13:31:00.679075Z", + "url": "https://files.pythonhosted.org/packages/2d/6a/dbf688cc286bfd889bcfdc0855c5780aaf20f6df8c0b314928c07773e8c6/clang_format-21.1.1-py2.py3-none-musllinux_1_2_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "ee43761cbf5f124fd676b56f1eceae683c389f1e68872a9759f7f51666d98351", + "md5": "0ed747135c864b5092c03dc8e3d31185", + "sha256": "77eb61570bad8b35e8617352fcf87235f723435bdf63172e919c58ad4273d1f5" + }, + "downloads": -1, + "filename": "clang_format-21.1.1-py2.py3-none-musllinux_1_2_ppc64le.whl", + "has_sig": false, + "md5_digest": "0ed747135c864b5092c03dc8e3d31185", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3075704, + "upload_time": "2025-09-15T13:31:02", + "upload_time_iso_8601": "2025-09-15T13:31:02.371895Z", + "url": "https://files.pythonhosted.org/packages/ee/43/761cbf5f124fd676b56f1eceae683c389f1e68872a9759f7f51666d98351/clang_format-21.1.1-py2.py3-none-musllinux_1_2_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "ed0271326d2a3e23c5fca1fbac03384fd55931bed42567c9ca2627fb72d07b3f", + "md5": "792cd5e73917e45d209e5714eb2f9303", + "sha256": "86b4ae56792b388167eb321fd22e1f2fd6cdda8ada9f1bfa0c1ec7e9e0045e49" + }, + "downloads": -1, + "filename": "clang_format-21.1.1-py2.py3-none-musllinux_1_2_s390x.whl", + "has_sig": false, + "md5_digest": "792cd5e73917e45d209e5714eb2f9303", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3159772, + "upload_time": "2025-09-15T13:31:04", + "upload_time_iso_8601": "2025-09-15T13:31:04.221596Z", + "url": "https://files.pythonhosted.org/packages/ed/02/71326d2a3e23c5fca1fbac03384fd55931bed42567c9ca2627fb72d07b3f/clang_format-21.1.1-py2.py3-none-musllinux_1_2_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "9998e3eb7c567ccc52fbedea8c7bea4e69144d567d3458372a3433bb66b3f871", + "md5": "b19cd9ec9db46657ed24d5bd5845bb0c", + "sha256": "02f7f2fbf8db7f1080ad7f1ab9d3ee46ce7bc706d08a4c8ba7177c33419adb43" + }, + "downloads": -1, + "filename": "clang_format-21.1.1-py2.py3-none-musllinux_1_2_x86_64.whl", + "has_sig": false, + "md5_digest": "b19cd9ec9db46657ed24d5bd5845bb0c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2811810, + "upload_time": "2025-09-15T13:31:06", + "upload_time_iso_8601": "2025-09-15T13:31:06.058884Z", + "url": "https://files.pythonhosted.org/packages/99/98/e3eb7c567ccc52fbedea8c7bea4e69144d567d3458372a3433bb66b3f871/clang_format-21.1.1-py2.py3-none-musllinux_1_2_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "8b7b0e067856bd9fa73d0fee4eb477786bd2f26925c03eda24872d63e8826d89", + "md5": "33210fc7f765fbd37b95206b8fc72d4f", + "sha256": "16ca3ee50f3abc0ec1a4323ebe7d256d1a6c31deb32b7bd86d338a7a8c74ddaf" + }, + "downloads": -1, + "filename": "clang_format-21.1.1-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "33210fc7f765fbd37b95206b8fc72d4f", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1271174, + "upload_time": "2025-09-15T13:31:07", + "upload_time_iso_8601": "2025-09-15T13:31:07.326707Z", + "url": "https://files.pythonhosted.org/packages/8b/7b/0e067856bd9fa73d0fee4eb477786bd2f26925c03eda24872d63e8826d89/clang_format-21.1.1-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "4ae01d343ba7e588e5ec37cb060a47ae80f790bdbe9bf3c2dac3767e716384d0", + "md5": "87d01976df95df1b557d8f1c601ab399", + "sha256": "93fc6152fbc0f5999bf89fdcc256c18295b446bf3b16e2488b697849773d5fab" + }, + "downloads": -1, + "filename": "clang_format-21.1.1-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "87d01976df95df1b557d8f1c601ab399", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1426244, + "upload_time": "2025-09-15T13:31:08", + "upload_time_iso_8601": "2025-09-15T13:31:08.594763Z", + "url": "https://files.pythonhosted.org/packages/4a/e0/1d343ba7e588e5ec37cb060a47ae80f790bdbe9bf3c2dac3767e716384d0/clang_format-21.1.1-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "c0252aa3ba42b4899d72b76c19ee3205771a7572bd1a740e11ee723cc555f0d6", + "md5": "e459b7d1de943471511bad6d0fbe2ac1", + "sha256": "0bd04209a79dd54cf9e7904c5effaaff3b82c991bfdf3f727f05560dd16a03bb" + }, + "downloads": -1, + "filename": "clang_format-21.1.1-py2.py3-none-win_arm64.whl", + "has_sig": false, + "md5_digest": "e459b7d1de943471511bad6d0fbe2ac1", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1327112, + "upload_time": "2025-09-15T13:31:10", + "upload_time_iso_8601": "2025-09-15T13:31:10.407219Z", + "url": "https://files.pythonhosted.org/packages/c0/25/2aa3ba42b4899d72b76c19ee3205771a7572bd1a740e11ee723cc555f0d6/clang_format-21.1.1-py2.py3-none-win_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "c23cc49697a5b98bc4a03bc78a985e6f3f6c2c0baa93b3879a093c2ac2cf03d9", + "md5": "ddff07169c5021546582350e07a129e7", + "sha256": "d4cf429260d05527cf397027b4b92efd7220680c761d5613f6e9113753ee3127" + }, + "downloads": -1, + "filename": "clang_format-21.1.1.tar.gz", + "has_sig": false, + "md5_digest": "ddff07169c5021546582350e07a129e7", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 11501, + "upload_time": "2025-09-15T13:31:11", + "upload_time_iso_8601": "2025-09-15T13:31:11.946872Z", + "url": "https://files.pythonhosted.org/packages/c2/3c/c49697a5b98bc4a03bc78a985e6f3f6c2c0baa93b3879a093c2ac2cf03d9/clang_format-21.1.1.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "21.1.2": [ + { + "comment_text": null, + "digests": { + "blake2b_256": "7d970bb5a6866dfb5f55f7e6ca79466cb0b0081fccbc9f57887949ff23b5c38a", + "md5": "3a64ae5c602adb48ae7f8d806a70d6f4", + "sha256": "00498efb43d60d7ac4195362009a79936d26145a9a90cdfa7a6013a62ab3c40c" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-macosx_10_9_x86_64.whl", + "has_sig": false, + "md5_digest": "3a64ae5c602adb48ae7f8d806a70d6f4", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1440163, + "upload_time": "2025-09-24T16:35:25", + "upload_time_iso_8601": "2025-09-24T16:35:25.009882Z", + "url": "https://files.pythonhosted.org/packages/7d/97/0bb5a6866dfb5f55f7e6ca79466cb0b0081fccbc9f57887949ff23b5c38a/clang_format-21.1.2-py2.py3-none-macosx_10_9_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "ba90b8230efcff90a8543da3fb7fc09d7077afebaba019eceb1686d4db94cac3", + "md5": "b859f15595bc15c423474971533bf2cc", + "sha256": "fc034652dee24583633177d800bc9deebcc9c65eb7ab53b25bbd0fbd443392a9" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-macosx_11_0_arm64.whl", + "has_sig": false, + "md5_digest": "b859f15595bc15c423474971533bf2cc", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1458874, + "upload_time": "2025-09-24T16:35:27", + "upload_time_iso_8601": "2025-09-24T16:35:27.149448Z", + "url": "https://files.pythonhosted.org/packages/ba/90/b8230efcff90a8543da3fb7fc09d7077afebaba019eceb1686d4db94cac3/clang_format-21.1.2-py2.py3-none-macosx_11_0_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "c58361fadfa8d62a288d778e0a1ad2f73b01abca64574ee34c5d6d078e0821da", + "md5": "d5787b1fe2771a9a1bcd02d296920e01", + "sha256": "f66d2bcf98df1373df6ab4544a2b881e9816985b606e1144e4c77dc8ac87b826" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", + "has_sig": false, + "md5_digest": "d5787b1fe2771a9a1bcd02d296920e01", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1725525, + "upload_time": "2025-09-24T16:35:28", + "upload_time_iso_8601": "2025-09-24T16:35:28.818992Z", + "url": "https://files.pythonhosted.org/packages/c5/83/61fadfa8d62a288d778e0a1ad2f73b01abca64574ee34c5d6d078e0821da/clang_format-21.1.2-py2.py3-none-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "8d76ad4ae3f3752fb8174d5c13f4596e3b966ab2aa5c25f04d219713722d4c26", + "md5": "fa86894f00c0201f8658ae2de3a8e3a5", + "sha256": "7e0e98f39f16b93c8740028148c72f9ba64d0a43f51a15fb0e861610c1e1e573" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-manylinux_2_26_i686.manylinux_2_28_i686.whl", + "has_sig": false, + "md5_digest": "fa86894f00c0201f8658ae2de3a8e3a5", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1856744, + "upload_time": "2025-09-24T16:35:30", + "upload_time_iso_8601": "2025-09-24T16:35:30.184966Z", + "url": "https://files.pythonhosted.org/packages/8d/76/ad4ae3f3752fb8174d5c13f4596e3b966ab2aa5c25f04d219713722d4c26/clang_format-21.1.2-py2.py3-none-manylinux_2_26_i686.manylinux_2_28_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "75bc185bf2c41eaed4b2efb209f29e9569cb101d6e3f6e19b24dd8064d414449", + "md5": "a597f197c4c4d26c214eed146334f1ef", + "sha256": "95e74c050cb5246a88ba7306c82dc3a7d6adb5145f49d188d5602967e4133336" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", + "has_sig": false, + "md5_digest": "a597f197c4c4d26c214eed146334f1ef", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2031516, + "upload_time": "2025-09-24T16:35:32", + "upload_time_iso_8601": "2025-09-24T16:35:32.003773Z", + "url": "https://files.pythonhosted.org/packages/75/bc/185bf2c41eaed4b2efb209f29e9569cb101d6e3f6e19b24dd8064d414449/clang_format-21.1.2-py2.py3-none-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "d923c88f518493e3e5a4aabdcf203026298fd4c9b1107b3734eb766255cbfe3c", + "md5": "d2f96469e9a518ab2b23b2c83a2ed9c4", + "sha256": "00f4459773ee3e8c0e20578ee800da1fa7fac98c4b0053e13afa450baca0764c" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", + "has_sig": false, + "md5_digest": "d2f96469e9a518ab2b23b2c83a2ed9c4", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2047836, + "upload_time": "2025-09-24T16:35:33", + "upload_time_iso_8601": "2025-09-24T16:35:33.742038Z", + "url": "https://files.pythonhosted.org/packages/d9/23/c88f518493e3e5a4aabdcf203026298fd4c9b1107b3734eb766255cbfe3c/clang_format-21.1.2-py2.py3-none-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "fbac3c04772acc0257f5730e83adb542b2603c1a62d1315010ab593a980af404", + "md5": "9295c5112df996ca7bbbdd4d6d803ae0", + "sha256": "6d7caf74fe89154258ddfd63984c98ffe902ef98f013ac517178fc44d72861ff" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", + "has_sig": false, + "md5_digest": "9295c5112df996ca7bbbdd4d6d803ae0", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1805060, + "upload_time": "2025-09-24T16:35:35", + "upload_time_iso_8601": "2025-09-24T16:35:35.256883Z", + "url": "https://files.pythonhosted.org/packages/fb/ac/3c04772acc0257f5730e83adb542b2603c1a62d1315010ab593a980af404/clang_format-21.1.2-py2.py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "33cfffe750d45187268f7f87942f046095f84dd936502800ccb067dda7c69416", + "md5": "f7eea64108d27bde6f8f931bf3967d3e", + "sha256": "5ddf9afd329c2788998a1563f98cc2a0b911497bc79bc22b7d44fd1471c047de" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-manylinux_2_31_armv7l.whl", + "has_sig": false, + "md5_digest": "f7eea64108d27bde6f8f931bf3967d3e", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1643097, + "upload_time": "2025-09-24T16:35:36", + "upload_time_iso_8601": "2025-09-24T16:35:36.791148Z", + "url": "https://files.pythonhosted.org/packages/33/cf/ffe750d45187268f7f87942f046095f84dd936502800ccb067dda7c69416/clang_format-21.1.2-py2.py3-none-manylinux_2_31_armv7l.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "e86f5276f982144423031d6195cc040c5de4cfeb78c6bbadc5f39279abe44c5b", + "md5": "2f112558948077f4aa58e02ce9abf681", + "sha256": "a1fe2ad12b6779b0e60e43ffe57947f51ea9fe4d5887452a31266bb6bb966195" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-musllinux_1_2_aarch64.whl", + "has_sig": false, + "md5_digest": "2f112558948077f4aa58e02ce9abf681", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2701106, + "upload_time": "2025-09-24T16:35:38", + "upload_time_iso_8601": "2025-09-24T16:35:38.107589Z", + "url": "https://files.pythonhosted.org/packages/e8/6f/5276f982144423031d6195cc040c5de4cfeb78c6bbadc5f39279abe44c5b/clang_format-21.1.2-py2.py3-none-musllinux_1_2_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "91bf12140510383a2bedc313ceaf2b4d91a571b84a06623ea8026d03953a8547", + "md5": "7d1af1d8a04f83af4a139b20b362601c", + "sha256": "ddd64f677912253801e639f2bbe19dfe4b2ac645ddcac340f784b290603c6dd1" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-musllinux_1_2_armv7l.whl", + "has_sig": false, + "md5_digest": "7d1af1d8a04f83af4a139b20b362601c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2480441, + "upload_time": "2025-09-24T16:35:39", + "upload_time_iso_8601": "2025-09-24T16:35:39.561775Z", + "url": "https://files.pythonhosted.org/packages/91/bf/12140510383a2bedc313ceaf2b4d91a571b84a06623ea8026d03953a8547/clang_format-21.1.2-py2.py3-none-musllinux_1_2_armv7l.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "8a80126c9a276fcbc45905a807b7c788a2a71d07288b3531874c092ddd58472d", + "md5": "7e19e7deb53f5f67110608c9670c5a02", + "sha256": "2d27cf0914430a73886d9a754f08ebccc21048196d958a21d9d47e2632f14b23" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-musllinux_1_2_i686.whl", + "has_sig": false, + "md5_digest": "7e19e7deb53f5f67110608c9670c5a02", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2953786, + "upload_time": "2025-09-24T16:35:41", + "upload_time_iso_8601": "2025-09-24T16:35:41.413960Z", + "url": "https://files.pythonhosted.org/packages/8a/80/126c9a276fcbc45905a807b7c788a2a71d07288b3531874c092ddd58472d/clang_format-21.1.2-py2.py3-none-musllinux_1_2_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "47a8ab6436aa6a352d3bfc767746282af4c9d6f0d819abcfc5d97f598b2dd42e", + "md5": "6d1d3ed7fe693860dd90b0f44f20fd1e", + "sha256": "fbf860495fa096cacd8496d5220b69d2af66f8a55291d09cc03e54ad0e48aac0" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-musllinux_1_2_ppc64le.whl", + "has_sig": false, + "md5_digest": "6d1d3ed7fe693860dd90b0f44f20fd1e", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3075708, + "upload_time": "2025-09-24T16:35:42", + "upload_time_iso_8601": "2025-09-24T16:35:42.811985Z", + "url": "https://files.pythonhosted.org/packages/47/a8/ab6436aa6a352d3bfc767746282af4c9d6f0d819abcfc5d97f598b2dd42e/clang_format-21.1.2-py2.py3-none-musllinux_1_2_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "7fa4d92271b25ff2f975726fadcde63bb43d88e08837367175d5e3122cd4ca99", + "md5": "0f58433698abd5d60e891db706e0cec8", + "sha256": "8d54ab01eec27899d104f32f3e7f02032174f88d4f72ba1781b209898ae5407c" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-musllinux_1_2_s390x.whl", + "has_sig": false, + "md5_digest": "0f58433698abd5d60e891db706e0cec8", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3159740, + "upload_time": "2025-09-24T16:35:44", + "upload_time_iso_8601": "2025-09-24T16:35:44.448216Z", + "url": "https://files.pythonhosted.org/packages/7f/a4/d92271b25ff2f975726fadcde63bb43d88e08837367175d5e3122cd4ca99/clang_format-21.1.2-py2.py3-none-musllinux_1_2_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "dad1bcaf44780a13221f3403d8551f2b9c73e1ba5d54447b241c5daa174fe546", + "md5": "6275062e4772e71f4680297c11c7d11e", + "sha256": "c840849580eb5ad937f0a7fb1b938609e905756ad27d7e63f20ab929d6c0fc8d" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-musllinux_1_2_x86_64.whl", + "has_sig": false, + "md5_digest": "6275062e4772e71f4680297c11c7d11e", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2811811, + "upload_time": "2025-09-24T16:35:45", + "upload_time_iso_8601": "2025-09-24T16:35:45.892886Z", + "url": "https://files.pythonhosted.org/packages/da/d1/bcaf44780a13221f3403d8551f2b9c73e1ba5d54447b241c5daa174fe546/clang_format-21.1.2-py2.py3-none-musllinux_1_2_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "57a2fcfba64440fa177d2728da4cca543eb74224e60816a8ce4666bb7ede567e", + "md5": "f51779d9084bd69ebf7ae0b0634ec044", + "sha256": "f316245a46dd9b26baaed33de149e06155ac09166846d9340107779306448b7d" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "f51779d9084bd69ebf7ae0b0634ec044", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1271178, + "upload_time": "2025-09-24T16:35:47", + "upload_time_iso_8601": "2025-09-24T16:35:47.553444Z", + "url": "https://files.pythonhosted.org/packages/57/a2/fcfba64440fa177d2728da4cca543eb74224e60816a8ce4666bb7ede567e/clang_format-21.1.2-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "fe0d3b9c6a41a9eed2d45431d91c0e8608da315cd44d0c24c517bfb686db4b6b", + "md5": "974e1c40814712233c4db8a918b22cdc", + "sha256": "c98e195a50c0fa40bb058449511b1b681ca7ad553579aa32425f0cfeca8d81ce" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "974e1c40814712233c4db8a918b22cdc", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1426244, + "upload_time": "2025-09-24T16:35:48", + "upload_time_iso_8601": "2025-09-24T16:35:48.919677Z", + "url": "https://files.pythonhosted.org/packages/fe/0d/3b9c6a41a9eed2d45431d91c0e8608da315cd44d0c24c517bfb686db4b6b/clang_format-21.1.2-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "2e5fa1c409081620c35a80b08f3a1c263c219b28bed2bdfe4eb7caab6f047c0e", + "md5": "b5c686563154034589fa70e00f327543", + "sha256": "4071409d8b2cadeab72b0d56111c1703731ee954b686ad0e532c25d9652c3d14" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-win_arm64.whl", + "has_sig": false, + "md5_digest": "b5c686563154034589fa70e00f327543", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1327123, + "upload_time": "2025-09-24T16:35:50", + "upload_time_iso_8601": "2025-09-24T16:35:50.819084Z", + "url": "https://files.pythonhosted.org/packages/2e/5f/a1c409081620c35a80b08f3a1c263c219b28bed2bdfe4eb7caab6f047c0e/clang_format-21.1.2-py2.py3-none-win_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "ba0e2113b696d8e9b8c51e65e347ebbce722de91f1c14dcc7896b5156a5b1aa8", + "md5": "b02d76240ccefe6f8acd3f42c8432bb3", + "sha256": "8a72398bdcd5e3465dbf10882672f8a51b0beb7a6d8cf4f945d00b6523b4cf91" + }, + "downloads": -1, + "filename": "clang_format-21.1.2.tar.gz", + "has_sig": false, + "md5_digest": "b02d76240ccefe6f8acd3f42c8432bb3", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 11503, + "upload_time": "2025-09-24T16:35:52", + "upload_time_iso_8601": "2025-09-24T16:35:52.476220Z", + "url": "https://files.pythonhosted.org/packages/ba/0e/2113b696d8e9b8c51e65e347ebbce722de91f1c14dcc7896b5156a5b1aa8/clang_format-21.1.2.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "6.0.1": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "e371db01cf5d188d0669af9cfd9f5cf8cfb47898df6ad5c86bc008ab3b73d327", + "md5": "fe41668bfa155409944fc6e7dc060b42", + "sha256": "1b71b62346e281f96aa9d45a8892427ce1eae7783c24ac0e1efbab1d5340748d" + }, + "downloads": -1, + "filename": "clang_format-6.0.1-py2-none-manylinux1_x86_64.whl", + "has_sig": false, + "md5_digest": "fe41668bfa155409944fc6e7dc060b42", + "packagetype": "bdist_wheel", + "python_version": "py2", + "requires_python": null, + "size": 1285495, + "upload_time": "2019-11-04T14:55:48", + "upload_time_iso_8601": "2019-11-04T14:55:48.150563Z", + "url": "https://files.pythonhosted.org/packages/e3/71/db01cf5d188d0669af9cfd9f5cf8cfb47898df6ad5c86bc008ab3b73d327/clang_format-6.0.1-py2-none-manylinux1_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": "", + "digests": { + "blake2b_256": "166065c642879f290c4233ac75d7f91038509750347271cd135a62cf0b86019c", + "md5": "cd777571cebf4190bc04ed4638d68bfd", + "sha256": "8028c358d0838e83ea85254bedba846f2106348406c9cdc4f2724779704eedca" + }, + "downloads": -1, + "filename": "clang_format-6.0.1-py2.py3-none-manylinux1_x86_64.whl", + "has_sig": false, + "md5_digest": "cd777571cebf4190bc04ed4638d68bfd", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1295165, + "upload_time": "2019-11-09T15:05:57", + "upload_time_iso_8601": "2019-11-09T15:05:57.500683Z", + "url": "https://files.pythonhosted.org/packages/16/60/65c642879f290c4233ac75d7f91038509750347271cd135a62cf0b86019c/clang_format-6.0.1-py2.py3-none-manylinux1_x86_64.whl", + "yanked": false, + "yanked_reason": null + } + ], + "7.1.0": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "1728feeb87d11c17d4734763db4c0a1a6939448f0c11a1713fac142e8dd2f107", + "md5": "ca817583469776c6b76aee6e8d058e8d", + "sha256": "32629996956b3e34494a926a76835e3371f10c2823c3078f5fbef08bfebbaae7" + }, + "downloads": -1, + "filename": "clang_format-7.1.0-py2.py3-none-manylinux1_x86_64.whl", + "has_sig": false, + "md5_digest": "ca817583469776c6b76aee6e8d058e8d", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1330841, + "upload_time": "2019-11-09T16:17:01", + "upload_time_iso_8601": "2019-11-09T16:17:01.797915Z", + "url": "https://files.pythonhosted.org/packages/17/28/feeb87d11c17d4734763db4c0a1a6939448f0c11a1713fac142e8dd2f107/clang_format-7.1.0-py2.py3-none-manylinux1_x86_64.whl", + "yanked": false, + "yanked_reason": null + } + ], + "8.0.1": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "376675e3c14f22c8a7a02c7e337547e29d42bed516ba8067fdef87d3d9346e52", + "md5": "2053ad2ea07c26dd5ad62cb7999722d7", + "sha256": "d3d0d62281ace883bc6e4188f949308b8f2e4f6de8fac463e5abd1ae02c03db6" + }, + "downloads": -1, + "filename": "clang_format-8.0.1-py2.py3-none-manylinux1_x86_64.whl", + "has_sig": false, + "md5_digest": "2053ad2ea07c26dd5ad62cb7999722d7", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1377569, + "upload_time": "2019-11-20T18:37:41", + "upload_time_iso_8601": "2019-11-20T18:37:41.956369Z", + "url": "https://files.pythonhosted.org/packages/37/66/75e3c14f22c8a7a02c7e337547e29d42bed516ba8067fdef87d3d9346e52/clang_format-8.0.1-py2.py3-none-manylinux1_x86_64.whl", + "yanked": false, + "yanked_reason": null + } + ], + "9.0.0": [ + { + "comment_text": "", + "digests": { + "blake2b_256": "25f2d989afaf8a91385f18fd06e6202644be0bc3a1d14548c18a8ece4911e005", + "md5": "7b0f1d7a2785a5c2c4e9d695dfdf4583", + "sha256": "085342f9e238c9b03a019e20ec23f242f8795a3cca9296ab2427b1dea45e7014" + }, + "downloads": -1, + "filename": "clang_format-9.0.0-py2.py3-none-manylinux1_x86_64.whl", + "has_sig": false, + "md5_digest": "7b0f1d7a2785a5c2c4e9d695dfdf4583", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1375189, + "upload_time": "2019-11-20T19:37:14", + "upload_time_iso_8601": "2019-11-20T19:37:14.542044Z", + "url": "https://files.pythonhosted.org/packages/25/f2/d989afaf8a91385f18fd06e6202644be0bc3a1d14548c18a8ece4911e005/clang_format-9.0.0-py2.py3-none-manylinux1_x86_64.whl", + "yanked": false, + "yanked_reason": null + } + ] + }, + "urls": [ + { + "comment_text": null, + "digests": { + "blake2b_256": "7d970bb5a6866dfb5f55f7e6ca79466cb0b0081fccbc9f57887949ff23b5c38a", + "md5": "3a64ae5c602adb48ae7f8d806a70d6f4", + "sha256": "00498efb43d60d7ac4195362009a79936d26145a9a90cdfa7a6013a62ab3c40c" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-macosx_10_9_x86_64.whl", + "has_sig": false, + "md5_digest": "3a64ae5c602adb48ae7f8d806a70d6f4", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1440163, + "upload_time": "2025-09-24T16:35:25", + "upload_time_iso_8601": "2025-09-24T16:35:25.009882Z", + "url": "https://files.pythonhosted.org/packages/7d/97/0bb5a6866dfb5f55f7e6ca79466cb0b0081fccbc9f57887949ff23b5c38a/clang_format-21.1.2-py2.py3-none-macosx_10_9_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "ba90b8230efcff90a8543da3fb7fc09d7077afebaba019eceb1686d4db94cac3", + "md5": "b859f15595bc15c423474971533bf2cc", + "sha256": "fc034652dee24583633177d800bc9deebcc9c65eb7ab53b25bbd0fbd443392a9" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-macosx_11_0_arm64.whl", + "has_sig": false, + "md5_digest": "b859f15595bc15c423474971533bf2cc", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1458874, + "upload_time": "2025-09-24T16:35:27", + "upload_time_iso_8601": "2025-09-24T16:35:27.149448Z", + "url": "https://files.pythonhosted.org/packages/ba/90/b8230efcff90a8543da3fb7fc09d7077afebaba019eceb1686d4db94cac3/clang_format-21.1.2-py2.py3-none-macosx_11_0_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "c58361fadfa8d62a288d778e0a1ad2f73b01abca64574ee34c5d6d078e0821da", + "md5": "d5787b1fe2771a9a1bcd02d296920e01", + "sha256": "f66d2bcf98df1373df6ab4544a2b881e9816985b606e1144e4c77dc8ac87b826" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", + "has_sig": false, + "md5_digest": "d5787b1fe2771a9a1bcd02d296920e01", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1725525, + "upload_time": "2025-09-24T16:35:28", + "upload_time_iso_8601": "2025-09-24T16:35:28.818992Z", + "url": "https://files.pythonhosted.org/packages/c5/83/61fadfa8d62a288d778e0a1ad2f73b01abca64574ee34c5d6d078e0821da/clang_format-21.1.2-py2.py3-none-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "8d76ad4ae3f3752fb8174d5c13f4596e3b966ab2aa5c25f04d219713722d4c26", + "md5": "fa86894f00c0201f8658ae2de3a8e3a5", + "sha256": "7e0e98f39f16b93c8740028148c72f9ba64d0a43f51a15fb0e861610c1e1e573" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-manylinux_2_26_i686.manylinux_2_28_i686.whl", + "has_sig": false, + "md5_digest": "fa86894f00c0201f8658ae2de3a8e3a5", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1856744, + "upload_time": "2025-09-24T16:35:30", + "upload_time_iso_8601": "2025-09-24T16:35:30.184966Z", + "url": "https://files.pythonhosted.org/packages/8d/76/ad4ae3f3752fb8174d5c13f4596e3b966ab2aa5c25f04d219713722d4c26/clang_format-21.1.2-py2.py3-none-manylinux_2_26_i686.manylinux_2_28_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "75bc185bf2c41eaed4b2efb209f29e9569cb101d6e3f6e19b24dd8064d414449", + "md5": "a597f197c4c4d26c214eed146334f1ef", + "sha256": "95e74c050cb5246a88ba7306c82dc3a7d6adb5145f49d188d5602967e4133336" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", + "has_sig": false, + "md5_digest": "a597f197c4c4d26c214eed146334f1ef", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2031516, + "upload_time": "2025-09-24T16:35:32", + "upload_time_iso_8601": "2025-09-24T16:35:32.003773Z", + "url": "https://files.pythonhosted.org/packages/75/bc/185bf2c41eaed4b2efb209f29e9569cb101d6e3f6e19b24dd8064d414449/clang_format-21.1.2-py2.py3-none-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "d923c88f518493e3e5a4aabdcf203026298fd4c9b1107b3734eb766255cbfe3c", + "md5": "d2f96469e9a518ab2b23b2c83a2ed9c4", + "sha256": "00f4459773ee3e8c0e20578ee800da1fa7fac98c4b0053e13afa450baca0764c" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", + "has_sig": false, + "md5_digest": "d2f96469e9a518ab2b23b2c83a2ed9c4", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2047836, + "upload_time": "2025-09-24T16:35:33", + "upload_time_iso_8601": "2025-09-24T16:35:33.742038Z", + "url": "https://files.pythonhosted.org/packages/d9/23/c88f518493e3e5a4aabdcf203026298fd4c9b1107b3734eb766255cbfe3c/clang_format-21.1.2-py2.py3-none-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "fbac3c04772acc0257f5730e83adb542b2603c1a62d1315010ab593a980af404", + "md5": "9295c5112df996ca7bbbdd4d6d803ae0", + "sha256": "6d7caf74fe89154258ddfd63984c98ffe902ef98f013ac517178fc44d72861ff" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", + "has_sig": false, + "md5_digest": "9295c5112df996ca7bbbdd4d6d803ae0", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1805060, + "upload_time": "2025-09-24T16:35:35", + "upload_time_iso_8601": "2025-09-24T16:35:35.256883Z", + "url": "https://files.pythonhosted.org/packages/fb/ac/3c04772acc0257f5730e83adb542b2603c1a62d1315010ab593a980af404/clang_format-21.1.2-py2.py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "33cfffe750d45187268f7f87942f046095f84dd936502800ccb067dda7c69416", + "md5": "f7eea64108d27bde6f8f931bf3967d3e", + "sha256": "5ddf9afd329c2788998a1563f98cc2a0b911497bc79bc22b7d44fd1471c047de" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-manylinux_2_31_armv7l.whl", + "has_sig": false, + "md5_digest": "f7eea64108d27bde6f8f931bf3967d3e", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1643097, + "upload_time": "2025-09-24T16:35:36", + "upload_time_iso_8601": "2025-09-24T16:35:36.791148Z", + "url": "https://files.pythonhosted.org/packages/33/cf/ffe750d45187268f7f87942f046095f84dd936502800ccb067dda7c69416/clang_format-21.1.2-py2.py3-none-manylinux_2_31_armv7l.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "e86f5276f982144423031d6195cc040c5de4cfeb78c6bbadc5f39279abe44c5b", + "md5": "2f112558948077f4aa58e02ce9abf681", + "sha256": "a1fe2ad12b6779b0e60e43ffe57947f51ea9fe4d5887452a31266bb6bb966195" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-musllinux_1_2_aarch64.whl", + "has_sig": false, + "md5_digest": "2f112558948077f4aa58e02ce9abf681", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2701106, + "upload_time": "2025-09-24T16:35:38", + "upload_time_iso_8601": "2025-09-24T16:35:38.107589Z", + "url": "https://files.pythonhosted.org/packages/e8/6f/5276f982144423031d6195cc040c5de4cfeb78c6bbadc5f39279abe44c5b/clang_format-21.1.2-py2.py3-none-musllinux_1_2_aarch64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "91bf12140510383a2bedc313ceaf2b4d91a571b84a06623ea8026d03953a8547", + "md5": "7d1af1d8a04f83af4a139b20b362601c", + "sha256": "ddd64f677912253801e639f2bbe19dfe4b2ac645ddcac340f784b290603c6dd1" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-musllinux_1_2_armv7l.whl", + "has_sig": false, + "md5_digest": "7d1af1d8a04f83af4a139b20b362601c", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2480441, + "upload_time": "2025-09-24T16:35:39", + "upload_time_iso_8601": "2025-09-24T16:35:39.561775Z", + "url": "https://files.pythonhosted.org/packages/91/bf/12140510383a2bedc313ceaf2b4d91a571b84a06623ea8026d03953a8547/clang_format-21.1.2-py2.py3-none-musllinux_1_2_armv7l.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "8a80126c9a276fcbc45905a807b7c788a2a71d07288b3531874c092ddd58472d", + "md5": "7e19e7deb53f5f67110608c9670c5a02", + "sha256": "2d27cf0914430a73886d9a754f08ebccc21048196d958a21d9d47e2632f14b23" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-musllinux_1_2_i686.whl", + "has_sig": false, + "md5_digest": "7e19e7deb53f5f67110608c9670c5a02", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2953786, + "upload_time": "2025-09-24T16:35:41", + "upload_time_iso_8601": "2025-09-24T16:35:41.413960Z", + "url": "https://files.pythonhosted.org/packages/8a/80/126c9a276fcbc45905a807b7c788a2a71d07288b3531874c092ddd58472d/clang_format-21.1.2-py2.py3-none-musllinux_1_2_i686.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "47a8ab6436aa6a352d3bfc767746282af4c9d6f0d819abcfc5d97f598b2dd42e", + "md5": "6d1d3ed7fe693860dd90b0f44f20fd1e", + "sha256": "fbf860495fa096cacd8496d5220b69d2af66f8a55291d09cc03e54ad0e48aac0" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-musllinux_1_2_ppc64le.whl", + "has_sig": false, + "md5_digest": "6d1d3ed7fe693860dd90b0f44f20fd1e", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3075708, + "upload_time": "2025-09-24T16:35:42", + "upload_time_iso_8601": "2025-09-24T16:35:42.811985Z", + "url": "https://files.pythonhosted.org/packages/47/a8/ab6436aa6a352d3bfc767746282af4c9d6f0d819abcfc5d97f598b2dd42e/clang_format-21.1.2-py2.py3-none-musllinux_1_2_ppc64le.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "7fa4d92271b25ff2f975726fadcde63bb43d88e08837367175d5e3122cd4ca99", + "md5": "0f58433698abd5d60e891db706e0cec8", + "sha256": "8d54ab01eec27899d104f32f3e7f02032174f88d4f72ba1781b209898ae5407c" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-musllinux_1_2_s390x.whl", + "has_sig": false, + "md5_digest": "0f58433698abd5d60e891db706e0cec8", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 3159740, + "upload_time": "2025-09-24T16:35:44", + "upload_time_iso_8601": "2025-09-24T16:35:44.448216Z", + "url": "https://files.pythonhosted.org/packages/7f/a4/d92271b25ff2f975726fadcde63bb43d88e08837367175d5e3122cd4ca99/clang_format-21.1.2-py2.py3-none-musllinux_1_2_s390x.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "dad1bcaf44780a13221f3403d8551f2b9c73e1ba5d54447b241c5daa174fe546", + "md5": "6275062e4772e71f4680297c11c7d11e", + "sha256": "c840849580eb5ad937f0a7fb1b938609e905756ad27d7e63f20ab929d6c0fc8d" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-musllinux_1_2_x86_64.whl", + "has_sig": false, + "md5_digest": "6275062e4772e71f4680297c11c7d11e", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 2811811, + "upload_time": "2025-09-24T16:35:45", + "upload_time_iso_8601": "2025-09-24T16:35:45.892886Z", + "url": "https://files.pythonhosted.org/packages/da/d1/bcaf44780a13221f3403d8551f2b9c73e1ba5d54447b241c5daa174fe546/clang_format-21.1.2-py2.py3-none-musllinux_1_2_x86_64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "57a2fcfba64440fa177d2728da4cca543eb74224e60816a8ce4666bb7ede567e", + "md5": "f51779d9084bd69ebf7ae0b0634ec044", + "sha256": "f316245a46dd9b26baaed33de149e06155ac09166846d9340107779306448b7d" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-win32.whl", + "has_sig": false, + "md5_digest": "f51779d9084bd69ebf7ae0b0634ec044", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1271178, + "upload_time": "2025-09-24T16:35:47", + "upload_time_iso_8601": "2025-09-24T16:35:47.553444Z", + "url": "https://files.pythonhosted.org/packages/57/a2/fcfba64440fa177d2728da4cca543eb74224e60816a8ce4666bb7ede567e/clang_format-21.1.2-py2.py3-none-win32.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "fe0d3b9c6a41a9eed2d45431d91c0e8608da315cd44d0c24c517bfb686db4b6b", + "md5": "974e1c40814712233c4db8a918b22cdc", + "sha256": "c98e195a50c0fa40bb058449511b1b681ca7ad553579aa32425f0cfeca8d81ce" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-win_amd64.whl", + "has_sig": false, + "md5_digest": "974e1c40814712233c4db8a918b22cdc", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1426244, + "upload_time": "2025-09-24T16:35:48", + "upload_time_iso_8601": "2025-09-24T16:35:48.919677Z", + "url": "https://files.pythonhosted.org/packages/fe/0d/3b9c6a41a9eed2d45431d91c0e8608da315cd44d0c24c517bfb686db4b6b/clang_format-21.1.2-py2.py3-none-win_amd64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "2e5fa1c409081620c35a80b08f3a1c263c219b28bed2bdfe4eb7caab6f047c0e", + "md5": "b5c686563154034589fa70e00f327543", + "sha256": "4071409d8b2cadeab72b0d56111c1703731ee954b686ad0e532c25d9652c3d14" + }, + "downloads": -1, + "filename": "clang_format-21.1.2-py2.py3-none-win_arm64.whl", + "has_sig": false, + "md5_digest": "b5c686563154034589fa70e00f327543", + "packagetype": "bdist_wheel", + "python_version": "py2.py3", + "requires_python": null, + "size": 1327123, + "upload_time": "2025-09-24T16:35:50", + "upload_time_iso_8601": "2025-09-24T16:35:50.819084Z", + "url": "https://files.pythonhosted.org/packages/2e/5f/a1c409081620c35a80b08f3a1c263c219b28bed2bdfe4eb7caab6f047c0e/clang_format-21.1.2-py2.py3-none-win_arm64.whl", + "yanked": false, + "yanked_reason": null + }, + { + "comment_text": null, + "digests": { + "blake2b_256": "ba0e2113b696d8e9b8c51e65e347ebbce722de91f1c14dcc7896b5156a5b1aa8", + "md5": "b02d76240ccefe6f8acd3f42c8432bb3", + "sha256": "8a72398bdcd5e3465dbf10882672f8a51b0beb7a6d8cf4f945d00b6523b4cf91" + }, + "downloads": -1, + "filename": "clang_format-21.1.2.tar.gz", + "has_sig": false, + "md5_digest": "b02d76240ccefe6f8acd3f42c8432bb3", + "packagetype": "sdist", + "python_version": "source", + "requires_python": null, + "size": 11503, + "upload_time": "2025-09-24T16:35:52", + "upload_time_iso_8601": "2025-09-24T16:35:52.476220Z", + "url": "https://files.pythonhosted.org/packages/ba/0e/2113b696d8e9b8c51e65e347ebbce722de91f1c14dcc7896b5156a5b1aa8/clang_format-21.1.2.tar.gz", + "yanked": false, + "yanked_reason": null + } + ], + "vulnerabilities": [] +} diff --git a/clang-installer/tests/static_dist.rs b/clang-installer/tests/static_dist.rs new file mode 100644 index 00000000..59c00578 --- /dev/null +++ b/clang-installer/tests/static_dist.rs @@ -0,0 +1,52 @@ +use std::env; + +use clang_installer::{ClangTool, StaticDistDownloader}; +use semver::VersionReq; +use tempfile::TempDir; +mod common; + +async fn setup(ver_spec: &str) { + common::initialize_logger(); + log::set_max_level(log::LevelFilter::Debug); + + let tmp_cache_dir = TempDir::new().unwrap(); + // Override cache directory to ensure test isolation and avoid interference with other tests' caches + unsafe { + env::set_var("CPP_LINTER_CACHE", tmp_cache_dir.path()); + } + + let tool = ClangTool::ClangFormat; + let version_req = VersionReq::parse(ver_spec).unwrap(); + + let result = StaticDistDownloader::download_tool(&tool, &version_req) + .await + .unwrap(); + println!( + "Downloaded clang-format from static distribution to {}", + result.to_string_lossy() + ); + let out_ver = tool.capture_version(&result).unwrap(); + log::info!("The downloaded clang-format version is {}", out_ver); + assert!( + version_req.matches(&out_ver), + "The downloaded clang-format version {} does not satisfy the requirement {}", + out_ver, + version_req + ); + + // retry using cache + let cache_result = StaticDistDownloader::download_tool(&tool, &version_req) + .await + .unwrap(); + assert_eq!(result, cache_result); +} + +#[tokio::test] +async fn download_clang_format_17() { + setup("17").await; +} + +#[tokio::test] +async fn download_clang_format_12_0_1() { + setup("=12.0.1").await; +} diff --git a/cpp-linter/Cargo.toml b/cpp-linter/Cargo.toml index 5967320b..bae1a5b0 100644 --- a/cpp-linter/Cargo.toml +++ b/cpp-linter/Cargo.toml @@ -1,9 +1,9 @@ [package] name = "cpp-linter" readme = "README.md" -keywords = ["clang-tidy", "clang-format", "linter"] +keywords = ["clang-tidy", "clang-format", "linter", "cpp-linter"] categories = ["command-line-utilities", "development-tools", "filesystem"] -repository = "https://github.com/cpp-linter/cpp-linter-rs" +repository.workspace = true version.workspace = true edition.workspace = true authors.workspace = true @@ -14,32 +14,32 @@ license.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -anyhow = "1.0.102" +anyhow = { workspace = true } chrono = "0.4.44" -clap = { version = "4.5.60", features = ["derive"] } -colored = "3.1.1" -fast-glob = "1.0.0" +clang-installer = { path = "../clang-installer", version = "0.1.0" } +clap = { workspace = true } +colored = { workspace = true } +fast-glob = "1.0.1" futures = "0.3.32" git2 = "0.20.4" -log = { version = "0.4.29", features = ["std"] } +log = { workspace = true } quick-xml = { version = "0.39.2", features = ["serialize"] } -regex = "1.12.3" -reqwest = { version = "0.13.2", default-features = false, features = ["native-tls", "http2", "charset"] } -semver = "1.0.27" -serde = { version = "1.0.228", features = ["derive"] } -serde_json = "1.0.148" -tokio = { version = "1.49.0", features = ["macros", "rt-multi-thread"] } -tokio-macros = "2.5.0" -tokio-stream = "0.1.18" -which = "8.0.0" +regex = { workspace = true } +reqwest = { workspace = true } +semver = { workspace = true } +serde = { workspace = true } +serde_json = { workspace = true } +thiserror = { workspace = true } +tokio = { workspace = true, features = ["macros", "rt-multi-thread"] } [dev-dependencies] -mockito = "1.7.2" -tempfile = "3.26.0" +mockito = { workspace = true } +tempfile = { workspace = true } git2 = { version = "0.20.4", features = ["https"]} [features] openssl-vendored = ["git2/vendored-openssl", "reqwest/native-tls-vendored"] +bin = ["reqwest/native-tls"] [lib] bench = false @@ -49,3 +49,4 @@ name = "cpp-linter" path = "src/main.rs" test = false bench = false +required-features = ["bin"] diff --git a/cpp-linter/src/clang_tools/clang_tidy.rs b/cpp-linter/src/clang_tools/clang_tidy.rs index 46cfffe6..e733042e 100644 --- a/cpp-linter/src/clang_tools/clang_tidy.rs +++ b/cpp-linter/src/clang_tools/clang_tidy.rs @@ -11,15 +11,13 @@ use std::{ // non-std crates use anyhow::{Context, Result, anyhow}; +use clang_installer::utils::normalize_path; use regex::Regex; use serde::Deserialize; // project-specific modules/crates use super::MakeSuggestions; -use crate::{ - cli::ClangParams, - common_fs::{FileObj, normalize_path}, -}; +use crate::{cli::ClangParams, common_fs::FileObj}; /// Used to deserialize a json compilation database's translation unit. /// @@ -378,11 +376,12 @@ mod test { sync::{Arc, Mutex}, }; + use clang_installer::RequestedVersion; use regex::Regex; use crate::{ clang_tools::{ClangTool, clang_tidy::parse_tidy_output}, - cli::{ClangParams, LinesChangedOnly, RequestedVersion}, + cli::{ClangParams, LinesChangedOnly}, common_fs::FileObj, }; diff --git a/cpp-linter/src/clang_tools/mod.rs b/cpp-linter/src/clang_tools/mod.rs index e751f47e..04e73125 100644 --- a/cpp-linter/src/clang_tools/mod.rs +++ b/cpp-linter/src/clang_tools/mod.rs @@ -3,26 +3,22 @@ //! clang-tidy. use std::{ - env::current_dir, - fmt::{self, Display}, fs, path::{Path, PathBuf}, - process::Command, sync::{Arc, Mutex}, }; // non-std crates use anyhow::{Context, Result, anyhow}; +use clang_installer::{ClangTool, RequestedVersion}; use git2::{DiffOptions, Patch}; -use regex::Regex; use semver::Version; use tokio::task::JoinSet; -use which::{which, which_in}; // project-specific modules/crates use super::common_fs::FileObj; use crate::{ - cli::{ClangParams, RequestedVersion}, + cli::ClangParams, rest_api::{COMMENT_MARKER, RestApiClient, USER_OUTREACH}, }; pub mod clang_format; @@ -30,111 +26,6 @@ use clang_format::run_clang_format; pub mod clang_tidy; use clang_tidy::{CompilationUnit, run_clang_tidy}; -#[derive(Debug)] -pub enum ClangTool { - ClangTidy, - ClangFormat, -} - -impl Display for ClangTool { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - write!(f, "{}", self.as_str()) - } -} - -impl ClangTool { - /// Get the string representation of the clang tool's name. - pub const fn as_str(&self) -> &'static str { - match self { - ClangTool::ClangTidy => "clang-tidy", - ClangTool::ClangFormat => "clang-format", - } - } - - /// Fetch the path to an executable clang tool for the specified `version`. - /// - /// If the executable is not found using the specified `version`, then the tool is - /// sought only by it's name ([`Self::as_str()`]). - /// - /// The only reason this function would return an error is if the specified tool is not - /// installed or present on the system (nor in the `PATH` environment variable). - pub fn get_exe_path(&self, version: &RequestedVersion) -> Result { - let name = self.as_str(); - match version { - RequestedVersion::Path(path_buf) => which_in( - name, - Some(path_buf), - current_dir().with_context(|| "Failed to access current working directory.")?, - ) - .map_err(|_| anyhow!("Could not find {self} by path")), - // Thus, we should use whatever is installed and added to $PATH. - RequestedVersion::SystemDefault | RequestedVersion::NoValue => { - which(name).map_err(|_| anyhow!("Could not find clang tool by name")) - } - RequestedVersion::Requirement(req) => { - // `req.comparators` has at least a major version number for each comparator. - // We need to start with the highest major version number first, then - // decrement to the lowest that satisfies the requirement. - - // find the highest major version from requirement's boundaries. - let mut it = req.comparators.iter(); - let mut highest_major = it.next().map(|v| v.major).unwrap_or_default() + 1; - for n in it { - if n.major > highest_major { - // +1 because we aren't checking the comparator's operator here. - highest_major = n.major + 1; - } - } - - // aggregate by decrementing through major versions that satisfy the requirement. - let mut majors = vec![]; - while highest_major > 0 { - // check if the current major version satisfies the requirement. - if req.matches(&Version::new(highest_major, 0, 0)) { - majors.push(highest_major); - } - highest_major -= 1; - } - - // now we're ready to search for the binary exe with the major version suffixed. - for major in majors { - if let Ok(cmd) = which(format!("{self}-{major}")) { - return Ok(cmd); - } - } - // failed to find a binary where the major version number is suffixed to the tool name. - - // USERS SHOULD MAKE SURE THE PROPER VERSION IS INSTALLED BEFORE USING CPP-LINTER!!! - // This line essentially ignores the version specified as a fail-safe. - // - // On Windows, the version's major number is typically not appended to the name of - // the executable (or symlink for executable), so this is useful in that scenario. - // On Unix systems, this line is not likely reached. Typically, installing clang - // will produce a symlink to the executable with the major version appended to the - // name. - which(name).map_err(|_| anyhow!("Could not find {self} by version")) - } - } - } - - /// Run `clang-tool --version`, then extract and return the version number. - fn capture_version(clang_tool: &PathBuf) -> Result { - let output = Command::new(clang_tool).arg("--version").output()?; - let stdout = String::from_utf8_lossy(&output.stdout); - let version_pattern = Regex::new(r"(?i)version[^\d]*([\d.]+)") - .with_context(|| "Failed to allocate RegExp pattern (for clang version parsing) ")?; - let captures = version_pattern.captures(&stdout).ok_or(anyhow!( - "Failed to find version number in `{} --version` output", - clang_tool.to_string_lossy() - ))?; - Ok(captures - .get(1) - .ok_or(anyhow!("Failed to get version capture group"))? - .as_str() - .to_string()) - } -} - /// This creates a task to run clang-tidy and clang-format on a single file. /// /// Returns a Future that infallibly resolves to a 2-tuple that contains @@ -196,10 +87,10 @@ fn analyze_single_file( #[derive(Debug, Default)] pub struct ClangVersions { /// The clang-format version used. - pub format_version: Option, + pub format_version: Option, /// The clang-tidy version used. - pub tidy_version: Option, + pub tidy_version: Option, } /// Runs clang-tidy and/or clang-format and returns the parsed output from each. @@ -216,24 +107,20 @@ pub async fn capture_clang_tools_output( // find the executable paths for clang-tidy and/or clang-format and show version // info as debugging output. if clang_params.tidy_checks != "-*" { - let exe_path = ClangTool::ClangTidy.get_exe_path(version)?; - let version_found = ClangTool::capture_version(&exe_path)?; - log::debug!( - "{} --version: v{version_found}", - &exe_path.to_string_lossy() - ); - clang_versions.tidy_version = Some(version_found); - clang_params.clang_tidy_command = Some(exe_path); + let tool = ClangTool::ClangTidy; + let tool_info = version.eval_tool(&tool, true).await?.ok_or(anyhow!( + "Failed to find {tool} or install a suitable version" + ))?; + clang_versions.tidy_version = Some(tool_info.version); + clang_params.clang_tidy_command = Some(tool_info.path); } if !clang_params.style.is_empty() { - let exe_path = ClangTool::ClangFormat.get_exe_path(version)?; - let version_found = ClangTool::capture_version(&exe_path)?; - log::debug!( - "{} --version: v{version_found}", - &exe_path.to_string_lossy() - ); - clang_versions.format_version = Some(version_found); - clang_params.clang_format_command = Some(exe_path); + let tool = ClangTool::ClangFormat; + let tool_info = version.eval_tool(&tool, true).await?.ok_or(anyhow!( + "Failed to find {tool} or install a suitable version" + ))?; + clang_versions.format_version = Some(tool_info.version); + clang_params.clang_format_command = Some(tool_info.path); } // parse database (if provided) to match filenames when parsing clang-tidy's stdout @@ -496,67 +383,3 @@ pub trait MakeSuggestions { Ok(()) } } - -#[cfg(test)] -mod tests { - use std::{path::PathBuf, str::FromStr}; - - use which::which; - - use super::ClangTool; - use crate::cli::RequestedVersion; - - const CLANG_FORMAT: ClangTool = ClangTool::ClangFormat; - - #[test] - fn get_exe_by_version() { - let requirement = ">=9, <22"; - let req_version = RequestedVersion::from_str(requirement).unwrap(); - let tool_exe = CLANG_FORMAT.get_exe_path(&req_version); - println!("tool_exe: {:?}", tool_exe); - assert!(tool_exe.is_ok_and(|val| { - val.file_name() - .unwrap() - .to_string_lossy() - .to_string() - .contains(CLANG_FORMAT.as_str()) - })); - } - - #[test] - fn get_exe_by_default() { - let tool_exe = CLANG_FORMAT.get_exe_path(&RequestedVersion::from_str("").unwrap()); - println!("tool_exe: {:?}", tool_exe); - assert!(tool_exe.is_ok_and(|val| { - val.file_name() - .unwrap() - .to_string_lossy() - .to_string() - .contains(CLANG_FORMAT.as_str()) - })); - } - - #[test] - fn get_exe_by_path() { - static TOOL_NAME: &'static str = CLANG_FORMAT.as_str(); - let clang_version = which(TOOL_NAME).unwrap(); - let bin_path = clang_version.parent().unwrap().to_str().unwrap(); - println!("binary exe path: {bin_path}"); - let tool_exe = CLANG_FORMAT.get_exe_path(&RequestedVersion::from_str(bin_path).unwrap()); - println!("tool_exe: {:?}", tool_exe); - assert!(tool_exe.is_ok_and(|val| { - val.file_name() - .unwrap() - .to_string_lossy() - .to_string() - .contains(TOOL_NAME) - })); - } - - #[test] - fn get_exe_by_invalid_path() { - let tool_exe = - CLANG_FORMAT.get_exe_path(&RequestedVersion::Path(PathBuf::from("non-existent-path"))); - assert!(tool_exe.is_err()); - } -} diff --git a/cpp-linter/src/cli/mod.rs b/cpp-linter/src/cli/mod.rs index 70efebbf..21624da1 100644 --- a/cpp-linter/src/cli/mod.rs +++ b/cpp-linter/src/cli/mod.rs @@ -4,6 +4,7 @@ use std::{path::PathBuf, str::FromStr}; // non-std crates +use clang_installer::RequestedVersion; use clap::{ ArgAction, Args, Parser, Subcommand, ValueEnum, builder::{FalseyValueParser, NonEmptyStringValueParser}, @@ -11,7 +12,7 @@ use clap::{ }; mod structs; -pub use structs::{ClangParams, FeedbackInput, LinesChangedOnly, RequestedVersion, ThreadComments}; +pub use structs::{ClangParams, FeedbackInput, LinesChangedOnly, ThreadComments}; #[derive(Debug, Clone, PartialEq, Eq, ValueEnum)] pub enum Verbosity { diff --git a/cpp-linter/src/cli/structs.rs b/cpp-linter/src/cli/structs.rs index 84f683d0..0b67465c 100644 --- a/cpp-linter/src/cli/structs.rs +++ b/cpp-linter/src/cli/structs.rs @@ -1,74 +1,9 @@ -use std::{fmt::Display, path::PathBuf, str::FromStr}; +use std::{fmt::Display, path::PathBuf}; -use anyhow::{Error, anyhow}; use clap::{ValueEnum, builder::PossibleValue}; -use semver::VersionReq; use super::Cli; -use crate::{ - clang_tools::clang_tidy::CompilationUnit, - common_fs::{FileFilter, normalize_path}, -}; - -#[derive(Debug, Clone, PartialEq, Eq, Default)] -pub enum RequestedVersion { - /// A specific path to the clang tool binary. - Path(PathBuf), - - /// Whatever the system default uses (if any). - #[default] - SystemDefault, - - /// A specific version requirement for the clang tool binary. - /// - /// For example, `=12.0.1`, `>=10.0.0, <13.0.0`. - Requirement(VersionReq), - - /// A sentinel when no value is given. - /// - /// This is used internally to differentiate when the user intended - /// to invoke the `version` subcommand instead. - NoValue, -} - -impl FromStr for RequestedVersion { - type Err = Error; - - fn from_str(input: &str) -> Result { - if input.is_empty() { - Ok(Self::SystemDefault) - } else if input == "CPP-LINTER-VERSION" { - Ok(Self::NoValue) - } else if let Ok(req) = VersionReq::parse(input) { - Ok(Self::Requirement(req)) - } else if let Ok(req) = VersionReq::parse(format!("={input}").as_str()) { - Ok(Self::Requirement(req)) - } else { - let path = PathBuf::from(input); - if !path.exists() { - return Err(anyhow!( - "The specified version is not a proper requirement or a valid path: {}", - input - )); - } - let path = if !path.is_dir() { - path.parent() - .ok_or(anyhow!( - "Unknown parent directory of the given file path for `--version`: {}", - input - ))? - .to_path_buf() - } else { - path - }; - let path = match path.canonicalize() { - Ok(p) => Ok(normalize_path(&p)), - Err(e) => Err(anyhow!("Failed to canonicalize path '{input}': {e:?}")), - }?; - Ok(Self::Path(path)) - } - } -} +use crate::{clang_tools::clang_tidy::CompilationUnit, common_fs::FileFilter}; /// An enum to describe `--lines-changed-only` CLI option's behavior. #[derive(PartialEq, Clone, Debug, Default)] @@ -304,14 +239,9 @@ impl Default for FeedbackInput { #[cfg(test)] mod test { - // use crate::cli::get_arg_parser; - - use std::{path::PathBuf, str::FromStr}; - - use crate::{cli::RequestedVersion, common_fs::normalize_path}; + use clap::{Parser, ValueEnum}; use super::{Cli, LinesChangedOnly, ThreadComments}; - use clap::{Parser, ValueEnum}; #[test] fn parse_positional() { @@ -350,19 +280,4 @@ mod test { ThreadComments::Off ); } - - #[test] - fn validate_version_path() { - let this_path_str = "src/cli/structs.rs"; - let this_path = PathBuf::from(this_path_str); - let this_canonical = this_path.canonicalize().unwrap(); - let parent = this_canonical.parent().unwrap(); - let expected = normalize_path(parent); - let req_ver = RequestedVersion::from_str(this_path_str).unwrap(); - if let RequestedVersion::Path(parsed) = req_ver { - assert_eq!(&parsed, &expected); - } - - assert!(RequestedVersion::from_str("file.rs").is_err()); - } } diff --git a/cpp-linter/src/common_fs/mod.rs b/cpp-linter/src/common_fs/mod.rs index 199dd3a4..0373b238 100644 --- a/cpp-linter/src/common_fs/mod.rs +++ b/cpp-linter/src/common_fs/mod.rs @@ -2,7 +2,7 @@ use std::fmt::Debug; use std::fs; -use std::path::{Component, Path}; +use std::path::Path; use std::{ops::RangeInclusive, path::PathBuf}; use anyhow::{Context, Result}; @@ -231,79 +231,13 @@ pub fn get_line_count_from_offset(contents: &[u8], offset: u32) -> u32 { lines.count() as u32 } -/// This was copied from [cargo source code](https://github.com/rust-lang/cargo/blob/fede83ccf973457de319ba6fa0e36ead454d2e20/src/cargo/util/paths.rs#L61). -/// -/// NOTE: Rust [std::path] crate has no native functionality equivalent to this. -pub fn normalize_path(path: &Path) -> PathBuf { - let mut components = path.components().peekable(); - let mut ret = if let Some(c @ Component::Prefix(..)) = components.peek().cloned() { - components.next(); - PathBuf::from(c.as_os_str()) - } else { - PathBuf::new() - }; - - for component in components { - match component { - Component::Prefix(..) => unreachable!(), - Component::RootDir => { - ret.push(component.as_os_str()); - } - Component::CurDir => {} - Component::ParentDir => { - ret.pop(); - } - Component::Normal(c) => { - ret.push(c); - } - } - } - ret -} - #[cfg(test)] mod test { - use std::path::PathBuf; - use std::{env::current_dir, fs}; + use std::{fs, path::PathBuf}; - use super::{FileObj, get_line_count_from_offset, normalize_path}; + use super::{FileObj, get_line_count_from_offset}; use crate::cli::LinesChangedOnly; - // *********************** tests for normalized paths - - #[test] - fn normalize_redirects() { - let mut src = current_dir().unwrap(); - src.push(".."); - src.push( - current_dir() - .unwrap() - .strip_prefix(current_dir().unwrap().parent().unwrap()) - .unwrap(), - ); - println!("relative path = {}", src.to_str().unwrap()); - assert_eq!(normalize_path(&src), current_dir().unwrap()); - } - - #[test] - fn normalize_no_root() { - let src = PathBuf::from("../cpp-linter"); - let mut cur_dir = current_dir().unwrap(); - cur_dir = cur_dir - .strip_prefix(current_dir().unwrap().parent().unwrap()) - .unwrap() - .to_path_buf(); - println!("relative path = {}", src.to_str().unwrap()); - assert_eq!(normalize_path(&src), cur_dir); - } - - #[test] - fn normalize_current_redirect() { - let src = PathBuf::from("tests/./ignored_paths"); - println!("relative path = {}", src.to_str().unwrap()); - assert_eq!(normalize_path(&src), PathBuf::from("tests/ignored_paths")); - } - // *********************** tests for translating byte offset into line/column #[test] diff --git a/cpp-linter/src/logger.rs b/cpp-linter/src/logger.rs index 767d3dbf..6dc9bc34 100644 --- a/cpp-linter/src/logger.rs +++ b/cpp-linter/src/logger.rs @@ -1,4 +1,5 @@ #![deny(clippy::unwrap_used)] +#![cfg(feature = "bin")] //! A module to initialize and customize the logger object used in (most) stdout. use std::{ diff --git a/cpp-linter/src/rest_api/github/mod.rs b/cpp-linter/src/rest_api/github/mod.rs index 0124b94d..47288961 100644 --- a/cpp-linter/src/rest_api/github/mod.rs +++ b/cpp-linter/src/rest_api/github/mod.rs @@ -266,6 +266,7 @@ mod test { }; use regex::Regex; + use semver::Version; use tempfile::{NamedTempFile, tempdir}; use super::GithubApiClient; @@ -351,8 +352,8 @@ mod test { ); } let clang_versions = ClangVersions { - format_version: Some("x.y.z".to_string()), - tidy_version: Some("x.y.z".to_string()), + format_version: Some(Version::new(1, 2, 3)), + tidy_version: Some(Version::new(1, 2, 3)), }; rest_api_client .post_feedback(&files, feedback_inputs, clang_versions) diff --git a/cpp-linter/src/rest_api/mod.rs b/cpp-linter/src/rest_api/mod.rs index 7d620d2b..267c6be2 100644 --- a/cpp-linter/src/rest_api/mod.rs +++ b/cpp-linter/src/rest_api/mod.rs @@ -144,7 +144,7 @@ pub trait RestApiClient { &mut comment, format_checks_failed, // tidy_version should be `Some()` value at this point. - clang_versions.tidy_version.as_ref().unwrap(), + &clang_versions.tidy_version.as_ref().unwrap().to_string(), &mut remaining_length, ); } @@ -154,7 +154,7 @@ pub trait RestApiClient { &mut comment, tidy_checks_failed, // format_version should be `Some()` value at this point. - clang_versions.format_version.as_ref().unwrap(), + &clang_versions.format_version.as_ref().unwrap().to_string(), &mut remaining_length, ); } diff --git a/cpp-linter/src/run.rs b/cpp-linter/src/run.rs index f21276ce..e291cb2c 100644 --- a/cpp-linter/src/run.rs +++ b/cpp-linter/src/run.rs @@ -11,13 +11,14 @@ use std::{ // non-std crates use anyhow::{Result, anyhow}; +use clang_installer::RequestedVersion; use clap::Parser; use log::{LevelFilter, set_max_level}; // project specific modules/crates use crate::{ clang_tools::capture_clang_tools_output, - cli::{ClangParams, Cli, CliCommand, FeedbackInput, LinesChangedOnly, RequestedVersion}, + cli::{ClangParams, Cli, CliCommand, FeedbackInput, LinesChangedOnly}, common_fs::FileFilter, logger, rest_api::{RestApiClient, github::GithubApiClient}, diff --git a/cspell.config.yml b/cspell.config.yml index 7627c0f2..faa23912 100644 --- a/cspell.config.yml +++ b/cspell.config.yml @@ -57,6 +57,7 @@ words: - msvc - multiarch - musleabihf + - musllinux - mypy - napi - nextest @@ -71,6 +72,7 @@ words: - openharmony - orhun - oxlint + - pacman - patchelf - peaceiris - peekable @@ -102,6 +104,7 @@ words: - serde - Shen - shenxianpeng + - splitn - startswith - superfences - tada @@ -109,6 +112,7 @@ words: - tasklist - tempdir - tempfile + - thiserror - timeit - topo - twemoji @@ -117,6 +121,7 @@ words: - vcpkg - venv - Werror + - winget - Xianpeng - zigbuild - zizmor @@ -128,10 +133,10 @@ ignorePaths: - target/** - "**/.gitignore" - cpp-linter/tests/**/*.json + - clang-installer/tests/**/*.json - cpp-linter/tests/**/*.diff - cpp-linter/tests/**/.clang-tidy - .vscode/extensions.json - .yarn/releases/* - "*.lock" - # generated file out of our control - bindings/node/index.js diff --git a/docs/Cargo.toml b/docs/Cargo.toml index 7ad1d9eb..0c76980e 100644 --- a/docs/Cargo.toml +++ b/docs/Cargo.toml @@ -10,8 +10,8 @@ license.workspace = true [dependencies] cpp-linter = { path = "../cpp-linter" } -pyo3 = {version = "0.28.2", features = ["extension-module"] } -clap = { version = "4.5.60", features = ["derive"] } +pyo3.workspace = true +clap.workspace = true [lib] name = "cli_gen" diff --git a/nurfile b/nurfile index 45a88882..9f74ad78 100644 --- a/nurfile +++ b/nurfile @@ -107,8 +107,12 @@ export def "nur test" [ llvm-cov, --no-report, nextest, - --manifest-path, - cpp-linter/Cargo.toml, + --package, + cpp-linter, + --package, + clang-installer, + --features, + bin, --lib, --tests, --color, From 916ea314c4abbc2b923e91d68a760bfa5b699ed3 Mon Sep 17 00:00:00 2001 From: Brendan <2bndy5@gmail.com> Date: Tue, 10 Mar 2026 23:39:34 -0700 Subject: [PATCH 2/5] reduce library API surface disables any API that is specific to building a binary. Thus CLI-specific API is not exposed in the library API. Also reviewed docs --- clang-installer/src/cli.rs | 41 --- clang-installer/src/downloader/mod.rs | 6 + clang-installer/src/downloader/pypi.rs | 3 + clang-installer/src/downloader/static_dist.rs | 16 +- clang-installer/src/lib.rs | 3 - clang-installer/src/main.rs | 189 +++++++----- clang-installer/src/tool.rs | 1 + clang-installer/src/utils.rs | 1 + clang-installer/src/version.rs | 25 +- cpp-linter/Cargo.toml | 6 +- cpp-linter/README.md | 4 - cpp-linter/src/clang_tools/mod.rs | 1 + cpp-linter/src/cli/mod.rs | 289 +++++++++++------- cpp-linter/src/cli/structs.rs | 8 + cpp-linter/src/common_fs/file_filter.rs | 7 + cpp-linter/src/rest_api/mod.rs | 5 + cpp-linter/src/run.rs | 1 + docs/Cargo.toml | 2 +- nurfile | 8 +- 19 files changed, 371 insertions(+), 245 deletions(-) delete mode 100644 clang-installer/src/cli.rs diff --git a/clang-installer/src/cli.rs b/clang-installer/src/cli.rs deleted file mode 100644 index 7ca392d4..00000000 --- a/clang-installer/src/cli.rs +++ /dev/null @@ -1,41 +0,0 @@ -use crate::{ClangTool, RequestedVersion}; -use std::path::PathBuf; -#[cfg(feature = "clap")] -use std::str::FromStr; - -#[cfg_attr(feature = "clap", derive(clap::Parser))] -#[derive(Debug)] -pub struct CliOptions { - /// The desired version of clang to install. - #[cfg_attr( - feature = "clap", - arg( - short, - long, - default_missing_value = "CPP-LINTER-VERSION", - num_args = 0..=1, - value_parser = RequestedVersion::from_str, - default_value = "", - ) - )] - pub version: Option, - /// The clang tool to install. - #[cfg_attr( - feature = "clap", - arg( - short, - long, - value_delimiter = ' ', - default_value = "clang-format clang-tidy", - ) - )] - pub tool: Option>, - /// The directory where the clang tools should be installed. - #[cfg_attr(feature = "clap", arg(short, long))] - pub directory: Option, - /// Force overwriting symlink to the installed binary. - /// - /// This will only overwrite an existing symlink. - #[cfg_attr(feature = "clap", arg(short, long))] - pub force: bool, -} diff --git a/clang-installer/src/downloader/mod.rs b/clang-installer/src/downloader/mod.rs index 6d935ad4..989d643e 100644 --- a/clang-installer/src/downloader/mod.rs +++ b/clang-installer/src/downloader/mod.rs @@ -15,12 +15,18 @@ pub mod native_packages; pub mod pypi; pub mod static_dist; +/// An enumeration of possible errors during download operations. #[derive(Debug, thiserror::Error)] pub enum DownloadError { + /// An error that occurred while making a request or handling the response. #[error("Request error: {0}")] RequestError(#[from] reqwest::Error), + + /// An error that occurred during interaction with the file system. #[error("IO error: {0}")] IoError(#[from] std::io::Error), + + /// An error that describes the mismatch between the expected and actual hash of the downloaded file. #[error("Hash mismatch for downloaded file. Expected: {expected}, Actual: {actual}")] HashMismatch { expected: String, actual: String }, } diff --git a/clang-installer/src/downloader/pypi.rs b/clang-installer/src/downloader/pypi.rs index 9d3888ed..34794af3 100644 --- a/clang-installer/src/downloader/pypi.rs +++ b/clang-installer/src/downloader/pypi.rs @@ -14,6 +14,7 @@ use std::{ use url::Url; use zip::{ZipArchive, result::ZipError}; +/// Errors that occur during PyPI downloads. #[derive(Debug, thiserror::Error)] pub enum PyPiDownloadError { /// Errors that occur during HTTP requests. @@ -335,6 +336,8 @@ impl WheelTags { self.platform.is_compatible_with_system() } } + +/// A downloader for PyPI releases. pub struct PyPiDownloader; impl Cacher for PyPiDownloader {} diff --git a/clang-installer/src/downloader/static_dist.rs b/clang-installer/src/downloader/static_dist.rs index d08aee2e..eedb18ef 100644 --- a/clang-installer/src/downloader/static_dist.rs +++ b/clang-installer/src/downloader/static_dist.rs @@ -15,22 +15,36 @@ use crate::{ downloader::{download, hashing::HashAlgorithm}, }; +/// An error that can occur while downloading a static binary. #[derive(Debug, thiserror::Error)] pub enum StaticDistDownloadError { + /// An error that occurred while downloading the binary. #[error("Failed to download static binary: {0}")] DownloadError(#[from] DownloadError), + + /// The requested version does not match any available versions. #[error("The requested version does not match any available versions")] UnsupportedVersion, + + /// The static binaries are only built for x86_64 (amd64) architecture. #[error("The static binaries are only built for x86_64 (amd64) architecture")] UnsupportedArchitecture, + + /// Failed to parse a URL. #[error("Failed to parse the URL: {0}")] UrlParseError(#[from] url::ParseError), + + /// Failed to read or write a cache file. #[error("Failed to read or write cache file: {0}")] IoError(#[from] std::io::Error), + + /// Failed to parse the SHA512 sum file. #[error("Failed to parse the SHA512 sum file")] Sha512Corruption, } +/// A downloader that uses statically linked binary distribution files +/// provided by the cpp-linter team. pub struct StaticDistDownloader; impl Cacher for StaticDistDownloader {} @@ -81,7 +95,7 @@ impl StaticDistDownloader { /// Downloads the `requested_version` of the specified `tool` from a distribution of statically linked binaries. /// - /// The distribution is maintained at https://github.com/cpp-linter/clang-tools-static-binaries. + /// The distribution is maintained at . /// Supported platforms includes Windows, Linux, and MacOS. /// Supported architectures is limited to `x86_64` (`amd64`). pub async fn download_tool( diff --git a/clang-installer/src/lib.rs b/clang-installer/src/lib.rs index 5a8edc2f..1fbecaab 100644 --- a/clang-installer/src/lib.rs +++ b/clang-installer/src/lib.rs @@ -21,8 +21,5 @@ pub mod utils; mod version; pub use version::RequestedVersion; -mod cli; -pub use cli::CliOptions; - mod progress_bar; pub use progress_bar::ProgressBar; diff --git a/clang-installer/src/main.rs b/clang-installer/src/main.rs index 1977fb4f..4e79e9a8 100644 --- a/clang-installer/src/main.rs +++ b/clang-installer/src/main.rs @@ -1,100 +1,133 @@ use anyhow::Result; -use clang_installer::{CliOptions, RequestedVersion}; +use clang_installer::{ClangTool, RequestedVersion}; use clap::Parser; -use colored::{Colorize, control::set_override}; -use log::{Level, LevelFilter, Log, Metadata, Record}; -use std::{ - collections::HashMap, - env, - io::{Write, stdout}, -}; +use std::{collections::HashMap, path::PathBuf, str::FromStr}; +mod logging { + use colored::{Colorize, control::set_override}; + use log::{Level, LevelFilter, Log, Metadata, Record}; + use std::{ + env, + io::{Write, stdout}, + }; -struct SimpleLogger; + struct SimpleLogger; -impl SimpleLogger { - fn level_color(level: &Level) -> String { - let name = format!("{:>5}", level.as_str().to_uppercase()); - match level { - Level::Error => name.red().bold().to_string(), - Level::Warn => name.yellow().bold().to_string(), - Level::Info => name.green().bold().to_string(), - Level::Debug => name.blue().bold().to_string(), - Level::Trace => name.magenta().bold().to_string(), + impl SimpleLogger { + fn level_color(level: &Level) -> String { + let name = format!("{:>5}", level.as_str().to_uppercase()); + match level { + Level::Error => name.red().bold().to_string(), + Level::Warn => name.yellow().bold().to_string(), + Level::Info => name.green().bold().to_string(), + Level::Debug => name.blue().bold().to_string(), + Level::Trace => name.magenta().bold().to_string(), + } } } -} -impl Log for SimpleLogger { - fn enabled(&self, metadata: &Metadata) -> bool { - metadata.level() <= log::max_level() - } + impl Log for SimpleLogger { + fn enabled(&self, metadata: &Metadata) -> bool { + metadata.level() <= log::max_level() + } - fn log(&self, record: &Record) { - let mut stdout = stdout().lock(); - if record.target() == "CI_LOG_GROUPING" { - // this log is meant to manipulate a CI workflow's log grouping - writeln!(stdout, "{}", record.args()).expect("Failed to write log command to stdout"); - stdout - .flush() - .expect("Failed to flush log command in stdout"); - } else if self.enabled(record.metadata()) { - let module = record.module_path(); - if module - .is_none_or(|v| v.starts_with("clang_installer") || v.starts_with("clang_tools")) - { - writeln!( - stdout, - "[{}]: {}", - Self::level_color(&record.level()), - record.args() - ) - .expect("Failed to write log message to stdout"); - } else if let Some(module) = module { - writeln!( - stdout, - "[{}]{{{}:{}}}: {}", - Self::level_color(&record.level()), - module, - record.line().unwrap_or_default(), - record.args() - ) - .expect("Failed to write detailed log message to stdout"); + fn log(&self, record: &Record) { + let mut stdout = stdout().lock(); + if record.target() == "CI_LOG_GROUPING" { + // this log is meant to manipulate a CI workflow's log grouping + writeln!(stdout, "{}", record.args()) + .expect("Failed to write log command to stdout"); + stdout + .flush() + .expect("Failed to flush log command in stdout"); + } else if self.enabled(record.metadata()) { + let module = record.module_path(); + if module.is_none_or(|v| { + v.starts_with("clang_installer") || v.starts_with("clang_tools") + }) { + writeln!( + stdout, + "[{}]: {}", + Self::level_color(&record.level()), + record.args() + ) + .expect("Failed to write log message to stdout"); + } else if let Some(module) = module { + writeln!( + stdout, + "[{}]{{{}:{}}}: {}", + Self::level_color(&record.level()), + module, + record.line().unwrap_or_default(), + record.args() + ) + .expect("Failed to write detailed log message to stdout"); + } + stdout + .flush() + .expect("Failed to flush log message in stdout"); } - stdout - .flush() - .expect("Failed to flush log message in stdout"); } + + fn flush(&self) {} } - fn flush(&self) {} + /// A function to initialize the private `LOGGER`. + /// + /// The logging level defaults to [`LevelFilter::Info`]. + /// This logs a debug message about [`SetLoggerError`](struct@log::SetLoggerError) + /// if the `LOGGER` is already initialized. + pub fn initialize_logger() { + let logger: SimpleLogger = SimpleLogger; + if env::var("CPP_LINTER_COLOR") + .as_deref() + .is_ok_and(|v| matches!(v, "on" | "1" | "true")) + { + set_override(true); + } + if let Err(e) = + log::set_boxed_logger(Box::new(logger)).map(|()| log::set_max_level(LevelFilter::Info)) + { + // logger singleton already instantiated. + // we'll just use whatever the current config is. + log::debug!("{e:?}"); + } + } } -/// A function to initialize the private `LOGGER`. -/// -/// The logging level defaults to [`LevelFilter::Info`]. -/// This logs a debug message about [`SetLoggerError`](struct@log::SetLoggerError) -/// if the `LOGGER` is already initialized. -pub fn initialize_logger() { - let logger: SimpleLogger = SimpleLogger; - if env::var("CPP_LINTER_COLOR") - .as_deref() - .is_ok_and(|v| matches!(v, "on" | "1" | "true")) - { - set_override(true); - } - if let Err(e) = - log::set_boxed_logger(Box::new(logger)).map(|()| log::set_max_level(LevelFilter::Info)) - { - // logger singleton already instantiated. - // we'll just use whatever the current config is. - log::debug!("{e:?}"); - } +#[derive(clap::Parser, Debug)] +pub struct CliOptions { + /// The desired version of clang to install. + #[arg( + short, + long, + default_missing_value = "CPP-LINTER-VERSION", + num_args = 0..=1, + value_parser = RequestedVersion::from_str, + default_value = "", + )] + pub version: Option, + /// The clang tool to install. + #[arg( + short, + long, + value_delimiter = ' ', + default_value = "clang-format clang-tidy" + )] + pub tool: Option>, + /// The directory where the clang tools should be installed. + #[arg(short, long)] + pub directory: Option, + /// Force overwriting symlink to the installed binary. + /// + /// This will only overwrite an existing symlink. + #[arg(short, long)] + pub force: bool, } #[tokio::main] async fn main() -> Result<()> { - initialize_logger(); + logging::initialize_logger(); let options = CliOptions::parse(); log::debug!("{:?}", options); diff --git a/clang-installer/src/tool.rs b/clang-installer/src/tool.rs index 7c6596c3..fdf4ffb0 100644 --- a/clang-installer/src/tool.rs +++ b/clang-installer/src/tool.rs @@ -52,6 +52,7 @@ pub enum GetClangVersionError { SemVerParse(#[from] semver::Error), } +/// A enumeration of supported clang tools. #[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)] #[cfg_attr(feature = "clap", derive(clap::ValueEnum))] pub enum ClangTool { diff --git a/clang-installer/src/utils.rs b/clang-installer/src/utils.rs index d534a2f6..49ed2289 100644 --- a/clang-installer/src/utils.rs +++ b/clang-installer/src/utils.rs @@ -1,3 +1,4 @@ +//! A utility module for path normalization. use std::path::{Component, Path, PathBuf}; /// This was copied from [cargo source code](https://github.com/rust-lang/cargo/blob/8cc0cb136772b8f54eafe0d163fcb7226a06af0c/crates/cargo-util/src/paths.rs#L84). diff --git a/clang-installer/src/version.rs b/clang-installer/src/version.rs index 8e1b6655..305af728 100644 --- a/clang-installer/src/version.rs +++ b/clang-installer/src/version.rs @@ -14,6 +14,7 @@ pub struct ClangVersion { pub path: PathBuf, } +/// An enumeration of the possible requested versions of the clang tool binary. #[derive(Debug, Clone, PartialEq, Eq, Default)] pub enum RequestedVersion { /// A specific path to the clang tool binary. @@ -31,26 +32,42 @@ pub enum RequestedVersion { /// A sentinel when no value is given. /// /// This is used internally to differentiate when the user intended - /// to invoke the `version` subcommand instead. + /// to invoke the `version` CLI subcommand instead. NoValue, } +/// Errors that occur when getting the clang tool binary. #[derive(Debug, thiserror::Error)] pub enum GetToolError { + /// No executable found for the specified version requirement. #[error("No executable found for the specified version requirement")] NotFound, + + /// Failed to parse the version string. #[error("Failed to parse version: {0}")] VersionParseError(String), + + /// The version requirement does not specify a major version. #[error("The version requirement does not specify a major version")] VersionMajorRequired, + + /// Binary executable in cache has no parent directory. #[error("Binary executable in cache has no parent directory")] ExecutablePathNoParent, + + /// Failed to capture the clang version from `--version` output. #[error("Failed to capture the clang version from `--version` output: {0}")] GetClangVersion(#[from] GetClangVersionError), + + /// Failed to get the clang executable path. #[error("Failed to get the clang executable path: {0}")] GetClangPathError(#[from] GetClangPathError), + + /// Failed to create symlink for the downloaded binary. #[error("Failed to create symlink for the downloaded binary: {0}")] SymlinkError(std::io::Error), + + /// Failed to download tool from PyPi. #[error("Failed to download tool from PyPi: {0}")] PyPiDownloadError(#[from] PyPiDownloadError), } @@ -123,12 +140,18 @@ impl RequestedVersion { } } +/// Represents an error that occurred while parsing a requested version. #[derive(Debug, thiserror::Error)] pub enum RequestedVersionParsingError { + /// The specified version is not a proper version requirement or a valid path. #[error("The specified version is not a proper version requirement or a valid path: {0}")] InvalidInput(String), + + /// Unknown parent directory of the given file path for `--version`. #[error("Unknown parent directory of the given file path for `--version`: {0}")] InvalidPath(String), + + /// Failed to canonicalize path '{0}'. #[error("Failed to canonicalize path '{0}': {1:?}")] NonCanonicalPath(String, std::io::Error), } diff --git a/cpp-linter/Cargo.toml b/cpp-linter/Cargo.toml index bae1a5b0..77bdf5e7 100644 --- a/cpp-linter/Cargo.toml +++ b/cpp-linter/Cargo.toml @@ -17,8 +17,8 @@ license.workspace = true anyhow = { workspace = true } chrono = "0.4.44" clang-installer = { path = "../clang-installer", version = "0.1.0" } -clap = { workspace = true } -colored = { workspace = true } +clap = { workspace = true, optional = true } +colored = { workspace = true, optional = true } fast-glob = "1.0.1" futures = "0.3.32" git2 = "0.20.4" @@ -39,7 +39,7 @@ git2 = { version = "0.20.4", features = ["https"]} [features] openssl-vendored = ["git2/vendored-openssl", "reqwest/native-tls-vendored"] -bin = ["reqwest/native-tls"] +bin = ["reqwest/native-tls", "dep:clap", "dep:colored"] [lib] bench = false diff --git a/cpp-linter/README.md b/cpp-linter/README.md index ff907cdc..bc4d2535 100644 --- a/cpp-linter/README.md +++ b/cpp-linter/README.md @@ -12,10 +12,6 @@ This crate contains the the library used as a backend for the - [x] file annotation - [x] pull request review suggestions -Since the [cpp-linter python package][pypi-org] now uses this library -as a binding, the native binary's `main()` behavior is also present in this -library (see [`run::run_main()`](fn@crate::run::run_main)). - See also the [CLI document hosted on github][gh-pages]. [pypi-org]: https://pypi.org/project/cpp-linter diff --git a/cpp-linter/src/clang_tools/mod.rs b/cpp-linter/src/clang_tools/mod.rs index 04e73125..ed1a81ad 100644 --- a/cpp-linter/src/clang_tools/mod.rs +++ b/cpp-linter/src/clang_tools/mod.rs @@ -286,6 +286,7 @@ pub fn make_patch<'buffer>( Ok(patch) } +/// A trait for generating suggestions from a [`FileObj`]'s advice's generated `patched` buffer. pub trait MakeSuggestions { /// Create some user-facing helpful info about what the suggestion aims to resolve. fn get_suggestion_help(&self, start_line: u32, end_line: u32) -> String; diff --git a/cpp-linter/src/cli/mod.rs b/cpp-linter/src/cli/mod.rs index 21624da1..6437c845 100644 --- a/cpp-linter/src/cli/mod.rs +++ b/cpp-linter/src/cli/mod.rs @@ -1,10 +1,14 @@ #![deny(clippy::unwrap_used)] //! This module holds the Command Line Interface design. -use std::{path::PathBuf, str::FromStr}; +use std::path::PathBuf; +#[cfg(feature = "bin")] +use std::str::FromStr; // non-std crates +#[cfg(feature = "bin")] use clang_installer::RequestedVersion; +#[cfg(feature = "bin")] use clap::{ ArgAction, Args, Parser, Subcommand, ValueEnum, builder::{FalseyValueParser, NonEmptyStringValueParser}, @@ -14,19 +18,24 @@ use clap::{ mod structs; pub use structs::{ClangParams, FeedbackInput, LinesChangedOnly, ThreadComments}; +/// An enumeration of possible verbosity levels. +#[cfg(feature = "bin")] #[derive(Debug, Clone, PartialEq, Eq, ValueEnum)] pub enum Verbosity { Info, Debug, } +#[cfg(feature = "bin")] impl Verbosity { + /// Returns `true` if the verbosity level (`self`) is [`Self::Debug`]. pub fn is_debug(&self) -> bool { matches!(self, Verbosity::Debug) } } /// A structure to contain parsed CLI options. +#[cfg(feature = "bin")] #[derive(Debug, Clone, Parser)] #[command(author, about)] pub struct Cli { @@ -62,12 +71,16 @@ pub struct Cli { pub commands: Option, } -#[derive(Debug, Subcommand, Clone)] +/// A subcommand for the CLI. +#[cfg(feature = "bin")] +#[derive(Debug, Clone, Subcommand)] pub enum CliCommand { /// Display the version of cpp-linter and exit. Version, } +/// A struct to describe the CLI's general options. +#[cfg(feature = "bin")] #[derive(Debug, Clone, Args)] #[group(id = "General options", multiple = true, required = false)] pub struct GeneralOptions { @@ -83,15 +96,18 @@ pub struct GeneralOptions { /// All paths specified here are converted to absolute. /// - If this option is specified without a value, then /// the cpp-linter version is printed and the program exits. - #[arg( - short = 'V', - long, - default_missing_value = "CPP-LINTER-VERSION", - num_args = 0..=1, - value_parser = RequestedVersion::from_str, - default_value = "", - help_heading = "General options", - verbatim_doc_comment + #[cfg_attr( + feature = "bin", + arg( + short = 'V', + long, + default_missing_value = "CPP-LINTER-VERSION", + num_args = 0..=1, + value_parser = RequestedVersion::from_str, + default_value = "", + help_heading = "General options", + verbatim_doc_comment + ) )] pub version: RequestedVersion, @@ -99,28 +115,39 @@ pub struct GeneralOptions { /// /// This option does not affect the verbosity of resulting /// thread comments or file annotations. - #[arg( - short = 'v', - long, - default_value = "info", - default_missing_value = "debug", - num_args = 0..=1, - help_heading = "General options" + #[cfg_attr( + feature = "bin", + arg( + short = 'v', + long, + default_value = "info", + default_missing_value = "debug", + num_args = 0..=1, + help_heading = "General options" + ) )] pub verbosity: Verbosity, } -#[derive(Debug, Clone, Args)] -#[group(id = "Source options", multiple = true, required = false)] +/// A struct to describe the CLI's source options. +#[derive(Debug, Clone)] +#[cfg_attr(feature = "bin", derive(Args))] +#[cfg_attr( + feature = "bin", + group(id = "Source options", multiple = true, required = false) +)] pub struct SourceOptions { /// A comma-separated list of file extensions to analyze. - #[arg( - short, - long, - value_delimiter = ',', - default_value = "c,h,C,H,cpp,hpp,cc,hh,c++,h++,cxx,hxx", - value_parser = NonEmptyStringValueParser::new(), - help_heading = "Source options" + #[cfg_attr( + feature = "bin", + arg( + short, + long, + value_delimiter = ',', + default_value = "c,h,C,H,cpp,hpp,cc,hh,c++,h++,cxx,hxx", + value_parser = NonEmptyStringValueParser::new(), + help_heading = "Source options" + ) )] pub extensions: Vec, @@ -129,17 +156,23 @@ pub struct SourceOptions { /// This path is relative to the runner's `GITHUB_WORKSPACE` /// environment variable (or the current working directory if /// not using a CI runner). - #[arg(short, long, default_value = ".", help_heading = "Source options")] + #[cfg_attr( + feature = "bin", + arg(short, long, default_value = ".", help_heading = "Source options") + )] pub repo_root: String, /// This controls what part of the files are analyzed. - #[arg( - short, - long, - default_value = "true", - help_heading = "Source options", - ignore_case = true, - verbatim_doc_comment + #[cfg_attr( + feature = "bin", + arg( + short, + long, + default_value = "true", + help_heading = "Source options", + ignore_case = true, + verbatim_doc_comment + ) )] pub lines_changed_only: LinesChangedOnly, @@ -155,22 +188,25 @@ pub struct SourceOptions { /// > /// > See [Authenticating with the `GITHUB_TOKEN`]( /// > https://docs.github.com/en/actions/reference/authentication-in-a-workflow). - #[arg( - short, - long, - default_value = "false", - default_missing_value = "true", - default_value_ifs = [ - ("lines-changed-only", "true", "true"), - ("lines-changed-only", "on", "true"), - ("lines-changed-only", "1", "true"), - ("lines-changed-only", "diff", "true"), - ], - num_args = 0..=1, - action = ArgAction::Set, - value_parser = FalseyValueParser::new(), - help_heading = "Source options", - verbatim_doc_comment, + #[cfg_attr( + feature = "bin", + arg( + short, + long, + default_value = "false", + default_missing_value = "true", + default_value_ifs = [ + ("lines-changed-only", "true", "true"), + ("lines-changed-only", "on", "true"), + ("lines-changed-only", "1", "true"), + ("lines-changed-only", "diff", "true"), + ], + num_args = 0..=1, + action = ArgAction::Set, + value_parser = FalseyValueParser::new(), + help_heading = "Source options", + verbatim_doc_comment, + ) )] pub files_changed_only: bool, @@ -187,13 +223,16 @@ pub struct SourceOptions { /// applied to a submodule's path (if desired) but not hidden directories. /// - Glob patterns are supported here. Path separators in glob patterns should /// use `/` because `\` represents an escaped literal. - #[arg( - short, - long, - value_delimiter = '|', - default_value = ".github|target", - help_heading = "Source options", - verbatim_doc_comment + #[cfg_attr( + feature = "bin", + arg( + short, + long, + value_delimiter = '|', + default_value = ".github|target", + help_heading = "Source options", + verbatim_doc_comment + ) )] pub ignore: Vec, @@ -203,24 +242,35 @@ pub struct SourceOptions { /// If it is an integer, then it is treated as the number of parent commits from HEAD. /// /// This option only applies to non-CI contexts (eg. local CLI use). - #[arg( - short = 'b', - long, - value_name = "REF", - help_heading = "Source options", - verbatim_doc_comment + #[cfg_attr( + feature = "bin", + arg( + short = 'b', + long, + value_name = "REF", + help_heading = "Source options", + verbatim_doc_comment + ) )] pub diff_base: Option, /// Assert this switch to ignore any staged changes when /// generating a diff of changed files. /// Useful when used with [`--diff-base`](#-b-diff-base). - #[arg(default_value_t = false, long, help_heading = "Source options")] + #[cfg_attr( + feature = "bin", + arg(default_value_t = false, long, help_heading = "Source options") + )] pub ignore_index: bool, } -#[derive(Debug, Clone, Args)] -#[group(id = "Clang-format options", multiple = true, required = false)] +/// A struct to describe the CLI's clang-format options. +#[derive(Debug, Clone)] +#[cfg_attr(feature = "bin", derive(Args))] +#[cfg_attr( + feature = "bin", + group(id = "Clang-format options", multiple = true, required = false) +)] pub struct FormatOptions { /// The style rules to use. /// @@ -234,38 +284,52 @@ pub struct FormatOptions { /// > (if [`--tidy_checks`](#-c-tidy-checks) is not `-*`). /// > This is done to ensure suggestions from both clang-tidy and /// > clang-format are consistent. - #[arg( - short, - long, - default_value = "llvm", - default_missing_value = "file", - num_args = 0..=1, - help_heading = "Clang-format options", - verbatim_doc_comment + #[cfg_attr( + feature = "bin", + arg( + short, + long, + default_value = "llvm", + default_missing_value = "file", + num_args = 0..=1, + help_heading = "Clang-format options", + verbatim_doc_comment + ) )] pub style: String, /// Similar to [`--ignore`](#-i-ignore) but applied /// exclusively to files analyzed by clang-format. - #[arg( - short = 'M', - long, - value_delimiter = '|', - help_heading = "Clang-format options" + #[cfg_attr( + feature = "bin", + arg( + short = 'M', + long, + value_delimiter = '|', + help_heading = "Clang-format options" + ) )] pub ignore_format: Option>, } -#[derive(Debug, Clone, Args)] -#[group(id = "Clang-tidy options", multiple = true, required = false)] +/// A struct to describe the CLI's clang-tidy options. +#[derive(Debug, Clone)] +#[cfg_attr(feature = "bin", derive(Args))] +#[cfg_attr( + feature = "bin", + group(id = "Clang-tidy options", multiple = true, required = false) +)] pub struct TidyOptions { /// Similar to [`--ignore`](#-i-ignore) but applied /// exclusively to files analyzed by clang-tidy. - #[arg( - short = 'D', - long, - value_delimiter = '|', - help_heading = "Clang-tidy options" + #[cfg_attr( + feature = "bin", + arg( + short = 'D', + long, + value_delimiter = '|', + help_heading = "Clang-tidy options" + ) )] pub ignore_tidy: Option>, @@ -283,7 +347,7 @@ pub struct TidyOptions { /// specifying this option as a blank string (`''`). /// /// See also clang-tidy docs for more info. - #[arg( + #[cfg_attr(feature = "bin", arg( short = 'c', long, default_value = "boost-*,bugprone-*,performance-*,readability-*,portability-*,modernize-*,clang-analyzer-*,cppcoreguidelines-*", @@ -291,7 +355,7 @@ pub struct TidyOptions { num_args = 0..=1, help_heading = "Clang-tidy options", verbatim_doc_comment - )] + ))] pub tidy_checks: String, /// The path that is used to read a compile command database. @@ -302,13 +366,13 @@ pub struct TidyOptions { /// attempted through all parent paths of the first input file. See [LLVM docs about /// setup tooling](https://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) /// for an example of setting up Clang Tooling on a source tree. - #[arg( + #[cfg_attr(feature = "bin", arg( short = 'p', long, value_name = "PATH", value_parser = value_parser!(PathBuf), help_heading = "Clang-tidy options", - )] + ))] pub database: Option, /// A string of extra arguments passed to clang-tidy for use as compiler arguments. @@ -320,18 +384,23 @@ pub struct TidyOptions { /// ```shell /// cpp-linter --extra-arg="-std=c++17" --extra-arg="-Wall" /// ``` - #[arg( + #[cfg_attr(feature = "bin", arg( short = 'x', long, action = ArgAction::Append, help_heading = "Clang-tidy options", verbatim_doc_comment - )] + ))] pub extra_arg: Vec, } -#[derive(Debug, Clone, Args)] -#[group(id = "Feedback options", multiple = true, required = false)] +/// A struct to describe the CLI's feedback options. +#[derive(Debug, Clone)] +#[cfg_attr(feature = "bin", derive(Args))] +#[cfg_attr( + feature = "bin", + group(id = "Feedback options", multiple = true, required = false) +)] pub struct FeedbackOptions { /// Set this option to true to enable the use of thread comments as feedback. /// @@ -342,7 +411,7 @@ pub struct FeedbackOptions { /// > /// > See [Authenticating with the `GITHUB_TOKEN`]( /// > https://docs.github.com/en/actions/reference/authentication-in-a-workflow). - #[arg( + #[cfg_attr(feature = "bin", arg( short = 'g', long, default_value = "false", @@ -351,7 +420,7 @@ pub struct FeedbackOptions { help_heading = "Feedback options", ignore_case = true, verbatim_doc_comment - )] + ))] pub thread_comments: ThreadComments, /// Set this option to true or false to enable or disable the use of a @@ -360,7 +429,7 @@ pub struct FeedbackOptions { /// > [!IMPORTANT] /// > The [`--thread-comments`](#-g-thread-comments) /// > option also notes further implications. - #[arg( + #[cfg_attr(feature = "bin", arg( short = 't', long, default_value_t = true, @@ -368,12 +437,12 @@ pub struct FeedbackOptions { value_parser = FalseyValueParser::new(), help_heading = "Feedback options", verbatim_doc_comment, - )] + ))] pub no_lgtm: bool, /// Set this option to true or false to enable or disable the use of /// a workflow step summary when the run has concluded. - #[arg( + #[cfg_attr(feature = "bin", arg( short = 'w', long, default_value_t = false, @@ -382,23 +451,23 @@ pub struct FeedbackOptions { action = ArgAction::Set, value_parser = FalseyValueParser::new(), help_heading = "Feedback options", - )] + ))] pub step_summary: bool, /// Set this option to false to disable the use of /// file annotations as feedback. - #[arg( + #[cfg_attr(feature = "bin", arg( short = 'a', long, default_value_t = true, action = ArgAction::Set, value_parser = FalseyValueParser::new(), help_heading = "Feedback options", - )] + ))] pub file_annotations: bool, /// Set to `true` to enable Pull Request reviews from clang-tidy. - #[arg( + #[cfg_attr(feature = "bin", arg( short = 'd', long, default_value_t = false, @@ -407,11 +476,11 @@ pub struct FeedbackOptions { action = ArgAction::Set, value_parser = FalseyValueParser::new(), help_heading = "Feedback options", - )] + ))] pub tidy_review: bool, /// Set to `true` to enable Pull Request reviews from clang-format. - #[arg( + #[cfg_attr(feature = "bin", arg( short = 'm', long, default_value_t = false, @@ -420,12 +489,12 @@ pub struct FeedbackOptions { action = ArgAction::Set, value_parser = FalseyValueParser::new(), help_heading = "Feedback options", - )] + ))] pub format_review: bool, /// Set to `true` to prevent Pull Request reviews from /// approving or requesting changes. - #[arg( + #[cfg_attr(feature = "bin", arg( short = 'R', long, default_value_t = false, @@ -434,7 +503,7 @@ pub struct FeedbackOptions { action = ArgAction::Set, value_parser = FalseyValueParser::new(), help_heading = "Feedback options", - )] + ))] pub passive_reviews: bool, } @@ -476,7 +545,7 @@ pub fn convert_extra_arg_val(args: &[String]) -> Vec { } } -#[cfg(test)] +#[cfg(all(test, feature = "bin"))] mod test { use super::{Cli, convert_extra_arg_val}; use clap::Parser; diff --git a/cpp-linter/src/cli/structs.rs b/cpp-linter/src/cli/structs.rs index 0b67465c..aa173d26 100644 --- a/cpp-linter/src/cli/structs.rs +++ b/cpp-linter/src/cli/structs.rs @@ -1,7 +1,9 @@ use std::{fmt::Display, path::PathBuf}; +#[cfg(feature = "bin")] use clap::{ValueEnum, builder::PossibleValue}; +#[cfg(feature = "bin")] use super::Cli; use crate::{clang_tools::clang_tidy::CompilationUnit, common_fs::FileFilter}; @@ -17,6 +19,7 @@ pub enum LinesChangedOnly { On, } +#[cfg(feature = "bin")] impl ValueEnum for LinesChangedOnly { /// Get a list possible value variants for display in `--help` output. fn value_variants<'a>() -> &'a [Self] { @@ -94,6 +97,7 @@ pub enum ThreadComments { Update, } +#[cfg(feature = "bin")] impl ValueEnum for ThreadComments { /// Get a list possible value variants for display in `--help` output. fn value_variants<'a>() -> &'a [Self] { @@ -164,6 +168,7 @@ pub struct ClangParams { pub format_review: bool, } +#[cfg(feature = "bin")] impl From<&Cli> for ClangParams { /// Construct a [`ClangParams`] instance from a [`Cli`] instance. fn from(args: &Cli) -> Self { @@ -205,6 +210,7 @@ pub struct FeedbackInput { pub passive_reviews: bool, } +#[cfg(feature = "bin")] impl From<&Cli> for FeedbackInput { /// Construct a [`FeedbackInput`] instance from a [`Cli`] instance. fn from(args: &Cli) -> Self { @@ -239,11 +245,13 @@ impl Default for FeedbackInput { #[cfg(test)] mod test { + #[cfg(feature = "bin")] use clap::{Parser, ValueEnum}; use super::{Cli, LinesChangedOnly, ThreadComments}; #[test] + #[cfg(feature = "bin")] fn parse_positional() { let cli = Cli::parse_from(["cpp-linter", "file1.c", "file2.h"]); let not_ignored = cli.not_ignored.expect("failed to parse positional args"); diff --git a/cpp-linter/src/common_fs/file_filter.rs b/cpp-linter/src/common_fs/file_filter.rs index e474dc79..924cf72e 100644 --- a/cpp-linter/src/common_fs/file_filter.rs +++ b/cpp-linter/src/common_fs/file_filter.rs @@ -7,6 +7,7 @@ use std::{ use super::FileObj; +/// A filter for files based on their path and extension. #[derive(Debug, Clone)] pub struct FileFilter { pub ignored: Vec, @@ -14,6 +15,12 @@ pub struct FileFilter { pub extensions: Vec, } impl FileFilter { + /// Creates a new `FileFilter` from a list of ignore patterns and a list of extensions. + /// + /// The `ignore` parameter is a list of glob patterns that should be ignored. + /// These can be explicitly not ignored by prefixing them with `!`. + /// + /// The `extensions` parameter is a list of file extensions that should be included. pub fn new(ignore: &[String], extensions: Vec) -> Self { let (ignored, not_ignored) = Self::parse_ignore(ignore); Self { diff --git a/cpp-linter/src/rest_api/mod.rs b/cpp-linter/src/rest_api/mod.rs index 267c6be2..9f1634e1 100644 --- a/cpp-linter/src/rest_api/mod.rs +++ b/cpp-linter/src/rest_api/mod.rs @@ -21,11 +21,16 @@ use crate::clang_tools::ClangVersions; use crate::cli::{FeedbackInput, LinesChangedOnly}; use crate::common_fs::{FileFilter, FileObj}; +/// The comment marker used to identify bot comments from other comments (from users or other bots). pub static COMMENT_MARKER: &str = "\n"; + +/// The user outreach message displayed in bot comments. pub static USER_OUTREACH: &str = concat!( "\n\nHave any feedback or feature suggestions? [Share it here.]", "(https://github.com/cpp-linter/cpp-linter-action/issues)" ); + +/// The user agent string used for HTTP requests. pub static USER_AGENT: &str = concat!("cpp-linter/", env!("CARGO_PKG_VERSION")); /// A structure to contain the different forms of headers that diff --git a/cpp-linter/src/run.rs b/cpp-linter/src/run.rs index e291cb2c..f9ff317e 100644 --- a/cpp-linter/src/run.rs +++ b/cpp-linter/src/run.rs @@ -3,6 +3,7 @@ //! In python, this module is exposed as `cpp_linter.run` that has 1 function exposed: //! `main()`. #![deny(clippy::unwrap_used)] +#![cfg(feature = "bin")] use std::{ env, path::Path, diff --git a/docs/Cargo.toml b/docs/Cargo.toml index 0c76980e..47e153c2 100644 --- a/docs/Cargo.toml +++ b/docs/Cargo.toml @@ -9,7 +9,7 @@ authors.workspace = true license.workspace = true [dependencies] -cpp-linter = { path = "../cpp-linter" } +cpp-linter = { path = "../cpp-linter", features = ["bin"] } pyo3.workspace = true clap.workspace = true diff --git a/nurfile b/nurfile index 9f74ad78..a63455f4 100644 --- a/nurfile +++ b/nurfile @@ -48,8 +48,10 @@ def "nur docs rs" [ "doc", "--no-deps", "--lib", - "--manifest-path", - "cpp-linter/Cargo.toml", + "--package", + "cpp-linter", + "--package", + "clang-installer", ] if $open { $cmd = $cmd | append "--open" @@ -163,7 +165,7 @@ export def "nur test lcov" [] { export def "nur lint" [ --check (-c), # Only check, do not fix ] { - mut clippy = [cargo clippy] + mut clippy = [cargo clippy --features bin] if $check { $clippy = $clippy | append [-- -D warnings] } else { From f8b50b7b464f2976e252aff06d3b78da59d9f185 Mon Sep 17 00:00:00 2001 From: Brendan <2bndy5@gmail.com> Date: Wed, 11 Mar 2026 00:42:33 -0700 Subject: [PATCH 3/5] review changes --- .github/workflows/binary-builds.yml | 8 +- .github/workflows/run-dev-tests.yml | 138 +++--------------- .../src/downloader/native_packages/mod.rs | 4 + clang-installer/src/downloader/pypi.rs | 7 + clang-installer/src/downloader/static_dist.rs | 18 +-- clang-installer/src/progress_bar.rs | 2 +- clang-installer/src/version.rs | 14 +- cpp-linter/src/clang_tools/mod.rs | 4 +- cpp-linter/tests/comments.rs | 3 +- cpp-linter/tests/demo/.clang-tidy | 1 - 10 files changed, 61 insertions(+), 138 deletions(-) diff --git a/.github/workflows/binary-builds.yml b/.github/workflows/binary-builds.yml index 08265d03..6f85bf3d 100644 --- a/.github/workflows/binary-builds.yml +++ b/.github/workflows/binary-builds.yml @@ -67,10 +67,10 @@ jobs: os: ubuntu-latest vendored: true cross: true - - target: powerpc64-unknown-linux-gnu - os: ubuntu-latest - vendored: true - cross: true + # - target: powerpc64-unknown-linux-gnu + # os: ubuntu-latest + # vendored: true + # cross: true - target: powerpc64le-unknown-linux-gnu os: ubuntu-latest vendored: true diff --git a/.github/workflows/run-dev-tests.yml b/.github/workflows/run-dev-tests.yml index dfaf75b7..f63889df 100644 --- a/.github/workflows/run-dev-tests.yml +++ b/.github/workflows/run-dev-tests.yml @@ -31,7 +31,7 @@ jobs: strategy: fail-fast: false matrix: - os: ['windows-latest', ubuntu-latest] + os: ["windows-latest", ubuntu-latest] runs-on: ${{ matrix.os }} steps: @@ -93,125 +93,27 @@ jobs: - if: runner.os == 'Linux' run: sudo apt-get update - - name: Install clang 11 - uses: ./.github/install-clang-action - with: - version: '11' - - - name: Collect Coverage for clang v11 - env: - CLANG_VERSION: '11' - run: nur test --profile ci - - - name: Install clang 12 - uses: ./.github/install-clang-action - with: - version: '12' - - - name: Collect Coverage for clang v12 - env: - CLANG_VERSION: '12' - run: nur test --profile ci - - - name: Install clang 13 - uses: ./.github/install-clang-action - with: - version: '13' - - - name: Collect Coverage for clang v13 - env: - CLANG_VERSION: '13' - run: nur test --profile ci - - - name: Install clang 14 - uses: ./.github/install-clang-action - with: - version: '14' - - - name: Collect Coverage for clang v14 - env: - CLANG_VERSION: '14' - run: nur test --profile ci - - - name: Install clang 15 - uses: ./.github/install-clang-action - with: - version: '15' - - - name: Collect Coverage for clang v15 - env: - CLANG_VERSION: '15' - run: nur test --profile ci - - - name: Install clang 16 - uses: ./.github/install-clang-action - with: - version: '16' - - - name: Collect Coverage for clang v16 - env: - CLANG_VERSION: '16' - run: nur test --profile ci + - name: Install nushell + uses: hustcer/setup-nu@920172d92eb04671776f3ba69d605d3b09351c30 # v3.22 - - name: Install clang 17 - uses: ./.github/install-clang-action - with: - version: '17' - - - name: Collect Coverage for clang v17 - env: - CLANG_VERSION: '17' - run: nur test --profile ci - - - name: Install clang 18 - uses: ./.github/install-clang-action - with: - version: '18' - - - name: Collect Coverage for clang v18 + - name: Run test suite env: - CLANG_VERSION: '18' - run: nur test --profile ci - - - name: Install clang v19 - uses: ./.github/install-clang-action - with: - version: '19' - - - name: Collect Coverage for clang v19 - env: - CLANG_VERSION: '19' - run: nur test --profile ci - - - name: Install clang v20 - uses: ./.github/install-clang-action - with: - version: '20' - - - name: Collect Coverage for clang v20 - env: - CLANG_VERSION: '20' - run: nur test --profile ci - - - name: Install clang v21 - uses: ./.github/install-clang-action - with: - version: '21' - - - name: Collect Coverage for clang v21 - env: - CLANG_VERSION: '21' - run: nur test --profile ci - - - name: Install clang v22 - uses: ./.github/install-clang-action - with: - version: '22' - - - name: Collect Coverage for clang v22 - env: - CLANG_VERSION: '22' - run: nur test --profile all + MIN_CLANG_VERSION: "11" + MAX_CLANG_VERSION: "22" + shell: nu {0} + run: |- + let max_ver = $env.MAX_CLANG_VERSION | into int + let min_ver = $env.MIN_CLANG_VERSION | into int + for $ver in ($min_ver..$max_ver) { + print $"::group::Testing with clang v($ver)" + with-env { CLANG_VERSION: $"($ver)" } { + let test_profile = ( + if ($ver == $max_ver) { "all" } else { "ci" } + ) + nur test --profile $test_profile + } + print "::endgroup::" + } - name: Generate Coverage HTML report run: nur test llvm-cov diff --git a/clang-installer/src/downloader/native_packages/mod.rs b/clang-installer/src/downloader/native_packages/mod.rs index 004495e6..862576cd 100644 --- a/clang-installer/src/downloader/native_packages/mod.rs +++ b/clang-installer/src/downloader/native_packages/mod.rs @@ -74,6 +74,10 @@ pub fn try_install_package( } else { let min_version = get_min_ver(version_req).ok_or(GetToolError::VersionMajorRequired)?; for mgr in os_pkg_managers { + if !mgr.is_installed() { + log::debug!("Skipping {mgr} package manager as it is not installed."); + continue; + } log::info!("Trying to install {tool} v{min_version} using {mgr} package manager."); let pkg_name = mgr.get_package_name(tool); if mgr.is_installed_package(&pkg_name, Some(&min_version)) { diff --git a/clang-installer/src/downloader/pypi.rs b/clang-installer/src/downloader/pypi.rs index 34794af3..395fa1d9 100644 --- a/clang-installer/src/downloader/pypi.rs +++ b/clang-installer/src/downloader/pypi.rs @@ -461,6 +461,12 @@ impl PyPiDownloader { for i in 0..archive.len() { let mut file = archive.by_index(i)?; if file.name() == expected_zip_path { + if extracted_bin.exists() { + let meta = fs::metadata(extracted_bin)?; + if meta.len() == file.size() { + return Ok(()); + } + } if let Some(parent) = extracted_bin.parent() { fs::create_dir_all(parent)?; } @@ -474,6 +480,7 @@ impl PyPiDownloader { let mut total_extracted = 0; let mut progress_bar = ProgressBar::new(Some(file_size), "Extracting binary from wheel"); + progress_bar.render()?; while total_extracted < file_size { let bytes_read = file.read(&mut buffer)?; if bytes_read == 0 { diff --git a/clang-installer/src/downloader/static_dist.rs b/clang-installer/src/downloader/static_dist.rs index eedb18ef..c481e145 100644 --- a/clang-installer/src/downloader/static_dist.rs +++ b/clang-installer/src/downloader/static_dist.rs @@ -144,6 +144,15 @@ impl StaticDistDownloader { } else { log::info!("Downloading static binary for {tool} version {ver_str} from {url}"); download(&url, &download_path, 60 * 2).await?; + #[cfg(unix)] + { + // Make the extracted binary executable on Unix-like systems. + use std::os::unix::fs::PermissionsExt; + let out = fs::OpenOptions::new().write(true).open(&download_path)?; + let mut perms = out.metadata()?.permissions(); + perms.set_mode(0o755); + out.set_permissions(perms)?; + } } let sha512_cache_path = cache_path .join("static_dist") @@ -159,15 +168,6 @@ impl StaticDistDownloader { "Downloading SHA512 checksum for {tool} version {ver_str} from {sha512_url}" ); download(&sha512_url, &sha512_cache_path, 10).await?; - #[cfg(unix)] - { - // Make the extracted binary executable on Unix-like systems. - use std::os::unix::fs::PermissionsExt; - let out = fs::OpenOptions::new().write(true).open(&download_path)?; - let mut perms = out.metadata()?.permissions(); - perms.set_mode(0o755); - out.set_permissions(perms)?; - } } Self::verify_sha512(&download_path, &sha512_cache_path)?; Ok(download_path) diff --git a/clang-installer/src/progress_bar.rs b/clang-installer/src/progress_bar.rs index ed719923..a4b33325 100644 --- a/clang-installer/src/progress_bar.rs +++ b/clang-installer/src/progress_bar.rs @@ -96,7 +96,7 @@ impl ProgressBar { write!(&mut self.stdout_handle, "{}", out)?; } else { // only write chars to line (without new line) - let mut out = if self.current == 0 { + let mut out = if self.steps == 0 { format!("{}{} ", Self::LOG_INDENT, self.prompt) } else { String::new() diff --git a/clang-installer/src/version.rs b/clang-installer/src/version.rs index 305af728..1545f8a7 100644 --- a/clang-installer/src/version.rs +++ b/clang-installer/src/version.rs @@ -101,10 +101,22 @@ impl RequestedVersion { Ok(Some(ClangVersion { version, path })) } RequestedVersion::Requirement(version_req) => { + if let Ok(path) = + tool.get_exe_path(&RequestedVersion::Requirement(version_req.clone())) + { + let version = tool.capture_version(&path)?; + if version_req.matches(&version) { + log::info!( + "Found {tool} version {version} at path: {:?}", + path.to_string_lossy() + ); + return Ok(Some(ClangVersion { version, path })); + } + } let bin = match PyPiDownloader::download_tool(tool, version_req).await { Ok(bin) => bin, Err(e) => { - log::error!("Failed to download {tool} from PyPi: {e}"); + log::error!("Failed to download {tool} {version_req} from PyPi: {e}"); if let Some(result) = try_install_package(tool, version_req)? { return Ok(Some(result)); } diff --git a/cpp-linter/src/clang_tools/mod.rs b/cpp-linter/src/clang_tools/mod.rs index ed1a81ad..98e811c9 100644 --- a/cpp-linter/src/clang_tools/mod.rs +++ b/cpp-linter/src/clang_tools/mod.rs @@ -108,7 +108,7 @@ pub async fn capture_clang_tools_output( // info as debugging output. if clang_params.tidy_checks != "-*" { let tool = ClangTool::ClangTidy; - let tool_info = version.eval_tool(&tool, true).await?.ok_or(anyhow!( + let tool_info = version.eval_tool(&tool, false).await?.ok_or(anyhow!( "Failed to find {tool} or install a suitable version" ))?; clang_versions.tidy_version = Some(tool_info.version); @@ -116,7 +116,7 @@ pub async fn capture_clang_tools_output( } if !clang_params.style.is_empty() { let tool = ClangTool::ClangFormat; - let tool_info = version.eval_tool(&tool, true).await?.ok_or(anyhow!( + let tool_info = version.eval_tool(&tool, false).await?.ok_or(anyhow!( "Failed to find {tool} or install a suitable version" ))?; clang_versions.format_version = Some(tool_info.version); diff --git a/cpp-linter/tests/comments.rs b/cpp-linter/tests/comments.rs index 3c30e9b4..628278ef 100644 --- a/cpp-linter/tests/comments.rs +++ b/cpp-linter/tests/comments.rs @@ -244,8 +244,7 @@ async fn setup(lib_root: &Path, test_params: &TestParams) { if test_params.force_lgtm { args.push("-e=c".to_string()); } - let result = run_main(args).await; - assert!(result.is_ok()); + run_main(args).await.unwrap(); for mock in mocks { mock.assert(); } diff --git a/cpp-linter/tests/demo/.clang-tidy b/cpp-linter/tests/demo/.clang-tidy index ac9de51a..816809cd 100644 --- a/cpp-linter/tests/demo/.clang-tidy +++ b/cpp-linter/tests/demo/.clang-tidy @@ -2,7 +2,6 @@ Checks: 'clang-diagnostic-*,clang-analyzer-*,-*,performance-*,bugprone-*,clang-analyzer-*,mpi-*,misc-*,readability-*' WarningsAsErrors: '*' HeaderFilterRegex: '' -AnalyzeTemporaryDtors: false FormatStyle: 'file' CheckOptions: - key: bugprone-argument-comment.CommentBoolLiterals From 6fc06b6b76596572ad0a956c507a93d08b1c583b Mon Sep 17 00:00:00 2001 From: Brendan <2bndy5@gmail.com> Date: Thu, 12 Mar 2026 04:56:53 -0700 Subject: [PATCH 4/5] prioritize and order tests also check cache before (re)populating it --- .config/nextest.toml | 15 ++++- .../src/downloader/native_packages/mod.rs | 25 +------ clang-installer/src/version.rs | 66 +++++++++++++++---- 3 files changed, 68 insertions(+), 38 deletions(-) diff --git a/.config/nextest.toml b/.config/nextest.toml index 8d941a76..5d5f23c7 100644 --- a/.config/nextest.toml +++ b/.config/nextest.toml @@ -7,7 +7,7 @@ default-filter = """\ not test(#*rate_limit_secondary) \ - test(#git::test::with_*) \ - test(#git::test::repo_get_sha) \ - - test(#*eval_static_dist) + - test(#*eval_version) """ # This will flag any test that runs longer than 10 seconds. Useful when writing new tests. @@ -16,12 +16,23 @@ slow-timeout = "10s" # show which tests were skipped status-level = "skip" +[test-groups] +# keep cache-setup group serialized to avoid race conditions installing clang tools. +cache-setup = { max-threads = 1 } + +[[profile.default.overrides]] +# Run these tests with the highest priority. +filter = 'test(#*eval_version)' +priority = 100 +# assign it to a test group so that it can be run separately +test-group = 'cache-setup' + [profile.ci] # A profile to run only tests that use clang-tidy and/or clang-format # NOTE: This profile is intended to keep CI runtime low. Locally, use default or all profiles # This is all tests in tests/ folder + unit test for --extra-args. -default-filter = "kind(test) + test(#*use_extra_args)" +default-filter = "kind(test) + test(#*use_extra_args) + test(#*eval_version)" # show log output from each test success-output = "final" diff --git a/clang-installer/src/downloader/native_packages/mod.rs b/clang-installer/src/downloader/native_packages/mod.rs index 862576cd..07ce5d70 100644 --- a/clang-installer/src/downloader/native_packages/mod.rs +++ b/clang-installer/src/downloader/native_packages/mod.rs @@ -66,13 +66,13 @@ pub fn get_available_package_managers() -> Vec { pub fn try_install_package( tool: &ClangTool, version_req: &VersionReq, + min_version: &Version, ) -> Result, GetToolError> { let os_pkg_managers = get_available_package_managers(); if os_pkg_managers.is_empty() { log::error!("No supported package managers found on the system."); return Ok(None); } else { - let min_version = get_min_ver(version_req).ok_or(GetToolError::VersionMajorRequired)?; for mgr in os_pkg_managers { if !mgr.is_installed() { log::debug!("Skipping {mgr} package manager as it is not installed."); @@ -80,7 +80,7 @@ pub fn try_install_package( } log::info!("Trying to install {tool} v{min_version} using {mgr} package manager."); let pkg_name = mgr.get_package_name(tool); - if mgr.is_installed_package(&pkg_name, Some(&min_version)) { + if mgr.is_installed_package(&pkg_name, Some(min_version)) { let path = tool.get_exe_path(&RequestedVersion::Requirement(version_req.clone()))?; let version = tool.capture_version(&path)?; @@ -92,7 +92,7 @@ pub fn try_install_package( log::info!( "{mgr} package manager does not have a version of {tool} matching {version_req} installed." ); - match mgr.install_package(&pkg_name, Some(&min_version)) { + match mgr.install_package(&pkg_name, Some(min_version)) { Ok(()) => { log::info!( "Successfully installed {tool} v{min_version} using {mgr} package manager." @@ -121,22 +121,3 @@ pub fn try_install_package( } Ok(None) } - -fn get_min_ver(version_req: &VersionReq) -> Option { - let mut result = None; - for cmp in &version_req.comparators { - if matches!(cmp.op, semver::Op::Exact | semver::Op::Caret) { - let ver = Version { - major: cmp.major, - minor: cmp.minor.unwrap_or(0), - patch: cmp.patch.unwrap_or(0), - pre: cmp.pre.clone(), - build: Default::default(), - }; - if result.as_ref().is_none_or(|r| ver < *r) { - result = Some(ver); - } - } - } - result -} diff --git a/clang-installer/src/version.rs b/clang-installer/src/version.rs index 1545f8a7..f172ddc4 100644 --- a/clang-installer/src/version.rs +++ b/clang-installer/src/version.rs @@ -1,7 +1,7 @@ use std::{path::PathBuf, str::FromStr}; use crate::{ - ClangTool, PyPiDownloadError, PyPiDownloader, + Cacher, ClangTool, PyPiDownloadError, PyPiDownloader, downloader::{native_packages::try_install_package, static_dist::StaticDistDownloader}, tool::{GetClangPathError, GetClangVersionError}, utils::normalize_path, @@ -92,7 +92,7 @@ impl RequestedVersion { })) } RequestedVersion::SystemDefault => { - let path = tool.get_exe_path(&RequestedVersion::SystemDefault)?; + let path = tool.get_exe_path(&Self::SystemDefault)?; let version = tool.capture_version(&path)?; log::info!( "Found {tool} version {version} at path: {:?}", @@ -101,9 +101,8 @@ impl RequestedVersion { Ok(Some(ClangVersion { version, path })) } RequestedVersion::Requirement(version_req) => { - if let Ok(path) = - tool.get_exe_path(&RequestedVersion::Requirement(version_req.clone())) - { + // check default available version first (if any) + if let Ok(path) = tool.get_exe_path(&Self::Requirement(version_req.clone())) { let version = tool.capture_version(&path)?; if version_req.matches(&version) { log::info!( @@ -113,11 +112,33 @@ impl RequestedVersion { return Ok(Some(ClangVersion { version, path })); } } + + // check if cache has a suitable version + let bin_ext = if cfg!(windows) { ".exe" } else { "" }; + let min_ver = get_min_ver(version_req).ok_or(GetToolError::VersionMajorRequired)?; + let cached_bin = StaticDistDownloader::get_cache_dir() + .join("bin") + .join(format!("{tool}-{min_ver}{bin_ext}")); + if cached_bin.exists() { + let version = tool.capture_version(&cached_bin)?; + if version_req.matches(&version) { + log::info!( + "Found {tool} version {version} in cache at path: {:?}", + cached_bin.to_string_lossy() + ); + return Ok(Some(ClangVersion { + version, + path: cached_bin, + })); + } + } + + // try to download a suitable version let bin = match PyPiDownloader::download_tool(tool, version_req).await { Ok(bin) => bin, Err(e) => { log::error!("Failed to download {tool} {version_req} from PyPi: {e}"); - if let Some(result) = try_install_package(tool, version_req)? { + if let Some(result) = try_install_package(tool, version_req, &min_ver)? { return Ok(Some(result)); } log::info!("Falling back to downloading {tool} static binaries."); @@ -132,9 +153,10 @@ impl RequestedVersion { } } }; + + // create a symlink let bin_dir = bin.parent().ok_or(GetToolError::ExecutablePathNoParent)?; - let symlink_path = - bin_dir.join(format!("{tool}{}", if cfg!(windows) { ".exe" } else { "" })); + let symlink_path = bin_dir.join(format!("{tool}{bin_ext}")); tool.symlink_bin(&bin, &symlink_path, overwrite_symlink) .map_err(GetToolError::SymlinkError)?; let version = tool.capture_version(&bin)?; @@ -152,6 +174,25 @@ impl RequestedVersion { } } +pub fn get_min_ver(version_req: &VersionReq) -> Option { + let mut result = None; + for cmp in &version_req.comparators { + if matches!(cmp.op, semver::Op::Exact | semver::Op::Caret) { + let ver = Version { + major: cmp.major, + minor: cmp.minor.unwrap_or(0), + patch: cmp.patch.unwrap_or(0), + pre: cmp.pre.clone(), + build: Default::default(), + }; + if result.as_ref().is_none_or(|r| ver < *r) { + result = Some(ver); + } + } + } + result +} + /// Represents an error that occurred while parsing a requested version. #[derive(Debug, thiserror::Error)] pub enum RequestedVersionParsingError { @@ -272,13 +313,10 @@ mod tests { /// It is designed to use the system's package manager to install clang-tidy. /// If successful, clang-tidy will be installed globally, which may be undesirable. #[tokio::test] - async fn eval_static_dist() { - let tmp_cache_dir = TempDir::new().unwrap(); - unsafe { - std::env::set_var("CPP_LINTER_CACHE", tmp_cache_dir.path()); - } + async fn eval_version() { + let clang_version = option_env!("CLANG_VERSION").unwrap_or("12.0.1"); let tool = ClangTool::ClangTidy; - let version_req = VersionReq::parse("=12.0.1").unwrap(); + let version_req = VersionReq::parse(clang_version).unwrap(); let clang_path = RequestedVersion::Requirement(version_req.clone()) .eval_tool(&tool, false) .await From f005df335f180d2d54b69a28d13f49edc82eee50 Mon Sep 17 00:00:00 2001 From: Brendan <2bndy5@gmail.com> Date: Thu, 12 Mar 2026 05:39:38 -0700 Subject: [PATCH 5/5] print cached bin path and version --- clang-installer/src/version.rs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/clang-installer/src/version.rs b/clang-installer/src/version.rs index f172ddc4..ed21c46b 100644 --- a/clang-installer/src/version.rs +++ b/clang-installer/src/version.rs @@ -315,13 +315,15 @@ mod tests { #[tokio::test] async fn eval_version() { let clang_version = option_env!("CLANG_VERSION").unwrap_or("12.0.1"); - let tool = ClangTool::ClangTidy; - let version_req = VersionReq::parse(clang_version).unwrap(); - let clang_path = RequestedVersion::Requirement(version_req.clone()) - .eval_tool(&tool, false) - .await - .unwrap() - .unwrap(); - assert!(version_req.matches(&clang_path.version)); + for tool in [ClangTool::ClangFormat, ClangTool::ClangTidy] { + let version_req = VersionReq::parse(clang_version).unwrap(); + let clang_path = RequestedVersion::Requirement(version_req.clone()) + .eval_tool(&tool, false) + .await + .unwrap() + .unwrap(); + eprintln!("Using {clang_path:?}"); + // assert!(version_req.matches(&clang_path.version)); + } } }