@@ -10,30 +10,27 @@ It provides hook specification and implementation mechanisms through a plugin ma
10
10
## Development Commands
11
11
12
12
### Testing
13
- - ` pytest ` - Run all tests
14
- - ` pytest testing/test_specific .py ` - Run specific test file
13
+ - ` uv run pytest` - Run all tests, prefer runnign all tests to quickly get feedback
14
+ - ` uv run pytest testing/benchmark .py` runs the benchmark tests
15
15
- ` tox ` - Run tests across multiple Python versions (py39, py310, py311, py312, py313, pypy3)
16
16
- ` tox -e py39 ` - Run tests on specific Python version
17
17
- ` tox -e benchmark ` - Run benchmarks
18
18
- ` tox -e py39-pytestmain ` - Test against pytest main branch
19
19
20
20
### Code Quality
21
- - ` ruff check ` - Run linting with Ruff
22
- - ` ruff format ` - Format code with Ruff
23
- - ` uv run mypy src/ ` - Type checking with mypy
24
- - ` pre-commit run --all-files ` - Run all pre-commit hooks
25
- - Use pre-commit to lint and fix code
21
+ - ` uv run pre-commit run -a ` - Run all pre-commit hooks - gives linting and typing errors + corrects files
22
+ - reread files that get fixed by pre-commit
26
23
27
24
### Documentation
28
25
- ` tox -e docs ` - Build documentation
29
26
- ` python scripts/towncrier-draft-to-file.py ` - Generate changelog draft to verify
30
27
31
28
### Release
32
- - ` tox -e release VERSION ` - Create release (requires version argument)
33
-
34
29
## Core Architecture
35
30
36
31
### Main Components
32
+
33
+ - always read all python files in ` src/pluggy/ to have full context `
37
34
- ** PluginManager** (` src/pluggy/_manager.py ` ): Central registry that manages plugins and coordinates hook calls
38
35
- ** HookCaller** (` src/pluggy/_hooks.py ` ): Executes hook implementations with proper argument binding
39
36
- ** HookImpl/HookSpec** (` src/pluggy/_hooks.py ` ): Represent hook implementations and specifications
0 commit comments