=======================
Pyicub Coding Standards
=======================
To maintain quality, readability, and collaboration across the **pyicub** codebase, all development must follow recognized standards.
Python
======
- Follow the official `PEP8 guidelines `_.
- Static analysis with ``flake8`` and ``mypy`` is required.
- Naming conventions:
- Modules and files: ``lowercase_with_underscores``
- Classes: ``CamelCase``
- Functions and variables: ``lowercase_with_underscores``
- Constants: ``UPPERCASE_WITH_UNDERSCORES``
- Use type annotations where meaningful.
- Keep imports organized: standard libraries, third-party, then local imports.
- Limit function complexity: prefer small, focused functions.
Bash
====
- Follow `Google's Shell Style Guide `_.
- Scripts must start with: ``#!/usr/bin/env bash``
- Always quote variables: ``"${var}"``
- Ensure portability across Linux environments.
- Write functions for repeated logic; avoid duplication.
General
=======
- Keep code **simple**, **modular**, and **documented**.
- Prioritize **readability** over cleverness.
- Every file must contain a short module-level docstring if applicable.