client = FedoraClient(url="http://localhost:8080/fedora",password="")

xslt_tree = etree.parse(args.xslt_path)
transform = etree.XSLT(xslt_tree)
parser = etree.XMLParser(remove_blank_text=True)

for line in open(args.pid_file,'r'):
	try:
		pid = line[0:-1]
		response, body = client.getDatastreamDissemination(pid,args.source_dsId)
		orig_tree = etree.fromstring(body,parser)
		result_tree = transform(orig_tree, object_id=("'%s'" % pid.split(':')[1]))
		if args.merge:
			response, body = client.getDatastreamDissemination(pid,args.target_dsId)
			merge_tree = etree.fromstring(body,parser)
			for child in list(result_tree.getroot()):
				if child.text:
					merge_tree.append(child)
			etree.cleanup_namespaces(merge_tree)
			content = etree.tostring(merge_tree, pretty_print=True)
		else:
			content = etree.tostring(result_tree, pretty_print=True)
		if args.test:
			print "%s - content: %s" % (pid,content)
		else:
			response, body = client.addDatastream(pid,args.target_dsId,content)
			print "%s - status: %s" % (pid,response["status"])
	except Exception as e:
		print "ERROR: while processing pid %s" % pid
		print e
Esempio n. 2
0
#!/usr/bin/env python

from fedorarest import FedoraClient
from lxml import etree
import fileinput

client = FedoraClient(url="http://localhost:8080/fedora",password="")

parser = etree.XMLParser(remove_blank_text=True)

for line in fileinput.input():
	pid = line[0:-1]
	response, body = client.getDatastreamDissemination(pid,"DC")
	tree = etree.fromstring(body,parser)
	for el in tree.xpath('//dc:title',namespaces={'dc': 'http://purl.org/dc/elements/1.1/'}):
		if el.text.startswith("urn:nbn:de"):
			 el.getparent().remove(el)
	content = etree.tostring(tree, pretty_print=True)
	response, body = client.addDatastream(pid,"DC",content)
	print "%s - status: %s" % (pid,response["status"])
	
Esempio n. 3
0
#!/usr/bin/env python

from fedorarest import FedoraClient
from sys import argv
import time

client = FedoraClient(url="http://localhost:8080/fedora",password="")
times = []

for i in range(50):
	content = open(argv[1], "rb").read()
	t = time.time()
	dsId = "ds_%s" % i
	response, body = client.addDatastream(argv[2], dsId, content, mimeType="image/tiff", controlGroup="M")
	times.append(time.time() - t)
	print "%s - status: %s" % (dsId, response["status"])
	if response["status"][0] == "4" or response["status"][0] == "5":
		print body

sum = sum(times)
print "Average: %s s" % (sum / len(times))
print "Total: %s s" % sum
Esempio n. 4
0
#!/usr/bin/env python

from fedorarest import FedoraClient
from sys import argv
import time

client = FedoraClient(url="http://localhost:8080/fedora", password="")
times = []

for i in range(50):
    content = open(argv[1], "rb").read()
    t = time.time()
    dsId = "ds_%s" % i
    response, body = client.addDatastream(argv[2],
                                          dsId,
                                          content,
                                          mimeType="image/tiff",
                                          controlGroup="M")
    times.append(time.time() - t)
    print "%s - status: %s" % (dsId, response["status"])
    if response["status"][0] == "4" or response["status"][0] == "5":
        print body

sum = sum(times)
print "Average: %s s" % (sum / len(times))
print "Total: %s s" % sum