Thank you for your interest in contributing to PaperQA! Here are some guidelines to help you get started.
We use uv
for our local development.
Install uv
by following the instructions on the uv website.
Run the following command to install all dependencies and set up the development environment:
If you prefer to use pip
for installing the package in development mode, you can do so by running:
Use the following commands:
Run tests (requires an OpenAI key in your environment)
Run pre-commit
for formatting and type checking
Run mypy
, refurb
, or pylint
directly:
See our GitHub Actions tests.yml
for further reference.
pytest-recording
and VCR cassettesWe use the pytest-recording
plugin to create VCR cassettes to cache HTTP requests, making our unit tests more deterministic.
To record a new VCR cassette:
And the new cassette(s) should appear in tests/cassettes
.
Our configuration for pytest-recording
can be found in tests/conftest.py
. This includes header removals (e.g. OpenAI authorization
key) from responses to ensure sensitive information is excluded from the cassettes.
Please ensure cassettes are less than 1 MB to keep tests loading quickly.
Happy coding!