Nest Engineering Docs
Handbook

Code style

Language conventions and linting

Python

  • Python 3.13 and PEP 8.
  • ruff format enforces Black-style formatting; ruff check enforces lint rules.
  • Prefer type hints and docstrings with Args/Returns/Raises (Google-style sections).
  • Use absolute imports (no relative from . imports).
  • FastAPI services default to ORJSONResponse for JSON output.
  • Generated stubs in packages/python/nest_protos are excluded from linting.

Naming

  • snake_case for files/functions, PascalCase for classes.
  • UPPER_SNAKE_CASE for constants.

Formatting and linting

uv run ruff format
uv run ruff check

Optional: uv run pre-commit run --all-files

Protobufs

  • Edit .proto files under proto/.
  • Regenerate stubs with buf generate (do not hand-edit generated files).

Flutter/Dart

  • Follow Flutter/Dart recommended style and conventions (flutter_lints).
  • apps/raven/analysis_options.yaml includes flutter_lints and excludes lib/gen/**.
  • Run flutter analyze and dart format before merging.
  • Prefer package imports (import 'package:nest/...';) over relative paths.

Last updated on