Repository URL to install this package:
|
Version:
3.0.0.dev3 ▾
|
"""base protocol for all merging strategies"""
from typing import Any, List, Protocol, Tuple
from .standard_merge import Bayesian, NoSynthetic, Simple, SyntheticAsFallback
class Merger(Protocol): # pylint: disable=too-few-public-methods
"""Protocol for Merge strategies"""
def merge(
self,
dp_keys: List[Tuple[Any, ...]],
dp_values: List[List[Any]],
sy_keys: List[Tuple[Any, ...]],
sy_values: List[List[Any]],
) -> List[List[Any]]:
"""Protocol for the merging function"""
...
def simple(**kwargs: Any) -> Merger:
"""Create and return a Simple merger"""
return Simple(**kwargs)
def bayesian(**kwargs: Any) -> Merger:
"""Create and return a Bayesian merger"""
return Bayesian(**kwargs)
def synthetic_as_fallback(**_kwargs: Any) -> Merger:
"""Create and return a SyntheticAsFallback merger"""
return SyntheticAsFallback()
def no_synthetic(**_kwargs: Any) -> Merger:
"""Create and return a NoSynthetic merger"""
return NoSynthetic()
def logistic(**kwargs: Any) -> Merger:
"""Create and return a Logistic merger"""
from .tf_merge import Logistic
return Logistic(**kwargs)
def neural_network(**kwargs: Any) -> Merger:
"""Create and return a neural network merger"""
from .tf_merge import NN
return NN(**kwargs)