From cbc662f1173a7f288d547fc24a48bbffc842eacc Mon Sep 17 00:00:00 2001 From: mslaffin Date: Fri, 1 May 2026 17:48:16 -0500 Subject: [PATCH 1/2] Switch from requirements.txt to pyproject.toml and enforce python version --- README.md | 4 ++-- pyproject.toml | 25 +++++++++++++++++++++++++ requirements.txt | 14 -------------- 3 files changed, 27 insertions(+), 16 deletions(-) create mode 100644 pyproject.toml delete mode 100644 requirements.txt diff --git a/README.md b/README.md index 2604fa86..a8f945db 100644 --- a/README.md +++ b/README.md @@ -168,7 +168,7 @@ All code development intended to impact a future release is done on the latest ` The `main` branch contains the latest production code. #### Development Process -Clone the repo to your machine. Current libraries require the use of Python version 3.11. +Clone the repo to your machine. Current libraries require the use of Python version 3.11; `pip` will refuse to install on other versions. > Note: Python 3.11 is in the security-fix-only phase and is scheduled to reach End of Life (EOL) on 2027-10-31. The PSF support window for each major release is five years, typically split into bugfix and security phases. See https://devguide.python.org/versions/ and https://endoflife.date/python. @@ -190,7 +190,7 @@ Activate the virtual environment (assuming on Windows)*: Install the requirements: ``` python -m pip install --upgrade pip -pip install -r requirements.txt +pip install -e . ``` Run the main application: ``` diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..64f6ec03 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,25 @@ +[project] +name = "ebeam-dashboard" +version = "0.1.0" +description = "EBEAM System Dashboard Software" +requires-python = ">=3.11,<3.12" +dependencies = [ + "matplotlib==3.10.8", + "numpy==1.26.4", + "pytest==9.0.2", + "picosdk==1.0", + "pymodbus==3.7.3", + "pyserial==3.5", + "scipy==1.14.1", + "tkdial==0.0.7", + "pandas==2.1.3", + "supabase==2.28.3", + "python-dotenv==1.2.2", +] + +[build-system] +requires = ["setuptools>=61"] +build-backend = "setuptools.build_meta" + +[tool.setuptools] +py-modules = [] \ No newline at end of file diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 8de342bf..00000000 --- a/requirements.txt +++ /dev/null @@ -1,14 +0,0 @@ -# Project dependencies for EBeam Dashboard -# Last updated: 2025-12-10 -# Matplot lib requires the use of Python version 3.11 -matplotlib==3.10.8 -numpy==1.26.4 -pytest==9.0.2 -picosdk==1.0 -pymodbus==3.7.3 -pyserial==3.5 -scipy==1.14.1 -tkdial==0.0.7 -pandas==2.1.3 -supabase==2.28.3 -python-dotenv==1.2.2 From 0bb768db13729b28152c70b8f759f0e3db5b39ed Mon Sep 17 00:00:00 2001 From: mslaffin Date: Fri, 1 May 2026 18:05:18 -0500 Subject: [PATCH 2/2] update pip install command to work with pyproject.toml --- .github/workflows/python_tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python_tests.yml b/.github/workflows/python_tests.yml index 291208fb..e371fbec 100644 --- a/.github/workflows/python_tests.yml +++ b/.github/workflows/python_tests.yml @@ -21,7 +21,7 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip - if (Test-Path requirements.txt) { pip install -r requirements.txt } + pip install -e . - name: Run tests run: |