@@ -148,9 +148,9 @@ test-min = [
148148]
149149
150150[tool .hatch ]
151- build.targets.wheel.packages = [ " src/testing" , " src/scanpy" ]
152151version.source = " vcs"
153152version.raw-options.version_scheme = " release-branch-semver"
153+ build.targets.wheel.packages = [ " src/scanpy" , " src/testing" ]
154154
155155[tool .ruff ]
156156src = [ " src" ]
@@ -244,22 +244,13 @@ expand_tables = [
244244]
245245
246246[tool .pytest ]
247- strict = true
248247addopts = [
249248 " --import-mode=importlib" ,
250249 " --strict-markers" ,
251250 " --doctest-modules" ,
252251 " -ptesting.scanpy._pytest" ,
253252 " --pyargs" ,
254253]
255- testpaths = [ " ./tests" , " ./ci" , " scanpy" ]
256- norecursedirs = [ " tests/_images" ]
257- junit_family = " xunit1"
258- markers = [
259- " internet: tests which rely on internet resources (enable with `--internet-tests`)" ,
260- " gpu: tests that use a GPU (unused, required by anndata.tests.helpers)" ,
261- " array_api: tests that use array_api (unused, required by anndata.tests.helpers)" ,
262- ]
263254filterwarnings = [
264255 " error" ,
265256 # Umap warns when tensorflow isn’t installed.
@@ -289,6 +280,15 @@ filterwarnings = [
289280 # joblib fallback to serial mode in restricted multiprocessing environments
290281 " ignore:.*joblib will operate in serial mode:UserWarning" ,
291282]
283+ junit_family = " xunit1"
284+ markers = [
285+ " internet: tests which rely on internet resources (enable with `--internet-tests`)" ,
286+ " gpu: tests that use a GPU (unused, required by anndata.tests.helpers)" ,
287+ " array_api: tests that use array_api (unused, required by anndata.tests.helpers)" ,
288+ ]
289+ norecursedirs = [ " tests/_images" ]
290+ strict = true
291+ testpaths = [ " ./tests" , " ./ci" , " scanpy" ]
292292
293293[tool .coverage ]
294294run.concurrency = [ " multiprocessing" ]
@@ -309,19 +309,19 @@ xml.output = "test-data/coverage.xml"
309309[tool .towncrier ]
310310name = " scanpy"
311311package = " scanpy"
312+ package_dir = " src"
312313directory = " docs/release-notes"
313314filename = " docs/release-notes/{version}.md"
314- single_file = false
315- package_dir = " src"
316- issue_format = " {{pr}}`{issue}`"
317315title_format = " (v{version})=\n ### {version} {{small}}`{project_date}`"
316+ issue_format = " {{pr}}`{issue}`"
317+ single_file = false
318+ fragment.breaking.name = " Breaking changes" # add `!` to commit type (e.g. “feature!:”)
319+ fragment.chore.name = " Miscellaneous changes"
320+ fragment.docs.name = " Documentation"
318321# Valid fragments should be a subset of conventional commit types (except for `breaking`):
319322# https://github.com/commitizen/conventional-commit-types/blob/master/index.json
320323# style, refactor, test, build, ci: should not go into changelog
321324fragment.feat.name = " Features"
322325fragment.fix.name = " Bug fixes"
323- fragment.docs.name = " Documentation"
324326fragment.perf.name = " Performance"
325- fragment.chore.name = " Miscellaneous changes"
326327fragment.revert.name = " Revert"
327- fragment.breaking.name = " Breaking changes" # add `!` to commit type (e.g. “feature!:”)
0 commit comments