def __init__(self, reader, *args, **kwargs): RDFWriter.__init__(self, reader, *args, **kwargs) if isinstance(self.reader, ReaderPlugin): self.__server = self.reader.server self.__port = self.reader.port self.__root_path = self.reader.root_path self.__repository_path = self.reader.repository_path self.__repository = self.reader.repository self.__use_allegro_extensions = self.reader.use_allegro_extensions else: self.__server = kwargs['server'] if 'server' in kwargs else 'localhost' self.__port = kwargs['port'] if 'port' in kwargs else 6789 self.__root_path = kwargs['root_path'] if 'root_path' in kwargs else '/sesame' self.__repository_path = kwargs['repository_path'] if 'repository_path' in kwargs else '' self.__repository = kwargs['repository'] if 'repository' in kwargs else None self.__use_allegro_extensions = kwargs['use_allegro_extensions'] if 'use_allegro_extensions' in kwargs else False self.log.info('INIT : ' + unicode(self.server) + ',' + unicode(self.port) + ',' + unicode(self.root_path) + ',' + unicode(self.repository_path)) if not self.repository: raise Exception('No <repository> argument supplyed.') if self.__use_allegro_extensions: opened = self.get_allegro().open_repository(self.repository) self.log.info('ALLEGRO repository opened: ' + unicode(opened))
def __init__(self, reader, *args, **kwargs): RDFWriter.__init__(self, reader, *args, **kwargs) if isinstance(self.reader, ReaderPlugin): self.__server = self.reader.server self.__port = self.reader.port self.__catalog = self.reader.catalog self.__repository = self.reader.repository self.__allegro_server = self.reader.allegro_server self.__allegro_catalog = self.reader.allegro_catalog self.__allegro_repository = self.reader.allegro_repository else: self.__server = kwargs['server'] if 'server' in kwargs else 'localhost' self.__port = kwargs['port'] if 'port' in kwargs else 6789 self.__catalog = kwargs['catalog'] if 'catalog' in kwargs else None self.__repository = kwargs['repository'] if 'repository' in kwargs else None if not self.__catalog or not self.__repository: raise Exception('Must specify the <catalog> and the <repository> arguments') self.__allegro_server = AllegroGraphServer(self.__server, port = self.__port) self.__allegro_catalog = self.__allegro_server.openCatalog(self.__catalog) self.__allegro_repository = self.__allegro_catalog.getRepository(self.__repository, Repository.ACCESS) self.__allegro_repository.initialize() self.__con = self.__allegro_repository.getConnection() self.__f = self.__allegro_repository.getValueFactory()
def __init__(self, reader = None, writer = None, *args, **kwargs): super(Store, self).__init__() self.log_level = kwargs.get('log_level', logging.NOTSET) self.log.info('initializing the store') load_plugins(logger=self.log) self.__default_context = None if "default_context" in kwargs: self.__default_context = URIRef(kwargs["default_context"]) if reader: self.reader = reader if isinstance(reader, RDFReader) else get_reader(reader, *args, **kwargs) else: self.reader = RDFReader(*args, **kwargs) self.reader.log_level = self.log_level if writer: self.writer = writer if isinstance(writer, RDFWriter) else get_writer(writer, self.reader, *args, **kwargs) else: self.writer = RDFWriter(self.reader, *args, **kwargs) self.writer.log_level = self.log_level if hasattr(self.reader, 'use_subqueries'): self.use_subqueries = property(fget = lambda self: self.reader.use_subqueries) self.log.info('store initialized')
def __init__(self, reader, *args, **kwargs): RDFWriter.__init__(self, reader, *args, **kwargs) if isinstance(self.reader, ReaderPlugin): self.__server = self.reader.server self.__port = self.reader.port self.__root_path = self.reader.root_path self.__repository_path = self.reader.repository_path self.__repository = self.reader.repository self.__use_allegro_extensions = self.reader.use_allegro_extensions else: self.__server = kwargs[ 'server'] if 'server' in kwargs else 'localhost' self.__port = kwargs['port'] if 'port' in kwargs else 6789 self.__root_path = kwargs[ 'root_path'] if 'root_path' in kwargs else '/sesame' self.__repository_path = kwargs[ 'repository_path'] if 'repository_path' in kwargs else '' self.__repository = kwargs[ 'repository'] if 'repository' in kwargs else None self.__use_allegro_extensions = kwargs[ 'use_allegro_extensions'] if 'use_allegro_extensions' in kwargs else False self.log.info( 'INIT: %s, %s, %s, %s' % (self.server, self.port, self.root_path, self.repository_path)) if not self.repository: raise Exception('No <repository> argument supplied.') if self.__use_allegro_extensions: opened = self.get_allegro().open_repository(self.repository) self.log.info('ALLEGRO repository opened: ' + unicode(opened))
def __init__(self, reader, *args, **kwargs): RDFWriter.__init__(self, reader, *args, **kwargs) if isinstance(self.reader, ReaderPlugin): self.__server = self.reader.server self.__port = self.reader.port self.__catalog = self.reader.catalog self.__repository = self.reader.repository self.__allegro_server = self.reader.allegro_server self.__allegro_catalog = self.reader.allegro_catalog self.__allegro_repository = self.reader.allegro_repository else: self.__server = kwargs["server"] if "server" in kwargs else "localhost" self.__port = kwargs["port"] if "port" in kwargs else 6789 self.__catalog = kwargs["catalog"] if "catalog" in kwargs else None self.__repository = kwargs["repository"] if "repository" in kwargs else None if not self.__catalog or not self.__repository: raise Exception("Must specify the <catalog> and the <repository> arguments") self.__allegro_server = AllegroGraphServer(self.__server, port=self.__port) self.__allegro_catalog = self.__allegro_server.openCatalog(self.__catalog) self.__allegro_repository = self.__allegro_catalog.getRepository(self.__repository, Repository.ACCESS) self.__allegro_repository.initialize() self.__con = self.__allegro_repository.getConnection() self.__f = self.__allegro_repository.getValueFactory()
def __init__(self, reader, *args, **kwargs): RDFWriter.__init__(self, reader, *args, **kwargs) if isinstance(self.reader, ReaderPlugin): self.__server = self.reader.server self.__port = self.reader.port self.__user = self.reader.user self.__password = self.reader.password self.__catalog = self.reader.catalog self.__repository = self.reader.repository self.__allegro_server = self.reader.allegro_server self.__allegro_catalog = self.reader.allegro_catalog self.__allegro_repository = self.reader.allegro_repository else: self.__server = kwargs['server'] if 'server' in kwargs else 'localhost' self.__port = kwargs['port'] if 'port' in kwargs else 6789 self.__user = kwargs['user'] if 'user' in kwargs else None self.__password = kwargs['password'] if 'password' in kwargs else None self.__catalog = kwargs['catalog'] if 'catalog' in kwargs else None self.__repository = kwargs['repository'] if 'repository' in kwargs else None if not self.__catalog or not self.__repository: raise Exception('Must specify the <catalog> and the <repository> arguments') self.__allegro_server = AllegroGraphServer(self.__server, port = self.__port, user = self.__user, password = self.__password) self.__allegro_catalog = self.__allegro_server.openCatalog(self.__catalog) self.__allegro_repository = self.__allegro_catalog.getRepository(self.__repository, Repository.ACCESS) self.__allegro_repository.initialize() self.__con = self.__allegro_repository.getConnection() self.__f = self.__allegro_repository.getValueFactory()
def __init__(self, reader, *args, **kwargs): RDFWriter.__init__(self, reader, *args, **kwargs) if isinstance(self.reader, ReaderPlugin): self.__server = self.reader.server self.__port = self.reader.port self.__catalog = self.reader.catalog self.__repository = self.reader.repository self.__allegro_server = self.reader.allegro_server self.__allegro_catalog = self.reader.allegro_catalog self.__allegro_repository = self.reader.allegro_repository if type(self.__repository) == list and len(self.__repository) > 1: connections_to_federate = [] repositories_to_federate = [] for one_repository in self.reader.allegro_repository: repositories_to_federate.append(self.__allegro_catalog .getRepository(one_repository, Repository.ACCESS)) connections_to_federate.append(self.__allegro_catalog .getRepository(one_repository, Repository.ACCESS) .initialize().getConnection()) self.__allegro_repository = repositories_to_federate self.__con = self.__allegro_server.openFederated(connections_to_federate, True) else: if type(self.__repository) == list and len(self.__repository) == 1: self.__repository = self.__repository[0] self.__allegro_repository = self.__allegro_catalog.getRepository(self.__repository, Repository.ACCESS) self.__allegro_repository.initialize() self.__con = self.allegro_repository.getConnection() else: self.__server = kwargs['server'] if 'server' in kwargs else 'localhost' self.__port = kwargs['port'] if 'port' in kwargs else 6789 self.__catalog = kwargs['catalog'] if 'catalog' in kwargs else None self.__repository = kwargs['repository'] if 'repository' in kwargs else None if not self.__catalog or not self.__repository: raise Exception('Must specify the <catalog> and the <repository> arguments') self.__allegro_server = AllegroGraphServer(self.__server, port = self.__port) self.__allegro_catalog = self.__allegro_server.openCatalog(self.__catalog) if type(self.__repository) == list and len(self.__repository) > 1: connections_to_federate = [] repositories_to_federate = [] for repository in self.__repository: repositories_to_federate.append(self.__allegro_catalog .getRepository(repository, Repository.ACCESS)) connections_to_federate.append(self.__allegro_catalog .getRepository(repository, Repository.ACCESS) .initialize().getConnection()) self.__allegro_repository = repositories_to_federate self.__con = self.__allegro_server.openFederated(connections_to_federate, True) else: if type(self.__repository) == list and len(self.__repository) == 1: self.__repository = self.__repository[0] self.__allegro_repository = self.__allegro_catalog.getRepository(self.__repository, Repository.ACCESS) self.__allegro_repository.initialize() self.__con = self.allegro_repository.getConnection()
def __init__(self, reader, *args, **kwargs): RDFWriter.__init__(self, reader, *args, **kwargs) if isinstance(self.reader, ReaderPlugin): self.__endpoint = self.reader.endpoint else: self.__endpoint = kwargs.get("endpoint") self.__combine_queries = kwargs.get("combine_queries") self.__results_format = JSON self.__sparql_wrapper = SPARQLWrapper(self.__endpoint, self.__results_format) self.__sparql_wrapper.setMethod("POST")
def __init__(self, reader, *args, **kwargs): RDFWriter.__init__(self, reader, *args, **kwargs) if isinstance(self.reader, ReaderPlugin): self.__endpoint = self.reader.endpoint else: self.__endpoint = kwargs.get("endpoint") self.__combine_queries = kwargs.get("combine_queries") self.__results_format = JSON self.__sparql_wrapper = SPARQLWrapper(self.__endpoint, returnFormat=self.__results_format) user = kwargs.get('user',None) password = kwargs.get('password',None) if user and password: self.__sparql_wrapper.setCredentials(user, password) self.__sparql_wrapper.setMethod("POST")
def __init__(self, reader, *args, **kwargs): RDFWriter.__init__(self, reader, *args, **kwargs) if isinstance(self.reader, ReaderPlugin): self.__rdflib_store = self.reader.rdflib_store self.__rdflib_identifier = self.reader.rdflib_identifier self.__commit_pending_transaction_on_close = \ self.reader.commit_pending_transaction_on_close self.__graph = self.reader.graph else: self.__rdflib_store = kwargs.get("rdflib_store", "IOMemory") self.__rdflib_identifier = kwargs.get("rdflib_identifier") self.__commit_pending_transaction_on_close = \ kwargs.get("commit_pending_transaction_on_close", True) self.__graph = ConjunctiveGraph(store = self.__rdflib_store, identifier = self.__rdflib_identifier) warnings.warn("Graph is not readable through the reader plugin", UserWarning)
def __init__(self, reader, *args, **kwargs): RDFWriter.__init__(self, reader, *args, **kwargs) if isinstance(self.reader, ReaderPlugin): self.__rdflib_store = self.reader.rdflib_store self.__rdflib_identifier = self.reader.rdflib_identifier self.__commit_pending_transaction_on_close = \ self.reader.commit_pending_transaction_on_close self.__graph = self.reader.graph else: self.__rdflib_store = kwargs.get("rdflib_store", "IOMemory") self.__rdflib_identifier = kwargs.get("rdflib_identifier") self.__commit_pending_transaction_on_close = \ kwargs.get("commit_pending_transaction_on_close", True) self.__graph = ConjunctiveGraph( store=self.__rdflib_store, identifier=self.__rdflib_identifier) warnings.warn("Graph is not readable through the reader plugin", UserWarning)
class Store(LogMixin): """ The `Store` class is comprised of a reader and a writer, getting access to an underlying triple store. Also store specific parameters must be handled by the class, the plugins act based on various settings. The `Store` is also the `plugin` manager and provides convenience methods for working with plugins. """ """ True if the `reader` plugin is using sub queries, False otherwise. """ use_subqueries = False default_context = property(lambda self: self.__default_context) def __init__(self, reader = None, writer = None, *args, **kwargs): super(Store, self).__init__() self.log_level = kwargs.get('log_level', logging.NOTSET) self.log.info('initializing the store') load_plugins(logger=self.log) self.__default_context = None if "default_context" in kwargs: self.__default_context = URIRef(kwargs["default_context"]) if reader: self.reader = reader if isinstance(reader, RDFReader) else get_reader(reader, *args, **kwargs) else: self.reader = RDFReader(*args, **kwargs) self.reader.log_level = self.log_level if writer: self.writer = writer if isinstance(writer, RDFWriter) else get_writer(writer, self.reader, *args, **kwargs) else: self.writer = RDFWriter(self.reader, *args, **kwargs) self.writer.log_level = self.log_level if hasattr(self.reader, 'use_subqueries'): self.use_subqueries = property(fget = lambda self: self.reader.use_subqueries) self.log.info('store initialized') def __add_default_context(self, context): """ Return default context if context is None. """ if context == NO_CONTEXT: context = None elif not context: context = self.__default_context return context def _set_level(self, level): self.log.setLevel(level) self.reader.log_level = level self.writer.log_level = level @deprecated def enable_logging(self, enable): """ Toggle `logging` on or off. """ #TODO: -------------------[remove in v1.2.0]------------------------ # deprecation('the enable_logging method will be removed in version 1.2.0, use the logging and log_level properties instead!') #TODO: -------------------[remove in v1.2.0]------------------------ level = enable and logging.DEBUG or logging.NOTSET self.log.setLevel(level) self.reader.enable_logging(enable) self.writer.enable_logging(enable) @deprecated def is_enable_logging(self): """ True if `logging` is enabled, False otherwise. """ #TODO: -------------------[remove in v1.2.0]------------------------ # deprecation('the is_enabled_logging method will be removed in version 1.2.0, use the logging and log_level properties instead!') #TODO: -------------------[remove in v1.2.0]------------------------ return (self.log.level == logging.DEBUG) def close(self): """ Close the `store`. Both the `reader` and the `writer` plugins are closed. See :func:`surf.plugin.writer.RDFWriter.close` and :func:`surf.plugin.reader.RDFReader.close` methods. """ try: self.reader.close() self.log.debug('reader closed successfully') except Exception: self.log.exception("Error on closing the reader") try: self.writer.close() self.log.debug('writer closed successfully') except Exception: self.log.exception("Error on closing the writer") #--------------------------------------------------------------------------- # the reader interface #--------------------------------------------------------------------------- def get(self, resource, attribute, direct): """ :func:`surf.plugin.reader.RDFReader.get` method. """ return self.reader.get(resource, attribute, direct) # cRud def load(self, resource, direct): """ :func:`surf.plugin.reader.RDFReader.load` method. """ return self.reader.load(resource, direct) def is_present(self, resource): """ :func:`surf.plugin.reader.RDFReader.is_present` method. """ return self.reader.is_present(resource) def concept(self, resource): """ :func:`surf.plugin.reader.RDFReader.concept` method. """ return self.reader.concept(resource) def instances_by_attribute(self, resource, attributes, direct, context): """ :func:`surf.plugin.reader.RDFReader.instances_by_attribute` method. """ context = self.__add_default_context(context) return self.reader.instances_by_attribute(resource, attributes, direct, context) def get_by(self, params): params["context"] = self.__add_default_context(params.get("context")) return self.reader.get_by(params) #--------------------------------------------------------------------------- # the query reader interface #--------------------------------------------------------------------------- def execute(self, query): """see :meth:`surf.plugin.query_reader.RDFQueryReader.execute` method. """ if hasattr(self.reader, 'execute') and isinstance(query, Query): return self.reader.execute(query) return None def execute_sparql(self, sparql_query, format = 'JSON'): """see :meth:`surf.plugin.query_reader.RDFQueryReader.execute_sparql` method. """ if hasattr(self.reader, 'execute_sparql') and type(sparql_query) in [str, unicode]: return self.reader.execute_sparql(sparql_query, format = format) return None #--------------------------------------------------------------------------- # the writer interface #--------------------------------------------------------------------------- def clear(self, context = None): """ See :func:`surf.plugin.writer.RDFWriter.clear` method. """ context = self.__add_default_context(context) self.writer.clear(context = context) # Crud def save(self, *resources): """ See :func:`surf.plugin.writer.RDFWriter.save` method. """ self.writer.save(*resources) for resource in resources: resource.dirty = False # crUd def update(self, *resources): """ See :func:`surf.plugin.writer.RDFWriter.update` method. """ self.writer.update(*resources) for resource in resources: resource.dirty = False # cruD def remove(self, *resources, **kwargs): """ See :func:`surf.plugin.writer.RDFWriter.remove` method. """ self.writer.remove(*resources, **kwargs) for resource in resources: resource.dirty = False def size(self): """ See :func:`surf.plugin.writer.RDFWriter.size` method. """ return self.writer.size() # triple level access methods def add_triple(self, s = None, p = None, o = None, context = None): """ See :func:`surf.plugin.writer.RDFWriter.add_triple` method. """ context = self.__add_default_context(context) self.writer.add_triple(s = s, p = p, o = o, context = context) def set_triple(self, s = None, p = None, o = None, context = None): """ See :func:`surf.plugin.writer.RDFWriter.set_triple` method. """ context = self.__add_default_context(context) self.writer.set_triple(s = s, p = p, o = o, context = context) def remove_triple(self, s = None, p = None, o = None, context = None): """ See :func:`surf.plugin.writer.RDFWriter.remove_triple` method. """ context = self.__add_default_context(context) self.writer.remove_triple(s = s, p = p, o = o, context = context) def index_triples(self, **kwargs): """ See :func:`surf.plugin.writer.RDFWriter.index_triples` method. """ return self.writer.index_triples(**kwargs) def load_triples(self, context=None, **kwargs): """ See :func:`surf.plugin.writer.RDFWriter.load_triples` method. """ context = self.__add_default_context(context) return self.writer.load_triples(context=context, **kwargs)