From 4a706d00bb321e117cc9b5c2d228190cfc52651d Mon Sep 17 00:00:00 2001 From: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Thu, 27 Feb 2025 09:36:34 +1000 Subject: [PATCH] feat(app): use generic for append_list util --- invokeai/app/invocations/metadata_linked.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/invokeai/app/invocations/metadata_linked.py b/invokeai/app/invocations/metadata_linked.py index 59fafd4a832..2bf22692bff 100644 --- a/invokeai/app/invocations/metadata_linked.py +++ b/invokeai/app/invocations/metadata_linked.py @@ -3,7 +3,7 @@ # Thanks to @skunworkxdark for the original implementation! import copy -from typing import Any, Dict, Literal, Optional, Union +from typing import Any, Dict, Literal, Optional, TypeVar, Union from pydantic import model_validator @@ -119,8 +119,10 @@ "vae", ] +T = TypeVar("T") -def append_list(item_cls: type[Any], new_item: Any, items: Union[Any, list[Any], None] = None) -> list[Any]: + +def append_list(item_cls: type[T], new_item: T, items: Union[T, list[T], None] = None) -> list[T]: """Combines any number of items or lists into a single list, ensuring consistency in type. @@ -142,7 +144,7 @@ def append_list(item_cls: type[Any], new_item: Any, items: Union[Any, list[Any], if items is None: return [new_item] - result: list[item_cls] = [] + result: list[T] = [] if isinstance(items, item_cls): result.append(items)