Fast Python syntax and import checker for CI/CD and Git hooks
Project description
pyci-check
Fast Python syntax and import checker designed for CI/CD and Git hooks.
Features
- ⚡ High-performance parallel processing - Uses ThreadPoolExecutor
- 🔍 Dual-layer checking - Syntax (AST) + Import (static/dynamic)
- 🎯 Flexible scope - Check entire project, directories, or specific files
- 🔧 Auto-integrates ruff config - Reads from
pyproject.toml - 🪝 Git hooks support - Append mode, preserves existing hooks
- 📦 Zero external dependencies - Uses only Python standard library
- 🌐 Multi-language - English, Traditional Chinese, Simplified Chinese
Installation
pip install pyci-check
Or with uv (recommended):
# Preferred (adds to pyproject.toml)
uv add pyci-check
# Or direct install
uv pip install pyci-check
Quick Start
# Check entire project (syntax + import static analysis)
pyci-check check
# Check syntax only
pyci-check syntax
# Check imports (static, safe)
pyci-check imports
# Install Git pre-commit hook
pyci-check install-hooks
Main Commands
check [paths...]- Run all checks (syntax + import)syntax [paths...]- Check Python syntax onlyimports [paths...]- Check import dependencies onlyinstall-hooks- Install Git hooks (append mode)uninstall-hooks- Remove pyci-check's Git hooks
Common Options
--quiet- Reduce output--fail-fast- Stop on first error--venv PATH- Specify virtual environment--i-understand-this-will-execute-code- Enable dynamic import checking
Configuration
Configure in pyproject.toml:
[tool.pyci-check]
language = "en" # or "zh_TW", "zh_CN"
import-timeout = 30
# Auto-reads ruff config
[tool.ruff]
src = ["src", "tests"]
exclude = [".venv", "build", "dist"]
Documentation
Full documentation available on GitHub:
- Full README - Complete guide with examples
- Usage Guide - Detailed usage and configuration
- Validation Docs - Check documentation with examples
- 中文文档 - Traditional Chinese
- 简体中文 - Simplified Chinese
CI/CD Integration
GitHub Actions
- name: Check Python syntax and imports
run: |
pip install pyci-check
pyci-check check
With ruff
pyci-check check # Syntax + import checking
ruff check --fix # Lint + auto-fix
ruff format # Format
License
MIT License
Links
- Homepage: https://github.com/coseto6125/pyci-check
- Documentation: https://github.com/coseto6125/pyci-check/blob/main/docs/en/USAGE.md
- Bug Reports: https://github.com/coseto6125/pyci-check/issues
- Changelog: https://github.com/coseto6125/pyci-check/releases
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pyci_check-0.1.5.tar.gz
(82.9 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyci_check-0.1.5.tar.gz.
File metadata
- Download URL: pyci_check-0.1.5.tar.gz
- Upload date:
- Size: 82.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
070c8d90dc0eedd1168566d5f66c6341e06f9daa7799e89ab53af9601fd13feb
|
|
| MD5 |
071f23876359a5388c9f8078d2dbc99b
|
|
| BLAKE2b-256 |
a76b9a581e22a7157a3c1f54c31fab8b02da1836c6185eb0fa7253a4c41f6792
|
File details
Details for the file pyci_check-0.1.5-py3-none-any.whl.
File metadata
- Download URL: pyci_check-0.1.5-py3-none-any.whl
- Upload date:
- Size: 29.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5975a7fe86e199a8eefd899c31ea5c026ca3bcd1d0c991c8b8240730fdd321df
|
|
| MD5 |
f72e590f4018ffe6b6429dd185e3d969
|
|
| BLAKE2b-256 |
7602b829dc12f53bf4af6d2399a786351def57e076dc0fa2fe2c5ed17c8cf179
|