diff --git a/conda/environments/all_cuda-118_arch-x86_64.yaml b/conda/environments/all_cuda-118_arch-x86_64.yaml index b9a4de842..19d15f9a6 100644 --- a/conda/environments/all_cuda-118_arch-x86_64.yaml +++ b/conda/environments/all_cuda-118_arch-x86_64.yaml @@ -12,13 +12,13 @@ dependencies: - cmake>=3.23.1,!=3.25.0 - cuda-version=11.8 - cudatoolkit -- cupy >=12.0.0 +- cupy>=12.0.0 - cxx-compiler - gcc_linux-64=11.* - imagecodecs>=2021.6.8 - ipython - jbig -- lazy_loader >=0.1 +- lazy_loader>=0.1 - libcufile-dev=1.4.0.31 - libcufile=1.4.0.31 - libnvjpeg-dev=11.6.0.55 @@ -26,7 +26,7 @@ dependencies: - libwebp-base - nbsphinx - ninja -- numpy >=1.21.3 +- numpy>=1.21.3 - numpydoc - nvcc_linux-64=11.8 - openslide-python>=1.1.2 @@ -40,7 +40,7 @@ dependencies: - pytest>=6.2.4 - python>=3.8,<3.11 - recommonmark -- scikit-image >=0.19.0,<0.22.0a0 +- scikit-image>=0.19.0,<0.22.0a0 - scipy - sphinx<6 - sysroot_linux-64==2.17 diff --git a/conda/environments/all_cuda-120_arch-x86_64.yaml b/conda/environments/all_cuda-120_arch-x86_64.yaml index a4cb89dcd..982a2c627 100644 --- a/conda/environments/all_cuda-120_arch-x86_64.yaml +++ b/conda/environments/all_cuda-120_arch-x86_64.yaml @@ -13,20 +13,20 @@ dependencies: - cuda-cudart-dev - cuda-nvcc - cuda-version=12.0 -- cupy >=12.0.0 +- cupy>=12.0.0 - cxx-compiler - gcc_linux-64=11.* - imagecodecs>=2021.6.8 - ipython - jbig -- lazy_loader >=0.1 +- lazy_loader>=0.1 - libcufile-dev - libnvjpeg-dev - libnvjpeg-static - libwebp-base - nbsphinx - ninja -- numpy >=1.21.3 +- numpy>=1.21.3 - numpydoc - openslide-python>=1.1.2 - pip @@ -39,7 +39,7 @@ dependencies: - pytest>=6.2.4 - python>=3.8,<3.11 - recommonmark -- scikit-image >=0.19.0,<0.22.0a0 +- scikit-image>=0.19.0,<0.22.0a0 - scipy - sphinx<6 - sysroot_linux-64==2.17 diff --git a/dependencies.yaml b/dependencies.yaml index cdf60e9cf..fddf3add9 100644 --- a/dependencies.yaml +++ b/dependencies.yaml @@ -30,6 +30,44 @@ files: - cudatoolkit - docs - py_version + py_build: + output: pyproject + pyproject_dir: python/cucim + extras: + table: build-system + includes: + - build + py_run: + output: pyproject + pyproject_dir: python/cucim + extras: + table: project + includes: + - run + py_optional_test: + output: pyproject + pyproject_dir: python/cucim + extras: + table: project.optional-dependencies + key: test + includes: + - test_python + py_develop: + output: pyproject + pyproject_dir: python/cucim + extras: + table: project.optional-dependencies + key: developer + includes: + - develop + py_develop: + output: pyproject + pyproject_dir: python/cucim + extras: + table: project.optional-dependencies + key: docs + includes: + - docs channels: - rapidsai - rapidsai-nightly @@ -38,6 +76,11 @@ channels: dependencies: build: common: + # Note: + # Currently omit pyproject output_type from cmake, ninja. The python + # build doesn't use these, but assumes that the C++ libcucim shared + # library had already previously been built and the .so file copied to + # python/cucim/src/cucim/clara/ before calling `pip install .`. - output_types: [conda, requirements] packages: - cmake>=3.23.1,!=3.25.0 @@ -46,6 +89,10 @@ dependencies: packages: - c-compiler - cxx-compiler + - output_types: [requirements, pyproject] + packages: + - setuptools>=24.2.0 + - wheel specific: - output_types: conda matrices: @@ -124,9 +171,17 @@ dependencies: - cuda-cudart-dev - libnvjpeg-dev - libcufile-dev + develop: + common: + - output_types: [conda, requirements, pyproject] + packages: + - pre-commit + - black + - ruff + - isort docs: common: - - output_types: [conda, requirements] + - output_types: [conda, requirements, pyproject] packages: - ipython - nbsphinx @@ -157,25 +212,37 @@ dependencies: - python>=3.8,<3.11 run: common: + - output_types: [conda, requirements, pyproject] + packages: + - lazy_loader>=0.1 + - scikit-image>=0.19.0,<0.22.0a0 + - scipy - output_types: conda packages: + - cupy>=12.0.0 + - numpy>=1.21.3 + # All dependencies below this point are specific to `cucim.clara` and + # are not needed for either `cucim.core` or `cucim.skimage`. I did + # not include these under a "pyproject" output so that it is still + # possible to run `pip install .` from the python/cucim folder + # without having build the C++ library at all. This allows, usage of + # usage of `cucim.skimage` on Windows, for example. - click - - cupy >=12.0.0 - jbig - - lazy_loader >=0.1 - libwebp-base - - numpy >=1.21.3 - - scikit-image >=0.19.0,<0.22.0a0 - - scipy - xz - zlib - zstd # Not sure where these go, if anywhere: # - openslide # - xorg-libxcb + - output_types: [requirements, pyproject] + packages: + - cupy-cuda11x>=12.0.0 + - numpy test_python: common: - - output_types: [conda, requirements] + - output_types: [conda, requirements, pyproject] packages: - GPUtil>=1.4.0 - imagecodecs>=2021.6.8 @@ -191,6 +258,19 @@ dependencies: - pip - pip: - opencv-python-headless>=4.6 - - output_types: [requirements] + - output_types: [requirements, pyproject] packages: - opencv-python-headless>=4.6 + # All dependencies below this point are specific to `cucim.clara` and + # are not needed for either `cucim.core` or `cucim.skimage`, so are + # listed as optional. They are needed in order to run the full test + # suite, including the `cucim.clara` package. + - click + - jbig + - libwebp-base + - xz + - zlib + - zstd + # Not sure where these go, if anywhere: + # - openslide + # - xorg-libxcb diff --git a/python/cucim/pyproject.toml b/python/cucim/pyproject.toml index 7f022e46e..2b3143ff7 100644 --- a/python/cucim/pyproject.toml +++ b/python/cucim/pyproject.toml @@ -3,11 +3,10 @@ [build-system] build-backend = "setuptools.build_meta" -# TODO: generate this list with `rapids-dependency-file-generator` requires = [ "setuptools>=24.2.0", "wheel", -] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../dependencies.yaml and run `rapids-dependency-file-generator`. +] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`. [project] name = "cucim" @@ -24,12 +23,13 @@ authors = [ ] license = { text = "Apache 2.0" } requires-python = ">=3.8" -#TODO: add dependencies.yaml and generate this by `rapids-dependency-file-generator` instead dependencies = [ - "click", - "numpy", + "cupy-cuda11x>=12.0.0", "lazy_loader>=0.1", -] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../dependencies.yaml and run `rapids-dependency-file-generator`. + "numpy", + "scikit-image>=0.19.0,<0.22.0a0", + "scipy", +] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`. classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", @@ -60,45 +60,37 @@ Tracker = "https://github.com/rapidsai/cucim/issues" [project.optional-dependencies] test = [ - "cupy-cuda11x>=12.0.0", - "scipy", - "scikit-image>=0.19", - "pytest", - "pytest-lazy-fixture", - "gputil", - "openslide-python", -] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../dependencies.yaml and run `rapids-dependency-file-generator`. + "GPUtil>=1.4.0", + "click", + "imagecodecs>=2021.6.8", + "jbig", + "libwebp-base", + "opencv-python-headless>=4.6", + "openslide-python>=1.1.2", + "psutil>=5.8.0", + "pytest-cov>=2.12.1", + "pytest-lazy-fixture>=0.6.3", + "pytest-xdist", + "pytest>=6.2.4", + "tifffile>=2022.7.28", + "xz", + "zlib", + "zstd", +] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`. developer = [ "black", "isort", "pre-commit", "ruff", -] +] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`. docs = [ - "Sphinx==4.5.0", - "sphinx-autobuild", - "sphinx-book-theme", - "sphinxcontrib-bibtex<2.0.0", # https://github.com/executablebooks/jupyter-book/issues/1137 - "sphinx-copybutton", - "sphinx-panels", - "sphinx-thebe", - "sphinx-togglebutton", - "sphinxemoji", - "ablog", - "docutils==0.16", # 0.17 causes error. https://github.com/executablebooks/MyST-Parser/issues/343 - "pydata_sphinx_theme", - "myst-parser", - "myst-nb", - "ipywidgets", - "nbclient", - "plotly<5", - "pandas", - "matplotlib", - "cupy-cuda110", - "numpy", - "scipy", - "scikit-image", -] + "ipython", + "nbsphinx", + "numpydoc", + "pydata-sphinx-theme", + "recommonmark", + "sphinx<6", +] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`. [project.entry-points."console_scripts"] cucim = "cucim.clara.cli:main"