# Reqs ## python package managment - Use `uv` - Ignore `uv.lock` even if it's against the spirit; causes trouble when going cross-architecture - app should be runnable with only `uv run svgqr ` or `svgqr ` ## cli options (args) - **raw text mode**: `-t ` or `-t ""` (for those including space/tabs); `-t` can be omitted as this is the default mode. - **output path**: `-o PATH/TO/SVG`. Automatically append `.svg` suffix if absent. When whole option is absent, use input text but path-incompatible characters substituted with `_`, and filename capped at 32 chars. - **batch mode**: `-i ` ; output automatically dumps generated svgs per line of input file under `output/`; SVG files named after input lines verbatim except that path-incompatible characters substituted with `_` (underbar), and filename capped at 32 chars. Disregard `-o`. - **batch mode with `yaml`**: `--yaml .yaml`; the input YAML should be of a flat structure: ```yaml item0: text0 item1: text1 item2: text2 and there can be spaces ``` output files go under `output/` and are named `item0.svg`, `item1.svg`, etc. Reject invalid YAML without generating output files. ## svg generation - Generate convex paths, not weighted edges