Parse text as JSON5; return (object node, source bytes), "skipped" if grammar unavailable, or "error" if unparseable.
(text: str)
| 35 | |
| 36 | |
| 37 | def _json5_object(text: str) -> JsonObjectResult: |
| 38 | """Parse text as JSON5; return (object node, source bytes), "skipped" if grammar unavailable, or "error" if unparseable.""" |
| 39 | parser = _json5_parser() |
| 40 | if parser is None: |
| 41 | return "skipped" |
| 42 | src = text.encode("utf-8") |
| 43 | root = parser.parse(src).root_node |
| 44 | if root.has_error: |
| 45 | return "error" |
| 46 | objects = [c for c in root.named_children if c.type == "object"] |
| 47 | return (objects[0], src) if objects else "error" |
| 48 | |
| 49 | |
| 50 | def _member(obj: Node, src: bytes, key: str) -> Node | None: |
no test coverage detected