Put the deployment-only dependencies behind a server extra
A data-science environment installing fluksio waited for lxml, aiohttp and the rest of a connector stack it has nothing to talk to. Outbound mail, error reporting and the MQTT and InfluxDB clients moved to `fluksio[server]`, which the image installs; each import is guarded and names the extra. `tenacity` had no import site at all and is gone. 23 fewer packages and the compiled ones among them — a bare `pip install fluksio` still serves, runs every python node, and registers the mqtt and influxdb node types, which only need the library when one is actually built. sentry-sdk arrives anyway underneath `fastapi[standard]`; what changed there is that nothing of ours requires it. The dev environment keeps every extra: the suite exercises the connectors and strict mypy checks their call sites. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019Hra4ndWMCLU5F3KjUuVAc
This commit is contained in:
@@ -485,14 +485,14 @@ def _params(definition: dict[str, Any], rest: list[str]) -> dict[str, Any]:
|
||||
f"{', '.join(sorted(types)) or 'none'}){hint}"
|
||||
)
|
||||
params: dict[str, Any] = {}
|
||||
for name, value in raw.items():
|
||||
if value is True:
|
||||
params[name] = True
|
||||
for key, written in raw.items():
|
||||
if isinstance(written, bool):
|
||||
params[key] = written
|
||||
continue
|
||||
try:
|
||||
params[name] = _coerce(value, types[name])
|
||||
params[key] = _coerce(written, types[key])
|
||||
except ValueError as exc:
|
||||
raise SyncError(f"'{name}' takes {types[name]}: {exc}") from exc
|
||||
raise SyncError(f"'{key}' takes {types[key]}: {exc}") from exc
|
||||
return params
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user