(name: str, text: str)
| 145 | |
| 146 | |
| 147 | def parse_text(name: str, text: str) -> dict[str, Any] | None: |
| 148 | trimmed = text.strip() |
| 149 | if not trimmed: |
| 150 | return None |
| 151 | |
| 152 | if looks_like_ndjson(trimmed): |
| 153 | return parse_ndjson(name, trimmed) |
| 154 | |
| 155 | if trimmed.startswith("{"): |
| 156 | try: |
| 157 | obj = json.loads(trimmed) |
| 158 | except json.JSONDecodeError: |
| 159 | obj = None |
| 160 | if isinstance(obj, dict) and "metrics" in obj: |
| 161 | return parse_summary(name, obj) |
| 162 | |
| 163 | if looks_like_csv(trimmed): |
| 164 | return parse_csv(name, trimmed) |
| 165 | |
| 166 | return None |
| 167 | |
| 168 | |
| 169 | def parse_summary(name: str, payload: dict[str, Any]) -> dict[str, Any]: |
no test coverage detected