# DerivedDatasetInput

## class nominal.experimental.derived_datasets.DerivedDatasetInput(dataset_rid, filters=(), add_tag=None, offset=0)

Bases: [`object`](https://docs.python.org/3/builtins/functions.html#object "(in Python v3.15)")

One input dataset of a derived dataset, with the per-input transforms applied to it.

The transforms match those the app offers on a composition’s input, and apply in this order: the filters
select series, [`add_tag`](https://dev.nominal.io/python/ref/generated/nominal.experimental.derived_datasets.DerivedDatasetInput.md#nominal.experimental.derived_datasets.DerivedDatasetInput.add_tag "nominal.experimental.derived_datasets.DerivedDatasetInput.add_tag") labels what survives, and [`offset`](https://dev.nominal.io/python/ref/generated/nominal.experimental.derived_datasets.DerivedDatasetInput.md#nominal.experimental.derived_datasets.DerivedDatasetInput.offset "nominal.experimental.derived_datasets.DerivedDatasetInput.offset") shifts the timestamps.

Use [`DerivedDatasetInput.create`](https://dev.nominal.io/python/ref/generated/nominal.experimental.derived_datasets.DerivedDatasetInput.md#nominal.experimental.derived_datasets.DerivedDatasetInput.create "nominal.experimental.derived_datasets.DerivedDatasetInput.create") to build one from a `Dataset` rather than a RID.

### dataset_rid: str

RID of the input dataset.

### filters: Sequence[TagFilter] = ()

Clauses narrowing which series are included, ANDed together. Empty means the whole dataset.

### add_tag: tuple[str, str] | None = None

A tag key and value to attach to this input’s series, distinguishing them from the other inputs’.

### offset: timedelta | int = 0

Shift every timestamp on this input by this much; positive moves it later. Stored as nanoseconds.

### classmethod create(dataset, *, filters=(), add_tag=None, offset=0)

An input naming `dataset`, with the given transforms applied to it.

Return type:
:   [*Self*](https://docs.python.org/3/library/typing.html#typing.Self "(in Python v3.15)")
