Split the worker into a distribution of its own
A cluster or GPU host installs `pip install fluksio-worker` and gets the agent and the runner, not psycopg, numpy and the MCP SDK. The engine depends on it as a workspace member, so the file it launches node code with is the same file a remote worker runs — which is what keeps a node unable to tell the difference. Copying the two files by hand still works. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
[project]
|
||||
name = "fluksio-worker"
|
||||
version = "0.1.0"
|
||||
description = "Runs Fluksio nodes on a machine the engine cannot reach"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.10"
|
||||
dependencies = [
|
||||
"websockets>=12",
|
||||
]
|
||||
|
||||
[project.scripts]
|
||||
fluksio-worker = "fluksio_worker.agent:main"
|
||||
|
||||
[build-system]
|
||||
requires = ["hatchling"]
|
||||
build-backend = "hatchling.build"
|
||||
|
||||
[tool.hatch.build.targets.wheel]
|
||||
packages = ["fluksio_worker"]
|
||||
|
||||
[tool.ruff]
|
||||
# The engine's config, so both distributions are linted the same way.
|
||||
extend = "../backend/pyproject.toml"
|
||||
|
||||
[tool.ruff.lint.per-file-ignores]
|
||||
# This one takes its own directory off sys.path before the rest of its imports
|
||||
# run, which is the whole point of doing it there.
|
||||
"fluksio_worker/worker_main.py" = ["E402"]
|
||||
# Copied onto another machine it has no logger configured before it tells you
|
||||
# the one dependency it is missing.
|
||||
"fluksio_worker/agent.py" = ["T201"]
|
||||
Reference in New Issue
Block a user