From f4834225176d3ffac23fed4f07eea4fa39a971da Mon Sep 17 00:00:00 2001 From: Kyle Oliver Date: Mon, 17 Nov 2025 01:00:48 -0500 Subject: [PATCH] feat: add python_versions as a cookiecutter derived value and corresponding classifiers --- hooks/post_gen_project.py | 1 + hooks/pre_gen_project.py | 13 +++++++++++++ {{cookiecutter.project_name}}/pyproject.toml | 7 ++++++- 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 hooks/pre_gen_project.py diff --git a/hooks/post_gen_project.py b/hooks/post_gen_project.py index b94b9c2..7c7d02a 100644 --- a/hooks/post_gen_project.py +++ b/hooks/post_gen_project.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +"""Cookiecutter hook that runs after template generation.""" import json import shutil import stat diff --git a/hooks/pre_gen_project.py b/hooks/pre_gen_project.py new file mode 100644 index 0000000..b4f183a --- /dev/null +++ b/hooks/pre_gen_project.py @@ -0,0 +1,13 @@ +"""Cookiecutter hook that runs before template generation.""" + + +ESCAPED_JINJA_SETUP: str = """ +{%- set min_minor = cookiecutter.min_python_version.split('.')[1] | int %} +{%- set max_minor = cookiecutter.max_python_version.split('.')[1] | int %} + +{{ cookiecutter.update({ + "_min_python_version_minor_int": min_minor, + "_max_python_version_minor_int": max_minor, + "python_versions": ["3." + (i|string) for i in range(min_minor, max_minor + 1)] +}) }} +""" diff --git a/{{cookiecutter.project_name}}/pyproject.toml b/{{cookiecutter.project_name}}/pyproject.toml index 07bb122..3ae83a1 100644 --- a/{{cookiecutter.project_name}}/pyproject.toml +++ b/{{cookiecutter.project_name}}/pyproject.toml @@ -13,8 +13,13 @@ keywords = [ "{{cookiecutter.project_name.replace('_', '-')}}", ] classifiers = [ - "Programming Language :: Python :: {{cookiecutter.min_python_version}}", + "Operating System :: OS Independent", + "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", +{%- for version in cookiecutter.python_versions %} + "Programming Language :: Python :: {{ version }}", +{%- endfor %} + "{{ cookiecutter.development_status }}" ] dependencies = [ "loguru>=0.7.3",