def __init__(self, **kwargs): """Initialized a instance of GraphIngester Args: es(elasticsearch.ElasticSearch): Instance of Elasticsearch graph(rdflib.Graph): BIBFRAM RDF Graph repository(flask_fedora_commons.Repository): Fedora Commons Repository quiet(boolean): If False, prints status of ingestion debug(boolean): Adds additional information for debugging purposes """ self.bf2uris = {} self.debug = kwargs.get('debug', False) self.uris2uuid = {} self.elastic_search = kwargs.get('elastic_search', Elasticsearch()) if not self.elastic_search.indices.exists('bibframe'): helper_directory = os.path.dirname(__file__) base_directory = helper_directory.split( "{0}catalog{0}helpers".format(os.path.sep))[0] with open( os.path.join( base_directory, "search{0}config{0}bibframe-map.json".format( os.path.sep))) as raw_json: bf_map = json.load(raw_json) self.elastic_search.indices.create(index='bibframe', body=bf_map) self.graph = kwargs.get('graph', default_graph()) self.repository = kwargs.get('repository', Repository()) self.quiet = kwargs.get('quiet', False)
def __init__(self, record, elastic_search=Elasticsearch(), repository=Repository()): """Initializes RecordIngester class Args: record: A MARC21 or MARC XML file elastic_search: Elasticsearch instance, defaults to localhost repository: Flask Fedora Commons Repository instance, defaults to localhost """ self.elastic_search = elastic_search if not self.elastic_search.indices.exists('marc'): self.elastic_search.indices.create('marc') self.record = record self.repository = repository
def setUp(self): "Setup's repository, assumes Fedora 4 is localhost:8080" self.app = Flask(__name__) self.app.testing = True self.repo = Repository() self.repo.setup() self.work_uri = rdflib.URIRef( urllib.parse.urljoin(FEDORA_BASE_URL, "/rest/test/work/{}".format(uuid.uuid4()))) self.work_rdf = rdflib.Graph() self.work_rdf.add((self.work_uri, rdflib.RDFS.label, rdflib.Literal("Work for Unit Test"))) self.work_rdf.add((self.work_uri, rdflib.RDF.type, BIBFRAME.Monograph)) self.work_rdf.add((self.work_uri, rdflib.RDF.type, SCHEMA_ORG.Book)) self.work_rdf.add((self.work_uri, BIBFRAME.workTitle, rdflib.Literal("Original Work Title"))) # Add RDF Graph to Fedora new_request = urllib.request.Request( str(self.work_uri), data=self.work_rdf.serialize(format='turtle'), method='PUT', headers={"Content-Type": "text/turtle"}) urllib.request.urlopen(new_request)
def setUp(self): "Setup's repository, assumes Fedora 4 is localhost:8080" application = Flask(__name__) self.repo = Repository(app=application) self.repo.setup() self.client = self.repo.app.test_client()