'title': package_title, 'url': url, 'notes': description, 'license_id': license, 'author': author, 'maintainer': maintainer, 'maintainer_email': dataset.oo_contact.get_one_of('foaf:mbox', 'v:email').replace('mailto:', '', 1)}) package_entity['groups'] = list(settings.CKAN_GROUPS | set(package_entity.get('groups', ())) | groups) package_entity['tags'] = list(settings.CKAN_TAGS | set(package_entity.get('tags', ())) | tags) resources = collections.defaultdict(dict, ((r.get('name'), r) for r in package_entity.get('resources', ()))) resources['SPARQL endpoint'].update({'name': 'SPARQL endpoint', 'format': 'api/sparql', 'url': sparql_endpoint}) package_entity['resources'] = resources.values() logger.debug("Updated CKAN record") if original != package_entity: logger.info("Updating %r at thedatahub.org", package_name) client.package_entity_put(package_entity) graphs_updated.connect(upload_dataset_metadata.delay)
for line in CSVSerializer(store.query(query)): f.write(line) content_length = f.tell() f.seek(0) logger.debug("Updating SEESEC (%d bytes)", content_length) response = requests.post(TARGET_URL, files={'file': f}, data={'institution': 'oxford'}, auth=CREDENTIALS, headers={'User-Agent': USER_AGENTS['agent']}) if response.status_code != requests.codes.ok: logger.error("Failed to upload equipment to SEESEC (%d):\n\n%s", response.status_code, response.text) else: logger.info("Successfully uploaded equipment to SEESEC") graphs_updated.connect(update_seesec.delay) if __name__ == '__main__': from datetime import datetime from humfrey.sparql.models import Store logging.basicConfig(level=logging.DEBUG) update_seesec(None, store=Store.objects.get(slug='seesec'), graphs=set([rdflib.URIRef('https://data.ox.ac.uk/graph/equipment/facilities')]), when=datetime.now())