diff --git a/dev-shells/default.nix b/dev-shells/default.nix index c779895..4fbc22a 100644 --- a/dev-shells/default.nix +++ b/dev-shells/default.nix @@ -36,6 +36,7 @@ mapAttrs (system: pkgs: { (python3.withPackages (ps: [ ps.nixoslogo-editable ps.fontforge + ps.types-lxml ])) ]; diff --git a/package-sets/python-packages/nixoslogo/nixoslogo/annotations.py b/package-sets/python-packages/nixoslogo/nixoslogo/annotations.py index 6052b44..751c35a 100644 --- a/package-sets/python-packages/nixoslogo/nixoslogo/annotations.py +++ b/package-sets/python-packages/nixoslogo/nixoslogo/annotations.py @@ -3,13 +3,16 @@ from collections.abc import Callable from dataclasses import dataclass from pathlib import Path +from typing import NotRequired, TypedDict, override import svg +from svg._types import Number from nixoslogo.core import ( CHARACTER_GLYPHNAME_MAP, DEFAULT_JURA_TRANSFORMS, BaseRenderable, + flatten_svg_elements, get_nixos_annotation_font_file, ) from nixoslogo.geometry import Point @@ -27,25 +30,25 @@ def __init__( cap_height: float | None = None, **kwargs, ): - self.characters = characters - self.loader = loader - self.color = color - self.scale = scale - self.cap_height = cap_height + self.characters: str = characters + self.loader: FontLoader = loader + self.color: str = color + self.scale: float | None = scale + self.cap_height: float | None = cap_height self._load_glyphs() - self.original_cap_height = self.loader.capHeight - self.original_scale = self.loader.scale + self.original_cap_height: float = self.loader.capHeight + self.original_scale: float = self.loader.scale self._set_spacings() self._scale_glyphs() super().__init__(**kwargs) - def _map_characters(self, character): + def _map_characters(self, character: str) -> str: return CHARACTER_GLYPHNAME_MAP.get(character, character) def _load_glyphs(self): - self.glyphs = tuple( + self.glyphs: tuple[Glyph, ...] = tuple( Glyph( loader=self.loader, character=self._map_characters(character), @@ -55,6 +58,7 @@ def _load_glyphs(self): ) @property + @override def elements_bounding_box(self): characters_box = tuple( f(elem) @@ -77,27 +81,31 @@ def _set_spacings(self): x_offset += glyph.glyph.width def _scale_glyphs(self): - if self.scale is None and self.cap_height is None: - return - if self.scale is not None and self.cap_height is not None: raise ValueError("Only one of scale or cap_height can be set.") if self.cap_height is not None: - self.scale = self.original_cap_height / self.cap_height + scale = self.original_cap_height / self.cap_height + elif self.scale is not None: + scale = self.scale + self.cap_height = self.original_cap_height / scale else: - self.cap_height = self.original_cap_height / self.scale + return + self.scale = scale for glyph in self.glyphs: - glyph.layer.transform((1 / self.scale, 0, 0, 1 / self.scale, 0, 0)) + glyph.layer.transform((1 / scale, 0, 0, 1 / scale, 0, 0)) + @override def _get_clearspace(self): return 0 - def make_svg_elements(self): - return tuple(elem.make_svg_element() for elem in self.glyphs) + @override + def make_svg_elements(self) -> list[svg.Element]: + return flatten_svg_elements(*(elem.make_svg_element() for elem in self.glyphs)) - def make_filename(self, extras: tuple[str] = ()): + @override + def make_filename(self, extras: tuple[str, ...] = ()): return "-".join( [ self.characters.lower(), @@ -108,12 +116,27 @@ def make_filename(self, extras: tuple[str] = ()): ) +class LineConfig(TypedDict): + name: str + stroke: str + stroke_width: int + stroke_dasharray: list[Number] + fill: NotRequired[str] + + +class FontConfig(TypedDict): + scale: float | None + cap_height: float + color: str + stroke_dasharray: list[Number] + + @dataclass class LineGroup: name: str stroke: str stroke_width: int - stroke_dasharray: int + stroke_dasharray: list[Number] fill: str = "transparent" @@ -131,25 +154,25 @@ class DimensionLines(LineGroup): def __init__( self, font_loader: FontLoader, - font_config: dict, + font_config: FontConfig, **kwargs, ): super().__init__(**kwargs) - self.font_loader = font_loader - self.font_config = font_config + self.font_loader: FontLoader = font_loader + self.font_config: FontConfig = font_config def make_dimension_line( self, - point1, - point2, - flip=False, - side="left", - offset=1, - reference=1, - text=None, - text_offset=False, - fractional=True, - precision=3, + point1: Point, + point2: Point, + flip: bool = False, + side: str = "left", + offset: float = 1, + reference: float = 1, + text: str | None = None, + text_offset: bool = False, + fractional: bool = True, + precision: int = 3, ): if flip: point1, point2 = point2, point1 @@ -172,12 +195,16 @@ def make_dimension_line( else: if text is None: if fractional: - text = fractions.Fraction(round(measured_line.length()), reference) + label = fractions.Fraction( + round(measured_line.length()), round(reference) + ) else: - text = round(measured_line.length() / reference, precision) + label = round(measured_line.length() / reference, precision) + else: + label = text text_annotation = TextAnnotations( - characters=str(text), + characters=str(label), loader=self.font_loader, **self.font_config, ) @@ -261,16 +288,16 @@ def make_dimension_line( def make_dimension_line_outer( self, - point1, - point2, - flip=False, - side="left", - offset=1, - reference=1, - text=None, - text_offset=False, - fractional=True, - precision=3, + point1: Point, + point2: Point, + flip: bool = False, + side: str = "left", + offset: float = 1, + reference: float = 1, + text: str | None = None, + text_offset: bool = False, + fractional: bool = True, + precision: int = 3, ): if flip: point1, point2 = point2, point1 @@ -297,12 +324,16 @@ def make_dimension_line_outer( else: if text is None: if fractional: - text = fractions.Fraction(round(measured_line.length()), reference) + label = fractions.Fraction( + round(measured_line.length()), round(reference) + ) else: - text = round(measured_line.length() / reference, precision) + label = round(measured_line.length() / reference, precision) + else: + label = text text_annotation = TextAnnotations( - characters=str(text), + characters=str(label), loader=self.font_loader, **self.font_config, ) @@ -386,14 +417,13 @@ def make_dimension_line_outer( def make_dimension_angle( self, - point1, - point2, - reference, - flip, - large, - side, - ratio, - text=None, + point1: Point, + point2: Point, + reference: Point, + flip: bool, + large: bool, + ratio: float, + text: str | None = None, ): if flip: point1, point2 = point2, point1 @@ -492,28 +522,30 @@ def make_dimension_arrow_defs(self): class Annotations: def __init__( self, - object_lines_config: dict, - construction_lines_config: dict, - dimension_lines_config: dict, - font_config: dict, + object_lines_config: LineConfig, + construction_lines_config: LineConfig, + dimension_lines_config: LineConfig, + font_config: FontConfig, get_font_file: Callable[[], Path] = get_nixos_annotation_font_file, - transforms_map: dict = DEFAULT_JURA_TRANSFORMS, + transforms_map: dict[str, dict[str, int]] = DEFAULT_JURA_TRANSFORMS, ): - self.font_loader = FontLoader( + self.font_loader: FontLoader = FontLoader( get_font_file=get_font_file, transforms_map=transforms_map, offset_glyph=False, ) - self.font_config = font_config - self.object_lines = ObjectLines(**object_lines_config) - self.construction_lines = ConstructionLines(**construction_lines_config) - self.dimension_lines = DimensionLines( + self.font_config: FontConfig = font_config + self.object_lines: ObjectLines = ObjectLines(**object_lines_config) + self.construction_lines: ConstructionLines = ConstructionLines( + **construction_lines_config + ) + self.dimension_lines: DimensionLines = DimensionLines( **dimension_lines_config, font_loader=self.font_loader, font_config=self.font_config, ) - def make_annotation(self, text): + def make_annotation(self, text: str) -> TextAnnotations: return TextAnnotations( characters=str(text), loader=self.font_loader, @@ -527,25 +559,25 @@ def small(cls) -> "Annotations": "name": "object", "stroke": "green", "stroke_width": 4, - "stroke_dasharray": 4, + "stroke_dasharray": [4], }, construction_lines_config={ "name": "construction", "stroke": "blue", "stroke_width": 2, - "stroke_dasharray": 4, + "stroke_dasharray": [4], }, dimension_lines_config={ "name": "dimension", "stroke": "red", "stroke_width": 1, - "stroke_dasharray": 4, + "stroke_dasharray": [4], }, font_config={ "scale": None, "cap_height": 24, "color": "black", - "stroke_dasharray": 4, + "stroke_dasharray": [4], }, ) @@ -556,25 +588,25 @@ def medium(cls) -> "Annotations": "name": "object", "stroke": "green", "stroke_width": 8, - "stroke_dasharray": 8, + "stroke_dasharray": [8], }, construction_lines_config={ "name": "construction", "stroke": "blue", "stroke_width": 4, - "stroke_dasharray": 8, + "stroke_dasharray": [8], }, dimension_lines_config={ "name": "dimension", "stroke": "red", "stroke_width": 2, - "stroke_dasharray": 8, + "stroke_dasharray": [8], }, font_config={ "scale": None, "cap_height": 48, "color": "black", - "stroke_dasharray": 8, + "stroke_dasharray": [8], }, ) @@ -585,25 +617,25 @@ def large(cls) -> "Annotations": "name": "object", "stroke": "green", "stroke_width": 16, - "stroke_dasharray": 16, + "stroke_dasharray": [16], }, construction_lines_config={ "name": "construction", "stroke": "blue", "stroke_width": 8, - "stroke_dasharray": 16, + "stroke_dasharray": [16], }, dimension_lines_config={ "name": "dimension", "stroke": "red", "stroke_width": 4, - "stroke_dasharray": 16, + "stroke_dasharray": [16], }, font_config={ "scale": None, "cap_height": 96, "color": "black", - "stroke_dasharray": 16, + "stroke_dasharray": [16], }, ) diff --git a/package-sets/python-packages/nixoslogo/nixoslogo/artifacts/clearspace.py b/package-sets/python-packages/nixoslogo/nixoslogo/artifacts/clearspace.py index 281933c..ef11561 100644 --- a/package-sets/python-packages/nixoslogo/nixoslogo/artifacts/clearspace.py +++ b/package-sets/python-packages/nixoslogo/nixoslogo/artifacts/clearspace.py @@ -1,12 +1,13 @@ import logging +from typing import override import svg from nixoslogo.annotations import Annotations -from nixoslogo.core import BaseRenderable, ClearSpace +from nixoslogo.core import BaseRenderable, ClearSpace, flatten_svg_elements from nixoslogo.logging_config import setup_logging -from nixoslogo.logo import Lambda, NixosLogo -from nixoslogo.logomark import Logomark +from nixoslogo.logo import NixosLogo +from nixoslogo.logomark import Lambda, Logomark from nixoslogo.logotype import Glyph, Logotype logger = logging.getLogger(__name__) @@ -15,29 +16,32 @@ class LogoClearspace(BaseRenderable): def __init__( self, - logo: BaseRenderable, + logo: type[BaseRenderable], logo_name: str, space_object: BaseRenderable, annotations: Annotations, **kwargs, ): - self.logo = logo - self.logo_name = logo_name - self.space_object = space_object - self.annotations = annotations + self.logo: type[BaseRenderable] = logo + self.logo_name: str = logo_name + self.space_object: BaseRenderable = space_object + self.annotations: Annotations = annotations - self.recommended = self.logo(clear_space=ClearSpace.RECOMMENDED) - self.minimal = self.logo(clear_space=ClearSpace.MINIMAL) + self.recommended: BaseRenderable = self.logo(clear_space=ClearSpace.RECOMMENDED) + self.minimal: BaseRenderable = self.logo(clear_space=ClearSpace.MINIMAL) super().__init__(**kwargs) @property + @override def elements_bounding_box(self) -> tuple[float, float, float, float]: return self.recommended.elements_bounding_box + @override def _get_clearspace(self) -> float: return self.recommended._get_clearspace() - def make_filename(self, extras: tuple[str] = ()) -> str: + @override + def make_filename(self, extras: tuple[str, ...] = ()) -> str: return "-".join( [ "nixos", @@ -47,8 +51,9 @@ def make_filename(self, extras: tuple[str] = ()) -> str: + list(extras) ) - def make_svg_elements(self): - return ( + @override + def make_svg_elements(self) -> list[svg.Element]: + return flatten_svg_elements( self.make_greyscale_def(), self.make_grid_lines(), self.make_clearspace_lines(), @@ -59,30 +64,30 @@ def make_svg_elements(self): def make_greyscale_def(self): return ( svg.Defs( - elements=( + elements=[ svg.Filter( id="greyscale-50", - elements=( + elements=[ svg.FeColorMatrix( type="matrix", values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5 0", ), - ), + ], ), - ), + ], ), ) def make_space_object_elements(self): - transforms = [ - ( + transforms: list[list[svg.Transform]] = [ + [ svg.Rotate(90 * index), svg.Translate( -self.space_object.elements_x_min, -self.space_object.elements_y_max, ), - translation, - ) + *translation, + ] for index, translation in enumerate( ( ( @@ -120,7 +125,9 @@ def make_space_object_elements(self): for transform in transforms ) - def make_space_object_element(self, space, transform=None): + def make_space_object_element( + self, space: BaseRenderable, transform: list[svg.Transform] | None = None + ): return svg.G( elements=(space.make_svg_elements()), filter="url(#greyscale-50)", @@ -192,25 +199,25 @@ def make_clearspace_lines(self): stroke_dasharray=self.annotations.construction_lines.stroke_dasharray, ), svg.G( - transform=( + transform=[ svg.Translate( self.recommended.canvas.min_x + recommended_annotation.elements_height * 0.5, self.recommended.canvas.min_y + recommended_annotation.elements_height * 1.5, ), - ), + ], elements=recommended_annotation.make_svg_elements(), ), svg.G( - transform=( + transform=[ svg.Translate( self.minimal.canvas.min_x + minimal_annotation.elements_height * 0.5, self.minimal.canvas.min_y + minimal_annotation.elements_height * 1.5, ), - ), + ], elements=minimal_annotation.make_svg_elements(), ), ) diff --git a/package-sets/python-packages/nixoslogo/nixoslogo/artifacts/misuse.py b/package-sets/python-packages/nixoslogo/nixoslogo/artifacts/misuse.py index f370328..bd609a2 100644 --- a/package-sets/python-packages/nixoslogo/nixoslogo/artifacts/misuse.py +++ b/package-sets/python-packages/nixoslogo/nixoslogo/artifacts/misuse.py @@ -1,8 +1,9 @@ import logging +from typing import override import svg -from nixoslogo.core import ClearSpace, LogotypeStyle +from nixoslogo.core import ClearSpace, LogotypeStyle, flatten_svg_elements from nixoslogo.layout import Canvas from nixoslogo.logging_config import setup_logging from nixoslogo.logo import NixosLogo @@ -17,13 +18,14 @@ def __init__( clear_space: ClearSpace = ClearSpace.MINIMAL, **kwargs, ): - self.clear_space = clear_space + self.clear_space: ClearSpace = clear_space super().__init__( clear_space=clear_space, **kwargs, ) - def make_filename(self, extras: tuple[str] = ()): + @override + def make_filename(self, extras: tuple[str, ...] = ()): return "-".join( [ "nixos", @@ -35,6 +37,7 @@ def make_filename(self, extras: tuple[str] = ()): ) @property + @override def elements_bounding_box(self) -> tuple[float, float, float, float]: return ( -self.inradius, @@ -43,8 +46,9 @@ def elements_bounding_box(self) -> tuple[float, float, float, float]: self.circumradius, ) - def make_svg_elements(self): - return ( + @override + def make_svg_elements(self) -> list[svg.Element]: + return flatten_svg_elements( svg.G( transform=[svg.Rotate(30)], elements=super().make_svg_elements(), @@ -58,13 +62,14 @@ def __init__( clear_space: ClearSpace = ClearSpace.MINIMAL, **kwargs, ): - self.clear_space = clear_space + self.clear_space: ClearSpace = clear_space super().__init__( clear_space=clear_space, **kwargs, ) - def make_filename(self, extras: tuple[str] = ()): + @override + def make_filename(self, extras: tuple[str, ...] = ()): return "-".join( [ "nixos", @@ -75,8 +80,9 @@ def make_filename(self, extras: tuple[str] = ()): + list(extras) ) - def make_svg_elements(self): - return ( + @override + def make_svg_elements(self) -> list[svg.Element]: + return flatten_svg_elements( svg.G( transform=[svg.Scale(-1, 1)], elements=super().make_svg_elements(), @@ -90,13 +96,14 @@ def __init__( clear_space: ClearSpace = ClearSpace.MINIMAL, **kwargs, ): - self.clear_space = clear_space + self.clear_space: ClearSpace = clear_space super().__init__( clear_space=clear_space, **kwargs, ) - def make_filename(self, extras: tuple[str] = ()): + @override + def make_filename(self, extras: tuple[str, ...] = ()): return "-".join( [ "nixos", @@ -107,22 +114,22 @@ def make_filename(self, extras: tuple[str] = ()): + list(extras) ) - def _init_canvas(self): - if self.canvas is None: - min_x, min_y, max_x, max_y = self.elements_bounding_box - clear_space = self._get_clearspace() - - min_x += clear_space - min_y -= clear_space - max_x -= clear_space - max_y += clear_space - - self.canvas = Canvas( - min_x=min_x, - min_y=min_y, - width=max_x - min_x, - height=max_y - min_y, - ) + @override + def _make_canvas(self) -> Canvas: + min_x, min_y, max_x, max_y = self.elements_bounding_box + clear_space = self._get_clearspace() + + min_x += clear_space + min_y -= clear_space + max_x -= clear_space + max_y += clear_space + + return Canvas( + min_x=min_x, + min_y=min_y, + width=max_x - min_x, + height=max_y - min_y, + ) class LogoScale(NixosLogo): @@ -131,13 +138,14 @@ def __init__( clear_space: ClearSpace = ClearSpace.MINIMAL, **kwargs, ): - self.clear_space = clear_space + self.clear_space: ClearSpace = clear_space super().__init__( clear_space=clear_space, **kwargs, ) - def make_filename(self, extras: tuple[str] = ()): + @override + def make_filename(self, extras: tuple[str, ...] = ()): return "-".join( [ "nixos", @@ -148,9 +156,9 @@ def make_filename(self, extras: tuple[str] = ()): + list(extras) ) - def _init_cap_height(self): - if self.logotype_cap_height is None: - self.logotype_cap_height = self.lambda_radius + @override + def _default_cap_height(self) -> float: + return self.lambda_radius class LogoColorsWithLambdaPrime(NixosLogo): @@ -160,14 +168,15 @@ def __init__( logotype_style: LogotypeStyle = LogotypeStyle.LAMBDAPRIME, **kwargs, ): - self.clear_space = clear_space + self.clear_space: ClearSpace = clear_space super().__init__( clear_space=clear_space, logotype_style=logotype_style, **kwargs, ) - def make_filename(self, extras: tuple[str] = ()): + @override + def make_filename(self, extras: tuple[str, ...] = ()): return "-".join( [ "nixos", diff --git a/package-sets/python-packages/nixoslogo/nixoslogo/colors.py b/package-sets/python-packages/nixoslogo/nixoslogo/colors.py index 57e54fd..3b0ee6e 100644 --- a/package-sets/python-packages/nixoslogo/nixoslogo/colors.py +++ b/package-sets/python-packages/nixoslogo/nixoslogo/colors.py @@ -1,4 +1,4 @@ -from typing import Self +from typing import ClassVar, Self from coloraide import Color as ColorBase @@ -6,27 +6,20 @@ class Color(ColorBase): - GRADIENT_LIGHTNESS_DELTA = -0.04 - GRADIENT_CHROMA_DELTA = -0.01 + GRADIENT_LIGHTNESS_DELTA: ClassVar[float] = -0.04 + GRADIENT_CHROMA_DELTA: ClassVar[float] = -0.01 - def darken(self, scale) -> Self: + def darken(self, scale: float) -> Self: """Clones and darkens the color. Only used for Lch-like colorspaces.""" + + def darker_lightness(lightness: float) -> float: + return max(0, lightness + scale * self.GRADIENT_LIGHTNESS_DELTA) + + def darker_chroma(chroma: float) -> float: + return max(0, chroma + scale * self.GRADIENT_CHROMA_DELTA) + return ( - self.clone() - .set( - "lightness", - lambda lightness: max( - 0, - lightness + scale * self.GRADIENT_LIGHTNESS_DELTA, - ), - ) - .set( - "chroma", - lambda chroma: max( - 0, - chroma + scale * self.GRADIENT_CHROMA_DELTA, - ), - ) + self.clone().set("lightness", darker_lightness).set("chroma", darker_chroma) ) def gradient_color_name(self) -> str: diff --git a/package-sets/python-packages/nixoslogo/nixoslogo/core.py b/package-sets/python-packages/nixoslogo/nixoslogo/core.py index 67ff415..b34cc21 100644 --- a/package-sets/python-packages/nixoslogo/nixoslogo/core.py +++ b/package-sets/python-packages/nixoslogo/nixoslogo/core.py @@ -1,9 +1,11 @@ import os import string from abc import ABC, abstractmethod +from collections.abc import Sequence from enum import Enum, auto from functools import partial from pathlib import Path +from typing import NotRequired, TypeAlias, TypedDict, cast import svg import tomllib @@ -12,21 +14,43 @@ from nixoslogo.colors import Color from nixoslogo.layout import Canvas +# === Types === + + +class PaletteColor(TypedDict): + name: str + value: list[float] + tints: NotRequired[dict[str, list[float]]] + + +SvgElements: TypeAlias = "svg.Element | Sequence[SvgElements]" + + # === Functions === -def get_path_from_envvar(envvar) -> Path: +def flatten_svg_elements(*elements: SvgElements) -> list[svg.Element]: + flat: list[svg.Element] = [] + for element in elements: + if isinstance(element, Sequence): + flat.extend(flatten_svg_elements(*element)) + else: + flat.append(element) + return flat + + +def get_path_from_envvar(envvar: str) -> Path: path = os.getenv(envvar) if not path: - raise EnvironmentError( + raise OSError( f"{envvar} is not set. " - "Please provide a font path explicitly or set the environment variable." + + "Please provide a font path explicitly or set the environment variable." ) return Path(path) -def get_color_by_name(palette, name): - return list(filter(lambda color: color["name"] == name, palette))[0] +def get_color_by_name(palette: list[PaletteColor], name: str) -> PaletteColor: + return next(color for color in palette if color["name"] == name) get_nixos_logotype_font_file = partial( @@ -87,12 +111,22 @@ def get_color_by_name(palette, name): with open(get_nixos_color_palette_file(), "rb") as f: NIXOS_COLOR_PALETTE = tomllib.load(f) -PALETTE_DEFAULT_COLORS = NIXOS_COLOR_PALETTE["logos"]["default"] -PALETTE_RAINBOW_COLORS = NIXOS_COLOR_PALETTE["logos"]["rainbow"] -PALETTE_TRANS_COLORS = NIXOS_COLOR_PALETTE["logos"]["trans"] -PALETTE_PRIMARY_COLORS = NIXOS_COLOR_PALETTE["palette"]["primary"] -PALETTE_SECONDARY_COLORS = NIXOS_COLOR_PALETTE["palette"]["secondary"] -PALETTE_ACCENT_COLORS = NIXOS_COLOR_PALETTE["palette"]["accent"] +PALETTE_DEFAULT_COLORS = cast( + list[PaletteColor], NIXOS_COLOR_PALETTE["logos"]["default"] +) +PALETTE_RAINBOW_COLORS = cast( + list[PaletteColor], NIXOS_COLOR_PALETTE["logos"]["rainbow"] +) +PALETTE_TRANS_COLORS = cast(list[PaletteColor], NIXOS_COLOR_PALETTE["logos"]["trans"]) +PALETTE_PRIMARY_COLORS = cast( + list[PaletteColor], NIXOS_COLOR_PALETTE["palette"]["primary"] +) +PALETTE_SECONDARY_COLORS = cast( + list[PaletteColor], NIXOS_COLOR_PALETTE["palette"]["secondary"] +) +PALETTE_ACCENT_COLORS = cast( + list[PaletteColor], NIXOS_COLOR_PALETTE["palette"]["accent"] +) NIXOS_DARK_BLUE = Color( "oklch", @@ -103,17 +137,9 @@ def get_color_by_name(palette, name): get_color_by_name(PALETTE_DEFAULT_COLORS, "NixOS Light Blue")["value"], ) RAINBOW_COLORS = tuple( - map( - lambda color: Color("oklch", color["value"]), - PALETTE_RAINBOW_COLORS, - ) -) -TRANS_COLORS = tuple( - map( - lambda color: Color("oklch", color["value"]), - PALETTE_TRANS_COLORS, - ) + Color("oklch", color["value"]) for color in PALETTE_RAINBOW_COLORS ) +TRANS_COLORS = tuple(Color("oklch", color["value"]) for color in PALETTE_TRANS_COLORS) NIXOS_BLACK = Color( "oklch", @@ -166,11 +192,10 @@ def __init__( self, canvas: Canvas | None = None, background_color: str | None = None, - **kwargs, + **kwargs: object, ): - self.canvas = canvas - self.background_color = background_color - self._init_canvas() + self.background_color: str | None = background_color + self.canvas: Canvas = canvas if canvas is not None else self._make_canvas() @property @abstractmethod @@ -180,27 +205,26 @@ def elements_bounding_box(self) -> tuple[float, float, float, float]: ... def _get_clearspace(self) -> float: ... @abstractmethod - def make_svg_elements(self): ... + def make_svg_elements(self) -> list[svg.Element]: ... @abstractmethod - def make_filename(self, extras: tuple[str]) -> str: ... - - def _init_canvas(self): - if self.canvas is None: - min_x, min_y, max_x, max_y = self.elements_bounding_box - clear_space = self._get_clearspace() - - min_x -= clear_space - min_y -= clear_space - max_x += clear_space - max_y += clear_space - - self.canvas = Canvas( - min_x=min_x, - min_y=min_y, - width=max_x - min_x, - height=max_y - min_y, - ) + def make_filename(self, extras: tuple[str, ...] = ()) -> str: ... + + def _make_canvas(self) -> Canvas: + min_x, min_y, max_x, max_y = self.elements_bounding_box + clear_space = self._get_clearspace() + + min_x -= clear_space + min_y -= clear_space + max_x += clear_space + max_y += clear_space + + return Canvas( + min_x=min_x, + min_y=min_y, + width=max_x - min_x, + height=max_y - min_y, + ) @property def canvas_bounding_box(self): @@ -211,11 +235,13 @@ def canvas_bounding_box(self): self.canvas.min_y + self.canvas.height, ) - def make_svg_background(self): + def make_svg_background(self) -> list[svg.Element]: return ( - () + [] if self.background_color is None - else self.canvas.make_svg_background(fill=self.background_color) + else flatten_svg_elements( + self.canvas.make_svg_background(fill=self.background_color) + ) ) def make_svg(self): @@ -224,7 +250,7 @@ def make_svg(self): elements=self.make_svg_background() + self.make_svg_elements(), ) - def write_svg(self, filename=None): + def write_svg(self, filename: str | None = None): if filename is None: filename = self.make_filename() filename = filename.replace("/", "_") diff --git a/package-sets/python-packages/nixoslogo/nixoslogo/dimensioned.py b/package-sets/python-packages/nixoslogo/nixoslogo/dimensioned.py index 60aaf0b..24bd088 100644 --- a/package-sets/python-packages/nixoslogo/nixoslogo/dimensioned.py +++ b/package-sets/python-packages/nixoslogo/nixoslogo/dimensioned.py @@ -1,10 +1,11 @@ import math +from collections.abc import Callable +from typing import TypedDict, override import svg -from svg._types import Number -from nixoslogo.annotations import Annotations -from nixoslogo.core import ClearSpace +from nixoslogo.annotations import Annotations, TextAnnotations +from nixoslogo.core import ClearSpace, flatten_svg_elements from nixoslogo.geometry import Point, Points from nixoslogo.layout import Canvas from nixoslogo.logo import NixosLogo @@ -12,6 +13,19 @@ from nixoslogo.logotype import Logotype +class DimensionLineOptions(TypedDict): + side: str + flip: bool + offset: float + + +class DimensionAngleOptions(TypedDict): + flip: bool + large: bool + ratio: float + text: str + + class DimensionedLambda(Lambda): def __init__( self, @@ -20,19 +34,19 @@ def __init__( **kwargs, ): super().__init__(**kwargs) - self.annotations = annotations - self.clear_space = clear_space - - def _init_canvas(self): - if self.canvas is None: - self.canvas = Canvas( - min_x=-2 * self.radius, - min_y=-2 * self.radius, - width=4 * self.radius, - height=4 * self.radius, - ) + self.annotations: Annotations = annotations + self.clear_space: ClearSpace = clear_space + + @override + def _make_canvas(self) -> Canvas: + return Canvas( + min_x=-2 * self.radius, + min_y=-2 * self.radius, + width=4 * self.radius, + height=4 * self.radius, + ) - def make_diagonal_line(self, radius: Number) -> list[Number]: + def make_diagonal_line(self, radius: float) -> Points: hexagon_points = self.make_hexagon_points(radius) return Points([hexagon_points[1], hexagon_points[4]]) @@ -90,7 +104,7 @@ def make_lambda_polygons(self): stroke=self.annotations.object_lines.stroke, stroke_width=self.annotations.object_lines.stroke_width, fill=self.annotations.object_lines.fill, - stroke_dasharray=4, + stroke_dasharray=[4], ), svg.Polygon( points=lambda_points_gap.to_list(), @@ -100,7 +114,8 @@ def make_lambda_polygons(self): ), ) - def make_filename(self, extras: tuple[str] = ()) -> str: + @override + def make_filename(self, extras: tuple[str, ...] = ()) -> str: return "-".join( [ "nixos", @@ -156,7 +171,7 @@ def make_lambda_linear_dimensions(self): ) # fmt: off - options = [ + options: list[DimensionLineOptions] = [ {"side": "right", "flip": True, "offset": 1 / 4}, {"side": "right", "flip": True, "offset": 15 / 32}, {"side": "left", "flip": True, "offset": 1 / 4}, @@ -184,18 +199,20 @@ def make_lambda_linear_dimensions(self): for index, opts in enumerate(options) ) - def make_svg_elements(self): - return ( - self.canvas.make_axis_lines() - + self.annotations.dimension_lines.make_dimension_arrow_defs() - + self.make_lambda_construction_lines() - + self.make_lambda_main_diagonal() - + self.make_lambda_off_diagonal() - + self.make_lambda_polygons() - + self.make_lambda_linear_dimensions() + @override + def make_svg_elements(self) -> list[svg.Element]: + return flatten_svg_elements( + self.canvas.make_axis_lines(), + self.annotations.dimension_lines.make_dimension_arrow_defs(), + self.make_lambda_construction_lines(), + self.make_lambda_main_diagonal(), + self.make_lambda_off_diagonal(), + self.make_lambda_polygons(), + self.make_lambda_linear_dimensions(), ) - def make_filename(self, extras: tuple[str] = ()) -> str: + @override + def make_filename(self, extras: tuple[str, ...] = ()) -> str: return "-".join( [ super().make_filename(), @@ -209,16 +226,16 @@ class DimensionedLambdaAngular(DimensionedLambda): def make_lambda_angular_dimensions(self): lambda_points_no_gap = self.make_lambda_points() # fmt: off - options = [ - {"flip": True, "large": False, "side": "right", "ratio": 1 / 2, "text": "A"}, - {"flip": True, "large": False, "side": "left", "ratio": 1 / 2, "text": "A"}, - {"flip": True, "large": False, "side": "left", "ratio": 3 / 8, "text": "B"}, - {"flip": False, "large": False, "side": "right", "ratio": 1 / 2, "text": "A"}, - {"flip": True, "large": False, "side": "left", "ratio": 1 / 2, "text": "B"}, - {"flip": True, "large": False, "side": "left", "ratio": 1 / 2, "text": "B"}, - {"flip": True, "large": False, "side": "left", "ratio": 1 / 2, "text": "B"}, - {"flip": False, "large": False, "side": "left", "ratio": 1 / 2, "text": "B"}, - {"flip": True, "large": False, "side": "left", "ratio": 3 / 8, "text": "B"}, + options: list[DimensionAngleOptions] = [ + {"flip": True, "large": False, "ratio": 1 / 2, "text": "A"}, + {"flip": True, "large": False, "ratio": 1 / 2, "text": "A"}, + {"flip": True, "large": False, "ratio": 3 / 8, "text": "B"}, + {"flip": False, "large": False, "ratio": 1 / 2, "text": "A"}, + {"flip": True, "large": False, "ratio": 1 / 2, "text": "B"}, + {"flip": True, "large": False, "ratio": 1 / 2, "text": "B"}, + {"flip": True, "large": False, "ratio": 1 / 2, "text": "B"}, + {"flip": False, "large": False, "ratio": 1 / 2, "text": "B"}, + {"flip": True, "large": False, "ratio": 3 / 8, "text": "B"}, ] # fmt: on @@ -232,16 +249,18 @@ def make_lambda_angular_dimensions(self): for index, opts in enumerate(options) ) - def make_svg_elements(self) -> svg.SVG: - return ( - self.canvas.make_axis_lines() - + self.annotations.dimension_lines.make_dimension_arrow_defs() - + self.make_lambda_construction_lines() - + self.make_lambda_polygons() - + self.make_lambda_angular_dimensions() + @override + def make_svg_elements(self) -> list[svg.Element]: + return flatten_svg_elements( + self.canvas.make_axis_lines(), + self.annotations.dimension_lines.make_dimension_arrow_defs(), + self.make_lambda_construction_lines(), + self.make_lambda_polygons(), + self.make_lambda_angular_dimensions(), ) - def make_filename(self, extras: tuple[str] = ()) -> str: + @override + def make_filename(self, extras: tuple[str, ...] = ()) -> str: return "-".join( [ super().make_filename(), @@ -265,7 +284,7 @@ def make_dotted_lambda_vertices(self): def make_named_lambda_vertices(self): named_points = self.make_named_lambda_points() - translations = [ + translations: list[Callable[[TextAnnotations], list[svg.Transform]]] = [ lambda elem: [ svg.Translate( -elem.elements_width - elem.elements_height / 2, @@ -333,25 +352,27 @@ def make_named_lambda_vertices(self): svg.G( transform=[ svg.Translate(point.x, point.y), - ] - + translation(annotation), + *translation(annotation), + ], elements=annotation.make_svg_elements(), ) for point, annotation, translation in named_annotations.values() ) - def make_svg_elements(self) -> svg.SVG: - return ( - self.canvas.make_axis_lines() - + self.make_lambda_construction_lines() - + self.make_lambda_main_diagonal() - + self.make_lambda_off_diagonal() - + self.make_lambda_polygons() - + self.make_dotted_lambda_vertices() - + self.make_named_lambda_vertices() + @override + def make_svg_elements(self) -> list[svg.Element]: + return flatten_svg_elements( + self.canvas.make_axis_lines(), + self.make_lambda_construction_lines(), + self.make_lambda_main_diagonal(), + self.make_lambda_off_diagonal(), + self.make_lambda_polygons(), + self.make_dotted_lambda_vertices(), + self.make_named_lambda_vertices(), ) - def make_filename(self, extras: tuple[str] = ()) -> str: + @override + def make_filename(self, extras: tuple[str, ...] = ()) -> str: return "-".join( [ super().make_filename(), @@ -432,18 +453,20 @@ def make_parametric_annotations(self): return radius + thickness + gap - def make_svg_elements(self) -> svg.SVG: - return ( - self.canvas.make_axis_lines() - + self.annotations.dimension_lines.make_dimension_arrow_defs() - + self.make_lambda_construction_lines() - + self.make_lambda_main_diagonal() - + self.make_lambda_off_diagonal() - + self.make_lambda_polygons() - + self.make_parametric_annotations() + @override + def make_svg_elements(self) -> list[svg.Element]: + return flatten_svg_elements( + self.canvas.make_axis_lines(), + self.annotations.dimension_lines.make_dimension_arrow_defs(), + self.make_lambda_construction_lines(), + self.make_lambda_main_diagonal(), + self.make_lambda_off_diagonal(), + self.make_lambda_polygons(), + self.make_parametric_annotations(), ) - def make_filename(self, extras: tuple[str] = ()) -> str: + @override + def make_filename(self, extras: tuple[str, ...] = ()) -> str: return "-".join( [ super().make_filename(), @@ -455,22 +478,25 @@ def make_filename(self, extras: tuple[str] = ()) -> str: class DimensionedLogomark(Logomark): + ilambda: DimensionedLambda + def __init__( self, annotations: Annotations, + ilambda: DimensionedLambda, **kwargs, ): - super().__init__(**kwargs) - self.annotations = annotations - - def _init_canvas(self): - if self.canvas is None: - self.canvas = Canvas( - min_x=-4 * self.ilambda.radius, - min_y=-4 * self.ilambda.radius, - width=8 * self.ilambda.radius, - height=8 * self.ilambda.radius, - ) + super().__init__(ilambda=ilambda, **kwargs) + self.annotations: Annotations = annotations + + @override + def _make_canvas(self) -> Canvas: + return Canvas( + min_x=-4 * self.ilambda.radius, + min_y=-4 * self.ilambda.radius, + width=8 * self.ilambda.radius, + height=8 * self.ilambda.radius, + ) def make_flake_construction_lines(self): return ( @@ -545,17 +571,19 @@ def make_flake_polygons_for_dimensions(self): for lambda_points in flake_points ) - def make_svg_elements(self): - return ( - self.make_flake_polygons_for_dimensions() - + self.canvas.make_axis_lines() - + self.annotations.dimension_lines.make_dimension_arrow_defs() - + self.ilambda.make_lambda_construction_lines() - + self.make_flake_construction_lines() - + self.make_flake_linear_dimensions() + @override + def make_svg_elements(self) -> list[svg.Element]: + return flatten_svg_elements( + self.make_flake_polygons_for_dimensions(), + self.canvas.make_axis_lines(), + self.annotations.dimension_lines.make_dimension_arrow_defs(), + self.ilambda.make_lambda_construction_lines(), + self.make_flake_construction_lines(), + self.make_flake_linear_dimensions(), ) - def make_filename(self, extras: tuple[str] = ()) -> str: + @override + def make_filename(self, extras: tuple[str, ...] = ()) -> str: return "-".join( [ "nixos", @@ -568,22 +596,25 @@ def make_filename(self, extras: tuple[str] = ()) -> str: class DimensionedLogomarkGradient(Logomark): + ilambda: DimensionedLambda + def __init__( self, annotations: Annotations, + ilambda: DimensionedLambda, **kwargs, ): - super().__init__(**kwargs) - self.annotations = annotations - - def _init_canvas(self): - if self.canvas is None: - self.canvas = Canvas( - min_x=-2 * self.ilambda.radius, - min_y=-2 * self.ilambda.radius, - width=4 * self.ilambda.radius, - height=4 * self.ilambda.radius, - ) + super().__init__(ilambda=ilambda, **kwargs) + self.annotations: Annotations = annotations + + @override + def _make_canvas(self) -> Canvas: + return Canvas( + min_x=-2 * self.ilambda.radius, + min_y=-2 * self.ilambda.radius, + width=4 * self.ilambda.radius, + height=4 * self.ilambda.radius, + ) def make_dimensioned_gradient_lines(self): gradient_end_points = self.make_gradient_end_points() @@ -633,16 +664,18 @@ def make_dimensioned_gradient_lines(self): ] ) - def make_svg_elements(self): - return ( - self.canvas.make_axis_lines() - + self.annotations.dimension_lines.make_dimension_arrow_defs() - + self.ilambda.make_lambda_construction_lines() - + self.ilambda.make_lambda_polygons() - + self.make_dimensioned_gradient_lines() + @override + def make_svg_elements(self) -> list[svg.Element]: + return flatten_svg_elements( + self.canvas.make_axis_lines(), + self.annotations.dimension_lines.make_dimension_arrow_defs(), + self.ilambda.make_lambda_construction_lines(), + self.ilambda.make_lambda_polygons(), + self.make_dimensioned_gradient_lines(), ) - def make_filename(self, extras: tuple[str] = ()) -> str: + @override + def make_filename(self, extras: tuple[str, ...] = ()) -> str: return "-".join( [ "nixos", @@ -691,10 +724,15 @@ def make_gradient_annotations(self): ), ) - def make_svg_elements(self): - return super().make_svg_elements() + self.make_gradient_annotations() + @override + def make_svg_elements(self) -> list[svg.Element]: + return flatten_svg_elements( + super().make_svg_elements(), + self.make_gradient_annotations(), + ) - def make_filename(self, extras: tuple[str] = ()) -> str: + @override + def make_filename(self, extras: tuple[str, ...] = ()) -> str: return "-".join( [ super().make_filename(), @@ -705,14 +743,16 @@ def make_filename(self, extras: tuple[str] = ()) -> str: class DimensionedLogomarkGradientBackground(DimensionedLogomarkGradient): - def make_svg_elements(self): - return ( - self.make_flake_gradients_defs() - + self.canvas.make_svg_background(fill=f"url(#{self.css_color_names[0]})") - + super().make_svg_elements() + @override + def make_svg_elements(self) -> list[svg.Element]: + return flatten_svg_elements( + self.make_flake_gradients_defs(), + self.canvas.make_svg_background(fill=f"url(#{self.css_color_names[0]})"), + super().make_svg_elements(), ) - def make_filename(self, extras: tuple[str] = ()) -> str: + @override + def make_filename(self, extras: tuple[str, ...] = ()) -> str: return "-".join( [ super().make_filename(), @@ -729,7 +769,7 @@ def __init__( **kwargs, ): super().__init__(**kwargs) - self.annotations = annotations + self.annotations: Annotations = annotations def svg_bounding_box(self): bbox = self.elements_bounding_box @@ -805,15 +845,17 @@ def dimension_spacings(self): for (point1, point2), offset, side in zip(points, offsets, sides) ) - def make_svg_elements(self): - return ( - self.svg_bounding_box() - + self.dimension_cap_height() - + self.dimension_spacings() - + super().make_svg_elements() + @override + def make_svg_elements(self) -> list[svg.Element]: + return flatten_svg_elements( + self.svg_bounding_box(), + self.dimension_cap_height(), + self.dimension_spacings(), + super().make_svg_elements(), ) - def make_filename(self, extras: tuple[str] = ()) -> str: + @override + def make_filename(self, extras: tuple[str, ...] = ()) -> str: return "-".join( [ "nixos", @@ -831,7 +873,7 @@ def __init__( **kwargs, ): super().__init__(**kwargs) - self.annotations = annotations + self.annotations: Annotations = annotations def dimension_cap_height(self): return ( @@ -873,14 +915,16 @@ def dimension_bearing(self): ), ) - def make_svg_elements(self): - return ( - self.dimension_cap_height() - + self.dimension_bearing() - + super().make_svg_elements() + @override + def make_svg_elements(self) -> list[svg.Element]: + return flatten_svg_elements( + self.dimension_cap_height(), + self.dimension_bearing(), + super().make_svg_elements(), ) - def make_filename(self, extras: tuple[str] = ()) -> str: + @override + def make_filename(self, extras: tuple[str, ...] = ()) -> str: return "-".join( [ "nixos", @@ -897,7 +941,7 @@ def make_filename(self, extras: tuple[str] = ()) -> str: annotations = Annotations.small() annotations.construction_lines.stroke = "black" - annotations.construction_lines.stroke_dasharray = 16 + annotations.construction_lines.stroke_dasharray = [16] loader = FontLoader(capHeight=512) diff --git a/package-sets/python-packages/nixoslogo/nixoslogo/geometry.py b/package-sets/python-packages/nixoslogo/nixoslogo/geometry.py index 2436aba..aa12d56 100644 --- a/package-sets/python-packages/nixoslogo/nixoslogo/geometry.py +++ b/package-sets/python-packages/nixoslogo/nixoslogo/geometry.py @@ -1,55 +1,75 @@ import math from collections.abc import Sequence -from typing import Self +from typing import overload, override from svg._types import Number -def cosd(angle) -> float: +def cosd(angle: float) -> float: return math.cos(math.radians(angle)) -def sind(angle) -> float: +def sind(angle: float) -> float: return math.sin(math.radians(angle)) -class Point(Sequence): - def __init__(self, value): - self.value = value +class Point(Sequence[float]): + def __init__(self, value: Sequence[float]): + self.value: Sequence[float] = value super().__init__() - def __getitem__(self, index): + @overload + def __getitem__(self, index: int) -> float: ... + + @overload + def __getitem__(self, index: slice) -> Sequence[float]: ... + + @override + def __getitem__(self, index: int | slice) -> "float | Sequence[float]": return self.value[index] + @override def __len__(self): return len(self.value) + @override def __str__(self): return f"{self.x, self.y}" + @override def __repr__(self): return f"Point{self.value}" def __neg__(self): return Point(tuple(-elem for elem in self)) - def __add__(self, other: Self | "Vector") -> Self: + @overload + def __add__(self, other: "Point") -> "Point": ... + + @overload + def __add__(self, other: "Vector") -> "Point": ... + + def __add__(self, other: object) -> "Point": if isinstance(other, Point): return Point((self.x + other.x, self.y + other.y)) - elif isinstance(other, Vector): + if isinstance(other, Vector): return Point((self.x + other[0], self.y + other[1])) - else: - raise Exception(f"Not sure how to add {type(other)} to Point.") + return NotImplemented + + @overload + def __sub__(self, other: "Point") -> "Vector": ... - def __sub__(self, other: Self | "Vector") -> Self: + @overload + def __sub__(self, other: "Vector") -> "Point": ... + + def __sub__(self, other: object) -> "Point | Vector": if isinstance(other, Point): return Vector((self.x - other.x, self.y - other.y)) - elif isinstance(other, Vector): + if isinstance(other, Vector): return Point((self.x - other[0], self.y - other[1])) - else: - raise Exception(f"Not sure how to add {type(other)} to Point.") + return NotImplemented - def __truediv__(self, other: Number) -> Self: + def __truediv__(self, other: float) -> "Point": return Point(tuple(elem / other for elem in self)) @property @@ -62,10 +82,10 @@ def y(self): """The y property.""" return self.value[1] - def distance(self, other: Self) -> float: + def distance(self, other: "Point") -> float: return (self - other).length() - def normal(self, reference: Self): + def normal(self, reference: "Point") -> "Vector": normal = Vector( ( +(self.y - reference.y), @@ -74,7 +94,7 @@ def normal(self, reference: Self): ) return normal.normalize() - def rotate(self, angle: Number): + def rotate(self, angle: float) -> "Point": rotation_matrix = Matrix( ( Vector( @@ -91,112 +111,150 @@ def to_vector(self) -> "Vector": return Vector(self.value) -class Points(Sequence): +class Points(Sequence[Point]): def __init__(self, value: list[Point]): - self.value = value + self.value: list[Point] = value super().__init__() - def __getitem__(self, index): + @overload + def __getitem__(self, index: int) -> Point: ... + + @overload + def __getitem__(self, index: slice) -> Sequence[Point]: ... + + @override + def __getitem__(self, index: int | slice) -> "Point | Sequence[Point]": return self.value[index] + @override def __len__(self): return len(self.value) + @override def __repr__(self): return f"Points{self.value}" + @override def __str__(self): return "[" + ", ".join(str(elem) for elem in self.value) + "]" - def to_list(self): + def to_list(self) -> list[Number]: nested = [(elem.x, elem.y) for elem in self] - return [elem for point in nested for elem in point] + flat: list[Number] = [elem for point in nested for elem in point] + return flat -class Vector(Sequence): - def __init__(self, value): - self.value = value +class Vector(Sequence[float]): + def __init__(self, value: Sequence[float]): + self.value: Sequence[float] = value super().__init__() - def __getitem__(self, index): + @overload + def __getitem__(self, index: int) -> float: ... + + @overload + def __getitem__(self, index: slice) -> Sequence[float]: ... + + @override + def __getitem__(self, index: int | slice) -> "float | Sequence[float]": return self.value[index] + @override def __len__(self): return len(self.value) + @override def __repr__(self): return f"Vector{self.value}" + @override def __str__(self): return f"{self.value}" - def __add__(self, other: Self) -> Self: + def __add__(self, other: "Vector") -> "Vector": return Vector(tuple(s + o for s, o in zip(self, other))) def __neg__(self): return Vector(tuple(-elem for elem in self)) - def __sub__(self, other: Self) -> Self: + def __sub__(self, other: "Vector") -> "Vector": return self + (-other) - def __mul__(self, other: Self) -> Self: + def __mul__(self, other: "Vector") -> "Vector": return Vector(tuple(s * o for s, o in zip(self, other))) - def __rmul__(self, other: Number) -> Self: + def __rmul__(self, other: float) -> "Vector": return Vector(tuple(other * elem for elem in self)) - def __matmul__(self, other: Self | Point) -> Self: - if isinstance(other, Point | Vector): - return [s * o for s, o in zip(self, other)] - else: - raise Exception(f"Not sure how to add {type(other)} to Point.") + @overload + def __matmul__(self, other: "Point") -> list[float]: ... + + @overload + def __matmul__(self, other: "Vector") -> list[float]: ... - def __truediv__(self, other: Number) -> Self: + def __matmul__(self, other: object) -> list[float]: + if not isinstance(other, Point | Vector): + return NotImplemented + return [s * o for s, o in zip(self, other)] + + def __truediv__(self, other: float) -> "Vector": return Vector(tuple(elem / other for elem in self)) - def _modulus_squared(self) -> Number: + def _modulus_squared(self) -> float: return self.dot(self) def length(self) -> float: return math.sqrt(self._modulus_squared()) - def dot(self, other: Self) -> float: - return sum((self * other)) + def dot(self, other: "Vector") -> float: + return sum(self * other) - def normalize(self) -> Self: + def normalize(self) -> "Vector": return self / self.length() - def normal(self) -> Self: + def normal(self) -> "Vector": return Vector((self[1], -self[0])).normalize() - def angle_from(self, other: Self) -> float: + def angle_from(self, other: "Vector") -> float: return math.acos(self.dot(other) / (self.length() * other.length())) def to_point(self) -> Point: return Point(self.value) -class Matrix(Sequence): +class Matrix(Sequence[Vector]): def __init__(self, value: Sequence[Vector]): - self.value = value + self.value: Sequence[Vector] = value super().__init__() - def __getitem__(self, index): + @overload + def __getitem__(self, index: int) -> Vector: ... + + @overload + def __getitem__(self, index: slice) -> Sequence[Vector]: ... + + @override + def __getitem__(self, index: int | slice) -> "Vector | Sequence[Vector]": return self.value[index] + @override def __len__(self): return len(self.value) * len(self.value[0]) + @override def __str__(self): return "(" + ",\n ".join(str(elem) for elem in self.value) + ")" - def transpose(self) -> Self: - return Matrix(tuple(zip(*self))) + def transpose(self) -> "Matrix": + return Matrix(tuple(Vector(row) for row in zip(*self))) - def __matmul__(self, other: Point | Vector) -> Self: - if isinstance(other, Point | Vector): - return [sum(row @ other) for row in self] - else: - raise Exception( - f"Not sure how to matrix multiply {type(self)} and {type(other)}." - ) + @overload + def __matmul__(self, other: Point) -> list[float]: ... + + @overload + def __matmul__(self, other: Vector) -> list[float]: ... + + def __matmul__(self, other: object) -> list[float]: + if not isinstance(other, Point | Vector): + return NotImplemented + return [sum(row @ other) for row in self] diff --git a/package-sets/python-packages/nixoslogo/nixoslogo/helpers.py b/package-sets/python-packages/nixoslogo/nixoslogo/helpers.py index 59b8a0d..7905e0f 100644 --- a/package-sets/python-packages/nixoslogo/nixoslogo/helpers.py +++ b/package-sets/python-packages/nixoslogo/nixoslogo/helpers.py @@ -1,15 +1,18 @@ import hashlib import math +from typing import cast import jsonpickle +from nixoslogo.geometry import Point -def stable_hash(thing): - dump = jsonpickle.encode(thing) - return hashlib.md5(dump.encode("utf-8")).digest().hex() +def stable_hash(thing: object) -> str: + dump = cast(str, jsonpickle.encode(thing)) + return hashlib.md5(dump.encode("utf-8")).hexdigest() -def arc_sagitta(point1, point2, radius, large, sweep): + +def arc_sagitta(point1: Point, point2: Point, radius: float, large: bool, sweep: bool): chord_midpoint = ((point1 + point2) / 2).to_vector() chord = point2 - point1 unit_chord = chord.normalize() diff --git a/package-sets/python-packages/nixoslogo/nixoslogo/layout.py b/package-sets/python-packages/nixoslogo/nixoslogo/layout.py index baa7fe5..f63c69a 100644 --- a/package-sets/python-packages/nixoslogo/nixoslogo/layout.py +++ b/package-sets/python-packages/nixoslogo/nixoslogo/layout.py @@ -5,10 +5,10 @@ @dataclass(kw_only=True) class Canvas: - min_x: int - min_y: int - width: int - height: int + min_x: float + min_y: float + width: float + height: float @property def max_y(self): @@ -30,7 +30,7 @@ def make_view_box(self): height=self.height, ) - def make_svg_background(self, fill="#8888ee"): + def make_svg_background(self, fill: str = "#8888ee"): return ( svg.Rect( x=self.min_x, diff --git a/package-sets/python-packages/nixoslogo/nixoslogo/logging_config.py b/package-sets/python-packages/nixoslogo/nixoslogo/logging_config.py index 721158e..4986581 100644 --- a/package-sets/python-packages/nixoslogo/nixoslogo/logging_config.py +++ b/package-sets/python-packages/nixoslogo/nixoslogo/logging_config.py @@ -1,7 +1,7 @@ import logging -def setup_logging(level=logging.INFO): +def setup_logging(level: int = logging.INFO): logging.basicConfig( level=level, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", diff --git a/package-sets/python-packages/nixoslogo/nixoslogo/logo.py b/package-sets/python-packages/nixoslogo/nixoslogo/logo.py index 79e47e4..5fcd8ff 100644 --- a/package-sets/python-packages/nixoslogo/nixoslogo/logo.py +++ b/package-sets/python-packages/nixoslogo/nixoslogo/logo.py @@ -1,4 +1,5 @@ import math +from typing import override import svg @@ -11,6 +12,7 @@ LogoLayout, LogomarkColors, LogotypeStyle, + flatten_svg_elements, ) from nixoslogo.logomark import Lambda, Logomark from nixoslogo.logotype import ( @@ -27,62 +29,67 @@ def __init__( lambda_gap: float = 1 / 32, loader: FontLoader | None = None, logo_layout: LogoLayout = LogoLayout.HORIZONTAL, - logomark_colors: LogomarkColors | tuple[Color] = LogomarkColors.DEFAULT, + logomark_colors: LogomarkColors | tuple[Color, ...] = LogomarkColors.DEFAULT, logomark_color_style: ColorStyle = ColorStyle.GRADIENT, logotype_cap_height: float | None = None, logotype_color: str = "black", logotype_style: LogotypeStyle = LogotypeStyle.REGULAR, - logotype_spacings: tuple[int] = DEFAULT_LOGOTYPE_SPACINGS_WITH_BEARING, + logotype_spacings: tuple[int, ...] = DEFAULT_LOGOTYPE_SPACINGS_WITH_BEARING, logotype_characters: str = "NixOS", logotype_transform: svg.Translate | None = None, clear_space: ClearSpace = ClearSpace.RECOMMENDED, **kwargs, ): - self.lambda_radius = lambda_radius - self.lambda_thickness = lambda_thickness - self.lambda_gap = lambda_gap - self.loader = loader - self.logo_layout = logo_layout - self.logomark_colors = logomark_colors - self.logomark_color_style = logomark_color_style - self.logotype_cap_height = logotype_cap_height - self.logotype_color = logotype_color - self.logotype_style = logotype_style - self.logotype_spacings = logotype_spacings - self.logotype_characters = logotype_characters - self.logotype_transform = logotype_transform - self.clear_space = clear_space + self.lambda_radius: int = lambda_radius + self.lambda_thickness: float = lambda_thickness + self.lambda_gap: float = lambda_gap + self.logo_layout: LogoLayout = logo_layout + self.logomark_colors: LogomarkColors | tuple[Color, ...] = logomark_colors + self.logomark_color_style: ColorStyle = logomark_color_style + self.logotype_color: str = logotype_color + self.logotype_style: LogotypeStyle = logotype_style + self.logotype_spacings: tuple[int, ...] = logotype_spacings + self.logotype_characters: str = logotype_characters + self.clear_space: ClearSpace = clear_space self._init_snowflake() - self._init_cap_height() + self.logotype_cap_height: float = ( + logotype_cap_height + if logotype_cap_height is not None + else self._default_cap_height() + ) + self.loader: FontLoader = ( + loader + if loader is not None + else FontLoader(capHeight=self.logotype_cap_height) + ) self._init_logotype() - self._init_layout() + self.logotype_transform: svg.Translate = ( + logotype_transform + if logotype_transform is not None + else self._default_transform() + ) super().__init__(**kwargs) def _init_snowflake(self): - self.ilambda = Lambda( + self.ilambda: Lambda = Lambda( radius=self.lambda_radius, thickness=self.lambda_thickness, gap=self.lambda_gap, ) - self.logomark = Logomark( + self.logomark: Logomark = Logomark( ilambda=self.ilambda, colors=self.logomark_colors, color_style=self.logomark_color_style, clear_space=self.clear_space, ) - def _init_cap_height(self): - if self.logotype_cap_height is None: - self.logotype_cap_height = ( - self.lambda_radius * (1 + self.lambda_thickness * 2) * math.sqrt(3) - ) + def _default_cap_height(self) -> float: + return self.lambda_radius * (1 + self.lambda_thickness * 2) * math.sqrt(3) def _init_logotype(self): - if self.loader is None: - self.loader = FontLoader(capHeight=self.logotype_cap_height) - self.logotype = Logotype( + self.logotype: Logotype = Logotype( characters=self.logotype_characters, loader=self.loader, color=self.logotype_color, @@ -90,40 +97,42 @@ def _init_logotype(self): spacings=self.logotype_spacings, ) - def _init_layout(self): - if self.logotype_transform is None: - match self.logo_layout: - case LogoLayout.HORIZONTAL: - self.logotype_transform = svg.Translate( - self.logomark.circumradius, - self.logotype_cap_height / 2, - ) - case LogoLayout.VERTICAL: - self.logotype_transform = svg.Translate( - -self.logotype.elements_width / 2, - self.logomark.inradius + self.logotype_cap_height * 1.25, - ) - case _: - raise Exception(f"Unknown LogoLayout: {self.logo_layout}") + def _default_transform(self) -> svg.Translate: + match self.logo_layout: + case LogoLayout.HORIZONTAL: + return svg.Translate( + self.logomark.circumradius, + self.logotype_cap_height / 2, + ) + case LogoLayout.VERTICAL: + return svg.Translate( + -self.logotype.elements_width / 2, + self.logomark.inradius + self.logotype_cap_height * 1.25, + ) @property - def elements_bounding_box(self): + @override + def elements_bounding_box(self) -> tuple[float, float, float, float]: logomark_box = self.logomark.elements_bounding_box logotype_box = self.logotype.elements_bounding_box + offset_x = float(self.logotype_transform.x) + offset_y = float(self.logotype_transform.y or 0) logotype_box_translated = ( - logotype_box[0] + self.logotype_transform.x, - logotype_box[1] + self.logotype_transform.y, - logotype_box[2] + self.logotype_transform.x, - logotype_box[3] + self.logotype_transform.y, + logotype_box[0] + offset_x, + logotype_box[1] + offset_y, + logotype_box[2] + offset_x, + logotype_box[3] + offset_y, ) - return [ + min_x, min_y, max_x, max_y = ( predicate(elem) for predicate, elem in zip( (min, min, max, max), list(zip(*(logomark_box, logotype_box_translated))), ) - ] + ) + return (min_x, min_y, max_x, max_y) + @override def _get_clearspace(self): match self.clear_space: case ClearSpace.NONE: @@ -132,11 +141,10 @@ def _get_clearspace(self): return self.logomark.elements_height / 2 case ClearSpace.RECOMMENDED: return self.logomark.elements_height - case _: - raise Exception(f"Unknown ClearSpace: {self.clear_space}") - def make_svg_elements(self): - return ( + @override + def make_svg_elements(self) -> list[svg.Element]: + return flatten_svg_elements( self.logomark.make_svg_elements(), svg.G( transform=[self.logotype_transform], @@ -144,7 +152,8 @@ def make_svg_elements(self): ), ) - def make_filename(self, colors="default", extras: tuple[str] = ()): + @override + def make_filename(self, extras: tuple[str, ...] = ()) -> str: return "-".join( [ self.logotype_characters.lower(), diff --git a/package-sets/python-packages/nixoslogo/nixoslogo/logomark.py b/package-sets/python-packages/nixoslogo/nixoslogo/logomark.py index 3a8d89d..f180eda 100644 --- a/package-sets/python-packages/nixoslogo/nixoslogo/logomark.py +++ b/package-sets/python-packages/nixoslogo/nixoslogo/logomark.py @@ -1,9 +1,10 @@ import fractions import itertools import math +from typing import TypedDict, override import svg -from svg._types import Number +from svg._types import Length from nixoslogo.colors import Color from nixoslogo.core import ( @@ -11,10 +12,18 @@ ClearSpace, ColorStyle, LogomarkColors, + flatten_svg_elements, ) from nixoslogo.geometry import Point, Points, Vector, cosd, sind +class GradientEndPoints(TypedDict): + x1: float + y1: float + x2: float + y2: float + + class Lambda(BaseRenderable): def __init__( self, @@ -25,14 +34,15 @@ def __init__( clear_space: ClearSpace = ClearSpace.RECOMMENDED, **kwargs, ): - self.radius = radius - self.thickness = thickness - self.gap = gap - self.color = color - self.clear_space = clear_space + self.radius: int = radius + self.thickness: float = thickness + self.gap: float = gap + self.color: str = color + self.clear_space: ClearSpace = clear_space super().__init__(**kwargs) @property + @override def elements_bounding_box(self): double_up = [ ( @@ -50,6 +60,7 @@ def elements_bounding_box(self): ) ) + @override def _get_clearspace(self): match self.clear_space: case ClearSpace.NONE: @@ -58,18 +69,17 @@ def _get_clearspace(self): return self.elements_y_max / 2 case ClearSpace.RECOMMENDED: return self.elements_y_max - case _: - raise Exception(f"Unknown ClearSpace: {self.clear_space}") - def make_svg_elements(self): - return ( + @override + def make_svg_elements(self) -> list[svg.Element]: + return flatten_svg_elements( svg.Polygon( points=self.make_lambda_points().to_list(), fill=self.color, ), ) - def make_hexagon_points(self, radius: Number) -> Points: + def make_hexagon_points(self, radius: float) -> Points: angles = [math.radians(angle) for angle in range(0, 360, 60)] return Points( [ @@ -85,9 +95,9 @@ def make_hexagon_points(self, radius: Number) -> Points: def make_lambda_points( self, - radius: Number | None = None, - thickness: Number | None = None, - gap: Number | None = None, + radius: float | None = None, + thickness: float | None = None, + gap: float | None = None, ) -> Points: radius = radius if radius is not None else self.radius thickness = thickness if thickness is not None else self.thickness @@ -122,9 +132,9 @@ def make_lambda_points( def make_named_lambda_points( self, - radius: Number | None = None, - thickness: Number | None = None, - gap: Number | None = None, + radius: float | None = None, + thickness: float | None = None, + gap: float | None = None, ) -> dict[str, Point]: radius = radius if radius is not None else self.radius thickness = thickness if thickness is not None else self.thickness @@ -149,7 +159,8 @@ def make_named_lambda_points( ) return {name: point for name, point in zip(names, points)} - def make_filename(self, colors="default", extras: tuple[str] = ()): + @override + def make_filename(self, extras: tuple[str, ...] = ()) -> str: return "-".join( [ "nixos", @@ -169,22 +180,27 @@ def __init__( ilambda: Lambda = Lambda(), color_style: ColorStyle = ColorStyle.GRADIENT, clear_space: ClearSpace = ClearSpace.RECOMMENDED, - colors: LogomarkColors | tuple[Color] = LogomarkColors.DEFAULT, + colors: LogomarkColors | tuple[Color, ...] = LogomarkColors.DEFAULT, **kwargs, ): self.ilambda = ilambda - self.colors_name = getattr(colors, "name", "custom") - self.colors_value = getattr(colors, "value", colors) - self.color_style = color_style - self.clear_space = clear_space + self.colors_name: str = ( + colors.name if isinstance(colors, LogomarkColors) else "custom" + ) + self.colors_value: tuple[Color, ...] = ( + colors.value if isinstance(colors, LogomarkColors) else colors + ) + self.color_style: ColorStyle = color_style + self.clear_space: ClearSpace = clear_space - self._make_css_color_names() + self.css_color_names: tuple[str, ...] = self._make_css_color_names() - self._gradient_stop_offsets = [0, 25, 100] + self._gradient_stop_offsets: list[int] = [0, 25, 100] super().__init__(**kwargs) @property + @override def elements_bounding_box(self): return ( -self.circumradius, @@ -208,6 +224,7 @@ def snowflake_lambda_ratio(self): """The ratio between the snowflake and lambda radius.""" return self.circumradius / self.ilambda.radius + @override def _get_clearspace(self): match self.clear_space: case ClearSpace.NONE: @@ -216,34 +233,27 @@ def _get_clearspace(self): return self.elements_y_max / 2 case ClearSpace.RECOMMENDED: return self.elements_y_max - case _: - raise Exception(f"Unknown ClearSpace: {self.clear_space}") - def _make_css_color_names(self): + def _make_css_color_names(self) -> tuple[str, ...]: match self.color_style: case ColorStyle.FLAT: - self.css_color_names = tuple( + return tuple( color.convert("srgb").to_string(hex=True) for color in self.colors_value ) case ColorStyle.GRADIENT: - self.css_color_names = tuple( - color.gradient_color_name() for color in self.colors_value - ) - case _: - raise Exception(f"Unknown ColorStyle: {self.color_style}") + return tuple(color.gradient_color_name() for color in self.colors_value) - def make_svg_elements(self): + @override + def make_svg_elements(self) -> list[svg.Element]: match self.color_style: case ColorStyle.FLAT: - return self.make_clean_flake_polygons_flat() + return flatten_svg_elements(self.make_clean_flake_polygons_flat()) case ColorStyle.GRADIENT: - return ( + return flatten_svg_elements( self.make_flake_gradients_defs(), self.make_clean_flake_polygons_gradient(), ) - case _: - raise Exception(f"Unknown ColorStyle: {self.color_style}") def make_flake_points(self): lambda_points_gap = self.ilambda.make_lambda_points() @@ -273,7 +283,7 @@ def make_clean_flake_polygons_flat(self): ) ) - def make_gradient_end_points(self): + def make_gradient_end_points(self) -> GradientEndPoints: lambda_points_no_gap = self.ilambda.make_named_lambda_points(gap=0) stop_point = lambda_points_no_gap[ "joint_crotch" @@ -288,7 +298,7 @@ def make_gradient_end_points(self): def make_flake_gradients_defs(self): gradient_end_points = self.make_gradient_end_points() - linear_gradients = [] + linear_gradients: list[svg.Element] = [] for color, color_name in zip(self.colors_value, self.css_color_names): color_original = color.convert("srgb").to_string(hex=True) color_midpoint = color.darken(1).convert("srgb").to_string(hex=True) @@ -301,15 +311,15 @@ def make_flake_gradients_defs(self): **gradient_end_points, elements=[ svg.Stop( - offset=f"{self._gradient_stop_offsets[0]}%", + offset=Length(self._gradient_stop_offsets[0], "%"), stop_color=color_dark, ), svg.Stop( - offset=f"{self._gradient_stop_offsets[1]}%", + offset=Length(self._gradient_stop_offsets[1], "%"), stop_color=color_midpoint, ), svg.Stop( - offset=f"{self._gradient_stop_offsets[2]}%", + offset=Length(self._gradient_stop_offsets[2], "%"), stop_color=color_original, ), ], @@ -340,7 +350,8 @@ def make_clean_flake_polygons_gradient(self): ) ) - def make_filename(self, extras: tuple[str] = ()): + @override + def make_filename(self, extras: tuple[str, ...] = ()): return "-".join( [ "nixos", diff --git a/package-sets/python-packages/nixoslogo/nixoslogo/logotype.py b/package-sets/python-packages/nixoslogo/nixoslogo/logotype.py index cf5c39f..e97e408 100644 --- a/package-sets/python-packages/nixoslogo/nixoslogo/logotype.py +++ b/package-sets/python-packages/nixoslogo/nixoslogo/logotype.py @@ -4,7 +4,7 @@ import tempfile from collections.abc import Callable from pathlib import Path -from typing import Any +from typing import cast, override import fontforge import svg @@ -17,6 +17,7 @@ BaseRenderable, ClearSpace, LogotypeStyle, + flatten_svg_elements, get_nixos_logotype_font_file, ) from nixoslogo.logging_config import setup_logging @@ -25,63 +26,64 @@ class FontLoader: + capHeight: float + scale: float + def __init__( self, get_font_file: Callable[[], Path] = get_nixos_logotype_font_file, - transforms_map: dict[str, Any] = DEFAULT_ROUTE159_TRANSFORMS, - capHeight: int | None = None, + transforms_map: dict[str, dict[str, int]] = DEFAULT_ROUTE159_TRANSFORMS, + capHeight: float | None = None, scale_glyph: bool = True, offset_glyph: bool = True, ): - self.get_font_file = get_font_file - self.transforms_map = transforms_map - self.capHeight = capHeight - self.scale_glyph = scale_glyph - self.offset_glyph = offset_glyph + self.get_font_file: Callable[[], Path] = get_font_file + self.transforms_map: dict[str, dict[str, int]] = transforms_map + self.scale_glyph: bool = scale_glyph + self.offset_glyph: bool = offset_glyph self._open_font_file() + self.capHeight, self.scale = self._ref_size(capHeight) self._setup_glyphs() def _open_font_file(self): source_path = self.get_font_file() logger.debug(f"Original font file: {source_path}") - self._tempdir = Path(tempfile.mkdtemp(prefix="fontforge_")) + self._tempdir: Path = Path(tempfile.mkdtemp(prefix="fontforge_")) logger.debug(f"Temporary directory created: {self._tempdir}") - self._font_path = self._tempdir / source_path.name - shutil.copy2(source_path, self._font_path) + self._font_path: Path = self._tempdir / source_path.name + _ = shutil.copy2(source_path, self._font_path) logger.debug(f"Font file copied: {self._font_path}") self.font = fontforge.open(str(self._font_path)) logger.debug(f"Font file loaded: {self._font_path}") - self._cleaned_up = False + self._cleaned_up: bool = False # Register the cleanup function to be called when the Python process exits - atexit.register(self._cleanup_once) + _ = atexit.register(self._cleanup_once) def _setup_glyphs(self): - self._set_ref_size() - for character, transforms in self.transforms_map.items(): if self.scale_glyph: self._scale_glyph(character, transforms) if self.offset_glyph: - self._offset_glyph(character, transforms) + self._offset_glyph(character) - def _set_ref_size(self): + def _ref_size(self, capHeight: float | None) -> tuple[float, float]: """ Conditionally update the font size. The glyphs can be scaled by updating the `em` attribute. `capHeight` goes to zero because we are flipping glyphs so that is stored off for later use. """ - if self.capHeight is None: - self.scale = 1 - self.capHeight = int(self.font.capHeight) - else: - self.scale = self.capHeight / self.font.capHeight - self.font.em = round(self.font.em * self.scale) - - def _scale_glyph(self, character, transforms): + if capHeight is None: + return int(self.font.capHeight), 1 + + scale = capHeight / self.font.capHeight + self.font.em = round(self.font.em * scale) + return capHeight, scale + + def _scale_glyph(self, character: str, transforms: dict[str, int]): """Scale a glyph; primarily used for vertically flipping.""" self.font[character].transform( ( @@ -94,7 +96,7 @@ def _scale_glyph(self, character, transforms): ) ) - def _offset_glyph(self, character, transforms): + def _offset_glyph(self, character: str): """Offset a glyph; primarily used to remove the left side bearing.""" self.font[character].transform( ( @@ -121,13 +123,13 @@ def _cleanup_once(self): # Close the font file if it's open self.font.close() logger.debug(f"Font file closed: {self._font_path}") - except Exception as e: + except RuntimeError as e: logger.error(f"Error closing font file: {self._font_path}, {e}") # Remove the temporary directory and its contents try: - shutil.rmtree(self._tempdir, ignore_errors=True) + shutil.rmtree(self._tempdir) logger.debug(f"Temporary directory removed: {self._tempdir}") - except Exception as e: + except OSError as e: logger.error(f"Error removing temporary directory: {self._tempdir}, {e}") def __del__(self): @@ -138,30 +140,25 @@ def __del__(self): class Glyph(BaseRenderable): def __init__( self, - character: str | None, + character: str, loader: FontLoader | None = None, color: str = "black", style: LogotypeStyle = LogotypeStyle.REGULAR, clear_space: ClearSpace = ClearSpace.RECOMMENDED, **kwargs, ): - self.character = character - self.loader = loader - self.color = color - self.style = style - self.clear_space = clear_space + self.character: str = character + self.loader: FontLoader = loader if loader is not None else FontLoader() + self.color: str = color + self.style: LogotypeStyle = style + self.clear_space: ClearSpace = clear_space - self._init_loader() self.font = self.loader.font self.glyph = self.font[self.character] self.layer = self.glyph.foreground.dup() super().__init__(**kwargs) - def _init_loader(self): - if self.loader is None: - self.loader = FontLoader() - def get_path(self, layer): path = [] for contour in layer: @@ -217,9 +214,11 @@ def get_path(self, layer): return path @property - def elements_bounding_box(self): - return self.layer.boundingBox() + @override + def elements_bounding_box(self) -> tuple[float, float, float, float]: + return cast("tuple[float, float, float, float]", self.layer.boundingBox()) + @override def _get_clearspace(self): match self.clear_space: case ClearSpace.NONE: @@ -228,8 +227,6 @@ def _get_clearspace(self): return self.loader.capHeight / 2 case ClearSpace.RECOMMENDED: return self.loader.capHeight - case _: - raise Exception("Unknown ClearSpace") def make_svg_element(self): match self.style: @@ -257,13 +254,13 @@ def make_svg_element(self): d=self.get_path(self.layer), fill=self.color, ) - case _: - raise Exception("Unknown LogotypeStyle") - def make_svg_elements(self): - return (self.make_svg_element(),) + @override + def make_svg_elements(self) -> list[svg.Element]: + return flatten_svg_elements(self.make_svg_element()) - def make_filename(self, extras: tuple[str] = ()): + @override + def make_filename(self, extras: tuple[str, ...] = ()): return "-".join( [ "nixos", @@ -284,32 +281,26 @@ def __init__( loader: FontLoader | None = None, color: str = "black", style: LogotypeStyle = LogotypeStyle.REGULAR, - spacings: tuple[int] = DEFAULT_LOGOTYPE_SPACINGS, + spacings: tuple[int, ...] = DEFAULT_LOGOTYPE_SPACINGS, clear_space: ClearSpace = ClearSpace.RECOMMENDED, **kwargs, ): - self.loader = loader - self.characters = characters - self.loader = loader - self.color = color - self.style = style - self.spacings = spacings - self.clear_space = clear_space - - self._init_loader() + self.characters: str = characters + self.loader: FontLoader = loader if loader is not None else FontLoader() + self.color: str = color + self.style: LogotypeStyle = style + self.spacings: tuple[int, ...] = spacings + self.clear_space: ClearSpace = clear_space + self._load_glyphs() - self.cap_height = self.glyphs[0].loader.capHeight - self.scale = self.glyphs[0].loader.scale + self.cap_height: float = self.glyphs[0].loader.capHeight + self.scale: float = self.glyphs[0].loader.scale self._set_spacings() super().__init__(**kwargs) - def _init_loader(self): - if self.loader is None: - self.loader = FontLoader() - def _load_glyphs(self): - self.glyphs = tuple( + self.glyphs: tuple[Glyph, ...] = tuple( Glyph( loader=self.loader, character=character, @@ -326,6 +317,7 @@ def _set_spacings(self): character.layer.transform((1, 0, 0, 1, x_offset, 0)) x_offset += character.elements_width + @override def _get_clearspace(self): match self.clear_space: case ClearSpace.NONE: @@ -334,11 +326,10 @@ def _get_clearspace(self): return self.cap_height / 2 case ClearSpace.RECOMMENDED: return self.cap_height - case _: - raise Exception("Unknown ClearSpace") @property - def elements_bounding_box(self): + @override + def elements_bounding_box(self) -> tuple[float, float, float, float]: characters_box = tuple( f(elem) for f, elem in zip( @@ -349,10 +340,12 @@ def elements_bounding_box(self): with_lead_spacing = (characters_box[0] - self.spacings[0],) + characters_box[1:] return with_lead_spacing - def make_svg_elements(self): - return tuple(elem.make_svg_element() for elem in self.glyphs) + @override + def make_svg_elements(self) -> list[svg.Element]: + return flatten_svg_elements(*(elem.make_svg_element() for elem in self.glyphs)) - def make_filename(self, extras: tuple[str] = ()): + @override + def make_filename(self, extras: tuple[str, ...] = ()): return "-".join( [ self.characters.lower(), diff --git a/package-sets/python-packages/nixoslogo/nixoslogo/py.typed b/package-sets/python-packages/nixoslogo/nixoslogo/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/package-sets/python-packages/nixoslogo/poetry.lock b/package-sets/python-packages/nixoslogo/poetry.lock index 8354307..0d3cfa9 100644 --- a/package-sets/python-packages/nixoslogo/poetry.lock +++ b/package-sets/python-packages/nixoslogo/poetry.lock @@ -12,9 +12,6 @@ files = [ {file = "coloraide-6.1.tar.gz", hash = "sha256:cfd0c7c4801a4e070ed1106365ad72b5db207a0d7ab15b1936265def1918350d"}, ] -[package.dependencies] -typing-extensions = {version = "*", markers = "python_version < \"3.11\""} - [[package]] name = "jsonpickle" version = "4.1.1" @@ -205,20 +202,7 @@ files = [ [package.extras] dev = ["isort", "mypy", "pytest"] -[[package]] -name = "typing-extensions" -version = "4.15.0" -description = "Backported and Experimental Type Hints for Python 3.9+" -optional = false -python-versions = ">=3.9" -groups = ["main"] -markers = "python_version < \"3.11\"" -files = [ - {file = "typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548"}, - {file = "typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466"}, -] - [metadata] lock-version = "2.1" -python-versions = ">=3.9" -content-hash = "fc193b110f7e602b7eb744e6ef70b665cadb5d3f5995099ca956ea9d85876675" +python-versions = ">=3.12" +content-hash = "78043a0b8e093c703246fe998d22fb7fa3974c82cafa985ca51bd0af4fbcb0e8" diff --git a/package-sets/python-packages/nixoslogo/pyproject.toml b/package-sets/python-packages/nixoslogo/pyproject.toml index d3765a7..c49fd5f 100644 --- a/package-sets/python-packages/nixoslogo/pyproject.toml +++ b/package-sets/python-packages/nixoslogo/pyproject.toml @@ -6,7 +6,7 @@ authors = [ {name = "Daniel Baker",email = "daniel.n.baker@gmail.com"} ] readme = "README.md" -requires-python = ">=3.9" +requires-python = ">=3.12" dependencies = [ "svg-py (>=1.6.0,<2.0.0)", "coloraide (>=6.1,<7.0)", diff --git a/package-sets/top-level/nixos-branding/artifacts/clearspace/nixos-logo-clearspace/package.nix b/package-sets/top-level/nixos-branding/artifacts/clearspace/nixos-logo-clearspace/package.nix index e38c82a..57e8056 100644 --- a/package-sets/top-level/nixos-branding/artifacts/clearspace/nixos-logo-clearspace/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/clearspace/nixos-logo-clearspace/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-clearspace"; - outputHash = "sha256-2KzUQsyjcwfAH2fqUQrSZmJBSO0sMzC32lvptFSyVOw="; + outputHash = "sha256-+qZUvXFz27NfDS8CuwK9axmVLbvp/C3hRkPXjSHw3GA="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/clearspace/nixos-logomark-clearspace/package.nix b/package-sets/top-level/nixos-branding/artifacts/clearspace/nixos-logomark-clearspace/package.nix index a5ee886..0daec6c 100644 --- a/package-sets/top-level/nixos-branding/artifacts/clearspace/nixos-logomark-clearspace/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/clearspace/nixos-logomark-clearspace/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logomark-clearspace"; - outputHash = "sha256-f2LSFFGeJlkrhFHNN/2drhQr7mzlQ9VMBaXPk89P3p8="; + outputHash = "sha256-E4LIpv5fNcSQfD4GXoy3xfaUAm126kM0yV3XxqZM/O4="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/clearspace/nixos-logotype-clearspace/package.nix b/package-sets/top-level/nixos-branding/artifacts/clearspace/nixos-logotype-clearspace/package.nix index 1b20823..6d3e6e5 100644 --- a/package-sets/top-level/nixos-branding/artifacts/clearspace/nixos-logotype-clearspace/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/clearspace/nixos-logotype-clearspace/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logotype-clearspace"; - outputHash = "sha256-MKaFYf9/lxTWTdr2OfOMZU4CqtbAE/KmozY20xfPeXo="; + outputHash = "sha256-ieU5UYFA7q5DbgPuQ4dB/uIXxRRu1tGakbmmxJTC0/Y="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/dimensioned/nixos-lambda-dimensioned-angular/package.nix b/package-sets/top-level/nixos-branding/artifacts/dimensioned/nixos-lambda-dimensioned-angular/package.nix index 8985da0..2d2f899 100644 --- a/package-sets/top-level/nixos-branding/artifacts/dimensioned/nixos-lambda-dimensioned-angular/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/dimensioned/nixos-lambda-dimensioned-angular/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-lambda-dimensioned-angular"; - outputHash = "sha256-bKwUdEq0RDft5O8hEJTznPPppIK7xwUhx4FWCe8aXvg="; + outputHash = "sha256-0AM2MucU7L3zfx9bpvdB7xF+pjf3zgmcXxq306sgSHs="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/dimensioned/nixos-lambda-dimensioned-annotated-parameters/package.nix b/package-sets/top-level/nixos-branding/artifacts/dimensioned/nixos-lambda-dimensioned-annotated-parameters/package.nix index 24df387..2451661 100644 --- a/package-sets/top-level/nixos-branding/artifacts/dimensioned/nixos-lambda-dimensioned-annotated-parameters/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/dimensioned/nixos-lambda-dimensioned-annotated-parameters/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-lambda-dimensioned-annotated-parameters"; - outputHash = "sha256-l+FhSHMKZIOwe1xw0gccMBJ5SQD3VT10zgSRssZZ40k="; + outputHash = "sha256-fCmGIbHvDOf1ib6+TTgimbho4M42JbnRLwgM7CC4Its="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/dimensioned/nixos-lambda-dimensioned-linear/package.nix b/package-sets/top-level/nixos-branding/artifacts/dimensioned/nixos-lambda-dimensioned-linear/package.nix index e371290..c03fee8 100644 --- a/package-sets/top-level/nixos-branding/artifacts/dimensioned/nixos-lambda-dimensioned-linear/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/dimensioned/nixos-lambda-dimensioned-linear/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-lambda-dimensioned-linear"; - outputHash = "sha256-l+0RJGciZ77vdJXipJwuKmwpbdzCBe2WEZvnXiZYya0="; + outputHash = "sha256-3vayqRaTFO5HBvI4JZTqbI7x3aum45uytCFvX0kkUj8="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/dimensioned/nixos-logo-dimensioned/package.nix b/package-sets/top-level/nixos-branding/artifacts/dimensioned/nixos-logo-dimensioned/package.nix index 1c6afb6..6b668e1 100644 --- a/package-sets/top-level/nixos-branding/artifacts/dimensioned/nixos-logo-dimensioned/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/dimensioned/nixos-logo-dimensioned/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-dimensioned"; - outputHash = "sha256-XG26AAadjET63TIhdlGEjinntkpMOTcjbd1lxzF42No="; + outputHash = "sha256-0x2b3JebiKHSXjsH+bGSMCxge0I6e0lrzwOsSVLtcQQ="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/dimensioned/nixos-logomark-dimensioned-gradient-annotated/package.nix b/package-sets/top-level/nixos-branding/artifacts/dimensioned/nixos-logomark-dimensioned-gradient-annotated/package.nix index 054edcd..e43632c 100644 --- a/package-sets/top-level/nixos-branding/artifacts/dimensioned/nixos-logomark-dimensioned-gradient-annotated/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/dimensioned/nixos-logomark-dimensioned-gradient-annotated/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logomark-dimensioned-gradient-annotated"; - outputHash = "sha256-8xIAlGOhmbf1h8CMKWUELnSDbhJ3rCTJW0kd9cjmLqU="; + outputHash = "sha256-yFupUdgrzCt9KXxVgczKETRnuxl5WT0YQRrKY2gVHVU="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/dimensioned/nixos-logomark-dimensioned-linear/package.nix b/package-sets/top-level/nixos-branding/artifacts/dimensioned/nixos-logomark-dimensioned-linear/package.nix index 5f21e5a..03a82b0 100644 --- a/package-sets/top-level/nixos-branding/artifacts/dimensioned/nixos-logomark-dimensioned-linear/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/dimensioned/nixos-logomark-dimensioned-linear/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logomark-dimensioned-linear"; - outputHash = "sha256-bYyyE4c7UX2yQtbu1PBSfvPSo9CGMXMSgvCrbIVhAn0="; + outputHash = "sha256-UUPDC28b71PoXXmNpBVwDzP76Qna8DZoXoHFcm0zAV4="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/dimensioned/nixos-logotype-dimensioned/package.nix b/package-sets/top-level/nixos-branding/artifacts/dimensioned/nixos-logotype-dimensioned/package.nix index 6224fde..1703f49 100644 --- a/package-sets/top-level/nixos-branding/artifacts/dimensioned/nixos-logotype-dimensioned/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/dimensioned/nixos-logotype-dimensioned/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logotype-dimensioned"; - outputHash = "sha256-Ksqgr1MkWceOLZJZbB3guhAetv37N91wtb1agTQ6S5I="; + outputHash = "sha256-VUt20f8DNOTEBNWJy7GuRPLWvWBVWHgdK8zVDIrucS0="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/dimensioned/nixos-logotype-dimensioned/script.py b/package-sets/top-level/nixos-branding/artifacts/dimensioned/nixos-logotype-dimensioned/script.py index 3f070c8..2abb33e 100644 --- a/package-sets/top-level/nixos-branding/artifacts/dimensioned/nixos-logotype-dimensioned/script.py +++ b/package-sets/top-level/nixos-branding/artifacts/dimensioned/nixos-logotype-dimensioned/script.py @@ -6,7 +6,7 @@ # TODO @djacu see if this can be better annotations = Annotations.small() annotations.construction_lines.stroke = "black" -annotations.construction_lines.stroke_dasharray = 16 +annotations.construction_lines.stroke_dasharray = [16] loader = FontLoader(capHeight=512) diff --git a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-black-flat-black-regular-horizontal-none/package.nix b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-black-flat-black-regular-horizontal-none/package.nix index 8c445b8..dfee969 100644 --- a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-black-flat-black-regular-horizontal-none/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-black-flat-black-regular-horizontal-none/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-black-flat-black-regular-horizontal-none"; - outputHash = "sha256-zsuhKB9Yd9NcWqDy3GvSonWYDe36hi/55h7T3dzkM/4="; + outputHash = "sha256-0HJUlWpIHWu4ohaOTRU2TXHLh1R5ytVqIAe/Ih93Dko="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-black-flat-black-regular-vertical-none/package.nix b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-black-flat-black-regular-vertical-none/package.nix index 81956c8..1ef12cf 100644 --- a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-black-flat-black-regular-vertical-none/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-black-flat-black-regular-vertical-none/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-black-flat-black-regular-vertical-none"; - outputHash = "sha256-EHQ0Q86uNMoCgexIlvZh+CoV2sFmH8CgK9atWhPGl04="; + outputHash = "sha256-TF6XUSLsiw+D+6Ke8NBV1tEJHezW/8KdV4j2Y/rtICM="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-default-gradient-black-regular-horizontal-none/package.nix b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-default-gradient-black-regular-horizontal-none/package.nix index ede57d7..a249f20 100644 --- a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-default-gradient-black-regular-horizontal-none/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-default-gradient-black-regular-horizontal-none/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-default-gradient-black-regular-horizontal-none"; - outputHash = "sha256-oCaJTDZMqOjvf2nWXktbJaiXDD4r9y9f8ggjI4cflpA="; + outputHash = "sha256-FlekeTiWZQ7WaJm4iajeZU+e74KP139wJo9zArmbbYA="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-default-gradient-black-regular-vertical-none/package.nix b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-default-gradient-black-regular-vertical-none/package.nix index 691e135..26bb844 100644 --- a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-default-gradient-black-regular-vertical-none/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-default-gradient-black-regular-vertical-none/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-default-gradient-black-regular-vertical-none"; - outputHash = "sha256-t9fzJYP+s22ayKPXb3tuu6g9CD4kVQ9cP5bFRs9Ofb4="; + outputHash = "sha256-f8R8LOpUuU6MvOboi0TFMlv6gfoM6B+XDbMjIheUU/E="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-default-gradient-white-regular-horizontal-none/package.nix b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-default-gradient-white-regular-horizontal-none/package.nix index da0e53a..eb2f7b6 100644 --- a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-default-gradient-white-regular-horizontal-none/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-default-gradient-white-regular-horizontal-none/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-default-gradient-white-regular-horizontal-none"; - outputHash = "sha256-I26B04Szu8MUUnPMBTarrkiJEmwYUndTPt5BFAUW0hY="; + outputHash = "sha256-6B6LHrXlwPjojDpiubYdupyNPZu2YY6h8pXVoLF4bUE="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-default-gradient-white-regular-vertical-none/package.nix b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-default-gradient-white-regular-vertical-none/package.nix index a040d74..df31594 100644 --- a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-default-gradient-white-regular-vertical-none/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-default-gradient-white-regular-vertical-none/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-default-gradient-white-regular-vertical-none"; - outputHash = "sha256-3ce8HDQnJ/F89FX4slESS/X1wKgHpiwT5qLiOXgUb0s="; + outputHash = "sha256-UA7dZf4wroZKC1PLldRlb+r/itsznB5lmyqTRUHUt6Y="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-rainbow-gradient-black-regular-horizontal-none/package.nix b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-rainbow-gradient-black-regular-horizontal-none/package.nix index f87c8e5..01aba82 100644 --- a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-rainbow-gradient-black-regular-horizontal-none/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-rainbow-gradient-black-regular-horizontal-none/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-rainbow-gradient-black-regular-horizontal-none"; - outputHash = "sha256-OV2xzy2aMHDI/eRN7sOIwhrn979d8JUdKH1yf9lSffI="; + outputHash = "sha256-vZIGT0uLE1Q8WLEJKl4UEmjCyshKJYjYDKJzHbORtjc="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-rainbow-gradient-black-regular-vertical-none/package.nix b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-rainbow-gradient-black-regular-vertical-none/package.nix index 9653268..ce418ce 100644 --- a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-rainbow-gradient-black-regular-vertical-none/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-rainbow-gradient-black-regular-vertical-none/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-rainbow-gradient-black-regular-vertical-none"; - outputHash = "sha256-9YM2iuOa7FNjGgGUu/att9SjcDjr2NYA/vhuOmc8JyU="; + outputHash = "sha256-i9Thq9SrLtIV6EeM4jMvDhtabCDPnh2R6rk0hXtj37s="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-rainbow-gradient-white-regular-horizontal-none/package.nix b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-rainbow-gradient-white-regular-horizontal-none/package.nix index 0a6de35..3e5473c 100644 --- a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-rainbow-gradient-white-regular-horizontal-none/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-rainbow-gradient-white-regular-horizontal-none/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-rainbow-gradient-white-regular-horizontal-none"; - outputHash = "sha256-9yVrwfBzTGJIH/ZI79qgD4sn4MMn7+6tYZQag0u8LU4="; + outputHash = "sha256-0A1XviV/RE4hB1vJV8wZYolth4Fmk8gEmImUTCjHfQo="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-rainbow-gradient-white-regular-vertical-none/package.nix b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-rainbow-gradient-white-regular-vertical-none/package.nix index 9c9d741..e253b14 100644 --- a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-rainbow-gradient-white-regular-vertical-none/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-rainbow-gradient-white-regular-vertical-none/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-rainbow-gradient-white-regular-vertical-none"; - outputHash = "sha256-F79fcooHCl28QTY0JPgU/CxKjOZpsaTukAN4O67zJRY="; + outputHash = "sha256-ui6OVDd4YYYQn3FgS99K0jrmvGnYtfXpVDPG+5RwkMs="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-trans-gradient-white-regular-horizontal-none/package.nix b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-trans-gradient-white-regular-horizontal-none/package.nix index f087387..fe4562c 100644 --- a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-trans-gradient-white-regular-horizontal-none/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-trans-gradient-white-regular-horizontal-none/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-trans-gradient-white-regular-horizontal-none"; - outputHash = "sha256-cKUxz93fQ/UXYZLzTIw2XDkFmemihoPBRZqcv350gWk="; + outputHash = "sha256-UpaYO7YEBst+XOD6ILJQ9g518cLlzb8rYEYMeiHfDG4="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-trans-gradient-white-regular-vertical-none/package.nix b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-trans-gradient-white-regular-vertical-none/package.nix index 08b4d69..c2943ab 100644 --- a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-trans-gradient-white-regular-vertical-none/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-trans-gradient-white-regular-vertical-none/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-trans-gradient-white-regular-vertical-none"; - outputHash = "sha256-i0sqj250GXONVe4N7+AlolAhzoNlGFisfbau3nWoj8w="; + outputHash = "sha256-eiWqko1Uw3D8b0xXU6ZXyHpOCmhrXjLnxX1GSPrDoi8="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-white-flat-white-regular-horizontal-none/package.nix b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-white-flat-white-regular-horizontal-none/package.nix index b1eaaa8..6696b6a 100644 --- a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-white-flat-white-regular-horizontal-none/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-white-flat-white-regular-horizontal-none/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-white-flat-white-regular-horizontal-none"; - outputHash = "sha256-fa3Ktu+9PWQl1E0pXrF/xI7n5i1KLHpJ8vzdLKVe51E="; + outputHash = "sha256-GR9xH1RtNFdBfj64/Dvnr7ov/hIQ1CsLtbG7bd+5kq0="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-white-flat-white-regular-vertical-none/package.nix b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-white-flat-white-regular-vertical-none/package.nix index e7814f7..89fa501 100644 --- a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-white-flat-white-regular-vertical-none/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logo-white-flat-white-regular-vertical-none/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-white-flat-white-regular-vertical-none"; - outputHash = "sha256-w/uQnD8nJOfO9oFqN9W26xYJ8cBj0dfnUtGjNQPMRnA="; + outputHash = "sha256-yegl3sTj8VA1X0Q9V/aRqll5bvnyQyzWT/O1E6k2bWg="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logomark-default-gradient-none/package.nix b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logomark-default-gradient-none/package.nix index 14b601e..fcc6afc 100644 --- a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logomark-default-gradient-none/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logomark-default-gradient-none/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logomark-default-gradient-none"; - outputHash = "sha256-NMUPemzi4Wt9HYff0hu3BJKRcRk7WkIeLdcymgLYvag="; + outputHash = "sha256-OI1mzdM3rLjQ8vdDOV+X2t0FUEhniavgxAI9NfV7Z5E="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logomark-rainbow-gradient-none/package.nix b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logomark-rainbow-gradient-none/package.nix index 4245e3a..c6c8e9e 100644 --- a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logomark-rainbow-gradient-none/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logomark-rainbow-gradient-none/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logomark-rainbow-gradient-none"; - outputHash = "sha256-BB3U9Q7rAf3DjtyLoQRLG2SCRPe3R1UwgrydA8rg32o="; + outputHash = "sha256-yAX7kid1Q9lhIBNpadT9gCAoGNdoBZhwigI6eiSYr30="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logomark-trans-gradient-none/package.nix b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logomark-trans-gradient-none/package.nix index f67655d..3a5a9c9 100644 --- a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logomark-trans-gradient-none/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logomark-trans-gradient-none/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logomark-trans-gradient-none"; - outputHash = "sha256-x3dA6rPK2dnR9dZMLlIkDFChETGKv3rsfKl/gCZzDA4="; + outputHash = "sha256-C/0GpduB2OOh1qTOnqxEU710LY97JkZGh9rVQFrUOsk="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logotype-black-coloredx-none/package.nix b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logotype-black-coloredx-none/package.nix index 4194c65..fa8b253 100644 --- a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logotype-black-coloredx-none/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logotype-black-coloredx-none/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logotype-black-coloredx-none"; - outputHash = "sha256-m+8mWslVWnknaGVA2xrCxqIjIw8lyjU/nke9q6Bflyo="; + outputHash = "sha256-Y0eNuZGi3RTVxc4lXDOY2EM7FgNTrc7pCbnCI42mDgg="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logotype-white-coloredx-none/package.nix b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logotype-white-coloredx-none/package.nix index 02099de..0ae1449 100644 --- a/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logotype-white-coloredx-none/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/internal/nixos-logotype-white-coloredx-none/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logotype-white-coloredx-none"; - outputHash = "sha256-2o9I5xBKUMXPsw7Yi7ZuGGfMGPbQghpYXqB5yc3XNn4="; + outputHash = "sha256-Jh91mbRaMMWlqgcY5mk8RkR6NSNbHTUcAyeIUBSwpS8="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-black-flat-black-regular-horizontal-minimal/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-black-flat-black-regular-horizontal-minimal/package.nix index 9669d58..f6e6eb3 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-black-flat-black-regular-horizontal-minimal/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-black-flat-black-regular-horizontal-minimal/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-black-flat-black-regular-horizontal-minimal"; - outputHash = "sha256-URR6uEodYh7fmClN5QQBR16kKu+uPzaeOBJny09jb1c="; + outputHash = "sha256-EGTUr2slTrT87MlAcS8ygwInjdwaVCu/hb+1Ci2Uvpg="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-black-flat-black-regular-horizontal-recommended/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-black-flat-black-regular-horizontal-recommended/package.nix index 1b44d11..8017e95 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-black-flat-black-regular-horizontal-recommended/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-black-flat-black-regular-horizontal-recommended/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-black-flat-black-regular-horizontal-recommended"; - outputHash = "sha256-XVTihRfleyhD6HAHrLzo8ckZ9O8vkoFzoWRUUxkE2vo="; + outputHash = "sha256-Pfx7WRL/cpxrqmsTw2v0+ys/UnXUW6Bl1ZXatw6riD4="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-black-flat-black-regular-vertical-minimal/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-black-flat-black-regular-vertical-minimal/package.nix index 258c9c3..fa2a122 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-black-flat-black-regular-vertical-minimal/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-black-flat-black-regular-vertical-minimal/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-black-flat-black-regular-vertical-minimal"; - outputHash = "sha256-ehDKqLNh/Oijv5fmMTuM0CEBRmM+tvxGTypl/p1Nouc="; + outputHash = "sha256-owixjFkiodAP9vmwj0J1kxQzG0jC5nbhFVIeTRqm78w="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-black-flat-black-regular-vertical-recommended/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-black-flat-black-regular-vertical-recommended/package.nix index 5243df6..db34963 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-black-flat-black-regular-vertical-recommended/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-black-flat-black-regular-vertical-recommended/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-black-flat-black-regular-vertical-recommended"; - outputHash = "sha256-Wmcf448a6xenN/VquQ7qmRZPWeSgPLxD4JIJdcqfWIo="; + outputHash = "sha256-wIienVz5/nGOB2TuR+sdAQpGY+6T8tqZALLyeXj6u9M="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-default-gradient-black-regular-horizontal-minimal/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-default-gradient-black-regular-horizontal-minimal/package.nix index 9174a1f..0877c3c 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-default-gradient-black-regular-horizontal-minimal/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-default-gradient-black-regular-horizontal-minimal/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-default-gradient-black-regular-horizontal-minimal"; - outputHash = "sha256-eUq4k6c2Jlbu5e6BjlW1EiJrik18741cKN34diWiVss="; + outputHash = "sha256-cLN5e3t9Fx2vhQpCN/7PCXYQUR0+rZnnOAbsV8oLJok="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-default-gradient-black-regular-horizontal-recommended/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-default-gradient-black-regular-horizontal-recommended/package.nix index 689b6f8..f734f12 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-default-gradient-black-regular-horizontal-recommended/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-default-gradient-black-regular-horizontal-recommended/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-default-gradient-black-regular-horizontal-recommended"; - outputHash = "sha256-a42b5ZaPkfH2Fvs3NU6w/I2uyf4+/A/e6bi54rovJrw="; + outputHash = "sha256-sfhdmTKZsmdsNA8IjB0IIvkRAl4vUOJruIJgp4Oy1LE="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-default-gradient-black-regular-vertical-minimal/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-default-gradient-black-regular-vertical-minimal/package.nix index 7562d54..fc978d6 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-default-gradient-black-regular-vertical-minimal/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-default-gradient-black-regular-vertical-minimal/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-default-gradient-black-regular-vertical-minimal"; - outputHash = "sha256-L+mKuWhiYnf2tT5eNvfNDFbIUTYRiW1NdzKegruaeHU="; + outputHash = "sha256-ZlxdM/RAVuLnpIJa82Jq+mJsEcfzmuYU1+xL421hqqs="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-default-gradient-black-regular-vertical-recommended/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-default-gradient-black-regular-vertical-recommended/package.nix index 6d49d06..248d3ea 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-default-gradient-black-regular-vertical-recommended/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-default-gradient-black-regular-vertical-recommended/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-default-gradient-black-regular-vertical-recommended"; - outputHash = "sha256-FcatCth8jbeSGkA/nRETP1D9xG0GMcImUZ7xulOKrko="; + outputHash = "sha256-h05HVfK4SG7RbSlHFHxW2kzeLXQv2JwTqw+IvftkGxI="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-default-gradient-white-regular-horizontal-minimal/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-default-gradient-white-regular-horizontal-minimal/package.nix index 9e8533e..570a382 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-default-gradient-white-regular-horizontal-minimal/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-default-gradient-white-regular-horizontal-minimal/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-default-gradient-white-regular-horizontal-minimal"; - outputHash = "sha256-6PurCgMalta1GK0W23e5c024IzU3LUAsbLV9tgbpQZk="; + outputHash = "sha256-4emi0mG3yjGnj12HUdhnLxQIxriwZw+jfVgiubA7y4g="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-default-gradient-white-regular-horizontal-recommended/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-default-gradient-white-regular-horizontal-recommended/package.nix index 6bf7111..7472e24 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-default-gradient-white-regular-horizontal-recommended/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-default-gradient-white-regular-horizontal-recommended/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-default-gradient-white-regular-horizontal-recommended"; - outputHash = "sha256-EbLod3EzJuaoo9Wm8gUeAwONw7S7/bViZmrf5BCa/sw="; + outputHash = "sha256-lm/GycahntOTHiSBga53iM9S2U2iqmFqyCw2XfwB+4g="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-default-gradient-white-regular-vertical-minimal/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-default-gradient-white-regular-vertical-minimal/package.nix index 1485819..880acd6 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-default-gradient-white-regular-vertical-minimal/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-default-gradient-white-regular-vertical-minimal/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-default-gradient-white-regular-vertical-minimal"; - outputHash = "sha256-Y1WBBUHa8Axr095VEUQH3wluIz3DQZhF4lrx69MbIQo="; + outputHash = "sha256-3Jewqq8ptxTn8o2bu8wbssPznFXWrqbXcNySwzB0/nQ="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-default-gradient-white-regular-vertical-recommended/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-default-gradient-white-regular-vertical-recommended/package.nix index 70a11ba..90a2716 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-default-gradient-white-regular-vertical-recommended/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-default-gradient-white-regular-vertical-recommended/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-default-gradient-white-regular-vertical-recommended"; - outputHash = "sha256-tPaDMIOIaiIxXXdecV+uiw/3UtpyZnhJ//jCAQjN2Ng="; + outputHash = "sha256-EwCfj1T6nzxJ9PAO+/PLFnSuhYVJKpn6qmUfAM1AdTg="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-rainbow-gradient-black-regular-horizontal-minimal/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-rainbow-gradient-black-regular-horizontal-minimal/package.nix index 8c9c9d0..b43a647 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-rainbow-gradient-black-regular-horizontal-minimal/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-rainbow-gradient-black-regular-horizontal-minimal/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-rainbow-gradient-black-regular-horizontal-minimal"; - outputHash = "sha256-AHiNNSsdgv2nMY7XHcCXS+UzukpdCO1DTKZihNk4KSw="; + outputHash = "sha256-8dJ6RDHL6GnAMRLbLhfsHkp1ZVs5LxK/DI0sIDhp7F0="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-rainbow-gradient-black-regular-horizontal-recommended/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-rainbow-gradient-black-regular-horizontal-recommended/package.nix index 3642a3f..b01718d 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-rainbow-gradient-black-regular-horizontal-recommended/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-rainbow-gradient-black-regular-horizontal-recommended/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-rainbow-gradient-black-regular-horizontal-recommended"; - outputHash = "sha256-DzVMBMCouIf/jr5t9C/hMw1A82sfYZEJ87A22r0pxiE="; + outputHash = "sha256-SgL8wSrC3NZSIVD18WcRoH9HWnSsSn01WyCD321Zz98="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-rainbow-gradient-black-regular-vertical-minimal/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-rainbow-gradient-black-regular-vertical-minimal/package.nix index 9fc694f..45b47ac 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-rainbow-gradient-black-regular-vertical-minimal/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-rainbow-gradient-black-regular-vertical-minimal/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-rainbow-gradient-black-regular-vertical-minimal"; - outputHash = "sha256-/UAY+Rz7n+bXePAcuXSCnm16yIzABZya6Cnxr4sk4/4="; + outputHash = "sha256-u46lI+MplV21QJzkpAxt8zze7rMmOAjlaaJyQAwv0j4="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-rainbow-gradient-black-regular-vertical-recommended/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-rainbow-gradient-black-regular-vertical-recommended/package.nix index 2abdb75..926736e 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-rainbow-gradient-black-regular-vertical-recommended/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-rainbow-gradient-black-regular-vertical-recommended/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-rainbow-gradient-black-regular-vertical-recommended"; - outputHash = "sha256-dweJ50oE0ZnGSglzcgTxLDhCRuvwyLJEZ+0xFnoqi4E="; + outputHash = "sha256-lwbP9UGj55fc6gJPcxmpHqc2DA6IPJAgUXTPrIwciDg="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-rainbow-gradient-white-regular-horizontal-minimal/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-rainbow-gradient-white-regular-horizontal-minimal/package.nix index d021158..b00ad63 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-rainbow-gradient-white-regular-horizontal-minimal/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-rainbow-gradient-white-regular-horizontal-minimal/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-rainbow-gradient-white-regular-horizontal-minimal"; - outputHash = "sha256-bEWBRJ/wHyl7vBXx9gBNCxX67QxaIhkpCkUPh0ocK4o="; + outputHash = "sha256-xyLgDMZfL+RILlxWuShckR80z8z7YFcU7BQLab+2tm4="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-rainbow-gradient-white-regular-horizontal-recommended/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-rainbow-gradient-white-regular-horizontal-recommended/package.nix index 7ab473c..27141a3 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-rainbow-gradient-white-regular-horizontal-recommended/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-rainbow-gradient-white-regular-horizontal-recommended/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-rainbow-gradient-white-regular-horizontal-recommended"; - outputHash = "sha256-7irDWUpApJ8Ia+r0s3ELswRPWUk7KWhMYKbD//YkD3I="; + outputHash = "sha256-2suQ/KjvQH6DLbVHPGTPmE1DwU4swzNtHaRA5hySCMU="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-rainbow-gradient-white-regular-vertical-minimal/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-rainbow-gradient-white-regular-vertical-minimal/package.nix index 9ef5520..039cd6a 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-rainbow-gradient-white-regular-vertical-minimal/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-rainbow-gradient-white-regular-vertical-minimal/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-rainbow-gradient-white-regular-vertical-minimal"; - outputHash = "sha256-TCyIVCmLCe4PVoOpB6D4BMqOmO+qs7AVpiWI8Iw5t2g="; + outputHash = "sha256-xWupEO0fwyTrhLYjtqMZDq9cirfUotYed8exRL/9WdQ="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-rainbow-gradient-white-regular-vertical-recommended/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-rainbow-gradient-white-regular-vertical-recommended/package.nix index aa97434..79be9f1 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-rainbow-gradient-white-regular-vertical-recommended/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-rainbow-gradient-white-regular-vertical-recommended/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-rainbow-gradient-white-regular-vertical-recommended"; - outputHash = "sha256-r4pymoCIkaAFrhj2EOIsWpMOE5ZQLFLRTCef7rHqGcg="; + outputHash = "sha256-wc3T0ZbXXPTXgZUk+2AeqHhXxTNyi5tRPuiemtisic4="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-trans-gradient-white-regular-horizontal-minimal/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-trans-gradient-white-regular-horizontal-minimal/package.nix index db7fc58..64ecc4a 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-trans-gradient-white-regular-horizontal-minimal/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-trans-gradient-white-regular-horizontal-minimal/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-trans-gradient-white-regular-horizontal-minimal"; - outputHash = "sha256-W4JJ2Cwioz7hc6mAQUMGuodAcjw6Xbf6y7u0CvR1IDg="; + outputHash = "sha256-UK4XdSNLALa0YVanHFI/vU9efObRv7y6ZQbLNChC3TA="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-trans-gradient-white-regular-horizontal-recommended/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-trans-gradient-white-regular-horizontal-recommended/package.nix index e91e372..fa17d72 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-trans-gradient-white-regular-horizontal-recommended/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-trans-gradient-white-regular-horizontal-recommended/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-trans-gradient-white-regular-horizontal-recommended"; - outputHash = "sha256-EmJLrzTjeKN/ydSn/ue76eewYqJn564rhvQ/nfzyOhs="; + outputHash = "sha256-nN8BNBdZ5Nfv3RL+lBn6hjD0i6QmGzK5DnnTcTRQYQg="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-trans-gradient-white-regular-vertical-minimal/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-trans-gradient-white-regular-vertical-minimal/package.nix index 1d25470..c599b04 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-trans-gradient-white-regular-vertical-minimal/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-trans-gradient-white-regular-vertical-minimal/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-trans-gradient-white-regular-vertical-minimal"; - outputHash = "sha256-0JY3h764F34kcStKEhMiGpAYkK4RJN+8+18/tw2Z8LA="; + outputHash = "sha256-o8mgRUggwLyqs3QjeQnu0YU0S3eLOmgz/iY6Q6HR170="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-trans-gradient-white-regular-vertical-recommended/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-trans-gradient-white-regular-vertical-recommended/package.nix index 819d026..d2f69d4 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-trans-gradient-white-regular-vertical-recommended/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-trans-gradient-white-regular-vertical-recommended/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-trans-gradient-white-regular-vertical-recommended"; - outputHash = "sha256-owbjMRYoSL/gLCgQe3afYl0OH97gR/8V3v78vYgr4JE="; + outputHash = "sha256-wziN3VSA/F69jCNOsHnxvDhrD3Kw5ReI7mmAxpa3ZVs="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-white-flat-white-regular-horizontal-minimal/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-white-flat-white-regular-horizontal-minimal/package.nix index 97ebfe7..b1b73fb 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-white-flat-white-regular-horizontal-minimal/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-white-flat-white-regular-horizontal-minimal/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-white-flat-white-regular-horizontal-minimal"; - outputHash = "sha256-xqfUqsQH4P/B6D6Qb1SZj/WwaQ2/zft4cDdBE/V/Ng8="; + outputHash = "sha256-i7nbJrHZ/Zj1KKhbVA5ian5ufuVbPkSUs1NF5gCSrec="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-white-flat-white-regular-horizontal-recommended/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-white-flat-white-regular-horizontal-recommended/package.nix index 8ae56e4..31f1e48 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-white-flat-white-regular-horizontal-recommended/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-white-flat-white-regular-horizontal-recommended/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-white-flat-white-regular-horizontal-recommended"; - outputHash = "sha256-hoLie+tFprsAkcZBewVgM2W/07KwHBzvdljda9vBaGA="; + outputHash = "sha256-hnDGr4yj1D9GJWzNDS8diT1h9HXDwE0q1irfvdOl/MM="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-white-flat-white-regular-vertical-minimal/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-white-flat-white-regular-vertical-minimal/package.nix index 138b8c2..6fe77fb 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-white-flat-white-regular-vertical-minimal/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-white-flat-white-regular-vertical-minimal/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-white-flat-white-regular-vertical-minimal"; - outputHash = "sha256-+4ARIr6yXTf3zphjS2VDk11sEaK1HyLXeZM+IJq/Sb8="; + outputHash = "sha256-rUcxYjV1dTVIOxnw0ht9qPmSRF5st/rRfgxW34ZAel8="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-white-flat-white-regular-vertical-recommended/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-white-flat-white-regular-vertical-recommended/package.nix index 3430e56..7e2865b 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-white-flat-white-regular-vertical-recommended/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logo-white-flat-white-regular-vertical-recommended/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-white-flat-white-regular-vertical-recommended"; - outputHash = "sha256-RvVRYENA5sSFMIOOOADBeGMF2Zf/eOpgq4fD4xJw1uI="; + outputHash = "sha256-kwt0jnFzEJ5E9sHadqR2IMbcbDCZFyyoaQ90vUWgifI="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logomark-default-gradient-minimal/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logomark-default-gradient-minimal/package.nix index cf89e9e..bab7124 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logomark-default-gradient-minimal/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logomark-default-gradient-minimal/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logomark-default-gradient-minimal"; - outputHash = "sha256-Sm3X9mK7208H2FHr82tm16SqikeMArwwo3wtnofjxgg="; + outputHash = "sha256-aj9ll6mX8Z1mcsiZaCRvXH0NSLowwbFdiDrBKs5HYVg="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logomark-default-gradient-recommended/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logomark-default-gradient-recommended/package.nix index 352e8f0..5d3dcff 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logomark-default-gradient-recommended/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logomark-default-gradient-recommended/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logomark-default-gradient-recommended"; - outputHash = "sha256-34sw86tPXubcfL+MBGzmsX6PEaG0F9r1n3Rn0WHnxZQ="; + outputHash = "sha256-Ub0nK7dFDX+hkxDqeQuKUgUbv6WuPXVkqw/fqFDbRA0="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logomark-rainbow-gradient-minimal/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logomark-rainbow-gradient-minimal/package.nix index dcf8454..e2c754b 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logomark-rainbow-gradient-minimal/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logomark-rainbow-gradient-minimal/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logomark-rainbow-gradient-minimal"; - outputHash = "sha256-e1jpbIvt+2rNN9UGJfUbndefhczRq1to1a6GHvW9FuQ="; + outputHash = "sha256-qPyw0HG3PoSc2uZnzIe0pRpjib+yVOes5f+Xcf0PDo8="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logomark-rainbow-gradient-recommended/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logomark-rainbow-gradient-recommended/package.nix index 8b26253..58851f6 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logomark-rainbow-gradient-recommended/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logomark-rainbow-gradient-recommended/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logomark-rainbow-gradient-recommended"; - outputHash = "sha256-uHM7vMhfL+oNiSWxx3nwMQvf6qgmxbaxmoHN0JXbDzM="; + outputHash = "sha256-0aQJWf0mFl5tCFpLLk96F9ftK090BAqCZ8cAtY5GAzM="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logomark-trans-gradient-minimal/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logomark-trans-gradient-minimal/package.nix index 93e776a..157100a 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logomark-trans-gradient-minimal/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logomark-trans-gradient-minimal/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logomark-trans-gradient-minimal"; - outputHash = "sha256-lcCQ+v4NVnQzQbGSLRj9a91kKEpYvEZIhvLnYxPX40k="; + outputHash = "sha256-WQLWIez9d9sLZP0pjeCOCIm2Ukw1TI5Wy2dFzS0bv1c="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logomark-trans-gradient-recommended/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logomark-trans-gradient-recommended/package.nix index 0b8bc72..2cb1a6e 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logomark-trans-gradient-recommended/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logomark-trans-gradient-recommended/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logomark-trans-gradient-recommended"; - outputHash = "sha256-luMbAS8Qr2y/FkKdckvFlT1pIsi97AmKglw++lEz6JE="; + outputHash = "sha256-GsL1OLCiF0snv+bVd+V/XKcQcQRXt0k3ctmj16v+IlM="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logotype-black-coloredx-minimal/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logotype-black-coloredx-minimal/package.nix index 9e05246..a748051 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logotype-black-coloredx-minimal/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logotype-black-coloredx-minimal/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logotype-black-coloredx-minimal"; - outputHash = "sha256-fQB6znbnGQO3voD3xpMhRDYSqokfYuGQpB5tIOsHUP4="; + outputHash = "sha256-WOonXazEHq+DznXS8h0Lgir/Lgw+4EWlhUcEdVFQ01g="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logotype-black-coloredx-recommended/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logotype-black-coloredx-recommended/package.nix index 58a4ef5..b72c57a 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logotype-black-coloredx-recommended/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logotype-black-coloredx-recommended/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logotype-black-coloredx-recommended"; - outputHash = "sha256-zVzTwZIM768QQ2h0LNY3uh1ZiXgpvo7Zh3x2t2oqkQg="; + outputHash = "sha256-iXV/inspGubcotuh6/OBy0oN58tSQtyw7AmepcEgdYA="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logotype-white-coloredx-minimal/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logotype-white-coloredx-minimal/package.nix index c36c391..777b3c6 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logotype-white-coloredx-minimal/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logotype-white-coloredx-minimal/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logotype-white-coloredx-minimal"; - outputHash = "sha256-te7GGSq5chZdlo7pXwXsePwzWa60XwVcdOaAVRoEX8I="; + outputHash = "sha256-aXpB00Pb3zdWRk1s4iqVzyJOQk7k6wU4AwSRn8O7uJQ="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logotype-white-coloredx-recommended/package.nix b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logotype-white-coloredx-recommended/package.nix index af610b6..08545ab 100644 --- a/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logotype-white-coloredx-recommended/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/media-kit/nixos-logotype-white-coloredx-recommended/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logotype-white-coloredx-recommended"; - outputHash = "sha256-YMNBRms8M3bmLkzEsqU5MbhNjqH55zXTjssVbDl5910="; + outputHash = "sha256-pyx0s/qumxLKyr+2MDBb/HwwM5fIRPk+NZfOEbPZUXo="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/misuse/nixos-logo-misuse-crop/package.nix b/package-sets/top-level/nixos-branding/artifacts/misuse/nixos-logo-misuse-crop/package.nix index 006d558..524e665 100644 --- a/package-sets/top-level/nixos-branding/artifacts/misuse/nixos-logo-misuse-crop/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/misuse/nixos-logo-misuse-crop/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-misuse-crop"; - outputHash = "sha256-cQLXt06V6c3kW0WfijsyfO6GnTw/Rchhr+AW5PMhWuQ="; + outputHash = "sha256-K0Q6CcGLOjWAsUznnbmJSQH7KZx4Upg4szOClXQaPZI="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/misuse/nixos-logo-misuse-lambdaprime/package.nix b/package-sets/top-level/nixos-branding/artifacts/misuse/nixos-logo-misuse-lambdaprime/package.nix index 360b2b2..4fdfe0e 100644 --- a/package-sets/top-level/nixos-branding/artifacts/misuse/nixos-logo-misuse-lambdaprime/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/misuse/nixos-logo-misuse-lambdaprime/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-misuse-lambdaprime"; - outputHash = "sha256-9amChIiqfTaoHbAbcBTs7cIY7YUJoUojAM8sBZEisz0="; + outputHash = "sha256-CcWYBFQMLgWyn10ofSkHUXXgvjJVVQN2EnOwPeZd1jg="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/misuse/nixos-logo-misuse-scale/package.nix b/package-sets/top-level/nixos-branding/artifacts/misuse/nixos-logo-misuse-scale/package.nix index ea8eb47..ebe6af2 100644 --- a/package-sets/top-level/nixos-branding/artifacts/misuse/nixos-logo-misuse-scale/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/misuse/nixos-logo-misuse-scale/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logo-misuse-scale"; - outputHash = "sha256-RfKqEqtFJDk13V69EL+7mRcWbF35oHfbLQWDtjrQPEM="; + outputHash = "sha256-TMU8auc7SIHCVK7uYy5FPDevmHW5uzKKr0HowiSJpo8="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/misuse/nixos-logomark-misuse-mirror/package.nix b/package-sets/top-level/nixos-branding/artifacts/misuse/nixos-logomark-misuse-mirror/package.nix index cc447c0..f9c65b8 100644 --- a/package-sets/top-level/nixos-branding/artifacts/misuse/nixos-logomark-misuse-mirror/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/misuse/nixos-logomark-misuse-mirror/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logomark-misuse-mirror"; - outputHash = "sha256-cLQP54BfpoQsjGGtFgFPbMVz8o1KsQMj3yFjzpNCzxg="; + outputHash = "sha256-rbWeatDp5BBU8wSacdH9EwTtZaWthJ5x1Ro0TxQYVjc="; script = ./script.py; } diff --git a/package-sets/top-level/nixos-branding/artifacts/misuse/nixos-logomark-misuse-rotate/package.nix b/package-sets/top-level/nixos-branding/artifacts/misuse/nixos-logomark-misuse-rotate/package.nix index 7e9ec60..5f67955 100644 --- a/package-sets/top-level/nixos-branding/artifacts/misuse/nixos-logomark-misuse-rotate/package.nix +++ b/package-sets/top-level/nixos-branding/artifacts/misuse/nixos-logomark-misuse-rotate/package.nix @@ -1,6 +1,6 @@ { artifact-builder }: artifact-builder { name = "nixos-logomark-misuse-rotate"; - outputHash = "sha256-GvolEpXZkQjX9X48hisQINzvrcDGROHN1Lyg5eGqYck="; + outputHash = "sha256-hzV4Z1wMxORICPspM/EEgM4IJphbJkMgKAxo/yFAl2I="; script = ./script.py; }