From dd278cb316d75868716a0478c35b1fcd600a5249 Mon Sep 17 00:00:00 2001 From: Tsvika Shapira Date: Thu, 20 Mar 2025 17:01:31 +0200 Subject: [PATCH] update github-action to look for black version in "dependency-groups" (#4606) "dependency-groups" is the mechanism for storing package requirements in `pyproject.toml`, recommended for formatting tools (see https://packaging.python.org/en/latest/specifications/dependency-groups/ ) this change allow the black action to look also in those locations when determining the version of black to install --- CHANGES.md | 2 ++ action/main.py | 1 + docs/integrations/github_actions.md | 8 ++++---- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 148f8bc..05c0011 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -51,6 +51,8 @@ - Fix the version check in the vim file to reject Python 3.8 (#4567) +- Enhance GitHub Action `psf/black` to read Black version from an additional + section in pyproject.toml: `[project.dependency-groups]` (#4606) ### Documentation diff --git a/action/main.py b/action/main.py index 2b347e1..f7fdda7 100644 --- a/action/main.py +++ b/action/main.py @@ -71,6 +71,7 @@ def read_version_specifier_from_pyproject() -> str: return f"=={version}" arrays = [ + *pyproject.get("dependency-groups", {}).values(), pyproject.get("project", {}).get("dependencies"), *pyproject.get("project", {}).get("optional-dependencies", {}).values(), ] diff --git a/docs/integrations/github_actions.md b/docs/integrations/github_actions.md index 6168979..3270e0f 100644 --- a/docs/integrations/github_actions.md +++ b/docs/integrations/github_actions.md @@ -37,10 +37,10 @@ the `pyproject.toml` file. `version` can be any [valid version specifier](https://packaging.python.org/en/latest/glossary/#term-Version-Specifier) or just the version number if you want an exact version. To read the version from the `pyproject.toml` file instead, set `use_pyproject` to `true`. This will first look into -the `tool.black.required-version` field, then the `project.dependencies` array and -finally the `project.optional-dependencies` table. The action defaults to the latest -release available on PyPI. Only versions available from PyPI are supported, so no commit -SHAs or branch names. +the `tool.black.required-version` field, then the `dependency-groups` table, then the +`project.dependencies` array and finally the `project.optional-dependencies` table. +The action defaults to the latest release available on PyPI. Only versions available +from PyPI are supported, so no commit SHAs or branch names. If you want to include Jupyter Notebooks, _Black_ must be installed with the `jupyter` extra. Installing the extra and including Jupyter Notebook files can be configured via