Contributing to PaperQA
Thank you for your interest in contributing to PaperQA! Here are some guidelines to help you get started.
Setting up the development environment
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:
Installing the package for development
If you prefer to use pip
for installing the package in development mode, you can do so by running:
Running tests and other tooling
Use the following commands:
Run tests (requires an OpenAI key in your environment)
Run
pre-commit
for formatting and type checkingRun
mypy
,refurb
, orpylint
directly:
See our GitHub Actions tests.yml
for further reference.
Using pytest-recording
and VCR cassettes
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!
Last updated