Skip to content

Commit 6895c3d

Browse files
committed
remove match/case
1 parent 293532c commit 6895c3d

File tree

2 files changed

+27
-29
lines changed

2 files changed

+27
-29
lines changed

src/automerge/core/__init__.py

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,25 +7,25 @@
77
Value = ObjType | tuple[ScalarType, ScalarValue]
88

99
def extract(doc: Document, obj_id: bytes = ROOT) -> Thing:
10-
match doc.object_type(obj_id):
11-
case ObjType.Map:
12-
d: dict[str, Thing] = {}
13-
for k in doc.keys(obj_id):
14-
x = doc.get(obj_id, k)
15-
assert x is not None
16-
v, id = x
17-
d[k] = extract(doc, id) if isinstance(v, ObjType) else v[1]
18-
return d
19-
case ObjType.List:
20-
l: list[Thing] = []
21-
for k2 in range(0, doc.length(obj_id)):
22-
x = doc.get(obj_id, k2)
23-
assert x is not None
24-
v, id = x
25-
l.append(extract(doc, id) if isinstance(v, ObjType) else v[1])
26-
return l
27-
case ObjType.Text:
28-
return doc.text(obj_id)
10+
ot = doc.object_type(obj_id)
11+
if ot == ObjType.Map:
12+
d: dict[str, Thing] = {}
13+
for k in doc.keys(obj_id):
14+
x = doc.get(obj_id, k)
15+
assert x is not None
16+
v, id = x
17+
d[k] = extract(doc, id) if isinstance(v, ObjType) else v[1]
18+
return d
19+
elif ot == ObjType.List:
20+
l: list[Thing] = []
21+
for k2 in range(0, doc.length(obj_id)):
22+
x = doc.get(obj_id, k2)
23+
assert x is not None
24+
v, id = x
25+
l.append(extract(doc, id) if isinstance(v, ObjType) else v[1])
26+
return l
27+
elif ot == ObjType.Text:
28+
return doc.text(obj_id)
2929
raise Exception("unexpected result from doc.object_type")
3030

3131
__doc__ = _automerge.__doc__

src/automerge/document.py

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,10 @@ def to_py(self) -> core.Thing:
4040
def _maybe_wrap(self, x: tuple[core.Value, bytes]) -> 'MapReadProxy | ListReadProxy | core.ScalarValue':
4141
value, obj_id = x
4242
if isinstance(value, core.ObjType):
43-
match value:
44-
case core.ObjType.List:
45-
return ListReadProxy(self._doc, obj_id, self._heads)
46-
case core.ObjType.Map:
47-
return MapReadProxy(self._doc, obj_id, self._heads)
43+
if value == core.ObjType.List:
44+
return ListReadProxy(self._doc, obj_id, self._heads)
45+
elif value == core.ObjType.Map:
46+
return MapReadProxy(self._doc, obj_id, self._heads)
4847
raise Exception("unknown obj type")
4948
_, v = value
5049
return v
@@ -142,11 +141,10 @@ def __getitem__(self, key: int | slice) -> MutableProxyThing | MutableSequence[M
142141
if x is None: return None
143142
value, obj_id = x
144143
if isinstance(value, core.ObjType):
145-
match value:
146-
case core.ObjType.Map:
147-
return MapWriteProxy(self._tx, obj_id, self._heads)
148-
case core.ObjType.List:
149-
return ListWriteProxy(self._tx, obj_id, self._heads)
144+
if value == core.ObjType.Map:
145+
return MapWriteProxy(self._tx, obj_id, self._heads)
146+
elif value == core.ObjType.List:
147+
return ListWriteProxy(self._tx, obj_id, self._heads)
150148
raise Exception("unknown ObjType")
151149
_, v = value
152150
return v

0 commit comments

Comments
 (0)