From f4de18b9be5a3964421107aa21daaeb4cc22752d Mon Sep 17 00:00:00 2001 From: Axy Date: Tue, 10 Feb 2026 04:22:14 +0100 Subject: [PATCH] Fixed tags being borked for anything except one char --- miniserde/serde_data.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/miniserde/serde_data.py b/miniserde/serde_data.py index 6d2da19..4b8c31f 100644 --- a/miniserde/serde_data.py +++ b/miniserde/serde_data.py @@ -1,9 +1,11 @@ from collections.abc import Callable from typing import cast +from sys import stdin class NullType: - pass + def __repr__(self) -> str: + return "null" Null: NullType = NullType() @@ -60,8 +62,8 @@ def cut[T](p: Parser[T]) -> Parser[T]: def tag(tag: str) -> Parser[str]: - return parser_flatten( - parser_map(lambda s: s if s.startswith(tag) else None, char) + return lambda s: ( + (s[: len(tag)], s[len(tag) :]) if s.startswith(tag) else None ) @@ -331,6 +333,4 @@ def json_object(s: str) -> ParseResult[dict[str, JsonValue]]: )(s) -print(json_value("-12331.111e231")) -print(json_value('"hello world\\\\ \\" "')) -print(json_value('[123, -123e3, {"hello": "axy", "num": 421}]')) +print(json_value(stdin.read())) -- 2.52.0