Skip to main content

Citations and bibliography formatter

Project description

PyPI Build status Code coverage Code issues

citeproc-py is a CSL processor for Python. It aims to implement the CSL 1.0.1 specification. citeproc-py can output styled citations and bibliographies in a number of different output formats. Currently supported are plain text, reStructuredText and HTML. Other formats can be added easily.

citeproc-py uses semantic versioning. Currently, its major version number is still at 0, meaning the API is not yet stable. However, you should not expect to see any major API changes soon.

Requirements

citeproc-py was originally developed for Python 3 but now also runs on Python 2.6+. It depends on lxml for parsing and navigating the CSL style and locale files.

Installation

The recommended way of installing citeproc-py is by using pip:

pip install citeproc-py

If lxml isn’t installed, pip will try to install it for you.

If you insist, you can manually install citeproc-py from distribution packages hosted at PyPI. Please ignore the release archives offered by GitHub.

Getting Started

To get started with citeproc-py, take a look at the examples under examples/. Two examples are provided, one parsing references from a JSON representation of references as supported by citeproc-js, another parsing the references from a BibTeX file. Both show and explain how to cite references and render the bibliography.

CSL Compatibility

Currently, citeproc-py passes almost 60% of the (relevant) tests in the citeproc-test suite. However, it is more than 60% complete, as citeproc-py doesn’t take care of double spaces and repeated punctuation marks yet, making a good deal of the tests fail. In addition, the following features have not yet been implemented (there are probably some I forgot though):

  • disambiguation/year-suffix

  • et-al-subsequent-min/et-al-subsequent-use-first

  • collapsing

  • punctuation-in-quote

  • display

Also, some citeproc-js functionality that is not part of the CSL spec is not (yet) supported:

  • raw dates

  • static-ordering

  • literal names

Running the Tests

First clone the citeproc-test suite so that it sits next to the citeproc-py directory. Now you can run citeproc-test.py (in the tests directory). Run citeproc-test.py --help to see its usage information.

Changelog

Release 0.4.0 (2017-06-23)

New features:

  • allow specifying the encoding of a BibTeX database file (#20 and #25)

  • BibTeX ‘month’ field: support integers and “<month> <day>” values

  • BibTeX ‘pages’ field: support “10”, “10+”, “10-12” and “10–12” formats

  • BibTeX entry types: map the non-standard ‘thesis’ and ‘report’ entries

  • update the CSL schema to version 1.0.1 (#5)

  • update the CSL locales to commit 49bf3fc0

Bug fixed:

  • avoid crash when there is nothing to affix (David Lesieur)

  • fix BibTeX month to CSL month mapping (#24)

  • strip leading/trailing whitespace from BibTeX values (#37)

Release 0.3.0 (2014-11-07)

Major improvements to the BibTeX parser:

  • split names into parts and assign them to the equivalent CSL name parts

  • fixed handling of accent macros and escaped characters

  • more compatible (La)TeX macro handling in general (but still basic)

  • handle standard Computer Modern ligatures such as –, —, and <<

  • added unit tests for the BibTeX and LaTeX parsers

Other changes:

  • disable RelaxNG validation of CSL styles by default (API change)

Release 0.2.0 (2014-10-25)

  • bad cite callback function can determine how a bad cite is displayed (hetsch)

  • added option to disable RelaxNG validation (Jasper Op de Coul)

  • distutils was replaced with setuptools (Joshua Carp)

  • bug fixes (Yaroslav Halchenko, David Lesieur)

  • CitationStylesBibliography.bibliography() now returns the list of entries

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

citeproc-py-0.4.0.tar.gz (109.8 kB view details)

Uploaded Source

Built Distribution

citeproc_py-0.4.0-py2.py3-none-any.whl (155.9 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file citeproc-py-0.4.0.tar.gz.

File metadata

  • Download URL: citeproc-py-0.4.0.tar.gz
  • Upload date:
  • Size: 109.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for citeproc-py-0.4.0.tar.gz
Algorithm Hash digest
SHA256 ed513dbc76f782b5e98126d6bebbd1284841fcf199ec9dda552e2bce864adadf
MD5 017535e49bb57cbf80d60f0cc4c0fa86
BLAKE2b-256 7ddce905fdd6fea087b0cae77b87a28aa0ea26899946e7f9f2537c9cf618a23c

See more details on using hashes here.

Provenance

File details

Details for the file citeproc_py-0.4.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for citeproc_py-0.4.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ee1569e8b1f2c057c7893bbb067986bc362a6c861009d310700a12a1a0107b57
MD5 50a8065e57acc3bcd059fedd43b06669
BLAKE2b-256 229ad3383c4af068d0e82ec71fd88c74ae55e85b49c0acaf9951b3075c8a3b40

See more details on using hashes here.

Provenance

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