PyPika welcomes contributions in all forms. These may be bugs, feature requests, documentation, or examples. Please feel free to:
- Submitting an issue
- Opening a pull request
- Helping with outstanding issues and pull requests
If you find a bug or have a feature request, please open an issue on GitHub. Please just check that the issue doesn't already exist before opening a new one.
Do this once but keep it up to date
Clone forked repo and set upstream
git clone git@github.com:<your-username>/pypika.git cd pypika git remote add upstream git@github.com:kayak/pypika.git
Setup up python virtual environment
Create and activate the environment. Here is an example using
venv
from the standard library:python -m venv .venv source .venv/bin/activate
Install python dependencies for development
With the virtual environment activated, install the development requirements, pre-commit, and the package itself:
make install
Run the tests
The unit tests are run with
unittest
viatox
. To run the tests locally:make test
These tests will also run on GitHub Actions when you open a pull request.
Build the docs locally
Our docs are built with Sphinx. To build the docs locally:
make docs.build
Open the docs in your browser. For instance, on macOS:
open docs/_build/index.html
Please check that your pull request meets the following criteria:
- Unit tests pass
- pre-commit hooks pass
- Docstring and examples and checking for correct render in the docs
Documentation is built with Sphinx and hosted on Read the Docs. The latest builds are displayed on their site here.
The code documentation is to be written in the docstrings of the code itself or in the various .rst
files in project root or the docs/
directory.
The docstrings can be in either Numpy or Sphinx format.
We use pre-commit to automate format checks. Install the pre-commit hooks with the make install
command described above.
GitHub Actions runs both format checks and unit tests on every pull request.
NOTE: The hosted documentation is built separately from the GitHub Actions workflow. To build the docs locally, use the make docs.build
command described above.