Example #1
0
    def __init__(self, reader=None, writer=None, *args, **kwargs):
        self.log = logging.getLogger(self.__class__.__name__)
        self.log.info('initializing the store')
        load_plugins()

        self.__default_context = None
        if "default_context" in kwargs:
            self.__default_context = URIRef(kwargs["default_context"])

        if reader:
            if reader in __readers__:
                self.reader = __readers__[reader](*args, **kwargs)
            elif isinstance(reader, RDFReader):
                # We've received already configured reader, use it.
                self.reader = reader
            else:
                raise PluginNotFoundException(
                    'The <%s> READER plugin was not found' % (reader))
        else:
            self.reader = RDFReader(*args, **kwargs)

        if writer:
            if writer in __writers__:
                self.writer = __writers__[writer](self.reader, *args, **kwargs)
            elif isinstance(writer, RDFWriter):
                # We've received already configured writer, use it.
                self.writer = writer
            else:
                raise PluginNotFoundException(
                    'The <%s> WRITER plugin was not found' % (reader))
        else:
            self.writer = RDFWriter(self.reader, *args, **kwargs)

        if hasattr(self.reader, 'use_subqueries'):
            self.use_subqueries = property(
                fget=lambda self: self.reader.use_subqueries)

        self.log.info('store initialized')