Source code for datacatalog.linkedstores.experiment.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 ExperimentUpdateFailure(CatalogUpdateFailure): pass
[docs]class ExperimentDocument(HeritableDocumentSchema): """Defines a completed instance of an experimental design""" def __init__(self, inheritance=True, **kwargs): super(ExperimentDocument, self).__init__(inheritance, **kwargs) self.update_id()
[docs]class ExperimentStore(LinkedStore): """Manage storage and retrieval of ExperimentDocuments""" LINK_FIELDS = DEFAULT_LINK_FIELDS def __init__(self, mongodb, config={}, session=None, **kwargs): super(ExperimentStore, self).__init__(mongodb, config, session) schema = ExperimentDocument(**kwargs) super(ExperimentStore, self).update_attrs(schema) self.setup(update_indexes=kwargs.get('update_indexes', False))
[docs]class StoreInterface(ExperimentStore): pass