Esempio n. 1
0
def loadlicenses():
    """Load Zenodo licenses.

    Create extra PID if license is to be mapped and already exists, otherwise
    create a new license record and a PID.
    """
    data = read_json('data/licenses.json')
    map_ = read_json('data/licenses_map.json')
    mapped = [(d, map_[d['id']] if d['id'] in map_ else None) for d in data]
    try:
        for lic, alt_pid in mapped:
            if lic['id'] == alt_pid:  # Skip the already-existing licenses
                continue
            if alt_pid:
                try:
                    pid, record = license_resolver.resolve(alt_pid)
                    license_minter(record.id, lic)
                except PIDDoesNotExistError:
                    create_new_license(lic)
            else:
                create_new_license(lic)
        db.session.commit()
    except Exception:
        db.session.rollback()
        raise
Esempio n. 2
0
def create_new_license(license):
    """Create a new license record.

    :param license: License dictionary to be loaded.
    :type license: dict
    """
    license = update_legacy_meta(license)
    license_validator.validate(license)
    record = Record.create(license)
    license_minter(record.id, license)
Esempio n. 3
0
def create_new_license(license):
    """Create a new license record."""
    license = update_legacy_meta(license)
    license_validator.validate(license)
    record = Record.create(license)
    license_minter(record.id, license)
Esempio n. 4
0
def create_new_license(license):
    """Create a new license record."""
    license = update_legacy_meta(license)
    license_validator.validate(license)
    record = Record.create(license)
    license_minter(record.id, license)