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
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)
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)