Gestion des aggrégations

Classe aggrégatrice des mesures.

Created on Sun Nov 22 12:41:19 2020

@author: Cyrile Delestre

class dstk.metrics._aggregator.Aggregator[source]

Bases: object

Classe agrégatrice pour le décorateur sniffer() offrant un comportement par défaut. Il est possible de faire hériter cette classe pour construire d’autres agrégateurs ou changer son comportement.

Elle doit contenir la méthode make_message qui renvoit un dictionnaire. Rien n’y oblige, mais en standard elle renvoit tourjours au moins le type de la variable avec le mot clef ‘type’.

Examples

Voici un exemple de surchage de la classe Aggregator où l’on souhaite changer le comportement sur les listes et ajouter un nouveau type MonObj.

>>> from functools import wraps, singledispatchmethod
>>> from dstk.metrics import Aggregator
>>> 
>>> class MonAggregator(Aggregator):
>>>     "docstring de la classe"
>>> 
>>>     # Important : redéfinir la méthode make_message en la décorant
>>>     # de singledispatchmethod et qui renvoit vers le make_message
>>>     # de la classe mère
>>>     @singledispatchmethod
>>>     def make_message(self, input):
>>>         return super().make_message(input)
>>> 
>>>     # Ajout d'un agrégateur pour le type MonObj
>>>     @make_message.register
>>>     def _(self, input: MonObj):
>>>         return dict(type='MonObj', out=input.out)
>>> 
>>>     # Surchage du type list
>>>     @make_message.register
>>>     def _(self, input: list):
>>>         return dict(
>>>             type = 'list',
>>>             len = len(input),
>>>             out = input[0]
>>>          )
make_message(input)[source]
make_message(input: str)
make_message(input: numpy.integer)
make_message(input: numpy.integer)
make_message(input: numpy.integer)
make_message(input: numpy.integer)
make_message(input: tuple)
make_message(input: tuple)
make_message(input: numpy.ndarray)
make_message(input: pandas.core.frame.DataFrame)
make_message(input: dict)
make_message(input: None)
class singledispatchmethod(func)

Bases: object

Single-dispatch generic method descriptor.

Supports wrapping existing descriptors and handles non-descriptor callables as instance methods.

register(cls, func)func

Registers a new implementation for the given cls on a generic_method.