Source code for datacatalog.linkedstores.experiment_design.store

import inspect
import json
import os
import sys
from pprint import pprint

from ...dicthelpers import data_merge
from ..basestore import CatalogUpdateFailure, HeritableDocumentSchema, LinkedStore, JSONSchemaCollection, linkages
DEFAULT_LINK_FIELDS = [linkages.CHILD_OF]

[docs]class ExperimentDesignUpdateFailure(CatalogUpdateFailure): pass
[docs]class ExperimentDesignDocument(HeritableDocumentSchema): """Defines a an experimental design with optional link to external URI""" def __init__(self, inheritance=True, **kwargs): super(ExperimentDesignDocument, self).__init__(inheritance, **kwargs) self.update_id()
[docs]class ExperimentDesignStore(LinkedStore): """Manage storage and retrieval of ExperimentDesignDocuments""" LINK_FIELDS = DEFAULT_LINK_FIELDS def __init__(self, mongodb, config={}, session=None, **kwargs): super(ExperimentDesignStore, self).__init__(mongodb, config, session) schema = ExperimentDesignDocument(**kwargs) super(ExperimentDesignStore, self).update_attrs(schema) self.setup(update_indexes=kwargs.get('update_indexes', False))
[docs]class StoreInterface(ExperimentDesignStore): pass