Skip to content

dandi/dandi-schema

Folders and files

NameName
Last commit message
Last commit date

Latest commit

782c421 · Feb 24, 2025
Nov 18, 2024
Feb 24, 2025
Mar 24, 2022
May 26, 2021
Sep 8, 2021
Aug 5, 2020
Oct 8, 2024
Jan 7, 2025
Aug 16, 2019
Sep 8, 2021
Jan 11, 2025
Nov 9, 2023
Nov 4, 2024
Dec 15, 2021
Nov 9, 2023

Repository files navigation

DANDI Schema

dandi-schema is a Python library for maintaining and managing DANDI metadata schemata.

Installation

pip install dandischema

Description

Every Dandiset and associated asset has a metadata object that can be retrieved using the DANDI API. This library helps create and validate DANDI schema-compliant metadata for Dandisets and assets. It uses Pydantic to implement all the metadata classes. Schemas are generated on schema modifications and placed into this repository.

dandi-schema also generates JSON schema definitions and an associated context.json file for JSON-LD compliance of the metadata models.

Important files in this repository include:

  • models.py - contains the models
  • metadata.py - contains functions for validating, migrating, and aggregating metadata
  • datacite.py - converts the Dandiset metadata to a Datacite metadata structure

The generated JSON schemas can be used together with VJSF to create a UI for Dandiset metadata modification as used for Dandiset metadata modification on https://dandiarchive.org.

Also Pydantic models are used by DANDI Client/Library to validate metadata while submitting data to the archive, and later by the DANDI Archive itself to ensure that all metadata conforms the model before Dandiset is allowed to be published and gain a DOI. Such DOI generation is done via Datacite service, and dandi-schema library produces Datacite metadata records out of the Pydantic models.

Resources