dlint
Dlint is a tool for encouraging best coding practices and helping ensure Python code is secure.
What it is and what it does
Dlint extends flake8 with a set of linting rules designed to catch security vulnerabilities and enforce coding best practices in Python. It operates as a flake8 plugin, so it integrates directly into your existing flake8 workflow and can be run from the command line or integrated into CI pipelines and editor plugins. The rules are prefixed with DUO and flag patterns like exec() calls, unsafe deserialization, and other insecure coding practices.
The package is lightweight—it depends only on flake8—and supports Python 3.8.1 through 3.14. It can be used standalone via the CLI with the --select=DUO flag, embedded in editor linters, or integrated into continuous integration systems. Custom plugins can be built by following a simple naming convention.
Use it for:
- Catch insecure patterns like exec() and eval() in code review before they reach production.
- Integrate security linting into CI/CD pipelines to enforce best practices across a codebase.
- Enable real-time inline feedback in editors during development.
- Enforce security standards across a team by running dlint in pre-commit hooks.
- Extend dlint with custom security rules via plugins for domain-specific vulnerabilities.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Dlint is a flake8 plugin that adds security-focused and best-practice linting rules to Python code analysis, flagging insecure patterns like use of exec, unsafe deserialization, and other code quality issues.
Yes, with conditions. Dlint is a solid choice for adding security-focused linting to Python projects if you already use flake8. The low install friction and permissive license make adoption straightforward. However, the aging maintenance status means you should verify compatibility with your current Python and flake8 versions before relying on it for critical security workflows. No known vulnerabilities are recorded.
Install
dlint on PyPI
pip
pip install dlintuv
uv add dlintpoetry
poetry add dlintInstalling dlint
Before you install
Low friction: pure Python wheel with only flake8 as a runtime dependency. Maintenance is aging—last release was 2024-10-31—but the repository remains active and unarchived.
License in practice
BSD-3-Clause is permissive; you can use, modify, and distribute dlint freely in commercial and private projects with minimal restrictions, provided you include the license notice.
Quickstart
pip install dlint
python -m flake8 --select=DUO /path/to/code
Requires flake8 to be installed; dlint operates as a flake8 plugin and cannot run standalone.
Verify before relying
- Whether the aging maintenance status affects compatibility with Python 3.14 or current flake8 versions.
- Coverage and completeness of security rules compared to other Python security linters.
- Performance impact when running dlint on large codebases.
Package facts
| License | BSD-3-Clause (permissive) |
| Python support | supports the current Python release (<4.0.0,>=3.8.1) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — flake8 |
| Maintenance | aging — 652 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 92,972/month — #13,410 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: dlint-0.16.0-py3-none-any.whl
Tags
More Security packages
Provides Python bindings to the FreeDesktop.org…
permissive · top 1,000 on PyPI
msalMSAL for Python handles OAuth2 and OpenID…
permissive · top 1,000 on PyPI
joserfcjoserfc implements JOSE standards (JWS, JWE,…
permissive · top 1,000 on PyPI
AuthlibAuthlib provides a complete implementation of…
permissive · top 1,000 on PyPI
argon2-cffi-bindingsProvides low-level CFFI bindings to the…
permissive · top 1,000 on PyPI
adalADAL for Python authenticates applications with…
permissive · top 1,000 on PyPI
flake8-pyiA Flake8 plugin that lints Python type stub…
permissive · top 5,000 on PyPI
flake8Flake8 is a command-line tool that combines…
permissive · top 1,000 on PyPI
wemake-python-styleguideA flake8 plugin that enforces strict,…
permissive · top 15,000 on PyPI
flake8-mock-specA flake8 plugin that enforces the use of the…
permissive · top 15,000 on PyPI
flake8-eradicateA flake8 plugin that detects commented-out code…
permissive · top 15,000 on PyPI
flake8-builtinsA flake8 plugin that detects when Python…
copyleft · top 5,000 on PyPI
flake8-banditIntegrates bandit security checks into flake8…
permissive · top 15,000 on PyPI
flake8-tidy-importsA flake8 plugin that detects and reports…
permissive · top 15,000 on PyPI
flake8-printA flake8 plugin that detects print statements…
permissive · top 5,000 on PyPI
flake8-functionsA flake8 extension that enforces function-level…
permissive · top 15,000 on PyPI