Skip to content

Commit f73b1d4

Browse files
Adding branches for unknown enumeration members
1 parent 48bcf1e commit f73b1d4

File tree

3 files changed

+18
-0
lines changed

3 files changed

+18
-0
lines changed

src/replit_river/codegen/client.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
TypeExpression,
3535
TypeName,
3636
UnionTypeExpr,
37+
UnknownTypeExpr,
3738
ensure_literal_type,
3839
extract_inner_type,
3940
render_type_expr,
@@ -82,6 +83,7 @@
8283
Literal,
8384
Optional,
8485
Mapping,
86+
NewType,
8587
NotRequired,
8688
Union,
8789
Tuple,
@@ -309,6 +311,14 @@ def flatten_union(tpe: RiverType) -> list[RiverType]:
309311
else
310312
""",
311313
)
314+
if permit_unknown_members:
315+
unknown_name = TypeName(f"{prefix}AnyOf__Unknown")
316+
chunks.append(
317+
FileContents(
318+
f"{unknown_name} = NewType({repr(unknown_name)}, object)"
319+
)
320+
)
321+
one_of.append(UnknownTypeExpr(unknown_name))
312322
chunks.append(
313323
FileContents(
314324
f"{prefix} = {render_type_expr(UnionTypeExpr(one_of))}"
@@ -375,6 +385,12 @@ def flatten_union(tpe: RiverType) -> list[RiverType]:
375385
typeddict_encoder.append(
376386
f"encode_{ensure_literal_type(other)}(x)"
377387
)
388+
if permit_unknown_members:
389+
unknown_name = TypeName(f"{prefix}AnyOf__Unknown")
390+
chunks.append(
391+
FileContents(f"{unknown_name} = NewType({repr(unknown_name)}, object)")
392+
)
393+
any_of.append(UnknownTypeExpr(unknown_name))
378394
if is_literal(type):
379395
typeddict_encoder = ["x"]
380396
chunks.append(

tests/codegen/rpc/generated/test_service/rpc_method.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
Literal,
1111
Optional,
1212
Mapping,
13+
NewType,
1314
NotRequired,
1415
Union,
1516
Tuple,

tests/codegen/stream/generated/test_service/stream_method.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
Literal,
1111
Optional,
1212
Mapping,
13+
NewType,
1314
NotRequired,
1415
Union,
1516
Tuple,

0 commit comments

Comments
 (0)