From a9145c3e61f908ee75dfb115d3689e648daec613 Mon Sep 17 00:00:00 2001 From: Bee Webb Date: Tue, 18 Feb 2025 10:16:26 +0000 Subject: [PATCH 1/2] requirements: Update all requirements, and update README for this --- README.md | 11 ++++++++ requirements.txt | 52 +++++++++++++++++++------------------- requirements_dev.txt | 60 ++++++++++++++++++++++---------------------- 3 files changed, 67 insertions(+), 56 deletions(-) diff --git a/README.md b/README.md index 1e5a82aef..0dc79b749 100644 --- a/README.md +++ b/README.md @@ -119,10 +119,21 @@ Often you only want to regenerate the current stats, use `get_stats.sh` to downl If a change requires new dependencies then please add to `requirements.in` or `requirements_dev.in` as appropriate and recompile: ``` +# Install an older version of pip, see https://github.com/jazzband/pip-tools/issues/2131 +pip install 'pip<24.3' pip-compile requirements.in pip-compile requirements_dev.in ``` +### Upgrading dependencies + +``` +# Install an older version of pip, see https://github.com/jazzband/pip-tools/issues/2131 +pip install 'pip<24.3' +pip-compile --upgrade requirements.in +pip-compile --upgrade requirements_dev.in +``` + ### Linting Code linting is carried out using Black, isort and [Flake8](https://flake8.pycqa.org/en/latest/) and `pyproject.toml` has the configuration. diff --git a/requirements.txt b/requirements.txt index 6823845d7..4c7a938e0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,33 +2,33 @@ # This file is autogenerated by pip-compile with Python 3.12 # by the following command: # -# pip-compile +# pip-compile requirements.in # asgiref==3.8.1 # via django -blinker==1.8.2 +blinker==1.9.0 # via flask -certifi==2024.8.30 +certifi==2025.1.31 # via requests -charset-normalizer==3.4.0 +charset-normalizer==3.4.1 # via requests -click==8.1.7 +click==8.1.8 # via flask -contourpy==1.3.0 +contourpy==1.3.1 # via matplotlib cycler==0.12.1 # via matplotlib -django==5.1.5 +django==5.1.6 # via -r requirements.in -django-environ==0.11.2 +django-environ==0.12.0 # via -r requirements.in -elementpath==4.6.0 +elementpath==4.7.0 # via xmlschema -flask==3.0.3 +flask==3.1.0 # via # -r requirements.in # frozen-flask -fonttools==4.54.1 +fonttools==4.56.0 # via matplotlib frozen-flask==1.0.2 # via -r requirements.in @@ -44,54 +44,54 @@ jinja2==3.1.5 # via # -r requirements.in # flask -kiwisolver==1.4.7 +kiwisolver==1.4.8 # via matplotlib -lxml==5.3.0 +lxml==5.3.1 # via -r requirements.in markupsafe==3.0.2 # via # -r requirements.in # jinja2 # werkzeug -matplotlib==3.9.2 +matplotlib==3.10.0 # via -r requirements.in -numpy==2.1.3 +numpy==2.2.3 # via # contourpy # matplotlib -packaging==24.1 +packaging==24.2 # via # gunicorn # matplotlib -pillow==11.0.0 +pillow==11.1.0 # via matplotlib -psycopg==3.2.3 +psycopg==3.2.4 # via -r requirements.in -pyparsing==3.2.0 +pyparsing==3.2.1 # via matplotlib python-dateutil==2.9.0.post0 # via # -r requirements.in # matplotlib -pytz==2024.2 +pytz==2025.1 # via -r requirements.in requests==2.32.3 # via -r requirements.in -six==1.16.0 +six==1.17.0 # via python-dateutil -sqlparse==0.5.1 +sqlparse==0.5.3 # via django -tqdm==4.67.0 +tqdm==4.67.1 # via -r requirements.in typing-extensions==4.12.2 # via psycopg -urllib3==2.2.3 +urllib3==2.3.0 # via requests -werkzeug==3.1.2 +werkzeug==3.1.3 # via # -r requirements.in # flask -whitenoise==6.8.2 +whitenoise==6.9.0 # via -r requirements.in xmlschema==3.4.3 # via -r requirements.in diff --git a/requirements_dev.txt b/requirements_dev.txt index cfbca5172..79f5b3368 100644 --- a/requirements_dev.txt +++ b/requirements_dev.txt @@ -8,30 +8,30 @@ asgiref==3.8.1 # via # -r requirements.txt # django -black==24.10.0 +black==25.1.0 # via -r requirements_dev.in -blinker==1.8.2 +blinker==1.9.0 # via # -r requirements.txt # flask -certifi==2024.8.30 +certifi==2025.1.31 # via # -r requirements.txt # requests -charset-normalizer==3.4.0 +charset-normalizer==3.4.1 # via # -r requirements.txt # requests -click==8.1.7 +click==8.1.8 # via # -r requirements.txt # black # flask -contourpy==1.3.0 +contourpy==1.3.1 # via # -r requirements.txt # matplotlib -coverage[toml]==7.6.4 +coverage[toml]==7.6.12 # via # coveralls # pytest-cov @@ -41,27 +41,27 @@ cycler==0.12.1 # via # -r requirements.txt # matplotlib -django==5.1.5 +django==5.1.6 # via -r requirements.txt -django-environ==0.11.2 +django-environ==0.12.0 # via -r requirements.txt docopt==0.6.2 # via coveralls -elementpath==4.6.0 +elementpath==4.7.0 # via # -r requirements.txt # xmlschema -flake8==7.1.1 +flake8==7.1.2 # via # -r requirements_dev.in # flake8-pyproject flake8-pyproject==1.2.3 # via -r requirements_dev.in -flask==3.0.3 +flask==3.1.0 # via # -r requirements.txt # frozen-flask -fonttools==4.54.1 +fonttools==4.56.0 # via # -r requirements.txt # matplotlib @@ -75,7 +75,7 @@ idna==3.10 # requests iniconfig==2.0.0 # via pytest -isort==5.13.2 +isort==6.0.0 # via -r requirements_dev.in itsdangerous==2.2.0 # via @@ -85,29 +85,29 @@ jinja2==3.1.5 # via # -r requirements.txt # flask -kiwisolver==1.4.7 +kiwisolver==1.4.8 # via # -r requirements.txt # matplotlib -lxml==5.3.0 +lxml==5.3.1 # via -r requirements.txt markupsafe==3.0.2 # via # -r requirements.txt # jinja2 # werkzeug -matplotlib==3.9.2 +matplotlib==3.10.0 # via -r requirements.txt mccabe==0.7.0 # via flake8 mypy-extensions==1.0.0 # via black -numpy==2.1.3 +numpy==2.2.3 # via # -r requirements.txt # contourpy # matplotlib -packaging==24.1 +packaging==24.2 # via # -r requirements.txt # black @@ -116,7 +116,7 @@ packaging==24.1 # pytest pathspec==0.12.1 # via black -pillow==11.0.0 +pillow==11.1.0 # via # -r requirements.txt # matplotlib @@ -124,17 +124,17 @@ platformdirs==4.3.6 # via black pluggy==1.5.0 # via pytest -psycopg==3.2.3 +psycopg==3.2.4 # via -r requirements.txt pycodestyle==2.12.1 # via flake8 pyflakes==3.2.0 # via flake8 -pyparsing==3.2.0 +pyparsing==3.2.1 # via # -r requirements.txt # matplotlib -pytest==8.3.3 +pytest==8.3.4 # via # -r requirements_dev.in # pytest-cov @@ -144,35 +144,35 @@ python-dateutil==2.9.0.post0 # via # -r requirements.txt # matplotlib -pytz==2024.2 +pytz==2025.1 # via -r requirements.txt requests==2.32.3 # via # -r requirements.txt # coveralls -six==1.16.0 +six==1.17.0 # via # -r requirements.txt # python-dateutil -sqlparse==0.5.1 +sqlparse==0.5.3 # via # -r requirements.txt # django -tqdm==4.67.0 +tqdm==4.67.1 # via -r requirements.txt typing-extensions==4.12.2 # via # -r requirements.txt # psycopg -urllib3==2.2.3 +urllib3==2.3.0 # via # -r requirements.txt # requests -werkzeug==3.1.2 +werkzeug==3.1.3 # via # -r requirements.txt # flask -whitenoise==6.8.2 +whitenoise==6.9.0 # via -r requirements.txt xmlschema==3.4.3 # via -r requirements.txt From 1c6d270df36431ce3387d43884c4c11372e3bd4d Mon Sep 17 00:00:00 2001 From: Bee Webb Date: Wed, 19 Feb 2025 12:07:55 +0000 Subject: [PATCH 2/2] lint: Run latest black, which changes docstring formatting --- iati_dashboard/make_csv.py | 3 +-- iati_dashboard/make_plots.py | 3 +-- iati_dashboard/tests/test_timeliness.py | 3 +-- iati_dashboard/text.py | 3 +-- iati_dashboard/ui/jinja2.py | 3 +-- 5 files changed, 5 insertions(+), 10 deletions(-) diff --git a/iati_dashboard/make_csv.py b/iati_dashboard/make_csv.py index eaa4cb2ce..31735ebc5 100644 --- a/iati_dashboard/make_csv.py +++ b/iati_dashboard/make_csv.py @@ -1,5 +1,4 @@ -"""Generates CSV files from data in the 'stats-calculated' folder and using additional logic -""" +"""Generates CSV files from data in the 'stats-calculated' folder and using additional logic""" import csv import logging diff --git a/iati_dashboard/make_plots.py b/iati_dashboard/make_plots.py index a4a9b89e0..2a227c272 100644 --- a/iati_dashboard/make_plots.py +++ b/iati_dashboard/make_plots.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -""" Generates static images of stats graphs using matplotlib. -""" +"""Generates static images of stats graphs using matplotlib.""" import argparse import csv diff --git a/iati_dashboard/tests/test_timeliness.py b/iati_dashboard/tests/test_timeliness.py index a0faf7589..dfcc40538 100644 --- a/iati_dashboard/tests/test_timeliness.py +++ b/iati_dashboard/tests/test_timeliness.py @@ -1,5 +1,4 @@ -"""Testing of functions in timeliness.py -""" +"""Testing of functions in timeliness.py""" from iati_dashboard import timeliness # noqa: E402 diff --git a/iati_dashboard/text.py b/iati_dashboard/text.py index 1a3abb01d..0c49c6760 100644 --- a/iati_dashboard/text.py +++ b/iati_dashboard/text.py @@ -1,5 +1,4 @@ -"""Text fragments for page titles, navigation and page leaders/sub-leaders -""" +"""Text fragments for page titles, navigation and page leaders/sub-leaders""" import copy diff --git a/iati_dashboard/ui/jinja2.py b/iati_dashboard/ui/jinja2.py index cd9b0dd4c..ebaf88570 100644 --- a/iati_dashboard/ui/jinja2.py +++ b/iati_dashboard/ui/jinja2.py @@ -1,5 +1,4 @@ -"""Jinja2 template configuration -""" +"""Jinja2 template configuration""" import re