fix: conditional matplotlib backend for interactive + headless use

This commit is contained in:
2026-05-21 16:05:58 +03:00
parent fa4e61a9f6
commit 5ec6305e09
+11 -2
View File
@@ -22,13 +22,22 @@
"outputs": [], "outputs": [],
"source": [ "source": [
"import matplotlib\n", "import matplotlib\n",
"matplotlib.use(\"Agg\")\n", "# Use non-interactive backend only when no display is available (e.g. jupyter execute)\n",
"import matplotlib as mpl\n",
"try:\n",
" import matplotlib.pyplot as plt\n",
" # Check if we're in a headless environment\n",
" import os\n",
" if not os.environ.get(\"DISPLAY\") and not os.environ.get(\"WAYLAND_DISPLAY\"):\n",
" mpl.use(\"Agg\")\n",
"except ImportError:\n",
" mpl.use(\"Agg\")\n",
" import matplotlib.pyplot as plt\n", " import matplotlib.pyplot as plt\n",
"import numpy as np\n", "import numpy as np\n",
"\n", "\n",
"from exp_data.pipeline import process_spectrum, process_run_sequence\n", "from exp_data.pipeline import process_spectrum, process_run_sequence\n",
"from exp_data.root_io import write_spectrum, read_spectrum\n", "from exp_data.root_io import write_spectrum, read_spectrum\n",
"from exp_data.livetime import LivetimeDetermination" "from exp_data.livetime import LivetimeDetermination\n"
] ]
}, },
{ {