Skip to content

Comments

Update the pydantic models for datasets and files.#37

Merged
pierrepo merged 3 commits intomainfrom
feature/output-models
Jan 8, 2026
Merged

Update the pydantic models for datasets and files.#37
pierrepo merged 3 commits intomainfrom
feature/output-models

Conversation

@Essmaw
Copy link
Collaborator

@Essmaw Essmaw commented Jan 7, 2026

Apply suggested modifications from @pierrepo.

@pierrepo
Copy link
Member

pierrepo commented Jan 7, 2026

@Essmaw Nice. Let me know when I can review and merge.

@pierrepo
Copy link
Member

pierrepo commented Jan 7, 2026

In models/datasets.py, do you think dataset_project and dataset_id_in_project could be computed fields, automatically derived from dataset_repository and dateset_id_in_repository, but with the ability to manually provide dataset_project and dataset_id_in_project if needed?

For instance (inspired from documentation):

class DatasetMetadata(BaseModel):
    dataset_repository: DatasetRepository = Field(
        ...,
        description=(
            "Name of the source repository. "
            "Allowed values: ZENODO, FIGSHARE, OSF, NOMAD, ATLAS, GPCRMD."
        ),
    )

    dataset_id_in_repository: str = Field(
        ...,
        description="Unique identifier of the dataset in the source repository.",
    )

    @computed_field
    def dataset_project(self) -> DatasetRepository:
        """Name of the project."""
        return self.dataset_repository

    @dataset_project.setter
    def dataset_project(self, new_name: DatasetProject) -> None:
        self.dataset_project = new_name

    @computed_field
    def dataset_id_in_project(self) -> str:
        """ID of the project."""
        return self.dataset_id_in_repository

    @dataset_project.setter
    def dataset_id_in_project(self, new_id: str) -> None:
        self.dataset_id_in_project = new_id

@pierrepo
Copy link
Member

pierrepo commented Jan 8, 2026

This sounds good @Essmaw 🎉
Ready to merge?

@pierrepo pierrepo merged commit 5f58d6a into main Jan 8, 2026
@pierrepo pierrepo deleted the feature/output-models branch January 8, 2026 20:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants