registry
data.registry
Canonical database registry — resolves short names to YAML file paths.
Works both from pip-installed packages and editable/dev installs. Searches recursively within each category directory so that models in subfolders (e.g. database/models/julia/) are automatically discovered.
Attributes
| Name | Description |
|---|---|
| DATABASE_ROOT |
Functions
| Name | Description |
|---|---|
| database_dir | Return the database directory for a given entity class. |
| iri_target | (class_name, local_name) for a curated-entity IRI, or None when it is not one. |
| list_entries | List all available database entries for a class. |
| list_entries_with_metadata | Every entry in the given class category, as dicts with name, model_type, description, path. |
| local_name | Strip an optional prefix: from a CURIE / IRI, returning the local name. |
| resolve | Resolve a short name to a database YAML file path. |
| resolve_iri | Resolve a curated-entity IRI to its database YAML path. |
database_dir
data.registry.database_dir(cls_name)Return the database directory for a given entity class.
iri_target
data.registry.iri_target(iri)(class_name, local_name) for a curated-entity IRI, or None when it is not one.
tvbo:experiment/JR_MEG_FrequencyGradient_Optimization -> ("SimulationExperiment", "JR_MEG_FrequencyGradient_Optimization"). Returns None for a bare name (no scope), for a result/ reference (a produced container, which :mod:tvbo.data.dataref resolves against a study’s results directory), and for any unknown scope — so a caller falls back rather than being handed the wrong entity.
The prefix: is required, and that is what separates an IRI from a relative path: without it network/Glasser.yaml reads as scope network, and a path the caller meant to open would be resolved against the database instead.
list_entries
data.registry.list_entries(cls_name)List all available database entries for a class.
list_entries_with_metadata
data.registry.list_entries_with_metadata(cls_name)Every entry in the given class category, as dicts with name, model_type, description, path.
Fast — reads only the first ~30 lines of each YAML file.
local_name
data.registry.local_name(iri)Strip an optional prefix: from a CURIE / IRI, returning the local name.
tvbo:KuramotoCoupling -> KuramotoCoupling; a bare name is returned unchanged. Single source of truth for CURIE-prefix stripping, so the class-layer _iri_local helpers don’t each re-implement it.
resolve
data.registry.resolve(cls_name, name)Resolve a short name to a database YAML file path.
Tries exact top-level stem match first (fast path), then searches recursively by canonical name: field and file stem (case-insensitive). For Network, also matches BIDS filenames containing the atlas name.
resolve_iri
data.registry.resolve_iri(iri)Resolve a curated-entity IRI to its database YAML path.
New specs reference curated entities this way because a relative path is not portable: !include splices a document without rebasing the paths inside it, so an experiment included out of the database resolves its own network.bids_dir against the including file and loads the wrong root. An IRI carries no path, so the database resolves it against the database.