Skip to content

Commit 150da9d

Browse files
Adding and threading through protocol_version
1 parent 1ae7242 commit 150da9d

File tree

4 files changed

+26
-12
lines changed

4 files changed

+26
-12
lines changed

src/replit_river/codegen/client.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -802,6 +802,7 @@ def render_library_call(
802802
schema_name: str,
803803
name: str,
804804
procedure: RiverProcedure,
805+
protocol_version: Literal["v1.1", "v2.0"],
805806
init_meta: tuple[RiverType, TypeExpression, str] | None,
806807
input_meta: tuple[RiverType, TypeExpression, str] | None,
807808
output_meta: tuple[RiverType, TypeExpression, str] | None,
@@ -1022,6 +1023,7 @@ def generate_individual_service(
10221023
schema_name: str,
10231024
schema: RiverService,
10241025
input_base_class: Literal["TypedDict"] | Literal["BaseModel"],
1026+
protocol_version: Literal["v1.1", "v2.0"],
10251027
) -> tuple[ModuleName, ClassName, dict[RenderedPath, FileContents]]:
10261028
serdes: list[tuple[list[TypeName], list[ModuleName], list[FileContents]]] = []
10271029

@@ -1254,6 +1256,7 @@ def combine_or_none(
12541256
schema_name=schema_name,
12551257
name=name,
12561258
procedure=procedure,
1259+
protocol_version=protocol_version,
12571260
init_meta=combine_or_none(
12581261
procedure.init, init_type, render_init_method
12591262
),
@@ -1308,6 +1311,7 @@ def generate_river_client_module(
13081311
client_name: str,
13091312
schema_root: RiverSchema,
13101313
typed_dict_inputs: bool,
1314+
protocol_version: Literal["v1.1", "v2.0"],
13111315
) -> dict[RenderedPath, FileContents]:
13121316
files: dict[RenderedPath, FileContents] = {}
13131317

@@ -1332,7 +1336,10 @@ def generate_river_client_module(
13321336
)
13331337
for schema_name, schema in schema_root.services.items():
13341338
module_name, class_name, emitted_files = generate_individual_service(
1335-
schema_name, schema, input_base_class
1339+
schema_name,
1340+
schema,
1341+
input_base_class,
1342+
protocol_version,
13361343
)
13371344
files.update(emitted_files)
13381345
modules.append((module_name, class_name))
@@ -1351,12 +1358,16 @@ def schema_to_river_client_codegen(
13511358
client_name: str,
13521359
typed_dict_inputs: bool,
13531360
file_opener: Callable[[Path], TextIO],
1361+
protocol_version: Literal["v1.1", "v2.0"],
13541362
) -> None:
13551363
"""Generates the lines of a River module."""
13561364
with read_schema() as f:
13571365
schemas = RiverSchemaFile(json.load(f))
13581366
for subpath, contents in generate_river_client_module(
1359-
client_name, schemas.root, typed_dict_inputs
1367+
client_name,
1368+
schemas.root,
1369+
typed_dict_inputs,
1370+
protocol_version,
13601371
).items():
13611372
module_path = Path(target_path).joinpath(subpath)
13621373
module_path.parent.mkdir(mode=0o755, parents=True, exist_ok=True)

src/replit_river/codegen/run.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,12 @@ def file_opener(path: Path) -> TextIO:
5757
return open(path, "w")
5858

5959
schema_to_river_client_codegen(
60-
lambda: open(schema_path),
61-
target_path,
62-
args.client_name,
63-
args.typed_dict_inputs,
64-
file_opener,
60+
read_schema=lambda: open(schema_path),
61+
target_path=target_path,
62+
client_name=args.client_name,
63+
typed_dict_inputs=args.typed_dict_inputs,
64+
file_opener=file_opener,
65+
protocol_version="v1.1",
6566
)
6667
else:
6768
raise NotImplementedError(f"Unknown command {args.command}")

tests/codegen/snapshot/codegen_snapshot_fixtures.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ def file_opener(path: Path) -> TextIO:
3434
client_name=client_name,
3535
file_opener=file_opener,
3636
typed_dict_inputs=True,
37+
protocol_version="v1.1",
3738
)
3839
for path, file in files.items():
3940
file.seek(0)

tests/codegen/test_rpc.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,12 @@ def file_opener(path: Path) -> TextIO:
2727
return open(path, "w")
2828

2929
schema_to_river_client_codegen(
30-
lambda: open("tests/codegen/rpc/schema.json"),
31-
"tests/codegen/rpc/generated",
32-
"RpcClient",
33-
True,
34-
file_opener,
30+
read_schema=lambda: open("tests/codegen/rpc/schema.json"),
31+
target_path="tests/codegen/rpc/generated",
32+
client_name="RpcClient",
33+
typed_dict_inputs=True,
34+
file_opener=file_opener,
35+
protocol_version="v1.1",
3536
)
3637
importlib.reload(tests.codegen.rpc.generated)
3738

0 commit comments

Comments
 (0)