pnpl.tasks.base.TaskProtocol

pnpl.tasks.base.TaskProtocol#

class pnpl.tasks.base.TaskProtocol(*args, **kwargs)[source]#

Protocol defining what a Task must implement.

Tasks are responsible for: 1. Collecting samples from dataset metadata (e.g., events files) 2. Transforming raw labels into the desired format 3. Providing label metadata (classes, mappings)

Example usage:

@dataclass class MyTask:

tmin: float = 0.0 tmax: float = 0.5

def collect_samples(self, dataset) -> list[tuple]:

# Extract samples from dataset …

def get_label(self, sample: tuple) -> Any:

# Transform sample tuple into label …

@property def label_info(self) -> dict:

return {‘classes’: […], ‘label_to_id’: {…}}

__init__(*args, **kwargs)#

Methods

__init__(*args, **kwargs)

collect_samples(dataset)

Collect sample tuples from dataset metadata.

get_label(sample)

Extract/transform label from a sample tuple.

Attributes

label_info

Return label metadata.