From 0e220073fcb7b81d9317efe4706104d020d2849e Mon Sep 17 00:00:00 2001 From: kuna <47035140+1kuna@users.noreply.github.com> Date: Thu, 16 Oct 2025 04:37:32 -0400 Subject: [PATCH] Handle empty int env overrides in vendor worker --- trademl/workers/vendor_worker.py | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/trademl/workers/vendor_worker.py b/trademl/workers/vendor_worker.py index fb0c179..6a0da3b 100644 --- a/trademl/workers/vendor_worker.py +++ b/trademl/workers/vendor_worker.py @@ -35,6 +35,25 @@ def _normalize_vendor(v: str) -> str: return m +def _env_int(name: str, default: int = 0) -> int: + """Read an integer environment variable safely.""" + + raw = os.getenv(name) + if raw is None: + return default + try: + raw = raw.strip() + except AttributeError: + # Non-string values (rare) are ignored and defaulted + return default + if raw == "": + return default + try: + return int(raw) + except ValueError: + return default + + def _tasks_for_vendor_all(edge, vendor: str) -> List[str]: # Mirror mapping logic from VendorSupervisor mapping = { @@ -98,8 +117,8 @@ def main(): parser = argparse.ArgumentParser(description="Per-vendor worker") parser.add_argument("--vendor", default=os.getenv("VENDOR"), required=False) - parser.add_argument("--concurrency", type=int, default=int(os.getenv("CONCURRENCY", "0"))) - parser.add_argument("--rpm", type=int, default=int(os.getenv("RPM_LIMIT", "0"))) + parser.add_argument("--concurrency", type=int, default=_env_int("CONCURRENCY", 0)) + parser.add_argument("--rpm", type=int, default=_env_int("RPM_LIMIT", 0)) parser.add_argument("--budget", type=int, default=os.getenv("BUDGET") or 0) parser.add_argument("--config", default=os.getenv("EDGE_CONFIG", "configs/edge.yml")) parser.add_argument("--tasks", default=os.getenv("TASKS", ""))