Skip to content

project

Pydantic models related to projects.

ProjectAnalysisConfig pydantic-model

Bases: BaseModel

One analysis configuration a project has completed results from.

Fields:

analysis_config_id pydantic-field

The configuration's stable identifier, as reports and analysis requests name it.

analysis_count pydantic-field

Completed analyses this configuration produced in the project.

name pydantic-field

Display name of the configuration.

study_count pydantic-field

Studies with at least one completed analysis from it.

ProjectCreate pydantic-model

Bases: NamedEntityCreate

Create payload for a project. name is required.

Fields:

pseudonymisation pydantic-field

The project's pseudonymisation policy. Fixed when the project is created.

visibility = Visibility.PRIVATE pydantic-field

Who can access the project: private (its owner only), org (every member of the organization) or shared (its owner plus the members it is explicitly shared with). Defaults to private.

ProjectListResponse pydantic-model

Bases: PaginatedResponse

A page of the projects you can open.

Fields:

ProjectOut pydantic-model

Bases: ProjectCreate

Project information available to user.

Fields:

analyses_count = 0 pydantic-field

Total number of analyses

analyzed_count = 0 pydantic-field

Recordings with >= 1 completed analysis

created_at pydantic-field

Creation timestamp of the project

created_by = None pydantic-field

The user who created the project (null if that user was deleted). Provenance only; it does not change when ownership does.

demographics_count = 0 pydantic-field

Subjects with at least one subject-metadata field (age/sex/BMI) set — counted per subject, so a person characterised on thirty nights counts once.

id pydantic-field

Unique identifier of the project

lights_complete_count = 0 pydantic-field

Studies with BOTH lights markers set (the statistics window is fully defined). The completeness headline pairs this with study_count.

owner_id = None pydantic-field

The member who owns the project: the only one who can change its visibility, share it or delete it. Ownership passes to the organization's owner when a member leaves.

recording_count = 0 pydantic-field

Number of recordings

recordings_at_site = False pydantic-field

Whether the project's recordings live in its organisation's bucket rather than on the platform. Fixed when the project is created; its analyses then run only on the organisation's own runners.

study_count = 0 pydantic-field

Number of studies

subject_count = 0 pydantic-field

Distinct subjects among the project's studies. A study with no subject key is its own subject, so a project where nobody set a key reads the same as study_count; where keys are set, this is how many people the studies belong to.

total_duration_ms = 0 pydantic-field

Total recording duration in ms

ProjectUpdate pydantic-model

Bases: NamedEntityUpdate

PATCH payload for a project — all fields are optional.

See NamedEntityUpdate for the universal PATCH semantics (omit-to-skip, include-to-set, null-to-clear).

Fields:

visibility = None pydantic-field

If set, change who can access the project.

Pseudonymisation pydantic-model

Bases: BaseModel

A project's pseudonymisation policy: chosen when it is created, never changed.

The EDF patient and recording identification fields are blanked in every project, whatever its policy.

Config:

  • frozen: True
  • extra: forbid

Fields:

dates = RecordingDates.REAL pydantic-field

Whether recordings keep their start dates (real) or have them replaced by EDF+'s unknown date before upload (removed); the time of day stays either way.

file_names = FileNames.ORIGINAL pydantic-field

Whether recordings keep their file names (original) or carry a code instead (coded).