Contributing
Contributions from the user community are welcome. See
the PETSc developers
documentation for general
information on contributions.
New contributions to petsc4py must adhere with the coding standards. We use cython-lint for Cython and ruff for Python source codes. These can be installed using:
$ python -m pip install -r src/binding/petsc4py/conf/requirements-lint.txt
If you are contributing Cython code, you can check compliance with:
$ make cython-lint -C src/binding/petsc4py
For Python code, run:
$ make ruff-lint -C src/binding/petsc4py
Python code can be auto-formatted using:
$ make ruff-lint RUFF_OPTS='format' -C src/binding/petsc4py
New contributions to petsc4py must be tested.
Tests are located in the src/binding/petsc4py/test
folder.
To add a new test, either add a new test_xxx.py
or modify a
pre-existing file according to the
unittest
specifications.
If you add a new test_xxx.py
, you can run the tests using:
$ cd src/binding/petsc4py
$ python test/runtests.py -k test_xxx
If instead you are modifying an existing test_xxx.py
,
you can test your additions by using the fully qualified name of the Python
class or method you are modifying, e.g.:
$ python test/runtests.py -k test_xxx.class_name.method_name
All new code must include documentation in accordance with the documentation standard. To check for compliance, run:
$ make html SPHINXOPTS='-W' -C src/binding/petsc4py/docs/source
Warning
The docstrings must not cause Sphinx warnings.