From 435913a9221eb579cfbd7329876861b19cd98c0d Mon Sep 17 00:00:00 2001 From: Jon Cluce Date: Wed, 24 Sep 2025 14:41:36 -0400 Subject: [PATCH 1/3] PL: Add stub file for top-level `__init__.py` --- nibabel/__init__.pyi | 117 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 nibabel/__init__.pyi diff --git a/nibabel/__init__.pyi b/nibabel/__init__.pyi new file mode 100644 index 000000000..6ffe676ba --- /dev/null +++ b/nibabel/__init__.pyi @@ -0,0 +1,117 @@ +# emacs: -*- mode: python-mode; py-indent-offset: 4; indent-tabs-mode: nil -*- +# vi: set ft=python sts=4 ts=4 sw=4 et: +### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## +# +# See COPYING file distributed along with the NiBabel package for the +# copyright and license terms. +# +### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## + +import os +from typing import Any + +# module imports +from nibabel import analyze as ana +from nibabel import ecat, imagestats, mriutils, orientations, streamlines, viewers +from nibabel import nifti1 as ni1 +from nibabel import spm2analyze as spm2 +from nibabel import spm99analyze as spm99 + +# object imports +from nibabel.analyze import AnalyzeHeader, AnalyzeImage +from nibabel.arrayproxy import is_proxy +from nibabel.cifti2 import Cifti2Header, Cifti2Image +from nibabel.fileholders import FileHolder, FileHolderError +from nibabel.freesurfer import MGHImage +from nibabel.funcs import as_closest_canonical, concat_images, four_to_three, squeeze_image +from nibabel.gifti import GiftiImage +from nibabel.imageclasses import all_image_classes +from nibabel.info import long_description as __doc__ +from nibabel.loadsave import load, save +from nibabel.minc1 import Minc1Image +from nibabel.minc2 import Minc2Image +from nibabel.nifti1 import Nifti1Header, Nifti1Image, Nifti1Pair +from nibabel.nifti2 import Nifti2Header, Nifti2Image, Nifti2Pair +from nibabel.orientations import ( + OrientationError, + aff2axcodes, + apply_orientation, + flip_axis, + io_orientation, +) +from nibabel.pkg_info import __version__ +from nibabel.pkg_info import get_pkg_info as _get_pkg_info +from nibabel.spm2analyze import Spm2AnalyzeHeader, Spm2AnalyzeImage +from nibabel.spm99analyze import Spm99AnalyzeHeader, Spm99AnalyzeImage + +try: + from pytest import ExitCode # type: ignore[import] # noqa: PT013 +except (ImportError, ModuleNotFoundError): + class ExitCode(int): ... # type: ignore[no-redef] + +def get_info() -> dict[str, str]: ... +def test( + label: Any = None, + verbose: int = 1, + extra_argv: list[Any] | None = None, + doctests: bool = False, + coverage: bool = False, + raise_warnings: Any = None, + timer: Any = False, +) -> ExitCode: ... +def bench( + label: Any = None, verbose: int = 1, extra_argv: list[Any] | None = None +) -> ExitCode: ... + +__all__ = [ + 'AnalyzeHeader', + 'AnalyzeImage', + 'Cifti2Header', + 'Cifti2Image', + 'FileHolder', + 'FileHolderError', + 'GiftiImage', + 'MGHImage', + 'Minc1Image', + 'Minc2Image', + 'Nifti1Header', + 'Nifti1Image', + 'Nifti1Pair', + 'Nifti2Header', + 'Nifti2Image', + 'Nifti2Pair', + 'OrientationError', + 'Spm2AnalyzeHeader', + 'Spm2AnalyzeImage', + 'Spm99AnalyzeHeader', + 'Spm99AnalyzeImage', + '__doc__', + '__version__', + '_get_pkg_info', + 'aff2axcodes', + 'all_image_classes', + 'ana', + 'apply_orientation', + 'as_closest_canonical', + 'bench', + 'concat_images', + 'ecat', + 'flip_axis', + 'four_to_three', + 'get_info', + 'imagestats', + 'io_orientation', + 'is_proxy', + 'load', + 'mriutils', + 'ni1', + 'orientations', + 'os', + 'save', + 'spm2', + 'spm99', + 'squeeze_image', + 'streamlines', + 'test', + 'viewers', +] From 0cfe721b5be3d6cbb6356739db192588d430366e Mon Sep 17 00:00:00 2001 From: Chris Markiewicz Date: Thu, 25 Sep 2025 13:11:34 -0400 Subject: [PATCH 2/3] Update nibabel/__init__.pyi --- nibabel/__init__.pyi | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/nibabel/__init__.pyi b/nibabel/__init__.pyi index 6ffe676ba..7cac6ea67 100644 --- a/nibabel/__init__.pyi +++ b/nibabel/__init__.pyi @@ -44,11 +44,6 @@ from nibabel.pkg_info import get_pkg_info as _get_pkg_info from nibabel.spm2analyze import Spm2AnalyzeHeader, Spm2AnalyzeImage from nibabel.spm99analyze import Spm99AnalyzeHeader, Spm99AnalyzeImage -try: - from pytest import ExitCode # type: ignore[import] # noqa: PT013 -except (ImportError, ModuleNotFoundError): - class ExitCode(int): ... # type: ignore[no-redef] - def get_info() -> dict[str, str]: ... def test( label: Any = None, @@ -58,10 +53,10 @@ def test( coverage: bool = False, raise_warnings: Any = None, timer: Any = False, -) -> ExitCode: ... +) -> int: ... def bench( label: Any = None, verbose: int = 1, extra_argv: list[Any] | None = None -) -> ExitCode: ... +) -> int: ... __all__ = [ 'AnalyzeHeader', From 0e7908cb95f2fdcc824a5d236de959d54c7a28cf Mon Sep 17 00:00:00 2001 From: Chris Markiewicz Date: Thu, 25 Sep 2025 13:13:14 -0400 Subject: [PATCH 3/3] Update nibabel/__init__.pyi --- nibabel/__init__.pyi | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/nibabel/__init__.pyi b/nibabel/__init__.pyi index 7cac6ea67..fba6249bb 100644 --- a/nibabel/__init__.pyi +++ b/nibabel/__init__.pyi @@ -54,9 +54,7 @@ def test( raise_warnings: Any = None, timer: Any = False, ) -> int: ... -def bench( - label: Any = None, verbose: int = 1, extra_argv: list[Any] | None = None -) -> int: ... +def bench(label: Any = None, verbose: int = 1, extra_argv: list[Any] | None = None) -> int: ... __all__ = [ 'AnalyzeHeader',