From dfe05ef2ba5e5672c5e5cc3b705db423e2f1f795 Mon Sep 17 00:00:00 2001 From: Chris Arridge Date: Mon, 27 Jul 2026 15:19:33 +0100 Subject: [PATCH 1/3] deps: ci: upgrade Python to 3.12 --- .github/workflows/lint.yml | 2 +- .github/workflows/test.yml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 1f596f0..08b088f 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -4,7 +4,7 @@ on: [push, pull_request] jobs: lint: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 - uses: psf/black@stable diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9f93fa7..a6593c2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -3,14 +3,14 @@ on: [push, pull_request] jobs: build: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 strategy: matrix: - python-version: [ '3.8', '3.12' ] + python-version: [ '3.12', '3.13' ] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Setup python - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} architecture: x64 From 54453f54a810b57b509d02a53bd9011ee5ac3aa3 Mon Sep 17 00:00:00 2001 From: Chris Arridge Date: Mon, 27 Jul 2026 14:40:04 +0100 Subject: [PATCH 2/3] requirements: update to latest version of lib360dataquality and add pip-tools This commit updates the lib360dataquality package in requirements.in so that it is not pinned to a specific commit but pulls the latest version. The net effect is that a number of packages have been updated to newer versions, including openpyxl which was causing issues in the datagetter compared to DQC due to different openpyxl versions. Also updated requirements_dev.in to add pip-tools so that requirements files can be compiled. --- requirements.in | 2 +- requirements.txt | 60 ++++++++++++------------- requirements_dev.in | 3 +- requirements_dev.txt | 103 ++++++++++++++++++++++++------------------- 4 files changed, 90 insertions(+), 78 deletions(-) diff --git a/requirements.in b/requirements.in index 79f79d0..3993f26 100644 --- a/requirements.in +++ b/requirements.in @@ -29,5 +29,5 @@ apsw>=3.35,<3.47 # Changelog: https://rogerbinns.github.io/apsw/changes.html -lib360dataquality @ git+https://github.com/ThreeSixtyGiving/dataquality.git@cf58dc98e978edd50bbef30608ff6613b0148b72 +lib360dataquality @ git+https://github.com/ThreeSixtyGiving/dataquality.git # Used for validation and conversion diff --git a/requirements.txt b/requirements.txt index 0967b4f..db942ae 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,36 +1,36 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # pip-compile requirements.in # apsw==3.46.1.0 # via -r requirements.in -attrs==21.2.0 +attrs==26.1.0 # via jsonschema -backports-datetime-fromisoformat==2.0.2 +backports-datetime-fromisoformat==2.0.3 # via flattentool -btrees==6.1 +btrees==6.4 # via zodb -certifi==2024.8.30 +certifi==2026.7.22 # via requests -cffi==1.17.1 +cffi==2.1.0 # via persistent -charset-normalizer==3.4.0 +charset-normalizer==3.4.9 # via requests defusedxml==0.7.1 # via odfpy et-xmlfile==2.0.0 # via openpyxl -flattentool==0.26.0 +flattentool==0.28.0 # via libcove -idna==3.10 +idna==3.18 # via requests -ijson==3.3.0 +ijson==3.5.1 # via # flattentool # lib360dataquality -json-merge-patch==0.2 +json-merge-patch==0.3.0 # via lib360dataquality jsonref==1.1.0 # via @@ -40,21 +40,21 @@ jsonschema==3.2.0 # via # lib360dataquality # libcove -lib360dataquality @ git+https://github.com/ThreeSixtyGiving/dataquality.git@cf58dc98e978edd50bbef30608ff6613b0148b72 +lib360dataquality @ git+https://github.com/ThreeSixtyGiving/dataquality.git # via -r requirements.in libcove==0.31.0 # via lib360dataquality -lxml==5.3.0 +lxml==6.1.1 # via flattentool odfpy==1.4.1 # via flattentool -openpyxl==3.0.10 +openpyxl==3.1.5 # via flattentool -persistent==6.1 +persistent==6.7 # via # btrees # zodb -pycparser==2.22 +pycparser==3.0 # via cffi pyrsistent==0.20.0 # via jsonschema @@ -62,11 +62,11 @@ pysocks==1.7.1 # via requests python-dateutil==2.9.0.post0 # via lib360dataquality -pytz==2024.2 +pytz==2026.3.post1 # via flattentool rangedict==0.1.7 # via lib360dataquality -requests[socks]==2.32.3 +requests[socks]==2.32.5 # via # -r requirements.in # libcove @@ -76,36 +76,36 @@ rfc3987==1.3.8 # via # -r requirements.in # libcove -schema==0.7.7 +schema==0.7.8 # via flattentool -six==1.16.0 +six==1.17.0 # via # jsonschema # python-dateutil # rfc3339-validator strict-rfc3339==0.7 # via -r requirements.in -transaction==5.0 +transaction==5.1 # via zodb -urllib3==2.2.3 +urllib3==2.7.0 # via requests -xmltodict==0.14.2 +xmltodict==1.0.4 # via flattentool -zc-lockfile==3.0.post1 +zc-lockfile==4.0 # via zodb zc-zlibstorage==1.2.0 # via flattentool -zconfig==4.1 +zconfig==4.3 # via zodb -zodb==6.0 +zodb==6.3 # via # flattentool # zc-zlibstorage -zodbpickle==4.1.1 +zodbpickle==4.4 # via zodb -zope-deferredimport==5.0 +zope-deferredimport==6.1.1 # via persistent -zope-interface==7.1.1 +zope-interface==8.5 # via # btrees # persistent @@ -113,7 +113,7 @@ zope-interface==7.1.1 # zc-zlibstorage # zodb # zope-proxy -zope-proxy==6.1 +zope-proxy==7.2 # via zope-deferredimport # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements_dev.in b/requirements_dev.in index b4eaa1e..82e9eb2 100644 --- a/requirements_dev.in +++ b/requirements_dev.in @@ -1,3 +1,4 @@ -r requirements.in -pytest black +pip-tools +pytest diff --git a/requirements_dev.txt b/requirements_dev.txt index b584b69..6926db5 100644 --- a/requirements_dev.txt +++ b/requirements_dev.txt @@ -1,44 +1,46 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # pip-compile requirements_dev.in # apsw==3.46.1.0 # via -r requirements.in -attrs==21.2.0 +attrs==26.1.0 # via jsonschema backports-datetime-fromisoformat==2.0.3 # via flattentool -black==24.8.0 +black==26.5.1 # via -r requirements_dev.in -btrees==6.1 +btrees==6.4 # via zodb -certifi==2025.1.31 +build==1.5.0 + # via pip-tools +certifi==2026.7.22 # via requests -cffi==1.17.1 +cffi==2.1.0 # via persistent -charset-normalizer==3.4.1 +charset-normalizer==3.4.9 # via requests -click==8.1.8 - # via black +click==8.4.2 + # via + # black + # pip-tools defusedxml==0.7.1 # via odfpy et-xmlfile==2.0.0 # via openpyxl -exceptiongroup==1.2.2 - # via pytest -flattentool==0.26.0 +flattentool==0.28.0 # via libcove -idna==3.10 +idna==3.18 # via requests -ijson==3.3.0 +ijson==3.5.1 # via # flattentool # lib360dataquality -iniconfig==2.0.0 +iniconfig==2.3.0 # via pytest -json-merge-patch==0.2 +json-merge-patch==0.3.0 # via lib360dataquality jsonref==1.1.0 # via @@ -48,47 +50,59 @@ jsonschema==3.2.0 # via # lib360dataquality # libcove -lib360dataquality @ git+https://github.com/ThreeSixtyGiving/dataquality.git@cf58dc98e978edd50bbef30608ff6613b0148b72 +lib360dataquality @ git+https://github.com/ThreeSixtyGiving/dataquality.git # via -r requirements.in libcove==0.31.0 # via lib360dataquality -lxml==5.3.1 +lxml==6.1.1 # via flattentool -mypy-extensions==1.0.0 +mypy-extensions==1.1.0 # via black odfpy==1.4.1 # via flattentool -openpyxl==3.0.10 +openpyxl==3.1.5 # via flattentool -packaging==24.2 +packaging==26.2 # via # black + # build # pytest -pathspec==0.12.1 + # wheel +pathspec==1.1.1 # via black -persistent==6.1.1 +persistent==6.7 # via # btrees # zodb -platformdirs==4.3.6 +pip-tools==7.6.0 + # via -r requirements_dev.in +platformdirs==4.11.0 # via black -pluggy==1.5.0 +pluggy==1.6.0 # via pytest -pycparser==2.22 +pycparser==3.0 # via cffi +pygments==2.20.0 + # via pytest +pyproject-hooks==1.2.0 + # via + # build + # pip-tools pyrsistent==0.20.0 # via jsonschema pysocks==1.7.1 # via requests -pytest==8.3.4 +pytest==9.1.1 # via -r requirements_dev.in python-dateutil==2.9.0.post0 # via lib360dataquality -pytz==2025.1 +pytokens==0.4.1 + # via black +pytz==2026.3.post1 # via flattentool rangedict==0.1.7 # via lib360dataquality -requests[socks]==2.32.3 +requests[socks]==2.32.5 # via # -r requirements.in # libcove @@ -98,7 +112,7 @@ rfc3987==1.3.8 # via # -r requirements.in # libcove -schema==0.7.7 +schema==0.7.8 # via flattentool six==1.17.0 # via @@ -107,33 +121,29 @@ six==1.17.0 # rfc3339-validator strict-rfc3339==0.7 # via -r requirements.in -tomli==2.2.1 - # via - # black - # pytest -transaction==5.0 +transaction==5.1 # via zodb -typing-extensions==4.12.2 - # via black -urllib3==2.2.3 +urllib3==2.7.0 # via requests -xmltodict==0.14.2 +wheel==0.47.0 + # via pip-tools +xmltodict==1.0.4 # via flattentool -zc-lockfile==3.0.post1 +zc-lockfile==4.0 # via zodb zc-zlibstorage==1.2.0 # via flattentool -zconfig==4.1 +zconfig==4.3 # via zodb -zodb==6.0 +zodb==6.3 # via # flattentool # zc-zlibstorage -zodbpickle==4.1.1 +zodbpickle==4.4 # via zodb -zope-deferredimport==5.0 +zope-deferredimport==6.1.1 # via persistent -zope-interface==7.2 +zope-interface==8.5 # via # btrees # persistent @@ -141,8 +151,9 @@ zope-interface==7.2 # zc-zlibstorage # zodb # zope-proxy -zope-proxy==6.1 +zope-proxy==7.2 # via zope-deferredimport # The following packages are considered to be unsafe in a requirements file: +# pip # setuptools From c59e5d7a9b23c2630a470a792ae2772c618d0034 Mon Sep 17 00:00:00 2001 From: Chris Arridge Date: Mon, 27 Jul 2026 15:20:10 +0100 Subject: [PATCH 3/3] docs: update Python version --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e281c67..9c9f5a4 100644 --- a/README.md +++ b/README.md @@ -60,4 +60,5 @@ optional arguments: ## Developers -If you are updating `requirements.txt` please make sure you use version 3.8 of Python. +If you are updating `requirements.txt` please make sure you use version 3.12 of Python. +0 \ No newline at end of file