diff --git a/.github/workflows/build-test-package.yml b/.github/workflows/build-test-package.yml index 8d822599..2653dd41 100644 --- a/.github/workflows/build-test-package.yml +++ b/.github/workflows/build-test-package.yml @@ -4,21 +4,21 @@ on: [push,pull_request] jobs: cxx-build-workflow: - uses: InsightSoftwareConsortium/ITKRemoteModuleBuildTestPackageAction/.github/workflows/build-test-cxx.yml@3f63de316255a285b0cac4c819d3d45649738999 + uses: thewtex/ITKRemoteModuleBuildTestPackageAction/.github/workflows/build-test-cxx.yml@e15be287b1e1940b51e38fd6c8e0a32cfe629154 python-build-workflow-dev: if: github.ref != 'refs/heads/master' && github.ref != 'refs/heads/main' && !startsWith(github.ref, 'refs/tags') - uses: InsightSoftwareConsortium/ITKRemoteModuleBuildTestPackageAction/.github/workflows/build-test-package-python.yml@3f63de316255a285b0cac4c819d3d45649738999 + uses: thewtex/ITKRemoteModuleBuildTestPackageAction/.github/workflows/build-test-package-python.yml@e15be287b1e1940b51e38fd6c8e0a32cfe629154 with: python3-minor-versions: '["8","11"]' manylinux-platforms: '["_2_28-x64","2014-x64"]' test-notebooks: true secrets: pypi_password: ${{ secrets.pypi_password }} - + python-build-workflow-main: if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags') - uses: InsightSoftwareConsortium/ITKRemoteModuleBuildTestPackageAction/.github/workflows/build-test-package-python.yml@3f63de316255a285b0cac4c819d3d45649738999 + uses: thewtex/ITKRemoteModuleBuildTestPackageAction/.github/workflows/build-test-package-python.yml@e15be287b1e1940b51e38fd6c8e0a32cfe629154 with: python3-minor-versions: '["8","9","10","11"]' manylinux-platforms: '["_2_28-x64","2014-x64"]' diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..7abb2b00 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,114 @@ +[build-system] +requires = ["scikit-build-core"] +build-backend = "scikit_build_core.build" + +[project] +name = "itk-elastix" +version = "0.19.2" +description = "Provides an ITK Python interface to elastix, a toolbox for rigid and nonrigid registration of images" +readme = "README.md" +license = {file = "LICENSE"} +authors = [ + { name = "Matthew M. McCormick", email = "matt.mccormick@kitware.com" }, + { name = "ViktorvdValk", email = "viktorvandervalk@gmail.com" }, + { name = "Niels Dekker", email = "N.Dekker@lumc.nl" }, + { name = "Tom Birdsong" }, + { name = "Konstantinos Ntatsis", email = "konstantinos.ntatsis323@gmail.com" }, +] +keywords = [ + "itk", + "elastix", + "registration", +] +classifiers = [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: Education", + "Intended Audience :: Healthcare Industry", + "Intended Audience :: Science/Research", + "License :: OSI Approved :: Apache Software License", + "Operating System :: Android", + "Operating System :: MacOS", + "Operating System :: Microsoft :: Windows", + "Operating System :: POSIX", + "Operating System :: Unix", + "Programming Language :: C++", + "Programming Language :: Python", + "Topic :: Scientific/Engineering", + "Topic :: Scientific/Engineering :: Information Analysis", + "Topic :: Scientific/Engineering :: Medical Science Apps.", + "Topic :: Software Development :: Libraries", +] +requires-python = ">=3.8" +dependencies = [ + "itk>=5.4rc3", +] + +[project.urls] +Download = "https://github.com/InsightSoftwareConsortium/ITKElastix" +Homepage = "https://github.com/InsightSoftwareConsortium/ITKElastix" + +[tool.scikit-build] +# The versions of CMake to allow. If CMake is not present on the system or does +# not pass this specifier, it will be downloaded via PyPI if possible. An empty +# string will disable this check. +cmake.version = ">=3.16.3" + +# A list of args to pass to CMake when configuring the project. Setting this in +# config or envvar will override toml. See also ``cmake.define``. +cmake.args = [] + +# A table of defines to pass to CMake when configuring the project. Additive. +cmake.define = {} + +# Verbose printout when building. +cmake.verbose = true + +# The build type to use when building the project. Valid options are: "Debug", +# "Release", "RelWithDebInfo", "MinSizeRel", "", etc. +cmake.build-type = "Release" + +# The source directory to use when building the project. Currently only affects +# the native builder (not the setuptools plugin). +cmake.source-dir = "." + +# The versions of Ninja to allow. If Ninja is not present on the system or does +# not pass this specifier, it will be downloaded via PyPI if possible. An empty +# string will disable this check. +ninja.version = ">=1.11" + +# The logging level to display, "DEBUG", "INFO", "WARNING", and "ERROR" are +# possible options. +logging.level = "INFO" + +# Files to include in the SDist even if they are skipped by default. Supports +# gitignore syntax. +sdist.include = [] + +# Files to exclude from the SDist even if they are included by default. Supports +# gitignore syntax. +sdist.exclude = [] + +# A list of license files to include in the wheel. Supports glob patterns. +wheel.license-files = ["LICEN[CS]E*",] + +# Target the platlib or the purelib. If not set, the default is to target the +# platlib if wheel.cmake is true, and the purelib otherwise. +wheel.platlib = "false" + +# If CMake is less than this value, backport a copy of FindPython. Set to 0 +# disable this, or the empty string. +backport.find-python = "3.26.1" + +# Select the editable mode to use. Can be "redirect" (default) or "inplace". +editable.mode = "redirect" + +# Rebuild the project when the package is imported. The build-directory must be +# set. +editable.rebuild = false + +# If set, this will provide a method for backward compatibility. +minimum-version = "0.8.2" + +# The build directory. Defaults to a temporary directory, but can be set. +build-dir = "build/{wheel_tag}" diff --git a/setup.py b/setup.py deleted file mode 100644 index b31a5004..00000000 --- a/setup.py +++ /dev/null @@ -1,54 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import print_function -from os import sys -import os - -try: - from skbuild import setup -except ImportError: - print('scikit-build is required to build from source.', file=sys.stderr) - print('Please run:', file=sys.stderr) - print('', file=sys.stderr) - print(' python -m pip install scikit-build') - sys.exit(1) - -package_name = 'itk-elastix' -if 'ELASTIX_USE_OPENCL' in os.environ: - package_name = 'itk-elastix-opencl' - -setup( - name=package_name, - version='0.19.1', - author='Insight Software Consortium', - author_email='itk+community@discourse.itk.org', - packages=['itk'], - package_dir={'itk': 'itk'}, - download_url=r'https://github.com/InsightSoftwareConsortium/ITKElastix', - description=r'Provides an ITK Python interface to elastix, a toolbox for rigid and nonrigid registration of images', - long_description='elastix is open source software, based on the well-known Insight Segmentation and Registration Toolkit (ITK). The software consists of a collection of algorithms that are commonly used to solve (medical) image registration problems. The modular design of elastix allows the user to quickly configure, test, and compare different registration methods for a specific application.', - classifiers=[ - "License :: OSI Approved :: Apache Software License", - "Programming Language :: Python", - "Programming Language :: C++", - "Development Status :: 4 - Beta", - "Intended Audience :: Developers", - "Intended Audience :: Education", - "Intended Audience :: Healthcare Industry", - "Intended Audience :: Science/Research", - "Topic :: Scientific/Engineering", - "Topic :: Scientific/Engineering :: Medical Science Apps.", - "Topic :: Scientific/Engineering :: Information Analysis", - "Topic :: Software Development :: Libraries", - "Operating System :: Android", - "Operating System :: Microsoft :: Windows", - "Operating System :: POSIX", - "Operating System :: Unix", - "Operating System :: MacOS" - ], - license='Apache', - keywords='ITK InsightToolkit', - url=r'https://itk.org/', - install_requires=[ - r'itk>=5.4rc2' - ] - ) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 1316801d..279416be 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -9,6 +9,8 @@ CreateTestDriver(Elastix "${Elastix-Test_LIBRARIES}" "${ElastixTests}") itk_add_test(NAME itkElastixRegistrationMethodTest COMMAND ElastixTestDriver --compareNumberOfPixelsTolerance 25 + --compareRadiusTolerance 3 + --compareIntensityTolerance 50 --compare ${ITK_TEST_OUTPUT_DIR}/itkElastixRegistrationMethodTestOutput.mha DATA{Baseline/itkElastixRegistrationMethodTestOutput.mha} diff --git a/wasm/typescript/package-lock.json b/wasm/typescript/package-lock.json index 1a5be250..0de0759c 100644 --- a/wasm/typescript/package-lock.json +++ b/wasm/typescript/package-lock.json @@ -20,7 +20,7 @@ "@shoelace-style/shoelace": "^2.5.2", "@types/node": "^20.2.5", "ava": "^5.3.1", - "cypress": "^13.2.0", + "cypress": "^13.7.3", "debug": "^4.3.4", "itk-image-io": "^1.0.0-b.146", "rollup": "^3.9.0", @@ -1929,21 +1929,20 @@ } }, "node_modules/cypress": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.2.0.tgz", - "integrity": "sha512-AvDQxBydE771GTq0TR4ZUBvv9m9ffXuB/ueEtpDF/6gOcvFR96amgwSJP16Yhqw6VhmwqspT5nAGzoxxB+D89g==", + "version": "13.7.3", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.7.3.tgz", + "integrity": "sha512-uoecY6FTCAuIEqLUYkTrxamDBjMHTYak/1O7jtgwboHiTnS1NaMOoR08KcTrbRZFCBvYOiS4tEkQRmsV+xcrag==", "dev": true, "hasInstallScript": true, "dependencies": { "@cypress/request": "^3.0.0", "@cypress/xvfb": "^1.2.4", - "@types/node": "^18.17.5", "@types/sinonjs__fake-timers": "8.1.1", "@types/sizzle": "^2.3.2", "arch": "^2.2.0", "blob-util": "^2.0.2", "bluebird": "^3.7.2", - "buffer": "^5.6.0", + "buffer": "^5.7.1", "cachedir": "^2.3.0", "chalk": "^4.1.0", "check-more-types": "^2.24.0", @@ -1961,7 +1960,7 @@ "figures": "^3.2.0", "fs-extra": "^9.1.0", "getos": "^3.2.1", - "is-ci": "^3.0.0", + "is-ci": "^3.0.1", "is-installed-globally": "~0.4.0", "lazy-ass": "^1.6.0", "listr2": "^3.8.3", @@ -1986,12 +1985,6 @@ "node": "^16.0.0 || ^18.0.0 || >=20.0.0" } }, - "node_modules/cypress/node_modules/@types/node": { - "version": "18.17.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.17.18.tgz", - "integrity": "sha512-/4QOuy3ZpV7Ya1GTRz5CYSz3DgkKpyUptXuQ5PPce7uuyJAOR7r9FhkmxJfvcNUXyklbC63a+YvB3jxy7s9ngw==", - "dev": true - }, "node_modules/cypress/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", diff --git a/wasm/typescript/package.json b/wasm/typescript/package.json index bfc12b46..67a2720e 100644 --- a/wasm/typescript/package.json +++ b/wasm/typescript/package.json @@ -51,7 +51,7 @@ "@shoelace-style/shoelace": "^2.5.2", "@types/node": "^20.2.5", "ava": "^5.3.1", - "cypress": "^13.2.0", + "cypress": "^13.7.3", "debug": "^4.3.4", "itk-image-io": "^1.0.0-b.146", "rollup": "^3.9.0", @@ -70,4 +70,4 @@ "type": "git", "url": "https://github.com/InsightSoftwareConsortium/ITKElastix" } -} \ No newline at end of file +}