nemo_curator.tasks.tasks
nemo_curator.tasks.tasks
Module Contents
Classes
Data
API
Bases: Generic[T]
Abstract base class for tasks in the pipeline.
A task represents a batch of data to be processed. Different modalities (text, audio, video) can implement their own task types.
Get the number of items in this task.
Post-initialization hook.
Assign this task’s deterministic task_id from its parent.
The task_id is the parent id and this task’s own segment joined
by "_" — e.g. parent "abc123" + suffix 0 →
"abc123_0". Always overwrites task_id; there is no
idempotency check — each stage transition re-derives it, so the
same physical Python object passing through N stages gets N
distinct task_ids (one per stage boundary). The dedup keys
used by resumability are captured BEFORE this method runs on a
given output, so the rewrite is safe.
Only a single parent id is taken: the supported mappings (1→1,
1→N fan-out, N→N positional) each give an output exactly one
parent. N→1 aggregations don’t track ancestry — those outputs get
a random "r"-prefixed id in the adapter instead of calling this.
Parameters:
task_id of the parent. An empty string
(an unassigned / EmptyTask parent) is dropped so it doesn’t
contribute a leading "_" to the path.
This task’s own segment of the id
path — appended after the parent id. Either a positional
index (int → coerced to str) for plain emissions,
or a string id (e.g. a content-based hash from
:py:meth:get_deterministic_id) for source-stage emissions
where stability across input reordering matters.
Add performance stats for a stage.
Return a content-based identifier for this task as a source,
or None to fall back to the positional index.
Override in subclasses that have stable content. The canonical
example is :class:FileGroupTask, which hashes its sorted file
paths so that adding or removing files between runs doesn’t shift
the identifiers of unchanged source partitions.
Only called by source-stage adapters; non-source stages ignore this and always use positional indices.
This task’s source-partition identity: the trailing segment of
task_id (the id-path leaf). At a source stage that segment is the
partition’s own id (content id or index); the resumability layer stamps
it onto _source_id and inherits it downstream. Kept here next to
:py:meth:_set_task_id so the "_" id-path encoding lives in one place.
Validate the task data.