Handle schema v1.1.0 (#2002)

Correctly display datasets that follow schema version 1.1.0
This commit is contained in:
Marcus Kinsella
2020-12-14 15:20:29 -08:00
committed by GitHub
parent 0b91371ea8
commit 46d02b1987
7 changed files with 132 additions and 9 deletions
+2 -2
View File
@@ -63,9 +63,9 @@ def corpora_get_props_from_anndata(adata):
raise KeyError(f"missing Corpora schema field {key}")
corpora_props[key] = adata.uns[key]
for key in CorporaConstants.REQUIRED_JSON_ENCODED_METADATA_FIELD:
for key in CorporaConstants.OPTIONAL_JSON_ENCODED_METADATA_FIELD:
if key not in adata.uns:
raise KeyError(f"missing Corpora schema field {key}")
continue
try:
corpora_props[key] = json.loads(adata.uns[key])
except json.JSONDecodeError:
+10 -4
View File
@@ -5,12 +5,18 @@ class CorporaConstants(object):
"layer_descriptions",
"organism",
"organism_ontology_term_id",
"project_name",
"project_description",
]
# The Corpora specification requires some values encoded as JSON due to the inability of AnnData to store complex
# types.
REQUIRED_JSON_ENCODED_METADATA_FIELD = ["contributors", "project_links"]
OPTIONAL_JSON_ENCODED_METADATA_FIELD = ["contributors", "project_links"]
OPTIONAL_SIMPLE_METADATA_FIELDS = ["preprint_doi", "publication_doi", "default_embedding", "default_field", "tags"]
OPTIONAL_SIMPLE_METADATA_FIELDS = [
"preprint_doi",
"publication_doi",
"default_embedding",
"default_field",
"tags",
"project_name",
"project_description",
]