Developer guide
To develop this project, please setup the uv project manager by running the following commands:
curl -LsSf https://astral.sh/uv/install.sh | sh
git clone git@github.com:CSML-IIT-UCL/linear_operator_learning.git
cd linear_operator_learning
uv sync --dev
uv run pre-commit install
Optional
Set up your IDE to automatically apply the ruff styling.
Development principles
Please adhere to the following principles while contributing to the project:
Adopt a functional style of programming. Avoid abstractions (classes) at all cost.
To add a new feature, create a branch and when done open a Pull Request. You should not approve your own PRs.
The package contains both
numpyandtorchbased algorithms. Let’s keep them separated.The functions shouldn’t change the
dtypeor device of the inputs (that is, keep a functional approach).Try to complement your contributions with simple examples to be added in the
examplesfolder. If you need some additional dependency add it to theexamplesdependency group asuv add --group examples _your_dependency_.