Source code for PyOpenWorm.data_trans.context_datasource
from ..context import Context
from ..contextDataObject import ContextDataObject
from rdflib.term import URIRef
from rdflib.namespace import Namespace
class VariableIdentifierMixin(object):
def __init__(self, maker=None, **kwargs):
if maker is not None:
conf = kwargs.pop('conf', maker.conf)
super(VariableIdentifierMixin, self).__init__(conf=conf, **kwargs)
else:
super(VariableIdentifierMixin, self).__init__(**kwargs)
self.maker = maker
@property
def identifier(self):
return self.identifier_helper()
@identifier.setter
def identifier(self, a):
pass
def identifier_helper(self):
if self.maker is not None:
return self.maker.identifier
else:
return super(VariableIdentifierMixin, self).identifier
[docs]class VariableIdentifierContext(VariableIdentifierMixin, Context):
'''
A Context that gets its identifier and its configuration from its 'maker'
passed in at initialization
'''
@property
def rdf_object(self):
if self._rdf_object is None:
self._rdf_object = VariableIdentifierContextDataObject.contextualize(self.context)(maker=self)
return self._rdf_object.contextualize(self.context)
[docs]class VariableIdentifierContextDataObject(VariableIdentifierMixin, ContextDataObject):
'''
A ContextDataObject that gets its identifier and its configuration from its 'maker' passed in at initialization
'''
rdf_type = URIRef('http://openworm.org/schema/Context')
rdf_namespace = Namespace(rdf_type + '#')
[docs] def defined_augment(self):
return self.maker is not None and self.maker.identifier is not None
__yarom_mapped_classes__ = (VariableIdentifierContextDataObject,)