Skip to content

analysis_manifest

The analysis manifest: the one document an analysis container receives.

The platform invokes an analysis container with a single argument, --manifest-file <path>, and nothing else. The manifest names every input by its path inside the container and describes it, carries the custom parameters typed as the configuration declared them, states the resources reserved for the run, and names the output the container must write. Small structured context (the channels, the subject and study metadata) is inline; the recording and any upstream events document are files the manifest points at, by the path the container sees them at. It contains no credential and no signed URL, so it may be logged.

AnalysisManifest pydantic-model

Bases: BaseModel

The document an analysis container receives, and nothing else.

Config:

  • extra: forbid
  • frozen: True

Fields:

Validators:

  • _consistent

parameters pydantic-field

Custom parameters by key, typed as the configuration declared them.

slots pydantic-field

Ordered labelled input positions; empty for type-only requirements.

json_schema() classmethod

Return the JSON schema of the manifest, for containers in other languages.

ChannelRef pydantic-model

Bases: BaseModel

One channel of the recording as the platform resolved it for this run.

Config:

  • extra: forbid
  • frozen: True

Fields:

Validators:

  • _drop_legacy_derivation

index pydantic-field

The channel's ordinal in the recording file. Load by this.

laterality = None pydantic-field

Left or right, when inferred or declared.

name pydantic-field

The display name the user gave the channel.

sample_rate = None pydantic-field

Native sampling rate in Hz, if known.

slot = None pydantic-field

The label of the slot this channel fills, when the configuration declares slots.

source_name pydantic-field

The label as it appears in the file header, immutable.

type pydantic-field

The signal type as classified on the platform.

unit = None pydantic-field

Physical unit, if known.

FileInput pydantic-model

Bases: BaseModel

A file the manifest points at inside the container.

Config:

  • extra: forbid
  • frozen: True

Fields:

  • path (str)

Validators:

  • _inside_the_container → path

ManifestAnalysis pydantic-model

Bases: BaseModel

Which analysis and configuration this run is, for provenance.

Config:

  • extra: forbid
  • frozen: True

Fields:

config_id pydantic-field

The configuration id, e.g. u-sleep-research-v2.

config_sha1 = None pydantic-field

The registered configuration's content hash.

id = None pydantic-field

The analysis id on the platform; None for a hand run.

ManifestInputs pydantic-model

Bases: BaseModel

Everything the container reads.

Config:

  • extra: forbid
  • frozen: True

Fields:

events = None pydantic-field

Upstream events document, when the configuration declares event inputs.

ManifestMetadata pydantic-model

Bases: BaseModel

Inline context an analysis may use; absent when the configuration declares no metadata input.

Config:

  • extra: forbid
  • frozen: True

Fields:

ManifestOutputs pydantic-model

Bases: BaseModel

Where the container must write.

Config:

  • extra: forbid
  • frozen: True

Fields:

events pydantic-field

The events document (see the events output format).

ManifestRecording pydantic-model

Bases: BaseModel

The recording the analysis reads, with the channels selected for it.

Config:

  • extra: forbid
  • frozen: True

Fields:

Validators:

  • _inside_the_container → path
  • _unique_indices → channels

channels pydantic-field

The channels selected for this run.

path pydantic-field

Path of the recording file as the container sees it.

start = None pydantic-field

The recording's start as written in its header, a wall clock, not an instant.

ManifestResources pydantic-model

Bases: BaseModel

What the run has been given. The cgroup enforces the memory; the container sizes its pools to the cores.

Config:

  • extra: forbid
  • frozen: True

Fields:

  • cpus (PositiveInt)
  • memory_mib (PositiveInt)
  • gpus (NonNegativeInt)
  • gpu_devices (list[str])
  • gpu_memory_mib (list[PositiveInt])

cpus pydantic-field

Whole cores reserved for the run; size thread pools to this.

memory_mib pydantic-field

System memory in MiB; exceeding it is an OOM kill.

ManifestStudy pydantic-model

Bases: BaseModel

Study-level markers, as milliseconds from the recording start.

Config:

  • extra: forbid
  • frozen: True

Fields:

  • lights_off_ms (int | None)
  • lights_on_ms (int | None)

ManifestSubject pydantic-model

Bases: BaseModel

What the platform knows about the subject, for analyses that use it.

Config:

  • extra: forbid
  • frozen: True

Fields:

  • age (NonNegativeInt | None)
  • sex (Sex | None)
  • bmi (PositiveFloat | None)

SlotDefinition pydantic-model

Bases: BaseModel

An ordered, labelled input position of the analysis and the channel that fills it.

Config:

  • extra: forbid
  • frozen: True

Fields:

Validators:

  • _drop_legacy_derivation

channel_index pydantic-field

The recording channel filling the slot.

label pydantic-field

The slot's label from the configuration.