From 5b69033cfca89c6cc92d98ae6323cf5c5b3d3244 Mon Sep 17 00:00:00 2001 From: Jiaqi Cai Date: Mon, 16 Mar 2026 02:14:04 +0800 Subject: [PATCH] Add MEASUREIT_FORCE_NON_PLOTTING env var for headless mode When MEASUREIT_FORCE_NON_PLOTTING is set, silently disable plotting to avoid QWidget errors in headless environments (e.g., Docker containers). Without the env var, behavior is completely unchanged. Co-Authored-By: Claude Opus 4.6 (1M context) --- src/measureit/sweep/base_sweep.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/measureit/sweep/base_sweep.py b/src/measureit/sweep/base_sweep.py index 7d44148..11908a0 100644 --- a/src/measureit/sweep/base_sweep.py +++ b/src/measureit/sweep/base_sweep.py @@ -2,6 +2,7 @@ import importlib import json import math +import os import time import threading import warnings @@ -259,7 +260,13 @@ def __init__( ) self.inter_delay = inter_delay self.save_data = save_data - self.plot_data = plot_data + # Headless mode: if MEASUREIT_FORCE_NON_PLOTTING is set, silently + # disable plotting to avoid QWidget errors in headless environments + # (e.g., Docker containers). Only active when the env var exists. + if os.environ.get("MEASUREIT_FORCE_NON_PLOTTING"): + self.plot_data = False + else: + self.plot_data = plot_data self.x_axis = x_axis_time self.back_multiplier = back_multiplier self.direction = 0