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().

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

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-09-02
Created: 2023-09-02