diff --git a/sysutils/py-rendercv/Makefile b/sysutils/py-rendercv/Makefile index ffa481272d3a..66a5c481bd0f 100644 --- a/sysutils/py-rendercv/Makefile +++ b/sysutils/py-rendercv/Makefile @@ -1,44 +1,43 @@ PORTNAME= rendercv -DISTVERSION= 2.6 -PORTREVISION= 1 +DISTVERSION= 2.7 CATEGORIES= sysutils python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= dtxdf@FreeBSD.org COMMENT= Typst-based CV/resume generator WWW= https://github.com/rendercv/rendercv \ https://pypi.org/project/rendercv LICENSE= MIT BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}uv-build>=0:devel/py-uv-build@${PY_FLAVOR} RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Jinja2>=0:devel/py-Jinja2@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}phonenumbers>=0:devel/py-phonenumbers@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pydantic2>=0:devel/py-pydantic2@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pydantic-extra-types>=0:devel/py-pydantic-extra-types@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}email-validator>=0:mail/py-email-validator@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}ruamel.yaml>=0:devel/py-ruamel.yaml@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}packaging>=0:devel/py-packaging@${PY_FLAVOR} USES= python USE_PYTHON= autoplist pep517 NO_ARCH= yes OPTIONS_DEFINE= CLI MARKDOWN WATCHDOG TYPST FONT OPTIONS_DEFAULT= CLI MARKDOWN WATCHDOG TYPST FONT CLI_DESC= Enable Command-line interface support MARKDOWN_DESC= Convert Markdown to HTML WATCHDOG_DESC= Monitor files for updates TYPST_DESC= Render PDF from Typst source files FONT_DESC= Font files for RenderCV CLI_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}typer>=0:devel/py-typer@${PY_FLAVOR} MARKDOWN_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}markdown>=0:textproc/py-markdown@${PY_FLAVOR} WATCHDOG_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}watchdog>=0:devel/py-watchdog@${PY_FLAVOR} TYPST_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}typst>=0:textproc/py-typst@${PY_FLAVOR} FONT_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}rendercv-fonts>=0:x11-fonts/py-rendercv-fonts@${PY_FLAVOR} .include diff --git a/sysutils/py-rendercv/distinfo b/sysutils/py-rendercv/distinfo index 28608144575c..f7053cec2704 100644 --- a/sysutils/py-rendercv/distinfo +++ b/sysutils/py-rendercv/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1767394584 -SHA256 (rendercv-2.6.tar.gz) = 77e800de17933f451b0c31dc6ade8c61667a7ad7c8e05b8ef8a59321794a1f98 -SIZE (rendercv-2.6.tar.gz) = 77394 +TIMESTAMP = 1773186528 +SHA256 (rendercv-2.7.tar.gz) = 024014872e1d6b0102ee4f1b03383f9dc8e8c8af33d2dc2e4921aed95cc72702 +SIZE (rendercv-2.7.tar.gz) = 84817 diff --git a/sysutils/py-rendercv/files/patch-pyproject.toml b/sysutils/py-rendercv/files/patch-pyproject.toml index 527398dcae1e..c48e5a242072 100644 --- a/sysutils/py-rendercv/files/patch-pyproject.toml +++ b/sysutils/py-rendercv/files/patch-pyproject.toml @@ -1,11 +1,11 @@ ---- pyproject.toml.orig 2026-02-08 23:53:08 UTC +--- pyproject.toml.orig 2026-03-10 23:56:21 UTC +++ pyproject.toml @@ -19,7 +19,7 @@ # To build RenderCV, we need to specify which build package to use. There are # many build backends like `setuptools`, `flit`, `poetry`, `hatchling`, etc. We will use # `uv_build`. --requires = ["uv_build>=0.9.5,<0.10.0"] # Packages needed to build RenderCV -+requires = ["uv_build>=0.10.0,<0.11.0"] # Packages needed to build RenderCV - +-requires = ["uv_build>=0.10.3,<0.11.0"] # Packages needed to build RenderCV ++requires = ["uv_build"] # Packages needed to build RenderCV # Python has a standard object format called a build-backend object. This object must # implement specific methods that perform defined tasks. For example, it should have a + # method called `build_wheel` that builds a wheel file. diff --git a/sysutils/py-rendercv/files/patch-src_rendercv_exception.py b/sysutils/py-rendercv/files/patch-src_rendercv_exception.py new file mode 100644 index 000000000000..345898fbb86a --- /dev/null +++ b/sysutils/py-rendercv/files/patch-src_rendercv_exception.py @@ -0,0 +1,20 @@ +--- src/rendercv/exception.py.orig 2026-03-11 17:14:40 UTC ++++ src/rendercv/exception.py +@@ -1,14 +1,14 @@ from typing import Literal + from dataclasses import dataclass, field + from typing import Literal + +-type YamlSource = Literal[ ++YamlSource = Literal[ + "main_yaml_file", + "design_yaml_file", + "locale_yaml_file", + "settings_yaml_file", + ] +-type OverlaySourceKey = Literal["design", "locale", "settings"] +-type YamlLocation = tuple[tuple[int, int], tuple[int, int]] ++OverlaySourceKey = Literal["design", "locale", "settings"] ++YamlLocation = tuple[tuple[int, int], tuple[int, int]] + + OVERLAY_SOURCE_TO_YAML_SOURCE: dict[OverlaySourceKey, YamlSource] = { + "design": "design_yaml_file", diff --git a/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_cv_social__network.py b/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_cv_social__network.py index a6806d71525e..e1eaa0cd055d 100644 --- a/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_cv_social__network.py +++ b/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_cv_social__network.py @@ -1,20 +1,20 @@ ---- src/rendercv/schema/models/cv/social_network.py.orig 1970-01-01 00:00:00 UTC +--- src/rendercv/schema/models/cv/social_network.py.orig 2026-03-11 16:50:40 UTC +++ src/rendercv/schema/models/cv/social_network.py -@@ -10,7 +10,7 @@ url_validator = pydantic.TypeAdapter(pydantic.HttpUrl) +@@ -10,7 +10,7 @@ url_validator = pydantic.TypeAdapter[pydantic.HttpUrl] from ..base import BaseModelWithoutExtraKeys - url_validator = pydantic.TypeAdapter(pydantic.HttpUrl) + url_validator = pydantic.TypeAdapter[pydantic.HttpUrl](pydantic.HttpUrl) -type SocialNetworkName = Literal[ +SocialNetworkName = Literal[ "LinkedIn", "GitHub", "GitLab", -@@ -28,7 +28,7 @@ type SocialNetworkName = Literal[ - "X", +@@ -29,7 +29,7 @@ type SocialNetworkName = Literal[ "Bluesky", + "Reddit", ] -available_social_networks = get_args(SocialNetworkName.__value__) +#available_social_networks = get_args(SocialNetworkName.__value__) url_dictionary: dict[SocialNetworkName, str] = { "LinkedIn": "https://linkedin.com/in/", "GitHub": "https://github.com/", diff --git a/sysutils/py-rendercv/files/patch-src_rendercv_schema_variant__pydantic__model__generator.py b/sysutils/py-rendercv/files/patch-src_rendercv_schema_variant__pydantic__model__generator.py index 8760ecb47deb..33f5e2b0f086 100644 --- a/sysutils/py-rendercv/files/patch-src_rendercv_schema_variant__pydantic__model__generator.py +++ b/sysutils/py-rendercv/files/patch-src_rendercv_schema_variant__pydantic__model__generator.py @@ -1,38 +1,45 @@ ---- src/rendercv/schema/variant_pydantic_model_generator.py.orig 2025-12-19 21:48:58 UTC +--- src/rendercv/schema/variant_pydantic_model_generator.py.orig 2026-03-11 16:54:44 UTC +++ src/rendercv/schema/variant_pydantic_model_generator.py -@@ -6,17 +6,17 @@ from rendercv.exception import RenderCVInternalError +@@ -6,7 +6,7 @@ from rendercv.exception import RenderCVInternalError from rendercv.exception import RenderCVInternalError -type FieldSpec = tuple[type[Any], FieldInfo] +FieldSpec = tuple[type[Any], FieldInfo] + def sanitize_defaults(value: Any) -> Any: +@@ -29,16 +29,16 @@ def sanitize_defaults(value: Any) -> Any: + return value + + -def create_variant_pydantic_model[T: pydantic.BaseModel]( +def create_variant_pydantic_model( + *, variant_name: str, defaults: dict[str, Any], - base_class: type[T], + base_class, discriminator_field: str, class_name_suffix: str, module_name: str, + require_all_fields: bool = False, -) -> type[T]: +): """Create Pydantic model variant with customized defaults. Why: -@@ -190,10 +190,10 @@ def create_discriminator_field_spec( +@@ -261,10 +261,10 @@ def create_discriminator_field_spec( return (cast(type[Any], field_annotation), new_field) -def deep_merge_nested_object[T: pydantic.BaseModel]( - base_nested_obj: T, +def deep_merge_nested_object( + base_nested_obj, updates: dict[str, Any], -) -> T: +): """Recursively merge nested dictionary updates into Pydantic model instance. Why: