From c16e6f476df8fe2dafac93351c8e57629deb175b Mon Sep 17 00:00:00 2001 From: bswck Date: Mon, 1 Apr 2024 14:27:57 +0200 Subject: [PATCH] Make docs deps observable by dependabot locally --- extensions/scsgha.py | 22 +++++++++++++++++++++- project/pyproject.toml.jinja | 21 ++------------------- pyproject.toml | 21 +++++++++++++++++++-- 3 files changed, 42 insertions(+), 22 deletions(-) diff --git a/extensions/scsgha.py b/extensions/scsgha.py index b19c1d5..104a63e 100644 --- a/extensions/scsgha.py +++ b/extensions/scsgha.py @@ -1,5 +1,6 @@ from __future__ import annotations +from itertools import chain import re from subprocess import check_output from typing import Any @@ -50,9 +51,28 @@ def use_actions(ctx: Context, action_string: str) -> str: @pass_context def use_dev_dependencies(ctx: Context, deps_string: str) -> str: + metadata_chunk = tomli.loads(deps_string) + declared_dev_dependencies = metadata_chunk.get("dev-dependencies") or {} + if not declared_dev_dependencies: + try: + dependency_groups = metadata_chunk["tool"]["poetry"]["group"] + except KeyError: + pass + else: + declared_dev_dependencies.update( + { # fmt: off + dep: version + for dep, version in chain.from_iterable( + map( + lambda group: (group.get("dependencies") or {}).items(), + dependency_groups.values(), + ) + ) + } + ) # fmt: on dev_dependencies = ctx.vars["dev_dependencies"] = { **(ctx.vars.get("dev_dependencies") or {}), - **tomli.loads(deps_string), + **declared_dev_dependencies, } ctx.exported_vars.add("dev_dependencies") return str(dev_dependencies) diff --git a/project/pyproject.toml.jinja b/project/pyproject.toml.jinja index d6df112..e75061b 100644 --- a/project/pyproject.toml.jinja +++ b/project/pyproject.toml.jinja @@ -30,28 +30,11 @@ python = ">={{python}},<{{python_until}}" [tool.poetry.group.dev.dependencies] -[tool.poetry.group.dev-skeleton.dependencies] -#%- with included=True %# +#%- if False %# (Dependencies managed by skeleton) #% endif %# +#% with included=True %# #%- include "pyproject.toml" %# #%- endwith %# -#%- if tests %# - -[tool.pytest.ini_options] -addopts = "--doctest-modules" -#%- endif %# - -#%- if docs %# - -[tool.poetry.group.docs] -optional = true - -[tool.poetry.group.docs.dependencies] -markdown-exec = ">=1.3.0" -mkdocs-material = ">=8.2,<10.0.0" -mkdocstrings = { version = ">=0.19.0", extras = ["python"] } -#%- endif %# - [tool.poe.tasks] #%- if tests %# test = "pytest -v" diff --git a/pyproject.toml b/pyproject.toml index e7c5739..5ade5bc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,10 +13,9 @@ poethepoet = "^0.25.0" copier = "^9.1.1" copier-template-tester = "^2.1.1" copier-templates-extensions = "^0.3.0" -pre-commit = "<3.6.0" -[tool.poetry.group.dev-skeleton.dependencies] #%- endif %# +[tool.poetry.group.dev-skeleton.dependencies] # {{_origin|skeleton_notice(snref=snref, srev=srev, scope="dependency group")|indent("# ")}} mypy = "^1.9.0" ruff = "^0.3.4" @@ -36,6 +35,24 @@ smokeshow = "^0.4.0" #%- endif %# keyring = "^25.0.0" +#%- if tests %# + +[tool.pytest.ini_options] +addopts = "--doctest-modules" +#%- endif %# + +#%- if docs %# + +[tool.poetry.group.docs] +optional = true + +[tool.poetry.group.docs.dependencies] +markdown-exec = ">=1.3.0" +mkdocs-material = ">=8.2,<10.0.0" +mkdocstrings = { version = ">=0.19.0", extras = ["python"] } + +#%- endif %# + #%- if not included %# [build-system] requires = ["poetry-core"]