project
Pydantic models related to projects.
ProjectAnalysisConfig
pydantic-model
¶
Bases: BaseModel
One analysis configuration a project has completed results from.
Fields:
-
analysis_config_id(str) -
name(str) -
analysis_count(int) -
study_count(int)
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:
-
tags(TagsSet | None) -
description(DescriptionStr | None) -
name(NameString) -
pseudonymisation(Pseudonymisation) -
visibility(Visibility)
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:
-
total(NonNegativeInt) -
offset(NonNegativeInt) -
limit(PositiveInt) -
projects(list[ProjectOut])
ProjectOut
pydantic-model
¶
Bases: ProjectCreate
Project information available to user.
Fields:
-
tags(TagsSet | None) -
description(DescriptionStr | None) -
name(NameString) -
pseudonymisation(Pseudonymisation) -
visibility(Visibility) -
id(UUID) -
created_at(datetime) -
owner_id(UUID | None) -
created_by(UUID | None) -
recordings_at_site(bool) -
study_count(int) -
recording_count(int) -
analyzed_count(int) -
analyses_count(int) -
total_duration_ms(int) -
lights_complete_count(int) -
subject_count(int) -
demographics_count(int)
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:
-
tags(TagsSet | None) -
description(DescriptionStr | None) -
name(NameString | None) -
visibility(Visibility | None)
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:Trueextra: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).