Skip to main content

No project description provided

Project description

OARepo DOI

Configuration example

DATACITE_URL = 'https://api.test.datacite.org/dois'

DATACITE_MAPPING = {'local://documents-1.0.0.json':"common.mapping.DataCiteMappingNRDocs"}

DATACITE_MODE = "AUTOMATIC_DRAFT"

DATACITE_CREDENTIALS = {"generic": {"prefix": "10.23644" , "password": "yyyy", "username": "xxx"}}

DATACITE_CREDENTIALS_DEFAULT = {"prefix": "10.23644" , "password": "yyy", "username": "xxxx"}

DATACITE_SPECIFIED_ID = True

mode types:

  • AUTOMATIC_DRAFT - dois will be assigned automatically when draft is creadet
  • AUTOMATIC - dois will be assigned automatically after publish
  • ON_EVENT - dois are assigned after request

DATACITE_SPECIFIED_ID

  • Default value - False
  • If true, the doi suffix will be the same as record pid

Mapping example

class DataCiteMappingNRDocs:

    def metadata_check(self, data, errors=[]):
        
        data = data["metadata"]
        if "title" not in data:
            errors.append("Title is mandatory")
        
        return errors

    def create_datacite_payload(self, data):
        titles = {"title": "xy"}

        
        payload = {
            "data": {
                "type": "dois",
                "attributes": {
                }
            }
        }
        payload["data"]["attributes"]["titles"] = titles
   
        return payload
    
    def get_doi(self, record):
        object_identifiers = record["metadata"].get("objectIdentifiers", [])
        doi = None
        for id in object_identifiers:
            if id["scheme"] == "DOI":
                doi = id["identifier"]
        return doi

    def add_doi(self, record, data,  doi_value):
        doi = {"scheme": "DOI", "identifier": doi_value}

        if "objectIdentifiers" in data["metadata"]:
            data["metadata"]["objectIdentifiers"].append(doi)
        else:
            data["metadata"]["objectIdentifiers"] = [doi]
        
        record.update(data)
        record.commit()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

oarepo_doi-1.0.7.tar.gz (10.9 kB view details)

Uploaded Source

Built Distribution

oarepo_doi-1.0.7-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file oarepo_doi-1.0.7.tar.gz.

File metadata

  • Download URL: oarepo_doi-1.0.7.tar.gz
  • Upload date:
  • Size: 10.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for oarepo_doi-1.0.7.tar.gz
Algorithm Hash digest
SHA256 b98585d2aa64e62fec43dc2db64357f0600e9226a07dfd9251634f738cda68ef
MD5 273cfbe2770ab8f0e135e6b1d400a5e0
BLAKE2b-256 5f57907a2b2b39f0a29d810647f7d8e84a4df0d1b8c3ac0c72752ab068a56b6b

See more details on using hashes here.

File details

Details for the file oarepo_doi-1.0.7-py3-none-any.whl.

File metadata

  • Download URL: oarepo_doi-1.0.7-py3-none-any.whl
  • Upload date:
  • Size: 10.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for oarepo_doi-1.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 c9b131ee330a5234bfa2ad931e69caddddb162a23f050a4d14cd9c40f5cd91a6
MD5 ec360e02002c8205b81f12afb040872d
BLAKE2b-256 fb05185e7f775a220c685fa2e6122dd67b540acc11c6a2d7d2674d156789ae3e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page