Skip to content

expr

Expr

Source code in slimfit/v2/expr.py
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
class Expr:
    def __init__(self, expr) -> None:
        self._expr = expr

    @property
    def expr(self):
        return self._expr

    @cached_property
    def symbols(self) -> set[sp.Symbol]:
        return set()

    def filter_kwargs(self, **kwargs) -> dict[str, Numerical]:
        """Parse kwargs and take only the ones in `free_parameters`"""
        try:
            kwargs = {k: kwargs[k] for k in {s.name for s in self.symbols}}
        except KeyError as e:
            raise KeyError(f"Missing value for {e}") from e

        return kwargs

    def __getitem__(self, item):
        return GetItem(self, item)

    def __call__(self, **kwargs):
        return self._expr

filter_kwargs(**kwargs)

Parse kwargs and take only the ones in free_parameters

Source code in slimfit/v2/expr.py
26
27
28
29
30
31
32
33
def filter_kwargs(self, **kwargs) -> dict[str, Numerical]:
    """Parse kwargs and take only the ones in `free_parameters`"""
    try:
        kwargs = {k: kwargs[k] for k in {s.name for s in self.symbols}}
    except KeyError as e:
        raise KeyError(f"Missing value for {e}") from e

    return kwargs