From 6f1f07a2157c89a4799da500ee2ca933b03cac8f Mon Sep 17 00:00:00 2001 From: Gerard Casas Saez Date: Fri, 14 Jul 2023 02:27:37 +0200 Subject: [PATCH 1/2] add parameters to py_import_func --- protogen/__init__.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/protogen/__init__.py b/protogen/__init__.py index ed227af..a1e6529 100644 --- a/protogen/__init__.py +++ b/protogen/__init__.py @@ -1279,11 +1279,12 @@ def __init__( self, proto: google.protobuf.descriptor_pb2.FileDescriptorProto, generate: bool, - py_import_func: Callable[[str, str], PyImportPath], + py_import_func: Callable[[str, str, Dict[str, str]], PyImportPath], + parameters: Dict[str, str] ): self.proto = proto self.generated_filename_prefix = proto.name[: -len(".proto")] - self.py_import_path = py_import_func(proto.name, proto.package) + self.py_import_path = py_import_func(proto.name, proto.package, parameters) self.py_package_name = str(proto.package) self.generate = generate self.dependencies: List[File] = [] @@ -1660,7 +1661,7 @@ def error(self, msg: str): self._error = msg -def default_py_import_func(filename: str, package: str) -> PyImportPath: +def default_py_import_func(filename: str, package: str, parameters: Dict[str, str]) -> PyImportPath: """Return the Python import path for a file. Return the Python import path for a file following the behaviour of the @@ -1675,6 +1676,9 @@ def default_py_import_func(filename: str, package: str) -> PyImportPath: Filename of the proto file to request the import path for. package : str Proto package name of the file to request the import path for. + parameters: Dict[str, str] + Parameters passed to the plugin using ``{plugin name}_opt==` + or ``_out==`` command line flags. Returns ------- @@ -1703,7 +1707,7 @@ class Options: def __init__( self, *, - py_import_func: Callable[[str, str], PyImportPath] = default_py_import_func, + py_import_func: Callable[[str, str, Dict[str, str]], PyImportPath] = default_py_import_func, input: Optional[BinaryIO] = None, output: Optional[BinaryIO] = None, supported_features: List[ From 2fee833bd8ac9894c057cc3663dce0ac4c278d5d Mon Sep 17 00:00:00 2001 From: Gerard Casas Saez Date: Fri, 14 Jul 2023 02:29:03 +0200 Subject: [PATCH 2/2] pass parameter to File --- protogen/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/protogen/__init__.py b/protogen/__init__.py index a1e6529..ca406d1 100644 --- a/protogen/__init__.py +++ b/protogen/__init__.py @@ -1811,7 +1811,7 @@ def run(self, f: Callable[[Plugin], None]): files_to_generate: List[File] = [] for proto in req.proto_file: generate = proto.name in req.file_to_generate - file = File(proto, generate, self._py_import_func) + file = File(proto, generate, self._py_import_func, parameter) file._register(registry) file._resolve(registry) if generate: