Skip to content

Types

This module contains types, protocols, decorators and generic function transformations. Some of it probably belongs elsewhere.

SupervisedModel

Bases: Protocol

This is the minimal Protocol that valuation methods require from models in order to work.

All that is needed are the standard sklearn methods fit(), predict() and score().

fit(x, y)

Fit the model to the data

PARAMETER DESCRIPTION
x

Independent variables

TYPE: NDArray

y

Dependent variable

TYPE: NDArray

Source code in src/pydvl/utils/types.py
def fit(self, x: NDArray, y: NDArray):
    """Fit the model to the data

    Args:
        x: Independent variables
        y: Dependent variable
    """
    pass

predict(x)

Compute predictions for the input

PARAMETER DESCRIPTION
x

Independent variables for which to compute predictions

TYPE: NDArray

RETURNS DESCRIPTION
NDArray

Predictions for the input

Source code in src/pydvl/utils/types.py
def predict(self, x: NDArray) -> NDArray:
    """Compute predictions for the input

    Args:
        x: Independent variables for which to compute predictions

    Returns:
        Predictions for the input
    """
    pass

score(x, y)

Compute the score of the model given test data

PARAMETER DESCRIPTION
x

Independent variables

TYPE: NDArray

y

Dependent variable

TYPE: NDArray

RETURNS DESCRIPTION
float

The score of the model on (x, y)

Source code in src/pydvl/utils/types.py
def score(self, x: NDArray, y: NDArray) -> float:
    """Compute the score of the model given test data

    Args:
        x: Independent variables
        y: Dependent variable

    Returns:
        The score of the model on `(x, y)`
    """
    pass

NoPublicConstructor

Bases: ABCMeta

Metaclass that ensures a private constructor

If a class uses this metaclass like this:

class SomeClass(metaclass=NoPublicConstructor):
    pass

If you try to instantiate your class (SomeClass()), a TypeError will be thrown.

Taken almost verbatim from: https://stackoverflow.com/a/64682734

create(*args, **kwargs)

Create an instance of the class

Source code in src/pydvl/utils/types.py
def create(cls, *args: Any, **kwargs: Any):
    """Create an instance of the class"""
    return super().__call__(*args, **kwargs)

ensure_seed_sequence(seed=None)

If the passed seed is a SeedSequence object then it is returned as is. If it is a Generator the internal protected seed sequence from the generator gets extracted. Otherwise, a new SeedSequence object is created from the passed (optional) seed.

PARAMETER DESCRIPTION
seed

Either an int, a Generator object a SeedSequence object or None.

TYPE: Optional[Union[Seed, SeedSequence]] DEFAULT: None

RETURNS DESCRIPTION
SeedSequence

A SeedSequence object.

New in version 0.7.0

Source code in src/pydvl/utils/types.py
def ensure_seed_sequence(
    seed: Optional[Union[Seed, SeedSequence]] = None
) -> SeedSequence:
    """
    If the passed seed is a SeedSequence object then it is returned as is. If it is
    a Generator the internal protected seed sequence from the generator gets extracted.
    Otherwise, a new SeedSequence object is created from the passed (optional) seed.

    Args:
        seed: Either an int, a Generator object a SeedSequence object or None.

    Returns:
        A SeedSequence object.

    !!! tip "New in version 0.7.0"
    """
    if isinstance(seed, SeedSequence):
        return seed
    elif isinstance(seed, Generator):
        return cast(SeedSequence, seed.bit_generator.seed_seq)  # type: ignore
    else:
        return SeedSequence(seed)

Last update: 2023-12-21
Created: 2023-12-21