Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
444ddb9
Update version to 0.2 and add package dependency on itk v5.1.1
blowekamp Oct 6, 2020
9a5cfa0
Fix setup.py syntax error
blowekamp Oct 6, 2020
930289f
Add intial check in of maksed assign image filter
blowekamp Nov 19, 2020
803cec0
Merge pull request #7 from blowekamp/AddMaskedAssignImageFilter
blowekamp Nov 20, 2020
7f969cb
STYLE: Rename ITK_DISALLOW_COPY_AND_ASSIGN to ITK_DISALLOW_COPY_AND_MOVE
mseng10 Oct 19, 2020
49bb41d
ENH: Adding missing macro end of line semi-colon
hjmjohnson Dec 28, 2020
7dadf89
STYLE: Match clang-format style for ITK
hjmjohnson Dec 28, 2020
6917415
COMP: Update GitHub Actions from ITKModuleTemplate
mseng10 Jan 11, 2021
be21024
BUG: Incorrect expectations for tests
mseng10 Jan 26, 2021
013c769
Merge pull request #11 from mseng10/update-ci
blowekamp Apr 23, 2021
83cc86d
Update checkout version 2
blowekamp Apr 23, 2021
9450615
Update to ITK tag v5.20
blowekamp Apr 23, 2021
4cd0a63
Update Ubuntu 20.04
blowekamp Apr 23, 2021
8a7586c
Update used python version in setup
blowekamp Apr 23, 2021
2ff7b07
Update setup.py version
blowekamp Apr 23, 2021
211456d
Merge pull request #14 from blowekamp/UpdateITKandCI
blowekamp Apr 23, 2021
0a6d1bf
Add test case for report matrix with an INVALID orientation
blowekamp Apr 22, 2021
a728f6d
Update to greedy algorithm for determining closes orientation
blowekamp Apr 22, 2021
432d457
Fix CI to use Ubuntu 18.04
blowekamp Apr 23, 2021
73ecf38
Merge pull request #12 from blowekamp/FixOrientationSelection
blowekamp Apr 23, 2021
c1ab584
Update to ITK 5.3rc2
blowekamp Nov 2, 2021
ad91905
Change testing data to sha512 uploaded to data.kitware
blowekamp Nov 4, 2021
f885603
Merge pull request #15 from blowekamp/UpdateITK5.3
blowekamp Nov 4, 2021
877b9be
ENH: Bump ITK and change http to https
tbirdso May 31, 2022
04c3f48
Update GHA from template for ITK 5.3.0
blowekamp Dec 7, 2022
6d8f950
Merge pull request #17 from blowekamp/UpdateForITK53
blowekamp Dec 8, 2022
0557b25
Wrap DICOMOrientation
blowekamp Dec 8, 2022
adab09d
Merge pull request #18 from blowekamp/wrap_dicom_orientation
blowekamp Dec 12, 2022
9926e46
Update to version 1.0
blowekamp Feb 7, 2023
bb89686
Merge pull request #19 from blowekamp/UpdateVersion
blowekamp Feb 8, 2023
efa0bb0
Update build for ITK 5.4.0
blowekamp Jun 27, 2024
cc4f5ef
Merge pull request #20 from blowekamp/update_itk_5.4.0
blowekamp Jun 27, 2024
1d2ca3e
chore: Convert from setup.py to pyproject.toml
effigies Sep 7, 2024
2216e1b
Merge pull request #22 from effigies/pyproject
jhlegarreta Sep 8, 2024
146c321
COMP: Use modern macro for name of class
hjmjohnson Jan 25, 2025
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
266 changes: 6 additions & 260 deletions .github/workflows/build-test-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,263 +3,9 @@ name: Build, test, package
on: [push,pull_request]

jobs:
build-test-cxx:
runs-on: ${{ matrix.os }}
strategy:
max-parallel: 3
matrix:
os: [ubuntu-18.04, windows-2019, macos-10.15]
include:
- os: ubuntu-18.04
c-compiler: "gcc"
cxx-compiler: "g++"
itk-git-tag: "v5.1.1"
cmake-build-type: "MinSizeRel"
- os: windows-2019
c-compiler: "cl.exe"
cxx-compiler: "cl.exe"
itk-git-tag: "v5.1.1"
cmake-build-type: "Release"
- os: macos-10.15
c-compiler: "clang"
cxx-compiler: "clang++"
itk-git-tag: "v5.1.1"
cmake-build-type: "MinSizeRel"

steps:
- uses: actions/checkout@v1

- name: Set up Python 3.7
uses: actions/setup-python@v1
with:
python-version: 3.7

- name: Install build dependencies
run: |
python -m pip install --upgrade pip
python -m pip install ninja

- name: Download ITK
run: |
cd ..
git clone https://github.com/InsightSoftwareConsortium/ITK.git
cd ITK
git checkout ${{ matrix.itk-git-tag }}

- name: Build ITK
if: matrix.os != 'windows-2019'
run: |
cd ..
mkdir ITK-build
cd ITK-build
cmake -DCMAKE_C_COMPILER:FILEPATH="${{ matrix.c-compiler }}" -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_CXX_COMPILER="${{ matrix.cxx-compiler }}" -DCMAKE_BUILD_TYPE:STRING=${{ matrix.cmake-build-type }} -DBUILD_TESTING:BOOL=OFF -GNinja ../ITK
ninja

- name: Build ITK
if: matrix.os == 'windows-2019'
run: |
cd ..
mkdir ITK-build
cd ITK-build
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
cmake -DCMAKE_C_COMPILER:FILEPATH="${{ matrix.c-compiler }}" -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_CXX_COMPILER="${{ matrix.cxx-compiler }}" -DCMAKE_BUILD_TYPE:STRING=${{ matrix.cmake-build-type }} -DBUILD_TESTING:BOOL=OFF -GNinja ../ITK
ninja
shell: cmd

- name: Fetch CTest driver script
run: |
curl -L https://raw.githubusercontent.com/InsightSoftwareConsortium/ITK/dashboard/itk_common.cmake -O

- name: Configure CTest script
shell: bash
run: |
operating_system="${{ matrix.os }}"
cat > dashboard.cmake << EOF
set(CTEST_SITE "GitHubActions")
file(TO_CMAKE_PATH "\$ENV{GITHUB_WORKSPACE}/.." CTEST_DASHBOARD_ROOT)
file(TO_CMAKE_PATH "\$ENV{GITHUB_WORKSPACE}/" CTEST_SOURCE_DIRECTORY)
file(TO_CMAKE_PATH "\$ENV{GITHUB_WORKSPACE}/../build" CTEST_BINARY_DIRECTORY)
set(dashboard_source_name "${GITHUB_REPOSITORY}")
if(ENV{GITHUB_REF} MATCHES "master")
set(branch "-master")
set(dashboard_model "Continuous")
else()
set(branch "-${GITHUB_REF}")
set(dashboard_model "Experimental")
endif()
set(CTEST_BUILD_NAME "${GITHUB_REPOSITORY}-${operating_system}-\${branch}")
set(CTEST_UPDATE_VERSION_ONLY 1)
set(CTEST_TEST_ARGS \${CTEST_TEST_ARGS} PARALLEL_LEVEL \${PARALLEL_LEVEL})
set(CTEST_BUILD_CONFIGURATION "Release")
set(CTEST_CMAKE_GENERATOR "Ninja")
set(CTEST_CUSTOM_WARNING_EXCEPTION
\${CTEST_CUSTOM_WARNING_EXCEPTION}
# macOS Azure VM Warning
"ld: warning: text-based stub file"
)
set(dashboard_no_clean 1)
set(ENV{CC} ${{ matrix.c-compiler }})
set(ENV{CXX} ${{ matrix.cxx-compiler }})
set(dashboard_cache "
ITK_DIR:PATH=\${CTEST_DASHBOARD_ROOT}/ITK-build
BUILD_TESTING:BOOL=ON
")
string(TIMESTAMP build_date "%Y-%m-%d")
message("CDash Build Identifier: \${build_date} \${CTEST_BUILD_NAME}")
message("CTEST_SITE = \${CTEST_SITE}")
include(\${CTEST_SCRIPT_DIRECTORY}/itk_common.cmake)
EOF
cat dashboard.cmake

- name: Build and test
if: matrix.os != 'windows-2019'
run: |
ctest --output-on-failure -j 2 -V -S dashboard.cmake

- name: Build and test
if: matrix.os == 'windows-2019'
run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
ctest --output-on-failure -j 2 -V -S dashboard.cmake
shell: cmd

build-linux-python-packages:
runs-on: ubuntu-18.04
strategy:
max-parallel: 2
matrix:
python-version: [35, 36, 37, 38]
include:
- itk-python-git-tag: "v5.1.1"

steps:
- uses: actions/checkout@v2

- name: 'Free up disk space'
run: |
# Workaround for https://github.com/actions/virtual-environments/issues/709
df -h
sudo apt-get clean
sudo rm -rf "/usr/local/share/boost"
sudo rm -rf "$AGENT_TOOLSDIRECTORY"
df -h

- name: 'Fetch build script'
run: |
curl -L https://raw.githubusercontent.com/InsightSoftwareConsortium/ITKPythonPackage/master/scripts/dockcross-manylinux-download-cache-and-build-module-wheels.sh -O
chmod u+x dockcross-manylinux-download-cache-and-build-module-wheels.sh

- name: 'Build 🐍 Python 📦 package'
run: |
export ITK_PACKAGE_VERSION=${{ matrix.itk-python-git-tag }}
./dockcross-manylinux-download-cache-and-build-module-wheels.sh cp${{ matrix.python-version }}

- name: Publish Python package as GitHub Artifact
uses: actions/upload-artifact@v1
with:
name: LinuxWheel${{ matrix.python-version }}
path: dist

build-macos-python-packages:
runs-on: macos-10.15
strategy:
max-parallel: 2
matrix:
include:
- itk-python-git-tag: "v5.1.1"

steps:
- uses: actions/checkout@v2

- name: 'Fetch build script'
run: |
curl -L https://raw.githubusercontent.com/InsightSoftwareConsortium/ITKPythonPackage/master/scripts/macpython-download-cache-and-build-module-wheels.sh -O
chmod u+x macpython-download-cache-and-build-module-wheels.sh

- name: 'Build 🐍 Python 📦 package'
run: |
export ITK_PACKAGE_VERSION=${{ matrix.itk-python-git-tag }}
export MACOSX_DEPLOYMENT_TARGET=10.9
./macpython-download-cache-and-build-module-wheels.sh

- name: Publish Python package as GitHub Artifact
uses: actions/upload-artifact@v1
with:
name: MacOSWheels
path: dist

build-windows-python-packages:
runs-on: windows-2019
strategy:
max-parallel: 2
matrix:
python-version-minor: [5, 6, 7, 8]
include:
- itk-python-git-tag: "v5.1.1"

steps:
- uses: actions/checkout@v2
with:
path: "im"

- name: 'Install Python'
run: |
$pythonArch = "64"
$pythonVersion = "3.${{ matrix.python-version-minor }}"
iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/scikit-build/scikit-ci-addons/master/windows/install-python.ps1'))

- name: 'Fetch build dependencies'
shell: bash
run: |
mv im ../../
cd ../../
curl -L "https://github.com/InsightSoftwareConsortium/ITKPythonBuilds/releases/download/${{ matrix.itk-python-git-tag }}/ITKPythonBuilds-windows.zip" -o "ITKPythonBuilds-windows.zip"
7z x ITKPythonBuilds-windows.zip -o/c/P -aoa -r
curl -L "https://data.kitware.com/api/v1/file/5c0ad59d8d777f2179dd3e9c/download" -o "doxygen-1.8.11.windows.bin.zip"
7z x doxygen-1.8.11.windows.bin.zip -o/c/P/doxygen -aoa -r
curl -L "https://data.kitware.com/api/v1/file/5bbf87ba8d777f06b91f27d6/download/grep-win.zip" -o "grep-win.zip"
7z x grep-win.zip -o/c/P/grep -aoa -r

- name: 'Build 🐍 Python 📦 package'
shell: cmd
run: |
cd ../../im
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
set PATH="C:\P\grep;%PATH%"
set CC=cl.exe
set CXX=cl.exe
C:\Python3${{ matrix.python-version-minor }}-x64\python.exe C:\P\IPP\scripts\windows_build_module_wheels.py --py-envs "3${{ matrix.python-version-minor }}-x64"

- name: Publish Python package as GitHub Artifact
uses: actions/upload-artifact@v1
with:
name: WindowWheel3.${{ matrix.python-version-minor }}
path: ../../im/dist

publish-python-packages-to-pypi:
needs:
- build-linux-python-packages
- build-macos-python-packages
- build-windows-python-packages
runs-on: ubuntu-18.04

steps:
- name: Download Python Packages
uses: actions/download-artifact@v2

- name: Prepare packages for upload
run: |
ls -R
for d in */; do
mv ${d}/*.whl .
done
mkdir dist
mv *.whl dist/
ls dist

- name: Publish 🐍 Python 📦 package to PyPI
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags')
uses: pypa/gh-action-pypi-publish@master
with:
user: __token__
password: ${{ secrets.pypi_password }}
cxx-build-workflow:
uses: InsightSoftwareConsortium/ITKRemoteModuleBuildTestPackageAction/.github/workflows/[email protected]
python-build-workflow:
uses: InsightSoftwareConsortium/ITKRemoteModuleBuildTestPackageAction/.github/workflows/[email protected]
secrets:
pypi_password: ${{ secrets.pypi_password }}
5 changes: 2 additions & 3 deletions .github/workflows/clang-format-linter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v1
with:
fetch-depth: 1
- uses: actions/checkout@v3

- uses: InsightSoftwareConsortium/ITKClangFormatLinterAction@master
4 changes: 2 additions & 2 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
https://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

Expand Down Expand Up @@ -193,7 +193,7 @@
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0
https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
Expand Down
13 changes: 6 additions & 7 deletions include/itkDICOMOrientImageFilter.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0.txt
* https://www.apache.org/licenses/LICENSE-2.0.txt
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
Expand Down Expand Up @@ -62,11 +62,10 @@ namespace itk
* \ingroup SimpleITKFilters
*/
template <typename TInputImage>
class ITK_TEMPLATE_EXPORT DICOMOrientImageFilter
: public ImageToImageFilter<TInputImage, TInputImage>
class ITK_TEMPLATE_EXPORT DICOMOrientImageFilter : public ImageToImageFilter<TInputImage, TInputImage>
{
public:
ITK_DISALLOW_COPY_AND_ASSIGN(DICOMOrientImageFilter);
ITK_DISALLOW_COPY_AND_MOVE(DICOMOrientImageFilter);

/** Standard class type aliases. */
using Self = DICOMOrientImageFilter;
Expand Down Expand Up @@ -97,7 +96,7 @@ class ITK_TEMPLATE_EXPORT DICOMOrientImageFilter
itkNewMacro(Self);

/** Runtime information support. */
itkTypeMacro(DICOMOrientImageFilter, ImageToImageFilter);
itkOverrideGetNameOfClassMacro(DICOMOrientImageFilter);

using OrientationEnum = DICOMOrientation::OrientationEnum;

Expand Down Expand Up @@ -140,7 +139,7 @@ class ITK_TEMPLATE_EXPORT DICOMOrientImageFilter
void
GenerateOutputInformation() override;

static_assert(ImageDimension == 3, "Only 3 dimensional images are support!" );
static_assert(ImageDimension == 3, "Only 3 dimensional images are support!");

protected:
DICOMOrientImageFilter();
Expand All @@ -154,7 +153,7 @@ class ITK_TEMPLATE_EXPORT DICOMOrientImageFilter

/*** Member functions used by GenerateData: */
void
DeterminePermutationsAndFlips(DICOMOrientation desired, DICOMOrientation given);
DeterminePermutationsAndFlips(DICOMOrientation desired, DICOMOrientation given);

/** Returns true if a permute is required. Returns false otherwise. */
bool
Expand Down
8 changes: 4 additions & 4 deletions include/itkDICOMOrientImageFilter.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0.txt
* https://www.apache.org/licenses/LICENSE-2.0.txt
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
Expand All @@ -29,7 +29,7 @@ namespace itk

template <typename TInputImage>
DICOMOrientImageFilter<TInputImage>::DICOMOrientImageFilter()
: m_FlipAxes{false}
: m_FlipAxes{ false }
{
for (unsigned int dimension = 0; dimension < ImageDimension; ++dimension)
{
Expand Down Expand Up @@ -159,7 +159,7 @@ DICOMOrientImageFilter<TInputImage>::SetDesiredCoordinateOrientation(const std::
{
DICOMOrientation o(desired);

if ( OrientationEnum(o) == OrientationEnum::INVALID)
if (OrientationEnum(o) == OrientationEnum::INVALID)
{
itkWarningMacro("Invalid desired coordinate direction string: \"" << desired << "\"!");
}
Expand Down Expand Up @@ -301,7 +301,7 @@ DICOMOrientImageFilter<TInputImage>::VerifyPreconditions() ITKv5_CONST

if (this->m_DesiredCoordinateOrientation == OrientationEnum::INVALID)
{
itkExceptionMacro(<<"DesiredCoordinateOrientation is 'INVALID'.")
itkExceptionMacro(<< "DesiredCoordinateOrientation is 'INVALID'.");
}
}

Expand Down
Loading
Loading