Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
119 commits
Select commit Hold shift + click to select a range
074f2fc
Working version and pep8
Oct 24, 2024
07d32d1
Merge branch 'master' of github.com:scilus/scilpy into harmonize_lesions
Oct 29, 2024
34b73b3
Fix incremental lesions
Oct 29, 2024
faae1b1
Merge branch 'master' of github.com:scilus/scilpy into harmonize_lesions
Dec 12, 2024
5f29de4
Merge branch 'master' of github.com:scilus/scilpy into harmonize_lesions
frheault Jan 28, 2025
4cb7681
Merge branch 'master' of github.com:scilus/scilpy into harmonize_lesions
frheault Feb 4, 2025
44c2184
Fix list of list
frheault Feb 5, 2025
af714d2
Merge branch 'master' into harmonize_lesions
frheault Feb 20, 2025
436a23a
Merge branch 'master' of https://github.com/scilus/scilpy into harmon…
frheault Apr 17, 2025
16d8d80
feat: Upgrade to Python 3.12
frheault Jul 10, 2025
389b677
feat: Add surface feature and StatefulSurface support
frheault Jul 10, 2025
98baa8a
refactor: Remove scilpy_bot and nltk changes
frheault Jul 10, 2025
5fa719e
fix: Correct Space import in scilpy.io.utils
frheault Jul 10, 2025
e8f2c61
feat: Add scilpy_bot and nltk support
frheault Jul 10, 2025
4e5c422
Merge branch 'feature/surface-feature' into feature/python-3.12
frheault Jul 10, 2025
9b31093
Fix peaks directions
frheault Jul 10, 2025
9d3246f
revert convert
frheault Jul 10, 2025
ebe0c7f
Fix conflict with master
frheault Jul 10, 2025
7443b77
Update fury
frheault Jul 10, 2025
35697a1
Remove warnings !
frheault Jul 10, 2025
7d998bc
Fix errors due to regex
frheault Jul 11, 2025
b419736
Fix fibertube array error
frheault Jul 11, 2025
eac6642
add filtering overlap point + nb points
arnaudbore Jul 11, 2025
d803d92
Merge pull request #1197 from arnaudbore/add_filtering_bundle_map
arnaudbore Jul 11, 2025
dbda416
fix pep8
arnaudbore Jul 11, 2025
58090a3
update version
arnaudbore Jul 11, 2025
7f40ee8
Merge pull request #1198 from arnaudbore/add_filtering_bundle_map
arnaudbore Jul 11, 2025
97defa2
Handle empty labels
frheault Jul 18, 2025
10eb3ad
change repo organization - first trial
arnaudbore Jul 21, 2025
622af7b
fix manifest
arnaudbore Jul 21, 2025
0d25bf0
try some test
arnaudbore Jul 22, 2025
06c6807
source env
arnaudbore Jul 22, 2025
09df7c1
install VTK osmesa in the workflow, not provided with runner image an…
AlexVCaron Jul 23, 2025
fb1013b
Merge pull request #1202 from AlexVCaron/fix/container_update
arnaudbore Jul 23, 2025
1113101
tets add setup
arnaudbore Jul 23, 2025
4c512f0
fix setup
arnaudbore Jul 23, 2025
0d68a61
merge master and fix conflicts
arnaudbore Jul 23, 2025
3a1b15a
Merge branch 'master' of https://github.com/scilus/scilpy into featur…
frheault Jul 23, 2025
aaa52bb
Support 3.10
frheault Jul 23, 2025
1e671bb
Fix Antoine comments
frheault Jul 23, 2025
5682e59
use uv
arnaudbore Jul 24, 2025
a48a956
Fix errors in all python version
frheault Jul 24, 2025
43b827d
Update .github/workflows/test.yml
frheault Jul 24, 2025
870f3a8
Fix sparse in bundleseg
frheault Jul 24, 2025
7e08dec
Fix last error
frheault Jul 24, 2025
d035e71
Fix Arnaud and Emmanuel comments
frheault Jul 25, 2025
1c5e442
Added back the pypi install
frheault Jul 25, 2025
6b9cff4
Merge pull request #1196 from frheault/feature/python-3.12
arnaudbore Jul 25, 2025
fc299ce
Update README.md
arnaudbore Jul 25, 2025
0597ecb
Merge pull request #1200 from frheault/fix_warning_empty_slice
arnaudbore Jul 25, 2025
22a1f5e
Ignore some coverage
EmmaRenauld Feb 3, 2025
6b44564
Add test for viz_seeds_3d
EmmaRenauld Apr 4, 2025
0708beb
Add option 'ambiant_occlusion' and 'local_orientation`
EmmaRenauld Apr 4, 2025
f591b04
Add option in test_bundle_diameter
EmmaRenauld Apr 30, 2025
95e27ca
Ignoring functions in viz.gradients
EmmaRenauld Apr 30, 2025
b03270a
Add test in viz_volume_screenshot_mosaic
EmmaRenauld Apr 30, 2025
d75a151
Simplify scil_viz_fodf
EmmaRenauld May 1, 2025
1387f67
New test for scil_viz_volume_screenshot
EmmaRenauld Apr 30, 2025
0c5c0bb
Fixed color
EmmaRenauld Jul 22, 2025
40322b2
Add test for viz_gradients_screenshot
EmmaRenauld Jul 22, 2025
9be5ae8
Improving coverage in sclice
EmmaRenauld Jul 23, 2025
6632a6f
Fixed test_viz_bingham_fit + added options in test_viz_fodf
EmmaRenauld Jul 23, 2025
4d259ca
Remove ignore decorator, now ok
EmmaRenauld Jul 24, 2025
cb9ee25
fix filtering_list when using multiple id for atlas_roi
arnaudbore Jul 28, 2025
071e28e
fix typo and add comment
arnaudbore Jul 28, 2025
3c1dd20
update filtering.zip thanks to Alex
arnaudbore Jul 29, 2025
8354160
Use more lightweight data in test_viz_fodf.sh
EmmaRenauld Jul 29, 2025
3d2a98a
Use smaller sphere in viz_fodf
EmmaRenauld Jul 29, 2025
0e57a51
Fix test_tractogram_assigh_custom_color
EmmaRenauld Jul 29, 2025
6152678
Answer Alex: add --silent to plot each shell/proj shell
EmmaRenauld Jul 30, 2025
ed2504f
Answer other comments Alex and Arnaud
EmmaRenauld Jul 30, 2025
8c89abb
Fix typos
EmmaRenauld Jul 30, 2025
7cffba8
Merge pull request #1137 from EmmaRenauld/ignore_some_cov_viz
arnaudbore Jul 30, 2025
9f2a79c
add test_lesions_harmonize_labels
ThoumyreStanislas Jul 31, 2025
e6df96f
Merge branch 'master' into add_test_harmonzie_labels
ThoumyreStanislas Jul 31, 2025
967dc54
Merge branch 'master' of https://github.com/scilus/scilpy into harmon…
frheault Jul 31, 2025
4bb8c43
add lesions.zip in fetcher.py
ThoumyreStanislas Aug 1, 2025
3475ea2
Merge branch 'add_test_harmonzie_labels' of github.com:ThoumyreStanis…
ThoumyreStanislas Aug 1, 2025
f18e4b8
Merge remote-tracking branch 'collegue/harmonize_lesions' into add_te…
ThoumyreStanislas Aug 1, 2025
af49082
Update scripts/tests/test_lesions_harmonize_labels.py
frheault Aug 1, 2025
cc2185c
Update scripts/tests/test_lesions_harmonize_labels.py
frheault Aug 1, 2025
94554ec
Update scripts/tests/test_lesions_harmonize_labels.py
frheault Aug 1, 2025
f194f8e
Merge pull request #2 from ThoumyreStanislas/add_test_harmonzie_labels
frheault Aug 1, 2025
803569b
Add tests for incremental
frheault Aug 1, 2025
c936040
fix warning get_version + pytest multithread
arnaudbore Aug 1, 2025
683b6c1
Merge pull request #1039 from frheault/harmonize_lesions
arnaudbore Aug 1, 2025
a3eb8c3
merge master
arnaudbore Aug 1, 2025
d32f343
fix dependancies
arnaudbore Aug 1, 2025
405cda7
fix some automatic fusion
arnaudbore Aug 1, 2025
4dc10eb
fix workflow vtk version
arnaudbore Aug 2, 2025
bdf2543
try pyproject wo space for dependancies
arnaudbore Aug 2, 2025
c962c00
fix python version and tests calls
arnaudbore Aug 2, 2025
7a7e990
add pytest-xdist
arnaudbore Aug 2, 2025
b461168
add extra step github workflow - download data before running tests
arnaudbore Aug 2, 2025
5f7b3c7
add download nltk in scil_data_download
arnaudbore Aug 2, 2025
e074c98
more fixes
arnaudbore Aug 2, 2025
e53639a
fix test scilpy bot
arnaudbore Aug 2, 2025
8cd2c06
fix aodf tests + add nltk punkt_tab
arnaudbore Aug 2, 2025
2ee85ff
install uv for coverage step
arnaudbore Aug 2, 2025
2023ee2
add system to uv installation
arnaudbore Aug 2, 2025
b441f76
restore coverage install
arnaudbore Aug 2, 2025
f954d71
Test triu_connectivity from endpoints
EmmaRenauld Dec 12, 2024
5443da2
First test matrix_tool
EmmaRenauld Dec 12, 2024
14d65ef
apply_olo not used anywhere. Deleting
EmmaRenauld Feb 3, 2025
9cb23e8
Fix missing casting from list to ArraySequence
EmmaRenauld Feb 3, 2025
307362c
answer francois comments + pep8 tests + improve time with mask
arnaudbore Aug 4, 2025
1f5e883
Merge branch 'master' into fix_filtering_list
arnaudbore Aug 4, 2025
45e6772
Merge pull request #1205 from arnaudbore/fix_filtering_list
arnaudbore Aug 4, 2025
2f0cf2e
fix some test and improve coverage
arnaudbore Aug 4, 2025
a18804a
Merge pull request #1102 from EmmaRenauld/unit_tests_connectivity
arnaudbore Aug 4, 2025
54749ca
fix get_version test
arnaudbore Aug 4, 2025
9a7b022
merge master
arnaudbore Aug 4, 2025
3466fc9
try to force encoding while reading vocabulary file
arnaudbore Aug 5, 2025
0a3836e
update setup workflow
arnaudbore Aug 5, 2025
a8682c7
try to answer Alex comments
arnaudbore Aug 6, 2025
4ddc9b2
fix typo action
arnaudbore Aug 6, 2025
822e7e8
fix version
arnaudbore Aug 6, 2025
bcdc292
fix workflow
arnaudbore Aug 6, 2025
4e487a0
Merge pull request #1201 from arnaudbore/new_package_organization
arnaudbore Aug 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
17 changes: 8 additions & 9 deletions .coveragerc
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,16 @@
branch = True
concurrency = multiprocessing
data_file = .coverage
source_pkgs =
scilpy
scripts
source = src
relative_files = True
omit =
scripts/tests/*.py
scilpy/tests/**/*.py
scilpy/**/tests/*.py
scilpy/**/tests/**/*.py
scripts/tests/*.py
scripts/tests/**/*.py
src/scilpy/tests/**/*.py
src/scilpy/**/tests/*.py
src/scilpy/**/tests/**/*.py
src/scilpy/cli/tests/*.py
src/scilpy/cli/tests/**/*.py
src/scilpy/cli/scil_data_download.py
src/scilpy/io/deprecator.py

[report]
skip_empty = True
Expand Down
49 changes: 25 additions & 24 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,14 @@ on:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

env:
MPLBACKEND: agg
OPENBLAS_NUM_THREADS: 1

jobs:
test:
runs-on: scilus-runners
runs-on: scilus-bigmem-runners
if: github.repository == 'scilus/scilpy'

steps:
Expand All @@ -30,11 +30,12 @@ jobs:
id: python-selector
run: echo "python-version=$(head -1 .python-version)" >> $GITHUB_OUTPUT

- name: Set up Python for Scilpy
uses: actions/setup-[email protected]
- name: Set up Python and uv for Scilpy
uses: astral-sh/setup-[email protected]
with:
python-version: ${{ steps.python-selector.outputs.python-version }}
cache: 'pip'
activate-environment: true
enable-cache: true

- name: Install non-python dependencies
run: |
Expand All @@ -46,19 +47,30 @@ jobs:
libblas-dev \
liblapack-dev \
libfreetype6-dev \
libdrm-dev
libdrm-dev \
libgl1-mesa-dev \
libosmesa6-dev

- name: Install Scilpy
- name: stdlib checkout
if: ${{ !contains(steps.python-selector.outputs.python-version, '3.12') }}
run: |
export SETUPTOOLS_USE_DISTUTILS=stdlib
python -m pip install --upgrade pip wheel
python -m pip install --upgrade "setuptools<71.0.0"
python -m pip install -e .
echo "SETUPTOOLS_USE_DISTUTILS=stdlib" >> "$GITHUB_ENV"

- name: Install Scilpy
run: |
uv pip install --upgrade pip wheel
uv pip install --upgrade "setuptools<71.0.0"
uv pip install -e .
# TODO: to adapt once Scilpy passes to VTK 9.4.0, which selects OSMesa at runtime
# https://discourse.vtk.org/t/status-update-runtime-opengl-render-window-selection-in-vtk/14583
VTK_VERSION=$(cat pyproject.toml | grep 'vtk==' | sed 's/vtk==//g' | sed 's/\"//g' )
uv pip install --extra-index-url https://wheels.vtk.org vtk-osmesa==$VTK_VERSION
uv pip install pytest-xdist pytest-cov
- name: Run tests
run: |
export C_INCLUDE_PATH=$pythonLocation/include/python${{ steps.python-selector.outputs.python-version }}:$C_INCLUDE_PATH
pytest --cov-report term-missing:skip-covered
scil_data_download
uv run --active pytest --cov-report term-missing:skip-covered

- name: Save test results and coverage
uses: actions/upload-artifact@v4
Expand All @@ -80,27 +92,16 @@ jobs:
- name: Checkout repository at merge
uses: actions/checkout@v4

- name: Set up Python for codecov upload
uses: actions/[email protected]
with:
python-version: '3.10'
cache: 'pip'

- name: Install pycoverage
run: pip install coverage

- name: Download test results and coverage
uses: actions/download-artifact@v4
with:
name: test-coverage-${{ github.run_id }}

- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v4
uses: codecov/codecov-action@v5.4.3
with:
token: ${{ secrets.CODECOV_TOKEN }}
flags: unittests
name: scilpy-unittests-${{ github.run_id }}-${{ github.run_attempt }}
verbose: true
fail_ci_if_error: true
plugin: pycoverage

4 changes: 2 additions & 2 deletions .python-version
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
3.10
>=3.9,<3.12
3.12
>=3.10, < 3.13
8 changes: 4 additions & 4 deletions MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ include LICENSE
include requirements.txt
include .python-version

recursive-include data/LUT *
recursive-include scilpy *.c
recursive-include scilpy *.cpp
recursive-include scilpy *.pyx
recursive-include src/scilpy/data *
recursive-include src/scilpy *.c
recursive-include src/scilpy *.cpp
recursive-include src/scilpy *.pyx
41 changes: 22 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,22 +14,10 @@
**Scilpy** mainly comprises tools and utilities to quickly work with diffusion MRI. Most of the tools are based
on or are wrappers of the [DIPY] library, and most of them will eventually be migrated to [DIPY]. Those tools implement the recommended workflows and parameters used in the lab.

## Install scilpy as a user

We highly encourage to install scilpy in a virtual environnement. Once done and you're in your virtual environnement you can run this command:

```
export SETUPTOOLS_USE_DISTUTILS=stdlib
pip install scilpy
```

## Install scilpy as a developer

The library is now built for Python 3.9/3.10 and 3.11. Please, be sure to create a virtual environnement.
If none of these versions are installed on your computer, we suggest you to install python3.10:
The library is now built for Python 3.12 so be sure to create a virtual environnement for Python 3.12. If this version is not installed on your computer:
```
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get install python3.10 python3.10-dev python3.10-venv python3.10-minimal python3.10-tk
sudo apt-get install python3.12 python3.12-dev python3.12-venv python3.12-tk
```

Make sure your pip is up-to-date before trying to install:
Expand All @@ -39,19 +27,34 @@ pip install --upgrade pip

The library's structure is mostly aligned on that of [DIPY].

The library and scripts can be installed locally by using:
We highly encourage to install scilpy in a virtual environnement. Once done and you're in your virtual environnement, the library and scripts can be installed locally by running these commands:

## Install scilpy as a user

```
# If you are using Python3.10 or Python3.11, export this variable before installing
export SETUPTOOLS_USE_DISTUTILS=stdlib
pip install -e .

# If you don't want to install legacy scripts
export SCILPY_LEGACY='False'

pip install scilpy # For the most recent release from PyPi
```

If you don't want to install legacy scripts:
## Install scilpy as a developer

```
# If you are using Python3.10 or Python3.11, export this variable before installing
export SETUPTOOLS_USE_DISTUTILS=stdlib

# If you don't want to install legacy scripts
export SCILPY_LEGACY='False'
pip install -e .
pip install -e . # Install from source code (for development)
```

(Then, without the legacy scripts, if you want to use pytest, use:)
## EXTRAS

Then, without the legacy scripts, if you want to use pytest, use:
```
pytest --ignore=scripts/legacy
```
Expand Down
4 changes: 2 additions & 2 deletions codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@ component_management:
- component_id: scilpy_scripts
name: Scripts
paths:
- scripts/
- src/scilpy/cli/
- component_id: scilpy_library
name: Library
paths:
- scilpy/
- "^src/scilpy/(?!cli)/.*$"

comment:
layout: "condensed_header, diff, components"
Loading