Contributions are welcome from any "array-consuming" library contributors who have found themselves writing private array-agnostic functions in the process of converting code to consume the standard.
Thanks to all contributors so far!
- Open an issue to propose the new function.
- Add the implementation of your function to
src/array_api_extra/_funcs.py.- Ensure that your function includes type annotations and a numpydoc-style docstring.
- Add your function to
__all__at the top of the file.
- Import your function to
src/array_api_extra/__init__.pyand add it to__all__there. - Add a test class for your function in
tests/test_funcs.py. - Add your function to
docs/api-reference.md. - Make a PR!
If you are an experienced contributor to Python packages, feel free to develop however you feel comfortable! However, if you would like some guidance, development of array-api-extra is made easy with Pixi:
- Clone the repository at https://github.com/data-apis/array-api-extra.
cd array-api-extra.- Install Pixi.
- To enter a development environment:
pixi shell -e dev
- To run the tests:
pixi run tests
- To build the docs locally:
pixi run docs
- To open and preview the locally-built docs:
pixi run open-docs
- To install a pre-commit hook:
pixi run pre-commit-install
- To run the lint suite:
pixi run lint
- To enter an interactive Python prompt:
pixi run ipython
- To run individual parts of the lint suite separately:
pixi run pre-commit
pixi run mypy
Alternative environments are available with a subset of the dependencies and
tasks available in the dev environment:
pixi shell -e docs
pixi shell -e tests
pixi shell -e lint