Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
6dfc9f8
doc: started to update documentation
mrava87 Mar 12, 2026
0c230f4
build: started to update pyproject.toml for uv
mrava87 Mar 12, 2026
9687dbb
minor: added missing sphinx dependency to req files
mrava87 Mar 12, 2026
652923d
doc: removed unmantained roadmap
mrava87 Mar 12, 2026
b95e6dc
bug: switch to np.trapezoid in dublurring tutorial (np.trapz deprecated)
mrava87 Mar 13, 2026
87f715f
build: switch to new tooling in environment files
mrava87 Mar 29, 2026
ac5bd3d
misc: fix all ruff errors (after switching to it)
mrava87 Mar 29, 2026
7c0d797
ci: added ruff GA
mrava87 Mar 29, 2026
0b18419
ci: moved build GA to uv
mrava87 Mar 29, 2026
0a6fd08
ci: move RTD to uv
mrava87 Mar 29, 2026
1c912f9
doc: revert pyhton to 3.12 in RTD
mrava87 Mar 29, 2026
ff48b9f
ci: move linux azure pipeline to uv
mrava87 Mar 29, 2026
c94bbf1
ci: move osx azure pipeline to uv
mrava87 Mar 29, 2026
8a9a01c
ci: temporarely revert RTD build proces
mrava87 Mar 29, 2026
d5d56b0
ci: force torch<2.11.0 to get GPU CI to work
mrava87 Mar 29, 2026
66e4407
ci: try again RTD with uv
mrava87 Mar 29, 2026
3c40953
fix: remove strict in zip from numba codes
mrava87 Mar 29, 2026
8a3abd9
ci: moved mkl GA to uv
mrava87 Mar 29, 2026
bab19fb
tmp: roll-back to without intel
mrava87 Mar 29, 2026
337d159
tmp: rollback pyproject.toml to working version for GPU CI
mrava87 Mar 29, 2026
6deee8b
doc: add more info about optional dependencies in uv
mrava87 Apr 4, 2026
8ba5cac
ci: updated coverage GA to uv
mrava87 Apr 4, 2026
7fa8955
build: removed unused requirements files
mrava87 Apr 4, 2026
64aefe7
build: updated files to exclude in MANIFEST.in
mrava87 Apr 4, 2026
d9a2081
build: updated targets in Makefile
mrava87 Apr 4, 2026
be39ba3
minor: updated list of excluded files in coverage
mrava87 Apr 4, 2026
f77c342
doc: finalized update of installation instructions
mrava87 Apr 4, 2026
a60a326
ci: trying switching GPU GA to uv
mrava87 Apr 4, 2026
61a7889
fix: fixed optional dep name for cupy in uv
mrava87 Apr 4, 2026
54b518c
tmp: force torch<2.11.0 in cu12 to run on GA
mrava87 Apr 4, 2026
63eb1d9
test: fix kirchhoff not to run tests with eikonal traveltimes on gpu
mrava87 Apr 4, 2026
7cdf3f3
test: skip fft tests with fftw in GPU mode
mrava87 Apr 4, 2026
ada2a6b
test: skip chirpradon tests with fftw in GPU mode
mrava87 Apr 4, 2026
4e3e04c
test: skip 2d/3d fft tests with fftw in GPU mode
mrava87 Apr 4, 2026
7697d6e
ci: switch to uv in cupy GA
mrava87 Apr 4, 2026
9eb08d1
minor: removed unused requirements-dev-gpu
mrava87 Apr 4, 2026
ae011ec
build: enable intel in pyproject and use in intel GA
mrava87 Apr 4, 2026
b08b3cd
tmp: temporarely restore requirements-dev-gpu
mrava87 Apr 4, 2026
d28ee1c
minor: try to fix conflicts due to intel dep in pyprpoject.toml
mrava87 Apr 4, 2026
7909653
Merge branch 'dev' into build-uv
mrava87 Apr 4, 2026
afdb6c6
build: revert back to not include intel in pyproject.toml
mrava87 Apr 4, 2026
3e7c8f0
minor: small improvement to optimization init
mrava87 Apr 4, 2026
05b0bc0
minor: small improvements to docstrings
mrava87 Apr 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .coveragerc
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
[run]
branch = True
source = pylops
omit =
pylops/basicoperators/_*.py
pylops/signalprocessing/_*.py
pylops/utils/_*.py
pylops/waveeqprocessing/_*.py
42 changes: 13 additions & 29 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,33 +16,17 @@ jobs:
python-version: ["3.10", "3.11", "3.12", "3.13"]

runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v4
- name: Get history and tags for SCM versioning to work
run: |
git fetch --prune --unshallow
git fetch --depth=1 origin +refs/tags/*:refs/tags/*
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip setuptools
pip install flake8 pytest

if [[ "${{ matrix.platform }}" == ubuntu* ]]; then
pip install -r requirements-dev.txt
pip install -r requirements-pyfftw.txt
else
pip install -r requirements-dev-arm.txt
pip install -r requirements-pyfftw.txt
fi
pip install -r requirements-torch.txt
- name: Install pylops
run: |
python -m setuptools_scm
pip install .
- name: Tests with pytest
run: |
pytest
steps:
- name: Check out source repository
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Install uv with Python ${{ matrix.python-version }}
uses: astral-sh/setup-uv@v6
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies and pylops
run: uv sync --locked --extra advanced --extra stat --extra deep --all-groups
- name: Test with pytest
run: uv run pytest --color=yes pytests/
43 changes: 20 additions & 23 deletions .github/workflows/buildcupy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,29 +13,26 @@ jobs:
runs-on: self-hosted
steps:
- name: Check out source repository
uses: actions/checkout@v4
- name: Set up Python environment and Install dependencies and pylops
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Install uv with Python 3.11
uses: astral-sh/setup-uv@v6
with:
python-version: 3.11
- name: Install dependencies and pylops
run: |
python3 -m venv .venv-pylops
# write install scripts
cat << 'EOF' > pylops_tests.sh
#!/bin/bash
PYTHON=.venv-pylops/bin/python3
PIP=.venv-pylops/bin/pip
ls $PYTHON
ls $PIP
$PIP install
$PIP install --upgrade pip setuptools
$PIP install install flake8 pytest setuptools-scm
$PIP install -r requirements-dev-gpu.txt
$PIP install cupy-cuda12x
$PYTHON -m setuptools_scm
$PIP install .
EOF
srun --account=yuxilab -n 1 -N 1 --gres=gpu:L40S:1 bash pylops_tests.sh
- name: Tests with pytest
srun --account=yuxilab -n 1 -N 1 --gres=gpu:L40S:1 bash -c '
uv sync --locked --extra advanced \
--extra stat --extra gpu-cu12 \
--extra deep-cu128 --all-groups
'
echo "done!"
- name: Test with pytest
run: |
export CUPY_PYLOPS=1; export TEST_CUPY_PYLOPS=1;
export PYTEST=.venv-pylops/bin/pytest
srun --account=yuxilab -n 1 -N 1 --gres=gpu:L40S:1 $PYTEST
srun --account=yuxilab -n 1 -N 1 --gres=gpu:L40S:1 bash -c '
export CUPY_PYLOPS=1
export TEST_CUPY_PYLOPS=1
uv run pytest --color=yes pytests/
'
echo "done!"
67 changes: 31 additions & 36 deletions .github/workflows/codacy-coverage-reporter.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,43 +2,38 @@
# For more information see: https://github.com/codacy/codacy-coverage-reporter-action
name: PyLops-coverage

on: [push, pull_request_target]
on:
pull_request:
push:
branches: [dev]

jobs:
build:
strategy:
matrix:
platform: [ ubuntu-latest, ]
python-version: ["3.11", ]

runs-on: ${{ matrix.platform }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Get history and tags for SCM versioning to work
run: |
git fetch --prune --unshallow
git fetch --depth=1 origin +refs/tags/*:refs/tags/*
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install flake8 pytest
pip install -r requirements-dev.txt
pip install -r requirements-pyfftw.txt
pip install -r requirements-torch.txt
- name: Install pylops
run: |
pip install .
pip install coverage
- name: Code coverage with coverage
run: |
coverage run -m pytest
coverage xml
- name: Run codacy-coverage-reporter
uses: codacy/codacy-coverage-reporter-action@v1
with:
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
coverage-reports: coverage.xml
- name: Check out source repository
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Install uv with Python
uses: astral-sh/setup-uv@v6
with:
python-version: "3.11"
- name: Install dependencies and pylops
run: uv sync --locked --extra advanced --extra stat --extra deep --all-groups
- name: Coverage with pytest
run: |
uv run coverage run -m pytest
uv run coverage xml
uv run coverage html
- name: Upload HTML coverage report
uses: actions/upload-artifact@v4
with:
name: coverage-html
path: htmlcov/
- name: Run codacy-coverage-reporter
if: github.event_name == 'push'
uses: codacy/codacy-coverage-reporter-action@v1
with:
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
coverage-reports: coverage.xml
19 changes: 19 additions & 0 deletions .github/workflows/ruff.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# This workflow runs Ruff on the PR
# For more information see: https://github.com/marketplace/actions/ruff-action
name: PyLops-ruff

on: [push, pull_request]

jobs:
ruff-lint:
runs-on: ubuntu-latest
name: Lint
steps:
- name: Check out source repository
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Lint with ruff
uses: astral-sh/ruff-action@v3
with:
src: "./pylops"
39 changes: 20 additions & 19 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,30 +1,31 @@
exclude: "^docs/"
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.0.1
rev: v6.0.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: mixed-line-ending
- id: check-toml
- id: check-yaml
- id: check-added-large-files
- id: check-case-conflict
- id: check-merge-conflict

- repo: https://github.com/psf/black
rev: 22.3.0
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.14.14
hooks:
- id: black
args: # arguments to configure black
- --line-length=88
- id: ruff-check
args: [ --fix ]
- id: ruff-format

- repo: https://github.com/pycqa/isort
rev: 5.12.0
- repo: https://github.com/astral-sh/uv-pre-commit
rev: 0.9.28
hooks:
- id: isort
name: isort (python)
args:
[
"--profile",
"black",
"--skip",
"__init__.py",
"--filter-files",
"--line-length=88",
]
- id: uv-lock

- repo: https://github.com/abravalheri/validate-pyproject
rev: "v0.23"
hooks:
- id: validate-pyproject
additional_dependencies: ["validate-pyproject-schema-store[all]"]
27 changes: 14 additions & 13 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,21 @@
# Required
version: 2

# Set the version of Python and other tools you might need
build:
os: ubuntu-24.04
tools:
python: "3.12"

# Build documentation in the docs/ directory with Sphinx
sphinx:
configuration: docs/source/conf.py

# Declare the Python requirements required to build your docs
python:
install:
- requirements: requirements-doc.txt
- requirements: requirements-torch.txt
- method: pip
path: .
# Set the version of environment using UV
build:
os: ubuntu-24.04
tools:
python: "3.12"
jobs:
pre_create_environment:
- asdf plugin add uv
- asdf install uv latest
- asdf global uv latest
create_environment:
- uv venv "${READTHEDOCS_VIRTUALENV_PATH}"
install:
- UV_PROJECT_ENVIRONMENT="${READTHEDOCS_VIRTUALENV_PATH}" uv sync --locked --extra advanced --extra stat --extra deep --all-groups
4 changes: 0 additions & 4 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,6 @@ The best way to get in touch with the core developers and maintainers is to
join the [PyLops slack channel](https://pylops.slack.com/) as well as
open new *Issues* directly from the GitHub repo.

Moreover, take a look at the [Roadmap](https://pylops.readthedocs.io/en/stable/roadmap.html)
page for a list of current ideas for improvements and additions to the PyLops library.


## Welcomed contributions

### Bug reports
Expand Down
6 changes: 4 additions & 2 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
exclude .*
exclude environment.yml requirements.txt Makefile
exclude environment-dev.yml requirements-dev.txt azure-pipelines.yml readthedocs.yml
exclude Makefile
exclude environment*
exclude requirements*
exclude azure-pipelines.yml readthedocs.yml
recursive-exclude docs *
recursive-exclude examples *
recursive-exclude pytests *
Expand Down
Loading
Loading