import inspect
import json
import os
import sys
from pprint import pprint
from ...dicthelpers import data_merge
from ..basestore import LinkedStore, CatalogUpdateFailure, HeritableDocumentSchema, JSONSchemaCollection, linkages
DEFAULT_LINK_FIELDS = [linkages.CHILD_OF]
[docs]class MeasurementUpdateFailure(CatalogUpdateFailure):
pass
[docs]class MeasurementDocument(HeritableDocumentSchema):
"""Defines a measurement in a sample"""
def __init__(self, inheritance=True, **kwargs):
super(MeasurementDocument, self).__init__(inheritance, **kwargs)
self.update_id()
[docs]class MeasurementStore(LinkedStore):
"""Manage storage and retrieval of MeasurementDocuments"""
LINK_FIELDS = DEFAULT_LINK_FIELDS
def __init__(self, mongodb, config={}, session=None, **kwargs):
super(MeasurementStore, self).__init__(mongodb, config, session)
schema = MeasurementDocument(**kwargs)
super(MeasurementStore, self).update_attrs(schema)
self.setup(update_indexes=kwargs.get('update_indexes', False))
[docs]class StoreInterface(MeasurementStore):
"""Generic interface to MeasurementStore"""
pass