diff --git a/python/fixup_generated_files.py b/python/fixup_generated_files.py new file mode 100644 index 000000000000..58db7c98b7d5 --- /dev/null +++ b/python/fixup_generated_files.py @@ -0,0 +1,35 @@ +from pathlib import Path +from typing import Dict + +this_file_dir = Path(__file__).parent + +files = [ + this_file_dir / "packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos/agent_worker_pb2_grpc.py", + this_file_dir / "packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos/agent_worker_pb2_grpc.pyi", + this_file_dir / "packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos/agent_worker_pb2.py", + this_file_dir / "packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos/agent_worker_pb2.pyi", + this_file_dir / "packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos/cloudevent_pb2_grpc.py", + this_file_dir / "packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos/cloudevent_pb2_grpc.pyi", + this_file_dir / "packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos/cloudevent_pb2.py", + this_file_dir / "packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos/cloudevent_pb2.pyi", +] + +substitutions: Dict[str, str] = { + "\nimport agent_worker_pb2 as agent__worker__pb2\n": "\nfrom . import agent_worker_pb2 as agent__worker__pb2\n", + "\nimport agent_worker_pb2\n": "\nfrom . import agent_worker_pb2\n", + "\nimport cloudevent_pb2 as cloudevent__pb2\n": "\nfrom . import cloudevent_pb2 as cloudevent__pb2\n", + "\nimport cloudevent_pb2\n": "\nfrom . import cloudevent_pb2\n", +} + + +def main(): + for file in files: + with open(file, "r") as f: + content = f.read() + + print("Fixing imports in file:", file) + for old, new in substitutions.items(): + content = content.replace(old, new) + + with open(file, "w") as f: + f.write(content) diff --git a/python/packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos/__init__.py b/python/packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos/__init__.py index b8b57d2f85f2..0bcd40bf0a4d 100644 --- a/python/packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos/__init__.py +++ b/python/packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos/__init__.py @@ -2,7 +2,3 @@ The :mod:`autogen_ext.runtimes.grpc.protos` module provides Google Protobuf classes for agent-worker communication """ -import os -import sys - -sys.path.insert(0, os.path.abspath(os.path.dirname(__file__))) diff --git a/python/packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos/agent_worker_pb2.py b/python/packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos/agent_worker_pb2.py index 8744a04a6026..37faa08a91b5 100644 --- a/python/packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos/agent_worker_pb2.py +++ b/python/packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos/agent_worker_pb2.py @@ -12,7 +12,7 @@ _sym_db = _symbol_database.Default() -import cloudevent_pb2 as cloudevent__pb2 +from . import cloudevent_pb2 as cloudevent__pb2 from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2 diff --git a/python/packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos/agent_worker_pb2.pyi b/python/packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos/agent_worker_pb2.pyi index 12f1a8728667..91625ff79d03 100644 --- a/python/packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos/agent_worker_pb2.pyi +++ b/python/packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos/agent_worker_pb2.pyi @@ -4,7 +4,7 @@ isort:skip_file """ import builtins -import cloudevent_pb2 +from . import cloudevent_pb2 import collections.abc import google.protobuf.any_pb2 import google.protobuf.descriptor diff --git a/python/packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos/agent_worker_pb2_grpc.py b/python/packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos/agent_worker_pb2_grpc.py index 4f5e4cd0a513..24c0c633e93d 100644 --- a/python/packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos/agent_worker_pb2_grpc.py +++ b/python/packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos/agent_worker_pb2_grpc.py @@ -2,7 +2,7 @@ """Client and server classes corresponding to protobuf-defined services.""" import grpc -import agent_worker_pb2 as agent__worker__pb2 +from . import agent_worker_pb2 as agent__worker__pb2 class AgentRpcStub(object): diff --git a/python/packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos/agent_worker_pb2_grpc.pyi b/python/packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos/agent_worker_pb2_grpc.pyi index 2d895360b290..ce8a7c12ec69 100644 --- a/python/packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos/agent_worker_pb2_grpc.pyi +++ b/python/packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos/agent_worker_pb2_grpc.pyi @@ -4,7 +4,7 @@ isort:skip_file """ import abc -import agent_worker_pb2 +from . import agent_worker_pb2 import collections.abc import grpc import grpc.aio diff --git a/python/pyproject.toml b/python/pyproject.toml index f3871e662c19..4ee8bdd57d24 100644 --- a/python/pyproject.toml +++ b/python/pyproject.toml @@ -96,7 +96,11 @@ samples-code-check = """pyright ./samples""" check = ["fmt", "lint", "pyright", "mypy", "test", "markdown-code-lint", "samples-code-check"] -gen-proto = "python -m grpc_tools.protoc --python_out=./packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos --grpc_python_out=./packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos --mypy_out=./packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos --mypy_grpc_out=./packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos --proto_path ../protos/ agent_worker.proto --proto_path ../protos/ cloudevent.proto" +gen-proto = [ + { cmd = "python -m grpc_tools.protoc --python_out=./packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos --grpc_python_out=./packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos --mypy_out=./packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos --mypy_grpc_out=./packages/autogen-ext/src/autogen_ext/runtimes/grpc/protos --proto_path ../protos/ agent_worker.proto --proto_path ../protos/ cloudevent.proto" }, + { script = "fixup_generated_files:main" } +] + gen-proto-samples = "python -m grpc_tools.protoc --python_out=./samples/core_xlang_hello_python_agent/protos --grpc_python_out=./samples/core_xlang_hello_python_agent/protos --mypy_out=./samples/core_xlang_hello_python_agent/protos --mypy_grpc_out=./samples/core_xlang_hello_python_agent/protos --proto_path ../protos/ agent_events.proto"