citation-url
Parse URLs for DOIs, PubMed identifiers, PMC identifiers, arXiv identifiers, etc.
This module has a single parse()
function that takes in a URL and gives back a CURIE pair (with None
as the first entry if it could not parse)
>>> import citation_url
>>> citation_url.parse("https://joss.theoj.org/papers/10.21105/joss.01708")
('doi', '10.21105/joss.01708')
>>> citation_url.parse("http://www.ncbi.nlm.nih.gov/pubmed/34739845")
('pubmed', '34739845')
>>> citation_url.parse("https://example.com/true-garbage")
(None, 'https://example.com/true-garbage')
π
Installation
The most recent release can be installed from PyPI with:
$ pip install citation_url
The most recent code and data can be installed directly from GitHub with:
$ pip install git+https://github.com/cthoyt/citation-url.git
π
Contributing
Contributions, whether filing an issue, making a pull request, or forking, are appreciated. See CONTRIBUTING.md for more information on getting involved.
π
Attribution
βοΈ
License
The code in this package is licensed under the MIT License.
πͺ
Cookiecutter
This package was created with @audreyfeldroy's cookiecutter package using @cthoyt's cookiecutter-snekpack template.
π οΈ
For Developers
See developer instrutions
The final section of the README is for if you want to get involved by making a code contribution.
Development Installation
To install in development mode, use the following:
$ git clone git+https://github.com/cthoyt/citation-url.git
$ cd citation-url
$ pip install -e .
π₯Ό
Testing
After cloning the repository and installing tox
with pip install tox
, the unit tests in the tests/
folder can be run reproducibly with:
$ tox
Additionally, these tests are automatically re-run with each commit in a GitHub Action.
π
Building the Documentation
$ tox -e docs
π¦
Making a Release
After installing the package in development mode and installing tox
with pip install tox
, the commands for making a new release are contained within the finish
environment in tox.ini
. Run the following from the shell:
$ tox -e finish
This script does the following:
- Uses Bump2Version to switch the version number in the
setup.cfg
andsrc/citation_url/version.py
to not have the-dev
suffix - Packages the code in both a tar archive and a wheel
- Uploads to PyPI using
twine
. Be sure to have a.pypirc
file configured to avoid the need for manual input at this step - Push to GitHub. You'll need to make a release going with the commit where the version was bumped.
- Bump the version to the next patch. If you made big changes and want to bump the version by minor, you can use
tox -e bumpversion minor
after.