This commit is contained in:
Tony Garnock-Jones 2021-08-18 14:04:00 -04:00
parent 5669f2aff1
commit 6bb99b45c3
2 changed files with 19 additions and 0 deletions

View File

@ -6,5 +6,7 @@ from .error import DecodeError, EncodeError, ShortPacket
from .binary import Decoder, Encoder, decode, decode_with_annotations, encode
from .text import Parser, Formatter, parse, parse_with_annotations, stringify
from . import fold
loads = parse
dumps = stringify

View File

@ -0,0 +1,17 @@
from .values import ImmutableDict, dict_kvs, Embedded, Record
def map_embeddeds(f, v):
def walk(v):
if isinstance(v, Embedded):
return f(v.embeddedValue)
elif isinstance(v, (list, tuple)):
return tuple(walk(w) for w in v)
elif isinstance(v, (set, frozenset)):
return frozenset(walk(w) for w in v)
elif isinstance(v, dict):
return ImmutableDict.from_kvs(walk(w) for w in dict_kvs(v))
elif isinstance(v, Record):
return Record(walk(v.key), walk(v.fields))
else:
return v
return walk(v)