File tree Expand file tree Collapse file tree 1 file changed +33
-0
lines changed
Expand file tree Collapse file tree 1 file changed +33
-0
lines changed Original file line number Diff line number Diff line change 1+ # AGENTS.md
2+
3+ Python library for autograding Git repositories, used by Git Mastery exercise repository to verify exercise solutions.
4+
5+ ## Dev environment
6+
7+ - Python 3.13+
8+ - Install dependencies: ` pip install -r requirements.txt `
9+ - Install package in dev mode: ` pip install -e . `
10+
11+ ## Testing
12+
13+ - Run tests: ` python -m pytest -s -vv `
14+ - Tests are located in ` tests/ `
15+
16+ ## Project structure
17+
18+ - ` src/git_autograder/ ` - Main package
19+ - ` repo/ ` - Repository handling (GitAutograderRepo)
20+ - ` branch.py ` , ` commit.py ` , ` remote.py ` - Git object wrappers
21+ - ` exercise.py ` - Exercise configuration and grading
22+ - ` helpers/ ` - Utility functions
23+ - ` docs/ ` - Documentation
24+ - ` tests/ ` - Test suite
25+
26+ ## Code style
27+
28+ - ** Type hints** : Required on all function signatures. Use ` Optional[T] ` for nullable types, union syntax ` A | B ` for alternatives
29+ - ** Docstrings** : Use reStructuredText format with ` :param: ` and ` :type: ` tags for public APIs
30+ - ** Imports** : Group in order: stdlib → third-party → local. Use absolute imports from ` git_autograder `
31+ - ** Naming** : Classes use ` GitAutograder ` prefix (e.g., ` GitAutograderRepo ` ). Private methods use single underscore prefix
32+ - ** Exceptions** : Raise ` GitAutograderInvalidStateException ` for invalid states, ` GitAutograderWrongAnswerException ` for grading failures
33+ - ** Dataclasses** : Prefer ` @dataclass ` for simple data containers
You can’t perform that action at this time.
0 commit comments