Source code for datacatalog.linkedstores.challenge_problem.store

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 = list()

[docs]class ChallengeUpdateFailure(CatalogUpdateFailure): pass
[docs]class ChallengeDocument(HeritableDocumentSchema): """Defines a challenge problem or broad research topic""" def __init__(self, inheritance=True, **kwargs): super(ChallengeDocument, self).__init__(inheritance, **kwargs) self.update_id()
[docs]class ChallengeStore(LinkedStore): """Manage storage and retrieval of ChallengeDocuments""" LINK_FIELDS = DEFAULT_LINK_FIELDS def __init__(self, mongodb, config={}, session=None, **kwargs): super(ChallengeStore, self).__init__(mongodb, config, session) # setup based on schema extended properties schema = ChallengeDocument(**kwargs) super(ChallengeStore, self).update_attrs(schema) self.setup(update_indexes=kwargs.get('update_indexes', False))
# sys.exit(0)
[docs]class StoreInterface(ChallengeStore): pass