wyattowalsh docs

Technologies

Parses techs.md into shields.io badge rows for the README technologies section.

Module

scripts/techs.py

Input format

The parser reads techs.md — a markdown file with technology entries organized by category:

## Programming Languages
- Python (Level: 5) - Primary language
- Go (Level: 3)

## Cloud & DevOps
- Docker (Level: 4)

Each line is parsed by parse_technology_line() into a Technology Pydantic model.

Technology model

class Technology(BaseModel):
    name: str
    level: int                 # 1–5 (Pydantic ge=1, le=5)
    category: Optional[str]
    notes: Optional[str]

CLI

Use load_technologies() directly:

from scripts.techs import load_technologies

techs = load_technologies(Path("techs.md"))

Or display as a Rich table:

from scripts.techs import load_technologies, display_technologies

techs = load_technologies(Path("techs.md"))
display_technologies(techs)

Validation

  • level must be an integer between 1 and 5 — Pydantic enforces ge=1, le=5
  • Lines that don't match the expected format return None from parse_technology_line()
  • Category is inferred from the nearest ## heading above each entry