From d70530cb0ec4b467274c3be704f4d76e9ca7a3ee Mon Sep 17 00:00:00 2001 From: Aaron <29749331+aarnphm@users.noreply.github.com> Date: Sat, 10 Jun 2023 03:04:56 -0400 Subject: [PATCH] chore: add stubs for deepmerge [generated] Signed-off-by: Aaron <29749331+aarnphm@users.noreply.github.com> --- .pre-commit-config.yaml | 1 + typings/deepmerge/__init__.pyi | 13 +++++++++++++ typings/deepmerge/merger.pyi | 25 +++++++++++++++++++++++++ typings/deepmerge/strategy/core.pyi | 15 +++++++++++++++ typings/deepmerge/strategy/dict.pyi | 8 ++++++++ typings/deepmerge/strategy/list.pyi | 12 ++++++++++++ typings/deepmerge/strategy/set.pyi | 14 ++++++++++++++ 7 files changed, 88 insertions(+) create mode 100644 typings/deepmerge/__init__.pyi create mode 100644 typings/deepmerge/merger.pyi create mode 100644 typings/deepmerge/strategy/core.pyi create mode 100644 typings/deepmerge/strategy/dict.pyi create mode 100644 typings/deepmerge/strategy/list.pyi create mode 100644 typings/deepmerge/strategy/set.pyi diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 598781f4..97fc3b23 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -36,6 +36,7 @@ repos: exclude: | (?x)^( tools/.*| + typings/.*| .github/.* )$ - repo: local diff --git a/typings/deepmerge/__init__.pyi b/typings/deepmerge/__init__.pyi new file mode 100644 index 00000000..149329c2 --- /dev/null +++ b/typings/deepmerge/__init__.pyi @@ -0,0 +1,13 @@ +from typing import List +from typing import Tuple +from typing import Union +from typing import Literal + +from .merger import Merger + +DEFAULT_TYPE_SPECIFIC_MERGE_STRATEGIES: List[ + Tuple[type, Union[Literal["append"], Literal["merge"], Literal["union"]]] +] = ... +always_merger: Merger = ... +merge_or_raise: Merger = ... +conservative_merger: Merger = ... diff --git a/typings/deepmerge/merger.pyi b/typings/deepmerge/merger.pyi new file mode 100644 index 00000000..275f3d9a --- /dev/null +++ b/typings/deepmerge/merger.pyi @@ -0,0 +1,25 @@ +from typing import Any +from typing import Dict +from typing import List +from typing import Tuple +from typing import Union + +from .strategy.set import SetStrategies +from .strategy.core import StrategyList +from .strategy.dict import DictStrategies +from .strategy.list import ListStrategies + +ConfigDictType = Dict[str, Any] + +class Merger: + PROVIDED_TYPE_STRATEGIES: Dict[type, Union[ListStrategies, DictStrategies, SetStrategies]] = ... + + def __init__( + self, + type_strategies: List[Tuple[type, str]], + fallback_strategies: List[str], + type_conflict_strategies: List[str], + ) -> None: ... + def merge(self, base: ConfigDictType, nxt: ConfigDictType) -> None: ... + def type_conflict_strategy(self, *args: Any) -> Any: ... + def value_strategy(self, path: str, base: StrategyList, nxt: StrategyList) -> None: ... diff --git a/typings/deepmerge/strategy/core.pyi b/typings/deepmerge/strategy/core.pyi new file mode 100644 index 00000000..207a32d9 --- /dev/null +++ b/typings/deepmerge/strategy/core.pyi @@ -0,0 +1,15 @@ +from typing import Any +from typing import List +from typing import Union +from typing import Callable +from typing import Optional + +_StringOrFunction = Union[str, Callable[..., Any]] +STRATEGY_END: object = ... + +class StrategyList: + NAME: Optional[str] = ... + def __init__(self, strategy_list: Union[_StringOrFunction, List[_StringOrFunction]]) -> None: ... + @classmethod + def _expand_strategy(cls, strategy: _StringOrFunction) -> _StringOrFunction: ... + def __call__(self, *args: Any, **kwargs: Any) -> Any: ... diff --git a/typings/deepmerge/strategy/dict.pyi b/typings/deepmerge/strategy/dict.pyi new file mode 100644 index 00000000..50087412 --- /dev/null +++ b/typings/deepmerge/strategy/dict.pyi @@ -0,0 +1,8 @@ +from .core import StrategyList +from ..merger import Merger + +class DictStrategies(StrategyList): + @staticmethod + def strategy_merge(config: Merger, path: str, base: StrategyList, nxt: StrategyList) -> StrategyList: ... + @staticmethod + def strategy_override(config: Merger, path: str, base: StrategyList, nxt: StrategyList) -> StrategyList: ... diff --git a/typings/deepmerge/strategy/list.pyi b/typings/deepmerge/strategy/list.pyi new file mode 100644 index 00000000..c3a1f0ea --- /dev/null +++ b/typings/deepmerge/strategy/list.pyi @@ -0,0 +1,12 @@ +from .core import StrategyList +from ..merger import Merger + +class ListStrategies(StrategyList): + NAME: str = ... + + @staticmethod + def strategy_override(config: Merger, path: str, base: StrategyList, nxt: StrategyList) -> StrategyList: ... + @staticmethod + def strategy_prepend(config: Merger, path: str, base: StrategyList, nxt: StrategyList) -> StrategyList: ... + @staticmethod + def strategy_append(config: Merger, path: str, base: StrategyList, nxt: StrategyList) -> StrategyList: ... diff --git a/typings/deepmerge/strategy/set.pyi b/typings/deepmerge/strategy/set.pyi new file mode 100644 index 00000000..bda98a37 --- /dev/null +++ b/typings/deepmerge/strategy/set.pyi @@ -0,0 +1,14 @@ +from typing import Any + +from .core import StrategyList +from ..merger import Merger + +class SetStrategies(StrategyList): + NAME = ... + + @staticmethod + def strategy_union(config: Any, path: str, base: StrategyList, nxt: StrategyList) -> StrategyList: ... + @staticmethod + def strategy_intersect(config: Any, path: str, base: StrategyList, nxt: StrategyList) -> StrategyList: ... + @staticmethod + def strategy_override(config: Merger, path: str, base: StrategyList, nxt: StrategyList) -> StrategyList: ...