Arid is a command-line tool that detects duplicated source code in Python projects.
It provides a focused alternative to Pylint’s R0801 duplicate-code checker and is intended to complement broader tools such as Ruff. Arid analyses Python syntax rather than simply comparing raw text, allowing it to identify duplicate blocks while retaining accurate locations in the original source. It can be used interactively during development or incorporated into automated quality checks.
This is free and open source software.
Key Features
- Detects duplicate blocks across different files and within the same file.
- Can ignore comments, docstrings, imports and function signatures during normalization.
- Supports configurable minimum duplicate lengths and path exclusions.
- Reads project configuration from
pyproject.toml. - Offers text, JSON, Markdown and SARIF output formats.
- Supports baselines for accepting existing duplication while identifying newly introduced duplicate code.
- Provides focused reporting while retaining whole-project duplicate detection.
- Supports source-level suppression regions together with auditing for stale suppressions.
- Can produce multiple reports from a single analysis run.
- Provides summary metrics, breakdowns and duplicate-code hotspots.
- Supports parallel file preparation with configurable worker counts.
- Can continue processing independent files after parsing or reading errors with its keep-going mode.
Website: github.com/sponge-b0b/arid
Support:
Developer: sponge-b0b
License: MIT License or Apache License 2.0
Arid is written in Rust. Learn Rust with our recommended free books and free tutorials.
Related Software
| Python Linters | |
|---|---|
| Ruff | Extremely fast Python linter and code formatter |
| ty | Fast Python type checker |
| Mypy | Static type checker for Python |
| Bandit | Find security issues in Python code |
| Pylint | Static code analyser |
| wemake-python-styleguide | Flake8 plugin |
| pycodestyle | Check Python code against style conventions in PEP 8 |
| Pyflakes | Checks Python source files for errors |
| Vulture | Find dead code |
| Pyrefly | Fast type checker and language server |
| Flake8 | Wrapper around PyFlakes and pycodestyle |
| Beartype | Near-real-time hybrid runtime-static type-checker |
| Radon | Computes various metrics from Python code |
| Pyright | Full-featured, standards-compliant static type checker |
| cython-lint | Lint Cython files |
| basedpyright | Fork of pyright |
| Refurb | Modernize Python codebases |
| Pylama | Code audit tool for Python |
| Prospector | Brings together the functionality of other Python analysis tools |
| deptry | Check for dependency issues |
| Fixit | Highly configurable linting framework |
| Pyroma | Rates how well a Python project compiles |
| pydoclint | Python docstring linter |
| YALA | Yet Another Linter Aggregator |
Read our verdict in the software roundup.
Explore our carefully curated directory of recommended free and open source software, covering every major software category.The directory forms part of our extensive collection of articles for Linux enthusiasts. It includes hundreds of detailed reviews, together with free and open source alternatives to proprietary software from companies such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk. LinuxLinks also covers interesting projects worth exploring, Linux-compatible hardware, free programming books and tutorials, and much more. Know a useful free and open source Linux application that we haven’t covered? Tell us about it using our submission form. |


Please read our Comment Policy before commenting.