assert-no-inline-directives
A CLI tool to assert that files contain no inline directives for clang-diagnostic, clang-format, clang-tidy, coverage, markdownlint, mypy, pylint, and yamllint.
Usage
assert-no-inline-directives --tools TOOLS [OPTIONS] PATH [PATH ...]
Required Arguments
--tools TOOLS- Comma-separated list of tools:clang-diagnostic,clang-format,clang-tidy,coverage,markdownlint,mypy,pylint,yamllintPATH- One or more file paths, directory paths, or glob patterns to scan (directories are scanned recursively, globs support hidden directories)
Optional Arguments
--allow PATTERNS- Comma-separated patterns to allow--count- Print finding count only--exclude PATTERNS- Comma-separated glob patterns to exclude files--fail-fast- Exit on first finding--quiet- Suppress output, exit code only-v, --verbose- Show tools, files scanned, findings, and summary--warn-only- Always exit 0, report only
Examples
# Check all clang tools
assert-no-inline-directives --tools clang-tidy,clang-format,clang-diagnostic src/
# Check for clang-tidy NOLINT directives in C++ files
assert-no-inline-directives --tools clang-tidy "**/*.cpp" "**/*.h"
# Check for coverage pragmas
assert-no-inline-directives --tools coverage src/
# Check for markdownlint suppressions in markdown files
assert-no-inline-directives --tools markdownlint "**/*.md"
# Check for pylint and mypy suppressions in files
assert-no-inline-directives --tools pylint,mypy src/*.py
# Scan a directory recursively
assert-no-inline-directives --tools pylint,mypy src/
# Use glob patterns (including hidden directories like .github)
assert-no-inline-directives --tools yamllint "**/*.yml" "**/*.yaml"
# Check all Python/YAML tools, exclude vendor files
assert-no-inline-directives --tools coverage,mypy,pylint,yamllint \
--exclude "*vendor*" src/ config/
# Allow specific type: ignore patterns
assert-no-inline-directives --tools mypy \
--allow "type: ignore[import]" src/*.py
# CI mode: quiet, just exit code
assert-no-inline-directives --tools pylint,mypy --quiet src/
# Verbose mode: show progress
assert-no-inline-directives --tools pylint,mypy --verbose src/
# Non-blocking check (always exit 0)
assert-no-inline-directives --tools mypy --warn-only src/
Exit Codes
0- No inline directives found1- One or more inline directives found2- Usage or runtime error (e.g., file not found, invalid tool)
Output Formats
Default format (one finding per line):
config.yaml:5:yamllint:yamllint disable
README.md:3:markdownlint:markdownlint-disable
src/example.py:10:pylint:pylint: disable
src/example.py:15:mypy:type: ignore
src/example.py:20:coverage:pragma: no cover
src/main.cpp:8:clang-tidy:NOLINT
Count format (--count):
2
Detected Directives
clang-diagnostic (suppressions only)
#pragma clang diagnostic ignored
clang-format (suppressions only)
clang-format off
clang-tidy (suppressions only)
NOLINT(including check-specific forms likeNOLINT(bugprone-*))NOLINTBEGINNOLINTNEXTLINE
coverage
pragma: no branchpragma: no cover
markdownlint (suppressions only)
markdownlint-capturemarkdownlint-configure-filemarkdownlint-disable(including rule-specific forms likemarkdownlint-disable MD001)markdownlint-disable-filemarkdownlint-disable-linemarkdownlint-disable-next-line
mypy (suppressions only)
mypy: ignore-errorstype: ignore(including bracketed forms liketype: ignore[attr-defined])
pylint (suppressions only)
pylint: disablepylint: disable-linepylint: disable-nextpylint: skip-file
yamllint (suppressions only)
yamllint disableyamllint disable-fileyamllint disable-line
Matching Behavior
- Case-insensitive matching
- Tolerates extra whitespace (e.g.,
pylint: disable,type: ignore) - Only detects directives in comments
(after
#for Python/YAML,//and/* */for C/C++), not in string literals clang-diagnosticmatches#pragmapreprocessor directives on the full linemarkdownlintmatches<!-- markdownlint-... -->HTML comment directives on the full line- Does not flag "enable" directives
(e.g.,
clang-format on,markdownlint-enable,markdownlint-restore,NOLINTEND,yamllint enable) - Files are scanned in alphabetical order for consistent output
- Glob patterns support hidden directories
(e.g.,
.github) - Tools only check files with matching
extensions:
clang-diagnostic:.c,.cc,.cpp,.cxx,.h,.hpp,.hxx,.m,.mmclang-format:.c,.cc,.cpp,.cxx,.h,.hpp,.hxx,.m,.mmclang-tidy:.c,.cc,.cpp,.cxx,.h,.hpp,.hxx,.m,.mmcoverage:.py,.tomlmarkdownlint:.mdmypy:.py,.tomlpylint:.py,.tomlyamllint:.yaml,.yml,.toml
Metadata
Release files for assert-no-inline-directives 20260221023510
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| assert_no_inline_directives-20260221023510.tar.gz | 44.0 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| assert_no_inline_directives-20260221023510-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 58.9 kB
Release files / assert_no_inline_directives-20260221023510.tar.gz
| Download URL | assert_no_inline_directives-20260221023510.tar.gz |
|---|---|
| Size | 44.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ec29ef91262c1baf135261147a963c4c2ef0292575f1192b1d95e279cb212393
|
|
BLAKE2b-256 checksum How to use checksums |
fd65f50725279b71816b3b8130fd935cdf5fc3dc10978f1e6529c646c07a60d7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 21, 2026.
Transparency logRelease files / assert_no_inline_directives-20260221023510-py3-none-any.whl
| Download URL | assert_no_inline_directives-20260221023510-py3-none-any.whl |
|---|---|
| Size | 14.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8417b3d08905fb86f230f6d5f1a1d2c9abe2c7a08abc0c18b518b9f9df734dc8
|
|
BLAKE2b-256 checksum How to use checksums |
1ef88f46fbaa32456de63c2433606fde5dc721f68317c0e3c723444c0ceccfc9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 21, 2026.
Transparency logSecurity for assert-no-inline-directives 20260221023510
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for assert_no_inline_directives-20260221023510.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 21, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.