Files
claude-skills/my-python-senior/systems.md
T
2026-03-21 19:36:11 +03:00

1.6 KiB

Systems Python Guidelines

CLI tools and system utilities

  • Prefer argparse or typer for CLIs, not ad-hoc sys.argv parsing.
  • Always provide:
    • --help with clear descriptions
    • examples in docstrings or README
    • reasonable defaults and safe behavior.
  • For non-trivial tools, separate:
    • CLI entrypoint (main() or Typer app)
    • core logic in importable modules (no side effects on import).

Logging and diagnostics

  • Use the logging module instead of print for diagnostics.
  • Provide configurable log levels; default to INFO for CLI tools.
  • For structured logging, prefer JSON-compatible formats when integrating with centralized logging.
  • Avoid logging secrets, access tokens, and PII.

Configuration

  • Prefer explicit configuration (CLI args, env vars, config files) over hidden magic.
  • Use pydantic or dataclasses for structured config when appropriate.
  • For multi-environment setups, support:
    • baseline config
    • overrides via env or separate files.

Packaging and layout

  • Use modern packaging (pyproject.toml with setuptools/hatch/poetry).
  • Standard layout:
    • src/<package_name>/...
    • tests/
    • minimal, well-documented dependencies.
  • For tools that may be reused, publishable or installable layout is preferred even in internal projects.

Error handling

  • Fail fast on invalid configuration or obvious misuse.
  • Wrap external calls (filesystem, network, subprocesses) with clear error messages.
  • Use custom exception types where it improves clarity.
  • Never silently swallow exceptions; at minimum, log with context.