From be02817c674488983ae888f6f98fb88c47ecc611 Mon Sep 17 00:00:00 2001 From: Bryan Deng Date: Sat, 16 May 2026 12:39:45 +0800 Subject: [PATCH] refactor: move subprocess worker to workers/ directory --- builders/server/runtime/runner.py | 2 +- builders/server/tests/workers/__init__.py | 0 .../test_subprocess_worker.py} | 24 +++++++++---------- builders/server/workers/__init__.py | 0 .../subprocess_worker.py} | 2 +- 5 files changed, 14 insertions(+), 14 deletions(-) create mode 100644 builders/server/tests/workers/__init__.py rename builders/server/tests/{runtime/test_isolated_worker.py => workers/test_subprocess_worker.py} (91%) create mode 100644 builders/server/workers/__init__.py rename builders/server/{runtime/isolated_worker.py => workers/subprocess_worker.py} (98%) diff --git a/builders/server/runtime/runner.py b/builders/server/runtime/runner.py index 473f4e9..14d4a50 100644 --- a/builders/server/runtime/runner.py +++ b/builders/server/runtime/runner.py @@ -21,7 +21,7 @@ RETRY_INITIAL_DELAY = 2.0 # seconds RETRY_BACKOFF_FACTOR = 2.0 -WORKER_PATH = Path(__file__).parent / "isolated_worker.py" +WORKER_PATH = Path(__file__).parent.parent / "workers" / "subprocess_worker.py" def run_builder( diff --git a/builders/server/tests/workers/__init__.py b/builders/server/tests/workers/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/builders/server/tests/runtime/test_isolated_worker.py b/builders/server/tests/workers/test_subprocess_worker.py similarity index 91% rename from builders/server/tests/runtime/test_isolated_worker.py rename to builders/server/tests/workers/test_subprocess_worker.py index 91bb45b..e53b134 100644 --- a/builders/server/tests/runtime/test_isolated_worker.py +++ b/builders/server/tests/workers/test_subprocess_worker.py @@ -10,23 +10,23 @@ import pytest WORKER_PATH = ( - Path(__file__).resolve().parent.parent.parent / "runtime" / "isolated_worker.py" + Path(__file__).resolve().parent.parent.parent / "workers" / "subprocess_worker.py" ) SERVER_DIR = Path(__file__).resolve().parent.parent.parent @pytest.fixture(scope="module") def worker(): - """Import isolated_worker as a module for direct function testing.""" - spec = importlib.util.spec_from_file_location("isolated_worker", WORKER_PATH) + """Import subprocess_worker as a module for direct function testing.""" + spec = importlib.util.spec_from_file_location("subprocess_worker", WORKER_PATH) assert spec is not None and spec.loader is not None mod = importlib.util.module_from_spec(spec) spec.loader.exec_module(mod) # type: ignore[union-attr] return mod -def test_isolated_worker_only_imports_stdlib(): - """All imports in isolated_worker.py must be stdlib modules.""" +def test_subprocess_worker_only_imports_stdlib(): + """All imports in subprocess_worker.py must be stdlib modules.""" source = WORKER_PATH.read_text() tree = ast.parse(source) non_stdlib = [] @@ -43,23 +43,23 @@ def test_isolated_worker_only_imports_stdlib(): assert non_stdlib == [], f"non-stdlib imports found: {non_stdlib}" -def test_no_codebase_imports_isolated_worker(): - """No server code imports from isolated_worker.""" +def test_no_codebase_imports_subprocess_worker(): + """No server code imports from subprocess_worker.""" for py_file in SERVER_DIR.rglob("*.py"): # skip tests and the worker itself - if "tests" in py_file.parts or py_file.name == "isolated_worker.py": + if "tests" in py_file.parts or py_file.name == "subprocess_worker.py": continue source = py_file.read_text() tree = ast.parse(source) for node in ast.walk(tree): if isinstance(node, ast.ImportFrom) and node.module is not None: - assert "isolated_worker" not in node.module, ( - f"{py_file} imports from isolated_worker" + assert "subprocess_worker" not in node.module, ( + f"{py_file} imports from subprocess_worker" ) if isinstance(node, ast.Import): for alias in node.names: - assert "isolated_worker" not in alias.name, ( - f"{py_file} imports isolated_worker" + assert "subprocess_worker" not in alias.name, ( + f"{py_file} imports subprocess_worker" ) diff --git a/builders/server/workers/__init__.py b/builders/server/workers/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/builders/server/runtime/isolated_worker.py b/builders/server/workers/subprocess_worker.py similarity index 98% rename from builders/server/runtime/isolated_worker.py rename to builders/server/workers/subprocess_worker.py index c7e19a1..9d73683 100644 --- a/builders/server/runtime/isolated_worker.py +++ b/builders/server/workers/subprocess_worker.py @@ -1,6 +1,6 @@ """ ########################################################################### -# ISOLATED WORKER -- runs inside builder subprocesses # +# SUBPROCESS WORKER -- runs inside builder subprocesses # # # # This file is executed by a DIFFERENT Python interpreter that may be # # inside a per-builder virtual environment. It MUST NOT import anything #