# citeproc-py
[](https://pypi.org/project/citeproc-py/)
[](https://github.com/citeproc-py/citeproc-py/actions?query=branch%3Amaster+workflow%3ATest)
[](https://coveralls.io/github/citeproc-py/citeproc-py)
citeproc-py is a [CSL](https://citationstyles.org/) processor for Python. It aims to implement the
[CSL 1.0.1 specification](https://docs.citationstyles.org/en/1.0.1/specification.html).
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](https://semver.org/). 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 supports Python 3.9 and up. It depends on [lxml](https://lxml.de/) for parsing and
navigating the CSL style and locale files.
# Installation
The recommended way of installing citeproc-py is by using
[pip](https://pip.pypa.io/en/latest/):
```bash
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](https://pypi.python.org/pypi/citeproc-py/). 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](https://github.com/citation-style-language/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](https://github.com/juris-m/citeproc-js)
functionality that is not part of the CSL spec is not (yet) supported:
- raw dates
- static-ordering
- literal names
## Contributing
citeproc-py is 100% volunteer maintained, and new contributions are always welcome.
If you would like to contribute, please follow the guidelines in the
[CONTRIBUTING.md](https://github.com/citeproc-py/citeproc-py/blob/master/CONTRIBUTING.md) file.
## Local Install and Running the Tests
First clone the `citeproc-py` repository and install the submodules with
```bash
git submodule update --init
```
Then install with
```bash
pip install --editable .
```
Then move to the `tests` directory and run
```bash
python citeproc-test.py
```
Run
```bash
citeproc-test.py --help
```
to see its usage information. The first time
you run the script it will clone the
[citeproc-test suite](https://github.com/citation-style-language/test-suite) repository into the
`tests` directory and checkout the last tested version. By default failed tests are
automatically added into the `failing_tests.txt` file and aren't shown when
running the test suite again.
If you want git to fully ignore the submodule, you can type
```bash
git update-index --assume-unchanged citeproc/data/schema
```
# v0.9.0 (Mon Aug 25 2025)
#### 🚀 Enhancement
- Feature/flexible style loading [#180](https://github.com/citeproc-py/citeproc-py/pull/180) ([@yarikoptic](https://github.com/yarikoptic))
#### Authors: 1
- Yaroslav Halchenko ([@yarikoptic](https://github.com/yarikoptic))
---
# v0.8.3 (Mon Aug 18 2025)
#### 🐛 Bug Fix
- setup: match license label with actual text [#175](https://github.com/citeproc-py/citeproc-py/pull/175) ([@tmorrell](https://github.com/tmorrell))
- Fix Non-existent Terms [#156](https://github.com/citeproc-py/citeproc-py/pull/156) ([@JVickery-TBS](https://github.com/JVickery-TBS))
#### 🏠 Internal
- Remove hardcoded option for auto to onlyPublishWithReleaseLabel [#178](https://github.com/citeproc-py/citeproc-py/pull/178) ([@yarikoptic](https://github.com/yarikoptic))
- release action: missing semicolon [#177](https://github.com/citeproc-py/citeproc-py/pull/177) ([@tmorrell](https://github.com/tmorrell))
- release action: missing quotes [#176](https://github.com/citeproc-py/citeproc-py/pull/176) ([@tmorrell](https://github.com/tmorrell))
- coveralls: try to reenable [#163](https://github.com/citeproc-py/citeproc-py/pull/163) ([@tmorrell](https://github.com/tmorrell))
#### 📝 Documentation
- Fix some formatting issues in README [#164](https://github.com/citeproc-py/citeproc-py/pull/164) ([@alexfikl](https://github.com/alexfikl))
#### Authors: 4
- Alex Fikl ([@alexfikl](https://github.com/alexfikl))
- Jesse Vickery ([@JVickery-TBS](https://github.com/JVickery-TBS))
- Tom Morrell ([@tmorrell](https://github.com/tmorrell))
- Yaroslav Halchenko ([@yarikoptic](https://github.com/yarikoptic))
---
# v0.8.2 (Wed Mar 12 2025)
#### 🏠 Internal
- Explicitly specify utf-8 encoding while reading top level .md files for description [#162](https://github.com/citeproc-py/citeproc-py/pull/162) ([@yarikoptic](https://github.com/yarikoptic))
- Instruct that long description is in markdown and not ReST [#160](https://github.com/citeproc-py/citeproc-py/pull/160) ([@yarikoptic](https://github.com/yarikoptic))
#### Authors: 1
- Yaroslav Halchenko ([@yarikoptic](https://github.com/yarikoptic))
---
# v0.8.1 (Wed Mar 12 2025)
#### 🏠 Internal
- release: checkout with submodules [#159](https://github.com/citeproc-py/citeproc-py/pull/159) ([@yarikoptic](https://github.com/yarikoptic))
#### Authors: 1
- Yaroslav Halchenko ([@yarikoptic](https://github.com/yarikoptic))
---
# v0.8.0 (Wed Mar 12 2025)
#### 🚀 Enhancement
- release: use GitHUb App token for checkout and push [#158](https://github.com/citeproc-py/citeproc-py/pull/158) ([@tmorrell](https://github.com/tmorrell))
#### ⚠️ Pushed to `master`
- Rename CHANGES to CHANGELOG ([@yarikoptic](https://github.com/yarikoptic))
#### 🏠 Internal
- release: switch to using GitHub App to overcome branch protection [#157](https://github.com/citeproc-py/citeproc-py/pull/157) ([@tmorrell](https://github.com/tmorrell))
- Set up `auto` to automate releases [#153](https://github.com/citeproc-py/citeproc-py/pull/153) ([@jwodder](https://github.com/jwodder) [@yarikoptic](https://github.com/yarikoptic))
#### 📝 Documentation
- Convert CHANGES.rst, CONTRIBUTING.rst, and README.md to markdown [#154](https://github.com/citeproc-py/citeproc-py/pull/154) ([@tmorrell](https://github.com/tmorrell))
#### Authors: 3
- John T. Wodder II ([@jwodder](https://github.com/jwodder))
- Tom Morrell ([@tmorrell](https://github.com/tmorrell))
- Yaroslav Halchenko ([@yarikoptic](https://github.com/yarikoptic))
---
# Release 0.7.0 (2025-02-19)
Just to get a release out after long period.
#### Bug fixes
* Better handling of ordinals
* Fix locator conditions (resolves #142)
* Make family name optional
* Allow date parts to not be integers
* Support space macros
* Fix multiple capitals
* Fix parsing BibTex integer values
#### Other changes:
* Removed support for Python 3.6, 3.7, 3.8 and added for 3.10 - 3.13
* Switch versioning to versioneer
# Release 0.6.0 (2021-05-27)
#### Bug fixes
* Various issues on Windows: testing, explicit utf-8 encoding
* Strings with unescaped \ declared r"aw"
#### Other changes:
* Removed support for Python 2.7, 3.5 and added for 3.9
* Travis CI is removed in favor of GitHub actions testing across
all 3 major OSes (MacOS, Windows, GNU/Linux Ubuntu)
* CSL test-suite progressed from 5779a8c to c3db429
# Release 0.5.1 (2020-03-06)
#### Bug fixed:
* avoid rnc2rng 2.6.2 which breaks installation of citeproc-py
# Release 0.5.0 (2020-02-09)
#### Enhancements:
* handle commas and ampersands in a functional style
* Number: handle commas and ampersands
* added symbol for textquotesingle
* specify fallback locales for fr-CA and es-CL
* improved page number and ranges parsing
#### Bug fixed:
* don't fail on empty page ranges (#90) (bbm)
* detect end of file while parsing incorrect bib (#59) (John Vandenberg)
#### Other changes:
* Removed 3.2-3.4 and added 3.7, 3.8 to supported Pythons
* Refactored locales handling
# 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
Raw data
{
"_id": null,
"home_page": "https://github.com/brechtm/citeproc-py",
"name": "citeproc-py",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "csl citation html rst bibtex xml",
"author": "Brecht Machiels",
"author_email": "brecht@mos6581.org",
"download_url": "https://files.pythonhosted.org/packages/3e/45/1ef360e947036256aadcfccc67698de61545e2bc82b8bee19280077c0191/citeproc_py-0.9.0.tar.gz",
"platform": null,
"description": "# citeproc-py\n\n[](https://pypi.org/project/citeproc-py/)\n[](https://github.com/citeproc-py/citeproc-py/actions?query=branch%3Amaster+workflow%3ATest)\n[](https://coveralls.io/github/citeproc-py/citeproc-py)\n\n\nciteproc-py is a [CSL](https://citationstyles.org/) processor for Python. It aims to implement the\n[CSL 1.0.1 specification](https://docs.citationstyles.org/en/1.0.1/specification.html).\nciteproc-py can output styled citations and\nbibliographies in a number of different output formats. Currently\nsupported are plain text, reStructuredText and HTML. Other formats can\nbe added easily.\n\nciteproc-py uses [semantic versioning](https://semver.org/). Currently, its major version\nnumber is still at 0, meaning the API is not yet stable. However, you\nshould not expect to see any major API changes soon.\n\n## Requirements\n\nciteproc-py supports Python 3.9 and up. It depends on [lxml](https://lxml.de/) for parsing and\nnavigating the CSL style and locale files.\n\n# Installation\n\nThe recommended way of installing citeproc-py is by using\n[pip](https://pip.pypa.io/en/latest/):\n```bash\n pip install citeproc-py\n```\n\nIf `lxml` isn't installed, `pip` will try to install it for you.\n\nIf you insist, you can manually install citeproc-py from distribution packages\nhosted at [PyPI](https://pypi.python.org/pypi/citeproc-py/). Please ignore the release archives offered by GitHub.\n\n## Getting Started\n\nTo get started with citeproc-py, take a look at the examples under\n`examples/`. Two examples are provided, one parsing references from a\nJSON representation of references as supported by citeproc-js, another\nparsing the references from a BibTeX file. Both show and explain how to\ncite references and render the bibliography.\n\n## CSL Compatibility\n\nCurrently, citeproc-py passes almost 60% of the (relevant) tests in the\n[citeproc-test suite](https://github.com/citation-style-language/test-suite).\nHowever, it is more than 60% complete, as\nciteproc-py doesn't take care of double spaces and repeated punctuation\nmarks yet, making a good deal of the tests fail. In addition, the\nfollowing features have not yet been implemented (there are probably\nsome I forgot though):\n\n- disambiguation/year-suffix\n- et-al-subsequent-min/et-al-subsequent-use-first\n- collapsing\n- punctuation-in-quote\n- display\n\nAlso, some [citeproc-js](https://github.com/juris-m/citeproc-js)\nfunctionality that is not part of the CSL spec is not (yet) supported:\n\n- raw dates\n- static-ordering\n- literal names\n\n## Contributing\n\nciteproc-py is 100% volunteer maintained, and new contributions are always welcome.\nIf you would like to contribute, please follow the guidelines in the\n[CONTRIBUTING.md](https://github.com/citeproc-py/citeproc-py/blob/master/CONTRIBUTING.md) file.\n\n## Local Install and Running the Tests\n\nFirst clone the `citeproc-py` repository and install the submodules with\n```bash\ngit submodule update --init\n```\n\nThen install with\n```bash\npip install --editable .\n```\n\nThen move to the `tests` directory and run\n```bash\npython citeproc-test.py\n```\n\nRun\n```bash\nciteproc-test.py --help\n```\nto see its usage information. The first time\nyou run the script it will clone the\n[citeproc-test suite](https://github.com/citation-style-language/test-suite) repository into the\n`tests` directory and checkout the last tested version. By default failed tests are\nautomatically added into the `failing_tests.txt` file and aren't shown when\nrunning the test suite again.\n\nIf you want git to fully ignore the submodule, you can type\n```bash\ngit update-index --assume-unchanged citeproc/data/schema\n```\n\n\n# v0.9.0 (Mon Aug 25 2025)\n\n#### \ud83d\ude80 Enhancement\n\n- Feature/flexible style loading [#180](https://github.com/citeproc-py/citeproc-py/pull/180) ([@yarikoptic](https://github.com/yarikoptic))\n\n#### Authors: 1\n\n- Yaroslav Halchenko ([@yarikoptic](https://github.com/yarikoptic))\n\n---\n\n# v0.8.3 (Mon Aug 18 2025)\n\n#### \ud83d\udc1b Bug Fix\n\n- setup: match license label with actual text [#175](https://github.com/citeproc-py/citeproc-py/pull/175) ([@tmorrell](https://github.com/tmorrell))\n- Fix Non-existent Terms [#156](https://github.com/citeproc-py/citeproc-py/pull/156) ([@JVickery-TBS](https://github.com/JVickery-TBS))\n\n#### \ud83c\udfe0 Internal\n\n- Remove hardcoded option for auto to onlyPublishWithReleaseLabel [#178](https://github.com/citeproc-py/citeproc-py/pull/178) ([@yarikoptic](https://github.com/yarikoptic))\n- release action: missing semicolon [#177](https://github.com/citeproc-py/citeproc-py/pull/177) ([@tmorrell](https://github.com/tmorrell))\n- release action: missing quotes [#176](https://github.com/citeproc-py/citeproc-py/pull/176) ([@tmorrell](https://github.com/tmorrell))\n- coveralls: try to reenable [#163](https://github.com/citeproc-py/citeproc-py/pull/163) ([@tmorrell](https://github.com/tmorrell))\n\n#### \ud83d\udcdd Documentation\n\n- Fix some formatting issues in README [#164](https://github.com/citeproc-py/citeproc-py/pull/164) ([@alexfikl](https://github.com/alexfikl))\n\n#### Authors: 4\n\n- Alex Fikl ([@alexfikl](https://github.com/alexfikl))\n- Jesse Vickery ([@JVickery-TBS](https://github.com/JVickery-TBS))\n- Tom Morrell ([@tmorrell](https://github.com/tmorrell))\n- Yaroslav Halchenko ([@yarikoptic](https://github.com/yarikoptic))\n\n---\n\n# v0.8.2 (Wed Mar 12 2025)\n\n#### \ud83c\udfe0 Internal\n\n- Explicitly specify utf-8 encoding while reading top level .md files for description [#162](https://github.com/citeproc-py/citeproc-py/pull/162) ([@yarikoptic](https://github.com/yarikoptic))\n- Instruct that long description is in markdown and not ReST [#160](https://github.com/citeproc-py/citeproc-py/pull/160) ([@yarikoptic](https://github.com/yarikoptic))\n\n#### Authors: 1\n\n- Yaroslav Halchenko ([@yarikoptic](https://github.com/yarikoptic))\n\n---\n\n# v0.8.1 (Wed Mar 12 2025)\n\n#### \ud83c\udfe0 Internal\n\n- release: checkout with submodules [#159](https://github.com/citeproc-py/citeproc-py/pull/159) ([@yarikoptic](https://github.com/yarikoptic))\n\n#### Authors: 1\n\n- Yaroslav Halchenko ([@yarikoptic](https://github.com/yarikoptic))\n\n---\n\n# v0.8.0 (Wed Mar 12 2025)\n\n#### \ud83d\ude80 Enhancement\n\n- release: use GitHUb App token for checkout and push [#158](https://github.com/citeproc-py/citeproc-py/pull/158) ([@tmorrell](https://github.com/tmorrell))\n\n#### \u26a0\ufe0f Pushed to `master`\n\n- Rename CHANGES to CHANGELOG ([@yarikoptic](https://github.com/yarikoptic))\n\n#### \ud83c\udfe0 Internal\n\n- release: switch to using GitHub App to overcome branch protection [#157](https://github.com/citeproc-py/citeproc-py/pull/157) ([@tmorrell](https://github.com/tmorrell))\n- Set up `auto` to automate releases [#153](https://github.com/citeproc-py/citeproc-py/pull/153) ([@jwodder](https://github.com/jwodder) [@yarikoptic](https://github.com/yarikoptic))\n\n#### \ud83d\udcdd Documentation\n\n- Convert CHANGES.rst, CONTRIBUTING.rst, and README.md to markdown [#154](https://github.com/citeproc-py/citeproc-py/pull/154) ([@tmorrell](https://github.com/tmorrell))\n\n#### Authors: 3\n\n- John T. Wodder II ([@jwodder](https://github.com/jwodder))\n- Tom Morrell ([@tmorrell](https://github.com/tmorrell))\n- Yaroslav Halchenko ([@yarikoptic](https://github.com/yarikoptic))\n\n---\n\n\n# Release 0.7.0 (2025-02-19)\n\nJust to get a release out after long period.\n\n#### Bug fixes\n\n* Better handling of ordinals\n* Fix locator conditions (resolves #142)\n* Make family name optional\n* Allow date parts to not be integers\n* Support space macros\n* Fix multiple capitals\n* Fix parsing BibTex integer values\n\n#### Other changes:\n\n* Removed support for Python 3.6, 3.7, 3.8 and added for 3.10 - 3.13\n* Switch versioning to versioneer\n\n\n# Release 0.6.0 (2021-05-27)\n\n#### Bug fixes\n\n* Various issues on Windows: testing, explicit utf-8 encoding\n* Strings with unescaped \\ declared r\"aw\"\n\n#### Other changes:\n\n* Removed support for Python 2.7, 3.5 and added for 3.9\n* Travis CI is removed in favor of GitHub actions testing across\n all 3 major OSes (MacOS, Windows, GNU/Linux Ubuntu)\n* CSL test-suite progressed from 5779a8c to c3db429\n\n\n# Release 0.5.1 (2020-03-06)\n\n#### Bug fixed:\n\n* avoid rnc2rng 2.6.2 which breaks installation of citeproc-py\n\n# Release 0.5.0 (2020-02-09)\n\n#### Enhancements:\n\n* handle commas and ampersands in a functional style\n* Number: handle commas and ampersands\n* added symbol for textquotesingle\n* specify fallback locales for fr-CA and es-CL\n* improved page number and ranges parsing\n\n#### Bug fixed:\n\n* don't fail on empty page ranges (#90) (bbm)\n* detect end of file while parsing incorrect bib (#59) (John Vandenberg)\n\n#### Other changes:\n\n* Removed 3.2-3.4 and added 3.7, 3.8 to supported Pythons\n* Refactored locales handling\n\n# Release 0.4.0 (2017-06-23)\n\n#### New features:\n\n* allow specifying the encoding of a BibTeX database file (#20 and #25)\n* BibTeX 'month' field: support integers and \"<month> <day>\" values\n* BibTeX 'pages' field: support \"10\", \"10+\", \"10-12\" and \"10--12\" formats\n* BibTeX entry types: map the non-standard 'thesis' and 'report' entries\n* update the CSL schema to version 1.0.1 (#5)\n* update the CSL locales to commit 49bf3fc0\n\n#### Bug fixed:\n\n* avoid crash when there is nothing to affix (David Lesieur)\n* fix BibTeX month to CSL month mapping (#24)\n* strip leading/trailing whitespace from BibTeX values (#37)\n\n# Release 0.3.0 (2014-11-07)\n\n#### Major improvements to the BibTeX parser:\n\n* split names into parts and assign them to the equivalent CSL name parts\n* fixed handling of accent macros and escaped characters\n* more compatible (La)TeX macro handling in general (but still basic)\n* handle standard Computer Modern ligatures such as --, ---, and <<\n* added unit tests for the BibTeX and LaTeX parsers\n\n#### Other changes:\n\n* disable RelaxNG validation of CSL styles by default (API change)\n\n# Release 0.2.0 (2014-10-25)\n\n* bad cite callback function can determine how a bad cite is displayed (hetsch)\n* added option to disable RelaxNG validation (Jasper Op de Coul)\n* distutils was replaced with setuptools (Joshua Carp)\n* bug fixes (Yaroslav Halchenko, David Lesieur)\n* CitationStylesBibliography.bibliography() now returns the list of entries\n",
"bugtrack_url": null,
"license": "BSD-2-Clause-Views",
"summary": "Citations and bibliography formatter",
"version": "0.9.0",
"project_urls": {
"Homepage": "https://github.com/brechtm/citeproc-py"
},
"split_keywords": [
"csl",
"citation",
"html",
"rst",
"bibtex",
"xml"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "331682b65366ff45eec94785ca562908f5f55ab83b4e1d31ce3e00f77d6a4120",
"md5": "65ed3de9b8b4f8e4a5e345d135e36fbd",
"sha256": "4737a2adbbb8ba13e2abd6c24c29095b7d0c36722e7d377f7b046323bfc4d4f9"
},
"downloads": -1,
"filename": "citeproc_py-0.9.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "65ed3de9b8b4f8e4a5e345d135e36fbd",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 182713,
"upload_time": "2025-08-25T19:47:13",
"upload_time_iso_8601": "2025-08-25T19:47:13.390636Z",
"url": "https://files.pythonhosted.org/packages/33/16/82b65366ff45eec94785ca562908f5f55ab83b4e1d31ce3e00f77d6a4120/citeproc_py-0.9.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "3e451ef360e947036256aadcfccc67698de61545e2bc82b8bee19280077c0191",
"md5": "da60931c7b69a3449cd86760eddfbb34",
"sha256": "58781d8a563e87ca7cceb43d08beaca10dcdf9f3cf77ddf3b17894071edc27c8"
},
"downloads": -1,
"filename": "citeproc_py-0.9.0.tar.gz",
"has_sig": false,
"md5_digest": "da60931c7b69a3449cd86760eddfbb34",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 161247,
"upload_time": "2025-08-25T19:47:14",
"upload_time_iso_8601": "2025-08-25T19:47:14.961577Z",
"url": "https://files.pythonhosted.org/packages/3e/45/1ef360e947036256aadcfccc67698de61545e2bc82b8bee19280077c0191/citeproc_py-0.9.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-25 19:47:14",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "brechtm",
"github_project": "citeproc-py",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "citeproc-py"
}