- Notifications
You must be signed in to change notification settings - Fork2
Build from Source
python-template-rust is written in Python and Rust. While prebuilt wheels are provided for end users, it is also straightforward to buildpython-template-rust from either the Pythonsource distribution or the GitHub repository.
As a convenience,python-template-rust uses aMakefile for commonly used commands. You can print the main available commands by runningmake with no arguments
> makebuild build the libraryclean clean the repositoryfix run autofixersinstall install librarylint run lintstest run the tests
python-template-rust has a few system-level dependencies which you can install from your machine package manager. Other package managers likeconda,nix, etc, should also work fine.
Clone the repo with:
git clone https://github.com/python-project-templates/python-template-rust.gitcd python-template-rustFollow the instructions forinstalling Rust for your system.
Python build and develop dependencies are specified in thepyproject.toml, but you can manually install them:
make requirements
Note that these dependencies would otherwise be installed normally as part ofPEP517 /PEP518.
Build the python project in the usual manner:
make build
python-template-rust has linting and auto formatting.
| Language | Linter | Autoformatter | Description |
|---|---|---|---|
| Python | ruff | ruff | Style |
| Python | ruff | ruff | Imports |
| Rust | clippy | clippy | Style |
| Markdown | mdformat | mdformat | Style |
| Markdown | codespell | Spelling |
Python Linting
make lint-py
Python Autoformatting
make fix-py
Rust Linting
make lint-rs
Rust Autoformatting
make fix-rs
Documentation Linting
make lint-docs
Documentation Autoformatting
make fix-docs
python-template-rust has both Python and JavaScript tests. The bulk of the functionality is tested in Python, which can be run viapytest. First, install the Python development dependencies with
make develop
Python
make test-py
Rust
make test-rs
This wiki is autogenerated. To made updates, open a PR against the original source file indocs/wiki.