Skip to main content

Converts DOI metadata into IETF BibXML format

Project description

doi2ietf: Convert DOI metadata into BibXML

test release

Purpose

doi2ietf allows you to fetch bibliographic data from a DOI entry and convert that into IETF BibXML. IETF BibXML is the bibliographic data XML schema used by IETF RFC XML (RFC 7991)

The digital object identifier system (DOI) is specified in ISO 26324 with the Registration Authority being the International Digital Object Identifier Foundation.

The DOI registration authority allows attaching bibliographic metadata on DOI entries using the CrossRef format, available at https://data.crossref.org, and doi2ietf fetches those metadata from that site.

DOI identifiers can be resolved at the DOI resolver page.

NOTE: doilit was originally written by Carsten Bormann as part of the kramdown-rfc2629 package. The doi2ietf package provides the Python equivalent of that functionality.

Prerequisites

This software requires Python 3.6+.

All dependencies are specified in setup.py for PyPA.

Install

The package is published at PyPi and can be installed on its own.

pip install doi2ietf

Usage

Command-line interface

The doi2ietf command takes a list of arguments like this:

doi2ietf [options] [one or more DOI identifiers]

Where:

  • A DOI identifier looks like this: e.g. 10.1109/5.771073.
  • The list of DOI identifiers have to be be separated by spaces.
  • By default, the output is in YAML format, printed to STDOUT.

Options include:

  • -x or --xml: produce XML output instead of YAML.
  • -c or --cache: Cache HTTP-requests to data.crossref.org.

Example:

$ doi2ietf -c -x 10.1109/5.771073 10.1109/MIC.2012.29
<reference anchor="a"><front><title>Toward unique identifiers...
<reference anchor="b"><front><title>CoAP: An Application Protocol...

Library

The main function provided by the doi2ietf library is process_doi_list.

It can be used in the following manner, for example:

$ python
>>> import doi2ietf

>>> doi2ietf.process_doi_list(['10.1109/5.771073'])
a:
  author:
  - ins: N. Paskin
    name: N. Paskin
  date: 1999-07
  seriesinfo:
    DOI: 10.1109/5.771073
    Proceedings of the IEEE: vol. 87, no. 7, pp. 1208-1227
  title: Toward unique identifiers

>>> doi2ietf.process_doi_list(['10.1109/5.771073'], 'XML')
<reference anchor="a"><front><title>Toward unique identifiers</title>...

process_doi_list takes the following arguments:

  • list of DOI identifiers as strings
  • output format. Can be XML for XML strings, DICT for python dict objects, and YAML or None for YAML strings as default)

Development

General

Development using pyenv is strongly encouraged.

virtualenv venv
pip install -e .

Dependencies are listed inside setup.py.

Testing

Test modules are placed under the tests directory. It uses data from tests/fixtures directory. Python xmldiff module is required for this tests. It was commented out in requirements.txt.

There is 3 type of files: *.json, *.yaml and *.xml.

  • *.json - is body of HTTP(S) response from data.crossref.org
  • *.yaml - is original doilit output
  • *.xml - is original doilit output with -x=xmlhandle option

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

doi2ietf-0.1.2.tar.gz (7.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

doi2ietf-0.1.2-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file doi2ietf-0.1.2.tar.gz.

File metadata

  • Download URL: doi2ietf-0.1.2.tar.gz
  • Upload date:
  • Size: 7.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.6

File hashes

Hashes for doi2ietf-0.1.2.tar.gz
Algorithm Hash digest
SHA256 0d14ec9e22e54fdef0d44451b54be7d9f32d2614bd94d2450c9550cc094c3e3f
MD5 f41ca9ee49a53b8bf9e7710f3f72c0ab
BLAKE2b-256 4756ccfb0f3d8a27c44cc135d047fa8a5090141e9baf1fc0be6eb6626bd87e3c

See more details on using hashes here.

File details

Details for the file doi2ietf-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: doi2ietf-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 7.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.6

File hashes

Hashes for doi2ietf-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8180a187a6ca165c24b4919239ead12c1adf81868a249efbd1411ae0827d8a9d
MD5 5b2837c6e39b8cf181c4f9707a9a1a1a
BLAKE2b-256 7151618dbe1f6143eee69424fbb83379e64ab691f4f3bc66196f750f74e2b25a

See more details on using hashes here.

Supported by

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