(expr_str: str)
| 242 | |
| 243 | |
| 244 | def _render_cached(expr_str: str) -> bytes | None: |
| 245 | path = _cache_path(expr_str) |
| 246 | if path.exists(): |
| 247 | return path.read_bytes() |
| 248 | svg = _render_fresh(expr_str) |
| 249 | if svg is not None: |
| 250 | path.write_bytes(svg) |
| 251 | return svg |
| 252 | |
| 253 | |
| 254 | def _render_fresh(expr_str: str) -> bytes | None: |
no test coverage detected