typevar example (#25064)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
import os
|
import os
|
||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
from collections.abc import Callable
|
from collections.abc import Callable
|
||||||
from typing import Any
|
from typing import TypeVar
|
||||||
|
|
||||||
from configs import dify_config
|
from configs import dify_config
|
||||||
from core.tools.utils.yaml_utils import load_yaml_file
|
from core.tools.utils.yaml_utils import load_yaml_file
|
||||||
@@ -72,11 +72,14 @@ def pin_position_map(original_position_map: dict[str, int], pin_list: list[str])
|
|||||||
return position_map
|
return position_map
|
||||||
|
|
||||||
|
|
||||||
|
T = TypeVar("T")
|
||||||
|
|
||||||
|
|
||||||
def is_filtered(
|
def is_filtered(
|
||||||
include_set: set[str],
|
include_set: set[str],
|
||||||
exclude_set: set[str],
|
exclude_set: set[str],
|
||||||
data: Any,
|
data: T,
|
||||||
name_func: Callable[[Any], str],
|
name_func: Callable[[T], str],
|
||||||
) -> bool:
|
) -> bool:
|
||||||
"""
|
"""
|
||||||
Check if the object should be filtered out.
|
Check if the object should be filtered out.
|
||||||
@@ -103,9 +106,9 @@ def is_filtered(
|
|||||||
|
|
||||||
def sort_by_position_map(
|
def sort_by_position_map(
|
||||||
position_map: dict[str, int],
|
position_map: dict[str, int],
|
||||||
data: list[Any],
|
data: list[T],
|
||||||
name_func: Callable[[Any], str],
|
name_func: Callable[[T], str],
|
||||||
) -> list[Any]:
|
):
|
||||||
"""
|
"""
|
||||||
Sort the objects by the position map.
|
Sort the objects by the position map.
|
||||||
If the name of the object is not in the position map, it will be put at the end.
|
If the name of the object is not in the position map, it will be put at the end.
|
||||||
@@ -122,9 +125,9 @@ def sort_by_position_map(
|
|||||||
|
|
||||||
def sort_to_dict_by_position_map(
|
def sort_to_dict_by_position_map(
|
||||||
position_map: dict[str, int],
|
position_map: dict[str, int],
|
||||||
data: list[Any],
|
data: list[T],
|
||||||
name_func: Callable[[Any], str],
|
name_func: Callable[[T], str],
|
||||||
) -> OrderedDict[str, Any]:
|
):
|
||||||
"""
|
"""
|
||||||
Sort the objects into a ordered dict by the position map.
|
Sort the objects into a ordered dict by the position map.
|
||||||
If the name of the object is not in the position map, it will be put at the end.
|
If the name of the object is not in the position map, it will be put at the end.
|
||||||
@@ -134,4 +137,4 @@ def sort_to_dict_by_position_map(
|
|||||||
:return: an OrderedDict with the sorted pairs of name and object
|
:return: an OrderedDict with the sorted pairs of name and object
|
||||||
"""
|
"""
|
||||||
sorted_items = sort_by_position_map(position_map, data, name_func)
|
sorted_items = sort_by_position_map(position_map, data, name_func)
|
||||||
return OrderedDict([(name_func(item), item) for item in sorted_items])
|
return OrderedDict((name_func(item), item) for item in sorted_items)
|
||||||
|
Reference in New Issue
Block a user