11[build-system ]
22build-backend = " hatchling.build"
3- requires = [ " hatch-docstring-description>=1.1.1" , " hatch-fancy-pypi-readme" , " hatch-vcs" , " hatchling" ]
3+ requires = [
4+ " hatch-docstring-description>=1.1.1" ,
5+ " hatch-fancy-pypi-readme" ,
6+ " hatch-min-requirements" ,
7+ " hatch-vcs" ,
8+ " hatchling" ,
9+ ]
410
511[project ]
612name = " fast-array-utils"
@@ -18,7 +24,7 @@ classifiers = [
1824 " Programming Language :: Python :: 3.13" ,
1925]
2026dynamic = [ " description" , " readme" , " version" ]
21- dependencies = [ " numpy" ]
27+ dependencies = [ " numpy>=1.25.2 " ]
2228optional-dependencies.accel = [ " numba" ]
2329optional-dependencies.doc = [
2430 " furo" ,
@@ -29,7 +35,7 @@ optional-dependencies.doc = [
2935 " sphinx-autofixture" ,
3036]
3137optional-dependencies.full = [ " dask" , " fast-array-utils[accel,sparse]" , " h5py" , " zarr" ]
32- optional-dependencies.sparse = [ " scipy>=1.8 " ]
38+ optional-dependencies.sparse = [ " scipy>=1.11 " ]
3339optional-dependencies.test = [
3440 " anndata" ,
3541 " fast-array-utils[accel,test-min]" ,
@@ -61,6 +67,7 @@ path = "README.rst"
6167start-after = " .. begin"
6268
6369[tool .hatch .metadata .hooks .docstring-description ]
70+ [tool .hatch .metadata .hooks .min_requirements ]
6471
6572[tool .hatch .build .targets .wheel ]
6673packages = [ " src/testing" , " src/fast_array_utils" ]
@@ -87,11 +94,19 @@ overrides.matrix.extras.dependencies = [
8794 { if = [ " full" ], value = " scipy-stubs" },
8895 { if = [ " full" ], value = " scikit-learn" },
8996]
97+ overrides.matrix.resolution.features = [
98+ { if = [ " lowest" ], value = " min-reqs" }, # feature added by hatch-min-requirements
99+ ]
90100
91101[[tool .hatch .envs .hatch-test .matrix ]]
92102python = [ " 3.13" , " 3.11" ]
93103extras = [ " full" , " min" ]
94104
105+ [[tool .hatch .envs .hatch-test .matrix ]]
106+ python = [ " 3.11" ]
107+ extras = [ " full" ]
108+ resolution = [ " lowest" ]
109+
95110[tool .ruff ]
96111line-length = 160
97112namespace-packages = [ " src/testing" ]
@@ -124,6 +139,7 @@ lint.per-file-ignores."typings/**/*.pyi" = [ "A002", "F403", "F405", "N801" ] #
124139lint.allowed-confusables = [ " ×" , " ’" ]
125140lint.flake8-bugbear.extend-immutable-calls = [ " testing.fast_array_utils.Flags" ]
126141lint.flake8-copyright.notice-rgx = " SPDX-License-Identifier: MPL-2\\ .0"
142+ lint.flake8-tidy-imports.banned-api."numpy.bool".msg = " Use `np.bool_` instead for numpy>=1.24<2 compatibility"
127143lint.flake8-type-checking.exempt-modules = [ ]
128144lint.flake8-type-checking.strict = true
129145lint.isort.known-first-party = [ " fast_array_utils" ]
@@ -133,6 +149,7 @@ lint.pydocstyle.convention = "numpy"
133149
134150[tool .pytest .ini_options ]
135151addopts = [
152+ " -ptesting.fast_array_utils._private" ,
136153 " --import-mode=importlib" ,
137154 " --strict-markers" ,
138155 " --doctest-modules" ,
0 commit comments