Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
32 changes: 16 additions & 16 deletions .github/workflows/pythonpackage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,29 +16,30 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.7, 3.8, 3.9]
python-version: ['3.8', '3.9', '3.10', '3.11']

steps:
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Build in confined, updated environment and interpolate version
- name: Build package
run: |
python -m venv /tmp/buildenv
source /tmp/buildenv/bin/activate
python -m pip install -U setuptools pip wheel twine docutils
python setup.py sdist bdist_wheel
python -m twine check dist/nitransforms*
pipx run build
- name: Determine expected version
run: |
python -m venv /tmp/getversion
source /tmp/getversion/bin/activate
python -m pip install setuptools_scm

# Interpolate version
if [[ "$GITHUB_REF" == refs/tags/* ]]; then
TAG=${GITHUB_REF##*/}
fi
THISVERSION=$( python setup.py --version )
THISVERSION=$( python -m setuptools_scm )
THISVERSION=${TAG:-$THISVERSION}
echo "Expected VERSION: \"${THISVERSION}\""
echo "THISVERSION=${THISVERSION}" >> ${GITHUB_ENV}
Expand All @@ -47,7 +48,7 @@ jobs:
run: |
python -m venv /tmp/install_sdist
source /tmp/install_sdist/bin/activate
python -m pip install --upgrade pip wheel
python -m pip install --upgrade pip
python -m pip install dist/nitransforms*.tar.gz
INSTALLED_VERSION=$(python -c 'import nitransforms; print(nitransforms.__version__, end="")')
echo "VERSION: \"${THISVERSION}\""
Expand All @@ -58,7 +59,7 @@ jobs:
run: |
python -m venv /tmp/install_wheel
source /tmp/install_wheel/bin/activate
python -m pip install --upgrade pip wheel
python -m pip install --upgrade pip
python -m pip install dist/nitransforms*.whl
INSTALLED_VERSION=$(python -c 'import nitransforms; print(nitransforms.__version__, end="")')
echo "INSTALLED: \"${INSTALLED_VERSION}\""
Expand Down Expand Up @@ -89,10 +90,9 @@ jobs:
if: "!contains(github.event.head_commit.message, '[skip ci]')"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Set up Python 3.7
uses: actions/setup-python@v1
uses: actions/setup-python@v4
with:
python-version: 3.7
- run: pip install flake8
- run: flake8 nitransforms/
- run: pipx run flake8 nitransforms
17 changes: 9 additions & 8 deletions .github/workflows/travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,18 @@ jobs:
strategy:
max-parallel: 5
matrix:
python-version: [3.7, 3.8, 3.9]
python-version: ['3.8', '3.9', '3.10', '3.11']

steps:
- name: Git settings (pacify DataLad)
run: |
git config --global user.name 'NiPreps Bot'
git config --global user.email 'nipreps@gmail.com'
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- uses: actions/cache@v2
- uses: actions/cache@v3
id: conda
with:
path: |
Expand All @@ -33,10 +33,10 @@ jobs:
python-${{ matrix.python-version }}-
- name: Install DataLad
run: |
$CONDA/bin/conda install -c conda-forge git-annex datalad pip codecov pytest
$CONDA/bin/conda install -c conda-forge git-annex datalad pip pytest
$CONDA/bin/python -m pip install datalad-osf

- uses: actions/cache@v2
- uses: actions/cache@v3
with:
path: ${{ env.TEST_DATA_HOME }}
key: data-cache-v2
Expand All @@ -53,7 +53,7 @@ jobs:
$CONDA/bin/datalad update --merge -d nitransforms-tests/
$CONDA/bin/datalad get -d nitransforms-tests/

- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Install minimal dependencies
run: |
$CONDA/bin/pip install .[tests]
Expand All @@ -62,5 +62,6 @@ jobs:
$CONDA/bin/pytest -v --cov nitransforms --cov-config .coveragerc --cov-report xml:cov.xml --doctest-modules nitransforms/

- name: Submit code coverage
run: |
$CONDA/bin/python -m codecov --flags travis --file cov.xml -e $GITHUB_RUN_NUMBER
uses: codecov/codecov-action@v3
with:
files: cov.xml
2 changes: 1 addition & 1 deletion nitransforms/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ def cli_apply(pargs):
cval=pargs.cval,
prefilter=pargs.prefilter,
)
moved.to_filename(pargs.out or "nt_{}".format(os.path.basename(pargs.moving)))
moved.to_filename(pargs.out or f"nt_{os.path.basename(pargs.moving)}")


def get_parser():
Expand Down
4 changes: 2 additions & 2 deletions nitransforms/io/lta.py
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ def set_type(self, new_type):
return

raise NotImplementedError(
"Converting {0} to {1} is not yet available".format(
"Converting {} to {} is not yet available".format(
transform_codes.label[current], transform_codes.label[new_type]
)
)
Expand Down Expand Up @@ -334,7 +334,7 @@ def to_string(self):
code = int(self["type"])
header = [
"# LTA-array file created by NiTransforms",
"type = {} # {}".format(code, transform_codes.label[code]),
f"type = {code} # {transform_codes.label[code]}",
"nxforms = {}".format(self["nxforms"]),
]
xforms = [xfm.to_string(partial=True) for xfm in self._xforms]
Expand Down
2 changes: 1 addition & 1 deletion nitransforms/nonlinear.py
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@ class BSplineFieldTransform(TransformBase):

def __init__(self, coefficients, reference=None, order=3):
"""Create a smooth deformation field using B-Spline basis."""
super(BSplineFieldTransform, self).__init__()
super().__init__()
self._order = order

coefficients = _ensure_image(coefficients)
Expand Down
6 changes: 3 additions & 3 deletions nitransforms/tests/test_io.py
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,7 @@ def test_Linear_common(tmpdir, data_path, sw, image_orientation, get_testdata):
with pytest.raises(TransformFileError):
factory.from_string("")

fname = "affine-%s.%s%s" % (image_orientation, sw, ext)
fname = f"affine-{image_orientation}.{sw}{ext}"

# Test the transform loaders are implemented
xfm = factory.from_filename(data_path / fname)
Expand Down Expand Up @@ -262,7 +262,7 @@ def test_LinearList_common(tmpdir, data_path, sw, image_orientation, get_testdat

tflist1 = factory(mats)

fname = "affine-%s.%s%s" % (image_orientation, sw, ext)
fname = f"affine-{image_orientation}.{sw}{ext}"

with pytest.raises(FileNotFoundError):
factory.from_filename(fname)
Expand Down Expand Up @@ -305,7 +305,7 @@ def test_ITKLinearTransform(tmpdir, testdata_path):

# Test to_filename(textfiles)
itkxfm.to_filename("textfile.tfm")
with open("textfile.tfm", "r") as f:
with open("textfile.tfm") as f:
itkxfm2 = itk.ITKLinearTransform.from_fileobj(f)
assert np.allclose(itkxfm["parameters"], itkxfm2["parameters"])

Expand Down
6 changes: 3 additions & 3 deletions nitransforms/tests/test_linear.py
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ def test_linear_save(tmpdir, data_path, get_testdata, image_orientation, sw_tool
elif sw_tool == "fs":
ext = ".lta"

xfm_fname1 = "M.%s%s" % (sw_tool, ext)
xfm_fname1 = f"M.{sw_tool}{ext}"
xfm.to_filename(xfm_fname1, fmt=sw_tool)

xfm_fname2 = str(data_path / "affine-%s.%s%s") % (image_orientation, sw_tool, ext)
Expand Down Expand Up @@ -257,7 +257,7 @@ def test_apply_linear_transform(tmpdir, get_testdata, get_testmask, image_orient
msk.to_filename("mask.nii.gz")

# Write out transform file (software-dependent)
xfm_fname = "M.%s%s" % (sw_tool, ext)
xfm_fname = f"M.{sw_tool}{ext}"
# Change reference dataset for AFNI & oblique
if (sw_tool, image_orientation) == ("afni", "oblique"):
io.afni.AFNILinearTransform.from_ras(
Expand All @@ -278,7 +278,7 @@ def test_apply_linear_transform(tmpdir, get_testdata, get_testmask, image_orient
# skip test if command is not available on host
exe = cmd.split(" ", 1)[0]
if not shutil.which(exe):
pytest.skip("Command {} not found on host".format(exe))
pytest.skip(f"Command {exe} not found on host")

# resample mask
exit_code = check_call([cmd], shell=True)
Expand Down
4 changes: 2 additions & 2 deletions nitransforms/tests/test_nonlinear.py
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ def test_displacements_field1(
# skip test if command is not available on host
exe = cmd.split(" ", 1)[0]
if not shutil.which(exe):
pytest.skip("Command {} not found on host".format(exe))
pytest.skip(f"Command {exe} not found on host")

# resample mask
exit_code = check_call([cmd], shell=True)
Expand Down Expand Up @@ -219,7 +219,7 @@ def test_displacements_field2(tmp_path, testdata_path, sw_tool):
# skip test if command is not available on host
exe = cmd.split(" ", 1)[0]
if not shutil.which(exe):
pytest.skip("Command {} not found on host".format(exe))
pytest.skip(f"Command {exe} not found on host")

exit_code = check_call([cmd], shell=True)
assert exit_code == 0
Expand Down
3 changes: 2 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
[build-system]
requires = ["setuptools >= 42.0", "wheel", "setuptools_scm[toml] >= 3.4", "setuptools_scm_git_archive"]
requires = ["setuptools >= 45", "setuptools_scm[toml]>=6.2"]
build-backend = "setuptools.build_meta"

[tool.setuptools_scm]
write_to = "nitransforms/_version.py"
Expand Down
5 changes: 3 additions & 2 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,10 @@ classifiers =
Intended Audience :: Science/Research
Topic :: Scientific/Engineering :: Image Recognition
License :: OSI Approved :: BSD License
Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
Programming Language :: Python :: 3.11
description = NiTransforms -- Neuroimaging spatial transforms in Python.
license = MIT License
long_description = file:README.md
Expand All @@ -20,7 +21,7 @@ project_urls =
url = https://github.com/nipy/nitransforms

[options]
python_requires = >= 3.7
python_requires = >= 3.8
install_requires =
numpy >= 1.21.0
scipy >= 1.6.0
Expand Down