cython-lint
Lint Cython files
Decision gist · record as of 2026-08-14
Yes. cython-lint is actively maintained, has low install friction, carries no security vulnerabilities, and is widely adopted by major scientific Python projects. If you work with Cython code, it fills a real gap that general Python linters leave open. The permissive MIT license removes any legal concern. Install it if you want to catch Cython-specific bugs and style issues early.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later.
- Low friction install with four straightforward runtime dependencies (cython, pycodestyle, tokenize-rt, tomli).
- Actively maintained with recent releases; last commit was 2026-08-10 and the project is not archived.
License · maintenance · safety
permissive license (permissive) — Licensed under MIT (permissive), so you can use, modify, and distribute this package freely in both open-source and commercial projects without significant legal restrictions.
last release 2026-06-21 (54 days) · last repo commit 2026-08-10 · 105 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 859,563 downloads/mo, #4,878 on PyPI
Alternatives
Verify before relying
pip install cython-lint
# Command-line usage
cython-lint my_file.pyx
# Or configure in .pre-commit-config.yaml:
# - repo: https://github.com/MarcoGorelli/cython-lint
# rev: v0.21.0
# hooks:
# - id: cython-lint- Whether the tool's Cython-specific checks cover all common pitfalls in production codebases, or if gaps remain.
- Performance characteristics when linting large Cython projects with many files.
- How well the automated fixer (double-quote-cython-strings) integrates with other formatters like black.
What it is and what it does
cython-lint is a static analysis tool that checks Cython (.pyx) files for code quality issues, unused imports, undefined variables, style violations, and Cython-specific problems. It combines pycodestyle checks with custom rules for patterns that are particularly error-prone in Cython code—such as dangerous default values, late-binding closures, and repeated dict keys—and can be run from the command line or integrated into pre-commit workflows.
The tool is designed to catch issues that flake8 historically missed in Cython files. It supports configuration via command-line arguments or a `.cython-lint.toml` / `pyproject.toml` file, allows selective rule ignoring, and includes an automated fixer for quote normalization. Its runtime dependencies are minimal and well-established (cython, pycodestyle, tokenize-rt, tomli), making it straightforward to integrate into existing Python development environments.
Use it for
- Enforce code quality standards in Cython-heavy projects like NumPy, pandas, or scikit-learn before commits.
- Catch unused imports and variables in Cython modules during CI/CD pipelines via pre-commit hooks.
- Identify Cython-specific anti-patterns (late-binding closures, dangerous defaults) that pure Python linters miss.
- Normalize quote style in Cython files across a project using the double-quote-cython-strings fixer.
- Configure project-wide linting rules in pyproject.toml to maintain consistent Cython code style.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
cython-lint is actively maintained, has low install friction, carries no security vulnerabilities, and is widely adopted by major scientific Python projects. If you work with Cython code, it fills a real gap that general Python linters leave open. The permissive MIT license removes any legal concern. Install it if you want to catch Cython-specific bugs and style issues early.
Install
cython-lint on PyPI
Before you install
Low friction install with four straightforward runtime dependencies (cython, pycodestyle, tokenize-rt, tomli). Actively maintained with recent releases; last commit was 2026-08-10 and the project is not archived.
Requires Python 3.10 or later.
License in practice
Licensed under MIT (permissive), so you can use, modify, and distribute this package freely in both open-source and commercial projects without significant legal restrictions.
Quickstart
pip install cython-lint
# Command-line usage
cython-lint my_file.pyx
# Or configure in .pre-commit-config.yaml:
# - repo: https://github.com/MarcoGorelli/cython-lint
# rev: v0.21.0
# hooks:
# - id: cython-lint
Verify before relying
- Whether the tool's Cython-specific checks cover all common pitfalls in production codebases, or if gaps remain.
- Performance characteristics when linting large Cython projects with many files.
- How well the automated fixer (double-quote-cython-strings) integrates with other formatters like black.
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 4 packagescythonpycodestyletokenize-rttomli |
| Maintenance | Actively maintained 54 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 859,563 / month, #4,878 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3 |
Evidence: cython_lint-0.21.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “cython linter”
- cython-lintA linter for Cython files that checks for common errors, style…
- cymemcymem provides memory-management helpers for Cython that tie…
- cysignalsProvides interrupt and signal handling mechanisms for Cython code,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Quality Assurance packages
Coverage.py measures which lines of Python code are executed during test runs, reporting coverage percentages and identifying untested code paths.
Install it if you want to measure test completeness or enforce coverage thresholds in your project.
Ruff is a Python linter and code formatter written in Rust that combines linting, formatting, and code fixing into a single tool, replacing Flake8, Black, isort, and related utilities.
Pexpect spawns and controls interactive console applications by sending input and matching output patterns, automating tasks that would otherwise require manual interaction.
Black reformats Python source code to a consistent style by parsing entire files and rewriting them according to an opinionated, deterministic set of rules, eliminating manual formatting decisions.
pytest-xdist distributes pytest tests across multiple CPU cores or machines to speed up test execution, with the simplest usage being `pytest -n auto` to spawn workers equal to available CPUs.
Install it if your test suite takes long enough that parallelization would save meaningful time.
Validates AWS CloudFormation templates in YAML or JSON format against resource provider schemas and best practices, checking property values and configuration correctness.
Install it if you work with CloudFormation templates.
See also yamllint · flake8 · pylama · sphinx-lint · flake8-mutable · flake8-tidy-imports · flake8-quotes · cymem · flake8-black