- Clone repository
- Install dependencies & package
# Inside project repository
uv venv
uv sync --extra devsrc/askiff/- library sourcecode_auto_serde/- offers constructs for automated (de)serialization of structures:AutoSerde- base class that offers default, field based (de)serialize functionF- construct that allows to pass additional data for AutoSerde, usage is similar to dataclasses.field- Passes (de)serialization hints during class initialization,
AutoSerdereplaces them with default field value after class initialized
- Passes (de)serialization hints during class initialization,
_cli.py- CLI command for library testing- run via
uv run askiff -i ${TEST_PROJECT_DIR} - loads all project files and saves them with no changes
- useful for:
- identification of file parts that are not yet supported
- checking execution time
- checking kicad file formatting correctness (together with
git diff)
- run via
pro.py- entry point for library usage- exposes
Projectthat handles loading and saving of all files in project
- exposes
_sexpr.py- handles parsing file to AST (nested list of lists and strings) and writing AST to fileboard.py, common.py, ...- store definitions of classes matching objects from KiCad files
test_projects/- directory for projects used for library testingkicad9/- synthetic project that aims to include all KiCad features up to version 9kicad10/- synthetic project that aims to include all KiCad features up to version 10jetson-agx-thor-baseboard- large project, mostly useful for performance testing