A Flake8 plugin that enforces the Community of Python's custom code style rules. This plugin provides a set of checks designed to promote consistent and idiomatic Python code within the community.
This plugin implements the following code style checks:
- COP001: Use module import when importing more than two names
- COP002: Import standard library modules as whole modules
- COP003: Avoid explicit scalar type annotations
- COP004: Attribute name must be at least 8 characters
- COP005: Variable name must be at least 8 characters
- COP006: Argument name must be at least 8 characters
- COP007: Function name must be at least 8 characters
- COP008: Class name must be at least 8 characters
- COP009: Function identifier must be a verb
- COP010: Avoid
get_prefix in async function names - COP011: Avoid temporary variables used only once
- COP012: Classes should be marked
typing.final - COP013: Wrap module dictionaries with
types.MappingProxyType - COP014: Use dataclasses with
kw_only=True,slots=True,frozen=True
Install the plugin using uv (recommended):
uv add --dev community-of-python-flake8-pluginOr install via pip:
pip install community-of-python-flake8-pluginRun Flake8 with the plugin enabled:
uv run flake8 --select COP --exclude .venv .Or if installed globally:
flake8 --select COP --exclude .venv .Add the following to your pyproject.toml when using https://pypi.org/project/Flake8-pyproject/:
[tool.flake8]
select = ["COP"]
exclude = [".venv"]