Skip to content
This repository has been archived by the owner on Dec 20, 2024. It is now read-only.

ENH: Indexes sorting options #150

Merged
merged 47 commits into from
Apr 8, 2024
Merged
Changes from 2 commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
3343f34
enh: externalize sorting functions
esavary Apr 4, 2024
1e305d9
fix:import statement
esavary Apr 4, 2024
6a8a585
sty: fix style error
esavary Apr 4, 2024
4e199a9
sty: fix style error
esavary Apr 4, 2024
b13c975
sty: fix style errors
esavary Apr 4, 2024
148bb71
Apply suggestions from code review
esavary Apr 5, 2024
5155f9f
fix: revert stylistic changes
esavary Apr 5, 2024
9420ce5
fix: revert stylistic changes
esavary Apr 5, 2024
3d7afb1
fix: revert stylistic changes
esavary Apr 5, 2024
69611fa
Update src/eddymotion/utils.py
esavary Apr 5, 2024
31fa9d6
Update src/eddymotion/utils.py
esavary Apr 5, 2024
6320f66
Update src/eddymotion/utils.py
esavary Apr 5, 2024
4998afa
fix: revert changes in estimator.py
esavary Apr 5, 2024
a424582
Apply suggestions from code review
esavary Apr 5, 2024
88bea1d
fix: typos
esavary Apr 5, 2024
b58a708
enh: update args and test for bvalue_action
esavary Apr 5, 2024
4366683
fix: docstring
esavary Apr 5, 2024
ee95877
fix: remove unused import
esavary Apr 5, 2024
e84bddd
Apply suggestions from code review
esavary Apr 5, 2024
3c0b36d
fix: add link for new module documentation
esavary Apr 5, 2024
22bbb68
fix: add exeption
esavary Apr 5, 2024
43fe703
fix: bvalue_action implementation + typos
esavary Apr 5, 2024
11f52a4
sty: remove white space
esavary Apr 5, 2024
cdfe20a
fix: typos
esavary Apr 5, 2024
f858a6a
sty: remove white space
esavary Apr 5, 2024
90cf31c
Apply suggestions from code review
esavary Apr 8, 2024
fa43376
sty: change iterator names
esavary Apr 8, 2024
cdeb34f
sty: fix docstring
esavary Apr 8, 2024
965b3c5
Apply suggestions from code review
esavary Apr 8, 2024
a43fdde
fix: random seed and add test
esavary Apr 8, 2024
ae19816
fix: typos
esavary Apr 8, 2024
d78c500
enh: generalize docstring
esavary Apr 8, 2024
6aaa7d4
Update src/eddymotion/utils.py
esavary Apr 8, 2024
4e7a418
Apply suggestions from code review
esavary Apr 8, 2024
4163b0b
Apply suggestions from code review
esavary Apr 8, 2024
ed20ca8
fix: random generator test results
esavary Apr 8, 2024
d966c97
Apply suggestions from code review
esavary Apr 8, 2024
0057079
sty: add typing
esavary Apr 8, 2024
6f0d5fe
fix: remove unused import
esavary Apr 8, 2024
2cc923a
Apply suggestions from code review
esavary Apr 8, 2024
9bda539
fix: import position
esavary Apr 8, 2024
d1c9846
Apply suggestions from code review
esavary Apr 8, 2024
807a468
fix: iterator typing in docstring
esavary Apr 8, 2024
fee865d
sty: fix ruff errors
esavary Apr 8, 2024
5f0837d
Merge branch 'nipreps:main' into index-sorting
esavary Apr 8, 2024
caa72a5
sty: fix sty errors
esavary Apr 8, 2024
911a730
sty: fix sty errors
esavary Apr 8, 2024
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
39 changes: 20 additions & 19 deletions src/eddymotion/utils.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
import random
from itertools import chain, zip_longest
from typing import Generator

# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*-
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please, be careful, why these four lines here before the header?

Suggested change
import random
from itertools import chain, zip_longest
from typing import Generator
# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*-
# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*-

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I fixed the imports in 9bda539.

# vi: set ft=python sts=4 ts=4 sw=4 et:
#
Expand All @@ -22,23 +26,20 @@
#
"""Iterators to traverse the volumes in a 4D image."""

import random
from itertools import chain, zip_longest

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Revert the removal of imports and add the Generation import here:

Suggested change
import random
from itertools import chain, zip_longest
import random
from itertools import chain, zip_longest
from typing import Generator


oesteban marked this conversation as resolved.
Show resolved Hide resolved
def linear_iterator(size=None, **kwargs):
def linear_iterator(size: int = None, **kwargs) -> Generator[int, None, None]:
esavary marked this conversation as resolved.
Show resolved Hide resolved
"""
Traverse the dataset volumes in ascending order.

Parameters
----------
size : :obj:`int`
size : int, optional
esavary marked this conversation as resolved.
Show resolved Hide resolved
Number of volumes in the dataset
(for instance, the number of orientations in a DWI)

Returns
-------
:obj:`~typing.Generator`
Generator[int, None, None]
esavary marked this conversation as resolved.
Show resolved Hide resolved
The sorted index order.

Examples
Expand All @@ -55,24 +56,24 @@ def linear_iterator(size=None, **kwargs):
return range(size)
esavary marked this conversation as resolved.
Show resolved Hide resolved


def random_iterator(size=None, **kwargs):
def random_iterator(size: int = None, **kwargs) -> Generator[int, None, None]:
esavary marked this conversation as resolved.
Show resolved Hide resolved
"""
Traverse the dataset volumes randomly.

Parameters
----------
size : :obj:`int`
size : int, optional
esavary marked this conversation as resolved.
Show resolved Hide resolved
Number of volumes in the dataset
(for instance, the number of orientations in a DWI)
seed : :obj:`int` or :obj:`bool` or :obj:`bool` or ``None``
If :obj:`int` or :obj:`str` or ``None``, initializes the seed of Python's random generator
seed : int or bool or None, optional
If int or str or None, initializes the seed of Python's random generator
esavary marked this conversation as resolved.
Show resolved Hide resolved
with the given value.
If ``False``, the random generator is passed ``None``.
If ``True``, a default seed value is set.
If False, the random generator is passed None.
If True, a default seed value is set.
esavary marked this conversation as resolved.
Show resolved Hide resolved

Returns
-------
:obj:`~typing.Generator`
Generator[int, None, None]
esavary marked this conversation as resolved.
Show resolved Hide resolved
The sorted index order.
oesteban marked this conversation as resolved.
Show resolved Hide resolved

Examples
Expand Down Expand Up @@ -104,18 +105,18 @@ def random_iterator(size=None, **kwargs):
return (x for x in index_order)


def bvalue_iterator(size=None, **kwargs):
def bvalue_iterator(size: int = None, **kwargs) -> Generator[int, None, None]:
esavary marked this conversation as resolved.
Show resolved Hide resolved
"""
Traverse the volumes in a DWI dataset by growing b-value.

Parameters
----------
bvalues : :obj:`list`
bvals : list
esavary marked this conversation as resolved.
Show resolved Hide resolved
List of b-values corresponding to all orientations of the dataset.

Returns
-------
:obj:`~typing.Generator`
Generator[int, None, None]
esavary marked this conversation as resolved.
Show resolved Hide resolved
The sorted index order.

Examples
Expand All @@ -131,19 +132,19 @@ def bvalue_iterator(size=None, **kwargs):
return (index[1] for index in indexed_bvals)


def centralsym_iterator(size=None, **kwargs):
def centralsym_iterator(size: int = None, **kwargs) -> Generator[int, None, None]:
esavary marked this conversation as resolved.
Show resolved Hide resolved
"""
Traverse the dataset starting from the center and alternatingly progressing to the sides.

Parameters
----------
size : :obj:`int`
size : int
esavary marked this conversation as resolved.
Show resolved Hide resolved
Number of volumes in the dataset
(for instance, the number of orientations in a DWI)

Returns
-------
:obj:`~typing.Generator`
Generator[int, None, None]
esavary marked this conversation as resolved.
Show resolved Hide resolved
The sorted index order.

Examples
Expand Down
Loading