Пример #1
0
                           '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)
Пример #2
0
        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())