From 0c813bf0a8359899eb5b2d4de8ba83d7ed62e497 Mon Sep 17 00:00:00 2001 From: Zvi Baratz Date: Wed, 8 Feb 2023 10:04:40 +0200 Subject: [PATCH 01/23] DOC: Added badges and organized in table format --- README.rst | 90 +++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 69 insertions(+), 21 deletions(-) diff --git a/README.rst b/README.rst index 3378e751c..e8e4d6c3b 100644 --- a/README.rst +++ b/README.rst @@ -1,29 +1,77 @@ .. -*- rest -*- .. vim:syntax=rst -.. image:: https://codecov.io/gh/nipy/nibabel/branch/master/graph/badge.svg - :target: https://codecov.io/gh/nipy/nibabel - -.. image:: https://zenodo.org/badge/DOI/10.5281/zenodo.591597.svg - :target: https://doi.org/10.5281/zenodo.591597 - -.. image:: https://repology.org/badge/version-for-repo/aur/python:nibabel.svg?header=Arch%20%28%41%55%52%29 - :target: https://repology.org/project/python:nibabel/versions - :alt: Arch (AUR) - -.. image:: https://repology.org/badge/version-for-repo/debian_unstable/nibabel.svg?header=Debian%20Unstable - :target: https://repology.org/project/nibabel/versions - :alt: Debian Unstable package - -.. image:: https://repology.org/badge/version-for-repo/gentoo_ovl_science/nibabel.svg?header=Gentoo%20%28%3A%3Ascience%29 - :target: https://repology.org/project/nibabel/versions - :alt: Gentoo (::science) +.. Following contents should be from LONG_DESCRIPTION in nibabel/info.py -.. image:: https://repology.org/badge/version-for-repo/nix_unstable/python:nibabel.svg?header=nixpkgs%20unstable - :target: https://repology.org/project/python:nibabel/versions - :alt: nixpkgs unstable -.. Following contents should be from LONG_DESCRIPTION in nibabel/info.py +.. list-table:: + :widths: 20 80 + :header-rows: 0 + + * - Code + - + .. image:: https://img.shields.io/badge/code%20style-black-000000.svg + :target: https://github.com/psf/black + :alt: code style: black + .. image:: https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336 + :target: https://pycqa.github.io/isort/ + :alt: imports: isort + .. image:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white + :target: https://github.com/pre-commit/pre-commit + :alt: pre-commit + .. image:: https://codecov.io/gh/nipy/nibabel/branch/master/graph/badge.svg + :target: https://codecov.io/gh/nipy/nibabel + :alt: codecov badge + .. image:: https://img.shields.io/librariesio/github/nipy/nibabel + :target: https://libraries.io/github/nipy/nibabel + :alt: Libraries.io dependency status for GitHub repo + * - Status + - + .. image:: https://github.com/nipy/nibabel/actions/workflows/stable.yml/badge.svg + :target: https://github.com/nipy/nibabel/actions/workflows/stable.yml + :alt: stable tests + .. image:: https://github.com/nipy/nibabel/actions/workflows/pages/pages-build-deployment/badge.svg + :target: https://github.com/nipy/nibabel/actions/workflows/pages/pages-build-deployment + :alt: documentation build + * - Packaging + - + .. image:: https://img.shields.io/pypi/v/nibabel.svg + :target: https://pypi.python.org/pypi/nibabel/ + :alt: PyPI version + .. image:: https://img.shields.io/pypi/format/nibabel.svg + :target: https://pypi.org/project/nibabel + :alt: PyPI Format + .. image:: https://img.shields.io/pypi/pyversions/nibabel.svg + :target: https://pypi.python.org/pypi/nibabel/ + :alt: PyPI - Python Version + .. image:: https://img.shields.io/pypi/implementation/nibabel.svg + :target: https://pypi.python.org/pypi/nibabel/ + :alt: PyPI - Implementation + .. image:: https://img.shields.io/pypi/dm/nibabel.svg + :target: https://pypistats.org/packages/nibabel + :alt: PyPI - Downloads + * - Distribution + - + .. image:: https://repology.org/badge/version-for-repo/aur/python:nibabel.svg?header=Arch%20%28%41%55%52%29 + :target: https://repology.org/project/python:nibabel/versions + :alt: Arch (AUR) + .. image:: https://repology.org/badge/version-for-repo/debian_unstable/nibabel.svg?header=Debian%20Unstable + :target: https://repology.org/project/nibabel/versions + :alt: Debian Unstable package + .. image:: https://repology.org/badge/version-for-repo/gentoo_ovl_science/nibabel.svg?header=Gentoo%20%28%3A%3Ascience%29 + :target: https://repology.org/project/nibabel/versions + :alt: Gentoo (::science) + .. image:: https://repology.org/badge/version-for-repo/nix_unstable/python:nibabel.svg?header=nixpkgs%20unstable + :target: https://repology.org/project/python:nibabel/versions + :alt: nixpkgs unstable + * - License & DOI + - + .. image:: https://img.shields.io/pypi/l/nibabel.svg + :target: https://github.com/nipy/nibabel/blob/master/COPYING + :alt: License + .. image:: https://zenodo.org/badge/DOI/10.5281/zenodo.591597.svg + :target: https://doi.org/10.5281/zenodo.591597 + :alt: Zenodo DOI ======= From acc41166ed693bbd090a916b9bd55094b6d29326 Mon Sep 17 00:00:00 2001 From: Zvi Baratz Date: Wed, 8 Feb 2023 12:36:36 +0200 Subject: [PATCH 02/23] DOC: Organized existing contents --- README.rst | 142 +++++++++++++++++++++++++---------------------------- 1 file changed, 66 insertions(+), 76 deletions(-) diff --git a/README.rst b/README.rst index e8e4d6c3b..26b344662 100644 --- a/README.rst +++ b/README.rst @@ -1,8 +1,37 @@ .. -*- rest -*- .. vim:syntax=rst -.. Following contents should be from LONG_DESCRIPTION in nibabel/info.py +.. Following contents should be copied from LONG_DESCRIPTION in NiBabel/info.py +======= +NiBabel +======= + +Read and write access to common neuroimaging file formats, including: ANALYZE_ (plain, SPM99, SPM2 and later), +GIFTI_, NIfTI1_, NIfTI2_, `CIFTI-2`_, MINC1_, MINC2_, `AFNI BRIK/HEAD`_, ECAT_ and Philips PAR/REC +In addition, NiBabel also supports FreeSurfer_'s MGH_, geometry, annotation and morphometry files, +and provides some limited support for DICOM_. + +NiBabel's API gives full or selective access to header information (metadata) and access to the image +data is made available via NumPy arrays. For more information, see NiBabel's `documentation site`_ +and `API reference`_. + +.. _API reference: https://nipy.org/nibabel/api.html +.. _AFNI BRIK/HEAD: https://afni.nimh.nih.gov/pub/dist/src/README.attributes +.. _ANALYZE: http://www.grahamwideman.com/gw/brain/analyze/formatdoc.htm +.. _CIFTI-2: https://www.nitrc.org/projects/cifti/ +.. _DICOM: http://medical.nema.org/ +.. _documentation site: http://nipy.org/NiBabel +.. _ECAT: http://xmedcon.sourceforge.net/Docs/Ecat +.. _Freesurfer: https://surfer.nmr.mgh.harvard.edu +.. _GIFTI: https://www.nitrc.org/projects/gifti +.. _MGH: https://surfer.nmr.mgh.harvard.edu/fswiki/FsTutorial/MghFormat +.. _MINC1: + https://en.wikibooks.org/wiki/MINC/Reference/MINC1_File_Format_Reference +.. _MINC2: + https://en.wikibooks.org/wiki/MINC/Reference/MINC2.0_File_Format_Reference +.. _NIfTI1: http://nifti.nimh.nih.gov/nifti-1/ +.. _NIfTI2: http://nifti.nimh.nih.gov/nifti-2/ .. list-table:: :widths: 20 80 @@ -19,27 +48,29 @@ .. image:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white :target: https://github.com/pre-commit/pre-commit :alt: pre-commit - .. image:: https://codecov.io/gh/nipy/nibabel/branch/master/graph/badge.svg - :target: https://codecov.io/gh/nipy/nibabel + .. image:: https://codecov.io/gh/nipy/NiBabel/branch/master/graph/badge.svg + :target: https://codecov.io/gh/nipy/NiBabel :alt: codecov badge - .. image:: https://img.shields.io/librariesio/github/nipy/nibabel - :target: https://libraries.io/github/nipy/nibabel + .. image:: https://img.shields.io/librariesio/github/nipy/NiBabel + :target: https://libraries.io/github/nipy/NiBabel :alt: Libraries.io dependency status for GitHub repo + * - Status - - .. image:: https://github.com/nipy/nibabel/actions/workflows/stable.yml/badge.svg - :target: https://github.com/nipy/nibabel/actions/workflows/stable.yml + .. image:: https://github.com/nipy/NiBabel/actions/workflows/stable.yml/badge.svg + :target: https://github.com/nipy/NiBabel/actions/workflows/stable.yml :alt: stable tests - .. image:: https://github.com/nipy/nibabel/actions/workflows/pages/pages-build-deployment/badge.svg - :target: https://github.com/nipy/nibabel/actions/workflows/pages/pages-build-deployment + .. image:: https://github.com/nipy/NiBabel/actions/workflows/pages/pages-build-deployment/badge.svg + :target: https://github.com/nipy/NiBabel/actions/workflows/pages/pages-build-deployment :alt: documentation build + * - Packaging - .. image:: https://img.shields.io/pypi/v/nibabel.svg :target: https://pypi.python.org/pypi/nibabel/ :alt: PyPI version .. image:: https://img.shields.io/pypi/format/nibabel.svg - :target: https://pypi.org/project/nibabel + :target: https://pypi.org/project/nibabel/ :alt: PyPI Format .. image:: https://img.shields.io/pypi/pyversions/nibabel.svg :target: https://pypi.python.org/pypi/nibabel/ @@ -48,8 +79,9 @@ :target: https://pypi.python.org/pypi/nibabel/ :alt: PyPI - Implementation .. image:: https://img.shields.io/pypi/dm/nibabel.svg - :target: https://pypistats.org/packages/nibabel + :target: https://pypistats.org/packages/nibabel/ :alt: PyPI - Downloads + * - Distribution - .. image:: https://repology.org/badge/version-for-repo/aur/python:nibabel.svg?header=Arch%20%28%41%55%52%29 @@ -73,86 +105,44 @@ :target: https://doi.org/10.5281/zenodo.591597 :alt: Zenodo DOI +Installation +============ -======= -NiBabel -======= +To install NiBabel's `current release`_ with ``pip``, run:: -Read / write access to some common neuroimaging file formats + pip install nibabel -This package provides read +/- write access to some common medical and -neuroimaging file formats, including: ANALYZE_ (plain, SPM99, SPM2 and later), -GIFTI_, NIfTI1_, NIfTI2_, `CIFTI-2`_, MINC1_, MINC2_, `AFNI BRIK/HEAD`_, MGH_ and -ECAT_ as well as Philips PAR/REC. We can read and write FreeSurfer_ geometry, -annotation and morphometry files. There is some very limited support for -DICOM_. NiBabel is the successor of PyNIfTI_. +To install the latest development version, run:: -.. _ANALYZE: http://www.grahamwideman.com/gw/brain/analyze/formatdoc.htm -.. _AFNI BRIK/HEAD: https://afni.nimh.nih.gov/pub/dist/src/README.attributes -.. _NIfTI1: http://nifti.nimh.nih.gov/nifti-1/ -.. _NIfTI2: http://nifti.nimh.nih.gov/nifti-2/ -.. _CIFTI-2: https://www.nitrc.org/projects/cifti/ -.. _MINC1: - https://en.wikibooks.org/wiki/MINC/Reference/MINC1_File_Format_Reference -.. _MINC2: - https://en.wikibooks.org/wiki/MINC/Reference/MINC2.0_File_Format_Reference -.. _PyNIfTI: http://niftilib.sourceforge.net/pynifti/ -.. _GIFTI: https://www.nitrc.org/projects/gifti -.. _MGH: https://surfer.nmr.mgh.harvard.edu/fswiki/FsTutorial/MghFormat -.. _ECAT: http://xmedcon.sourceforge.net/Docs/Ecat -.. _Freesurfer: https://surfer.nmr.mgh.harvard.edu -.. _DICOM: http://medical.nema.org/ - -The various image format classes give full or selective access to header -(meta) information and access to the image data is made available via NumPy -arrays. + pip install git+https://github.com/nipy/nibabel -Website -======= +For more information on previous releases, see the `release archive`_. -Current documentation on nibabel can always be found at the `NIPY nibabel -website `_. +.. _current release: https://pypi.python.org/pypi/NiBabel +.. _release archive: https://github.com/nipy/NiBabel/releases -Mailing Lists -============= +Mailing List +============ Please send any questions or suggestions to the `neuroimaging mailing list `_. -Code -==== - -Install nibabel with:: - - pip install nibabel - -You may also be interested in: - -* the `nibabel code repository`_ on Github; -* documentation_ for all releases and current development tree; -* download the `current release`_ from pypi; -* download `current development version`_ as a zip file; -* downloads of all `available releases`_. - -.. _nibabel code repository: https://github.com/nipy/nibabel -.. _Documentation: http://nipy.org/nibabel -.. _current release: https://pypi.python.org/pypi/nibabel -.. _current development version: https://github.com/nipy/nibabel/archive/master.zip -.. _available releases: https://github.com/nipy/nibabel/releases - License ======= -Nibabel is licensed under the terms of the MIT license. Some code included -with nibabel is licensed under the BSD license. Please see the COPYING file -in the nibabel distribution. +NiBabel is licensed under the terms of the `MIT license`_. Some code included +with NiBabel is licensed under the `BSD license`_. For more information, +please see the COPYING_ file. -Citing nibabel -============== +.. _BSD license: https://opensource.org/licenses/BSD-3-Clause +.. _COPYING: https://github.com/nipy/nibabel/blob/master/COPYING +.. _MIT license: https://github.com/nipy/nibabel/blob/master/COPYING#nibabel -Please see the `available releases`_ for the release of nibabel that you are -using. Recent releases have a Zenodo_ `Digital Object Identifier`_ badge at -the top of the release notes. Click on the badge for more information. +Citation +======== + +Recent NiBabel releases have a Zenodo_ `Digital Object Identifier`_ (DOI) badge at +the top of the release notes. Click on the badge for more information. -.. _zenodo: https://zenodo.org .. _Digital Object Identifier: https://en.wikipedia.org/wiki/Digital_object_identifier +.. _zenodo: https://zenodo.org From 69df8a53200c61b0e94e44ba749af8dac596109e Mon Sep 17 00:00:00 2001 From: Zvi Baratz Date: Wed, 8 Feb 2023 13:00:01 +0200 Subject: [PATCH 03/23] DOC: Replaced title with documentation site logo --- README.rst | 8 ++++---- doc/pics/logo.png | Bin 0 -> 35515 bytes 2 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 doc/pics/logo.png diff --git a/README.rst b/README.rst index 26b344662..daf811801 100644 --- a/README.rst +++ b/README.rst @@ -3,16 +3,16 @@ .. Following contents should be copied from LONG_DESCRIPTION in NiBabel/info.py -======= -NiBabel -======= +.. image:: doc/pics/logo.png + :target: https://nipy.org/nibabel + :alt: NiBabel logo Read and write access to common neuroimaging file formats, including: ANALYZE_ (plain, SPM99, SPM2 and later), GIFTI_, NIfTI1_, NIfTI2_, `CIFTI-2`_, MINC1_, MINC2_, `AFNI BRIK/HEAD`_, ECAT_ and Philips PAR/REC In addition, NiBabel also supports FreeSurfer_'s MGH_, geometry, annotation and morphometry files, and provides some limited support for DICOM_. -NiBabel's API gives full or selective access to header information (metadata) and access to the image +NiBabel's API gives full or selective access to header information (metadata), and image data is made available via NumPy arrays. For more information, see NiBabel's `documentation site`_ and `API reference`_. diff --git a/doc/pics/logo.png b/doc/pics/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..570d38f4769963691b7a5e36ad7efcaa921c70ca GIT binary patch literal 35515 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 literal 0 HcmV?d00001 From af1849bc6a6a84be2df12459727b1eb2bdee1304 Mon Sep 17 00:00:00 2001 From: Zvi Baratz Date: Sun, 12 Feb 2023 20:01:16 +0200 Subject: [PATCH 04/23] Update README.rst Co-authored-by: Chris Markiewicz --- README.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.rst b/README.rst index daf811801..35a16d3ee 100644 --- a/README.rst +++ b/README.rst @@ -39,9 +39,9 @@ and `API reference`_. * - Code - - .. image:: https://img.shields.io/badge/code%20style-black-000000.svg - :target: https://github.com/psf/black - :alt: code style: black + .. image:: https://img.shields.io/badge/code%20style-blue-blue.svg + :target: https://blue.readthedocs.io/en/latest/ + :alt: code style: blue .. image:: https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336 :target: https://pycqa.github.io/isort/ :alt: imports: isort From b1a053dc073a46e6a9ea965a95da6c2f1bbfbd31 Mon Sep 17 00:00:00 2001 From: Zvi Baratz Date: Sun, 12 Feb 2023 20:01:47 +0200 Subject: [PATCH 05/23] Update README.rst Co-authored-by: Chris Markiewicz --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 35a16d3ee..2acb0d4b4 100644 --- a/README.rst +++ b/README.rst @@ -42,7 +42,7 @@ and `API reference`_. .. image:: https://img.shields.io/badge/code%20style-blue-blue.svg :target: https://blue.readthedocs.io/en/latest/ :alt: code style: blue - .. image:: https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336 + .. image:: https://img.shields.io/badge/imports-isort-1674b1 :target: https://pycqa.github.io/isort/ :alt: imports: isort .. image:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white From 0595cc7800f689c8c30038bfd423a7f4f9f84a35 Mon Sep 17 00:00:00 2001 From: Zvi Baratz Date: Sun, 12 Feb 2023 20:02:42 +0200 Subject: [PATCH 06/23] Update README.rst Co-authored-by: Chris Markiewicz --- README.rst | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.rst b/README.rst index 2acb0d4b4..e3cc52381 100644 --- a/README.rst +++ b/README.rst @@ -51,9 +51,6 @@ and `API reference`_. .. image:: https://codecov.io/gh/nipy/NiBabel/branch/master/graph/badge.svg :target: https://codecov.io/gh/nipy/NiBabel :alt: codecov badge - .. image:: https://img.shields.io/librariesio/github/nipy/NiBabel - :target: https://libraries.io/github/nipy/NiBabel - :alt: Libraries.io dependency status for GitHub repo * - Status - From e5ad94de2fe6b6bcc216ded911fc8261c595a538 Mon Sep 17 00:00:00 2001 From: Zvi Baratz Date: Sun, 12 Feb 2023 20:03:10 +0200 Subject: [PATCH 07/23] Update README.rst Co-authored-by: Chris Markiewicz --- README.rst | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.rst b/README.rst index e3cc52381..f3e1b7b58 100644 --- a/README.rst +++ b/README.rst @@ -57,9 +57,6 @@ and `API reference`_. .. image:: https://github.com/nipy/NiBabel/actions/workflows/stable.yml/badge.svg :target: https://github.com/nipy/NiBabel/actions/workflows/stable.yml :alt: stable tests - .. image:: https://github.com/nipy/NiBabel/actions/workflows/pages/pages-build-deployment/badge.svg - :target: https://github.com/nipy/NiBabel/actions/workflows/pages/pages-build-deployment - :alt: documentation build * - Packaging - From 8ed90a97435ee00f05eea1dc756fb866398fc36c Mon Sep 17 00:00:00 2001 From: Zvi Baratz Date: Sun, 12 Feb 2023 20:03:54 +0200 Subject: [PATCH 08/23] Update README.rst Co-authored-by: Chris Markiewicz --- README.rst | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.rst b/README.rst index f3e1b7b58..0ca052e6c 100644 --- a/README.rst +++ b/README.rst @@ -63,9 +63,6 @@ and `API reference`_. .. image:: https://img.shields.io/pypi/v/nibabel.svg :target: https://pypi.python.org/pypi/nibabel/ :alt: PyPI version - .. image:: https://img.shields.io/pypi/format/nibabel.svg - :target: https://pypi.org/project/nibabel/ - :alt: PyPI Format .. image:: https://img.shields.io/pypi/pyversions/nibabel.svg :target: https://pypi.python.org/pypi/nibabel/ :alt: PyPI - Python Version From 4298ccb05d2b6bf62fb75bf0b5b36de46c49c346 Mon Sep 17 00:00:00 2001 From: Zvi Baratz Date: Sun, 12 Feb 2023 20:04:03 +0200 Subject: [PATCH 09/23] Update README.rst Co-authored-by: Chris Markiewicz --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 0ca052e6c..ce39b539d 100644 --- a/README.rst +++ b/README.rst @@ -8,7 +8,7 @@ :alt: NiBabel logo Read and write access to common neuroimaging file formats, including: ANALYZE_ (plain, SPM99, SPM2 and later), -GIFTI_, NIfTI1_, NIfTI2_, `CIFTI-2`_, MINC1_, MINC2_, `AFNI BRIK/HEAD`_, ECAT_ and Philips PAR/REC +GIFTI_, NIfTI1_, NIfTI2_, `CIFTI-2`_, MINC1_, MINC2_, `AFNI BRIK/HEAD`_, ECAT_ and Philips PAR/REC. In addition, NiBabel also supports FreeSurfer_'s MGH_, geometry, annotation and morphometry files, and provides some limited support for DICOM_. From b0edd1a2d51b956b13c9c61dd964d11362f64c3e Mon Sep 17 00:00:00 2001 From: Zvi Baratz Date: Sun, 12 Feb 2023 20:04:38 +0200 Subject: [PATCH 10/23] Update README.rst Co-authored-by: Chris Markiewicz --- README.rst | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.rst b/README.rst index ce39b539d..bea66dd1d 100644 --- a/README.rst +++ b/README.rst @@ -66,9 +66,6 @@ and `API reference`_. .. image:: https://img.shields.io/pypi/pyversions/nibabel.svg :target: https://pypi.python.org/pypi/nibabel/ :alt: PyPI - Python Version - .. image:: https://img.shields.io/pypi/implementation/nibabel.svg - :target: https://pypi.python.org/pypi/nibabel/ - :alt: PyPI - Implementation .. image:: https://img.shields.io/pypi/dm/nibabel.svg :target: https://pypistats.org/packages/nibabel/ :alt: PyPI - Downloads From 9ff1b7f6fb7b53331d14cfc6b51276963868e5b0 Mon Sep 17 00:00:00 2001 From: Zvi Baratz Date: Sun, 12 Feb 2023 20:04:49 +0200 Subject: [PATCH 11/23] Update README.rst Co-authored-by: Chris Markiewicz --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index bea66dd1d..5e11685ea 100644 --- a/README.rst +++ b/README.rst @@ -21,7 +21,7 @@ and `API reference`_. .. _ANALYZE: http://www.grahamwideman.com/gw/brain/analyze/formatdoc.htm .. _CIFTI-2: https://www.nitrc.org/projects/cifti/ .. _DICOM: http://medical.nema.org/ -.. _documentation site: http://nipy.org/NiBabel +.. _documentation site: http://nipy.org/nibabel .. _ECAT: http://xmedcon.sourceforge.net/Docs/Ecat .. _Freesurfer: https://surfer.nmr.mgh.harvard.edu .. _GIFTI: https://www.nitrc.org/projects/gifti From e21a9235be30fc078a6276165f16e5fe942da820 Mon Sep 17 00:00:00 2001 From: Zvi Baratz Date: Sun, 12 Feb 2023 20:05:09 +0200 Subject: [PATCH 12/23] Update README.rst Co-authored-by: Chris Markiewicz --- README.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 5e11685ea..a0c90b4eb 100644 --- a/README.rst +++ b/README.rst @@ -104,10 +104,11 @@ To install the latest development version, run:: pip install git+https://github.com/nipy/nibabel -For more information on previous releases, see the `release archive`_. +For more information on previous releases, see the `release archive`_ or `development changelog`_. .. _current release: https://pypi.python.org/pypi/NiBabel .. _release archive: https://github.com/nipy/NiBabel/releases +.. _development changelog: https://nipy.org/nibabel/changelog.html Mailing List ============ From 9e2780a6a02a58f4fbf39c07b8482909dbc0037e Mon Sep 17 00:00:00 2001 From: Zvi Baratz Date: Sun, 12 Feb 2023 20:05:38 +0200 Subject: [PATCH 13/23] Update README.rst Co-authored-by: Chris Markiewicz --- README.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.rst b/README.rst index a0c90b4eb..e19a6cab8 100644 --- a/README.rst +++ b/README.rst @@ -104,6 +104,10 @@ To install the latest development version, run:: pip install git+https://github.com/nipy/nibabel +When working on NiBabel itself, it may be useful to install in "editable" mode:: + + git clone https://github.com/nipy/nibabel.git + pip install -e ./nibabel For more information on previous releases, see the `release archive`_ or `development changelog`_. .. _current release: https://pypi.python.org/pypi/NiBabel From 59ea1a8293e828ad1097e2421660910642338d1d Mon Sep 17 00:00:00 2001 From: Zvi Baratz Date: Sun, 12 Feb 2023 20:05:46 +0200 Subject: [PATCH 14/23] Update README.rst Co-authored-by: Chris Markiewicz --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index e19a6cab8..b07119159 100644 --- a/README.rst +++ b/README.rst @@ -134,7 +134,7 @@ please see the COPYING_ file. Citation ======== -Recent NiBabel releases have a Zenodo_ `Digital Object Identifier`_ (DOI) badge at +NiBabel releases have a Zenodo_ `Digital Object Identifier`_ (DOI) badge at the top of the release notes. Click on the badge for more information. .. _Digital Object Identifier: https://en.wikipedia.org/wiki/Digital_object_identifier From 19f9a44262c3e16542c09c08dcf4eff8ac5a3ea1 Mon Sep 17 00:00:00 2001 From: Zvi Baratz Date: Sun, 12 Feb 2023 20:12:01 +0200 Subject: [PATCH 15/23] Added missing blank line --- README.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/README.rst b/README.rst index b07119159..567941daf 100644 --- a/README.rst +++ b/README.rst @@ -108,6 +108,7 @@ When working on NiBabel itself, it may be useful to install in "editable" mode:: git clone https://github.com/nipy/nibabel.git pip install -e ./nibabel + For more information on previous releases, see the `release archive`_ or `development changelog`_. .. _current release: https://pypi.python.org/pypi/NiBabel From d95ef9c706dc24132dd822f4683bfc5b0a6575bd Mon Sep 17 00:00:00 2001 From: Zvi Baratz Date: Mon, 13 Feb 2023 09:14:33 +0200 Subject: [PATCH 16/23] Removed "Status" and "Packaging" sections Tried merging with other sections and using line breaks for some inner-section separation. --- README.rst | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/README.rst b/README.rst index b07119159..cabc3c285 100644 --- a/README.rst +++ b/README.rst @@ -33,12 +33,18 @@ and `API reference`_. .. _NIfTI1: http://nifti.nimh.nih.gov/nifti-1/ .. _NIfTI2: http://nifti.nimh.nih.gov/nifti-2/ +.. role:: raw-html(raw) + :format: html + .. list-table:: :widths: 20 80 :header-rows: 0 * - Code - + .. image:: https://img.shields.io/pypi/pyversions/nibabel.svg + :target: https://pypi.python.org/pypi/nibabel/ + :alt: PyPI - Python Version .. image:: https://img.shields.io/badge/code%20style-blue-blue.svg :target: https://blue.readthedocs.io/en/latest/ :alt: code style: blue @@ -48,30 +54,27 @@ and `API reference`_. .. image:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white :target: https://github.com/pre-commit/pre-commit :alt: pre-commit - .. image:: https://codecov.io/gh/nipy/NiBabel/branch/master/graph/badge.svg - :target: https://codecov.io/gh/nipy/NiBabel - :alt: codecov badge - * - Status - - + :raw-html:`
` + .. image:: https://github.com/nipy/NiBabel/actions/workflows/stable.yml/badge.svg :target: https://github.com/nipy/NiBabel/actions/workflows/stable.yml :alt: stable tests + .. image:: https://codecov.io/gh/nipy/NiBabel/branch/master/graph/badge.svg + :target: https://codecov.io/gh/nipy/NiBabel + :alt: codecov badge - * - Packaging + * - Distribution - .. image:: https://img.shields.io/pypi/v/nibabel.svg :target: https://pypi.python.org/pypi/nibabel/ :alt: PyPI version - .. image:: https://img.shields.io/pypi/pyversions/nibabel.svg - :target: https://pypi.python.org/pypi/nibabel/ - :alt: PyPI - Python Version .. image:: https://img.shields.io/pypi/dm/nibabel.svg :target: https://pypistats.org/packages/nibabel/ :alt: PyPI - Downloads - * - Distribution - - + :raw-html:`
` + .. image:: https://repology.org/badge/version-for-repo/aur/python:nibabel.svg?header=Arch%20%28%41%55%52%29 :target: https://repology.org/project/python:nibabel/versions :alt: Arch (AUR) @@ -84,6 +87,7 @@ and `API reference`_. .. image:: https://repology.org/badge/version-for-repo/nix_unstable/python:nibabel.svg?header=nixpkgs%20unstable :target: https://repology.org/project/python:nibabel/versions :alt: nixpkgs unstable + * - License & DOI - .. image:: https://img.shields.io/pypi/l/nibabel.svg @@ -108,6 +112,7 @@ When working on NiBabel itself, it may be useful to install in "editable" mode:: git clone https://github.com/nipy/nibabel.git pip install -e ./nibabel + For more information on previous releases, see the `release archive`_ or `development changelog`_. .. _current release: https://pypi.python.org/pypi/NiBabel @@ -134,7 +139,7 @@ please see the COPYING_ file. Citation ======== -NiBabel releases have a Zenodo_ `Digital Object Identifier`_ (DOI) badge at +NiBabel releases have a Zenodo_ `Digital Object Identifier`_ (DOI) badge at the top of the release notes. Click on the badge for more information. .. _Digital Object Identifier: https://en.wikipedia.org/wiki/Digital_object_identifier From bdf5667d8276d630aa581bd28d318804f481ab86 Mon Sep 17 00:00:00 2001 From: Zvi Baratz Date: Mon, 13 Feb 2023 09:34:20 +0200 Subject: [PATCH 17/23] Revised badge table sectioning Line breaks did not work as expected. Split "Code" section to "Code" and "Tests", and "Distribution" section to "PyPI" and "Linux". --- README.rst | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/README.rst b/README.rst index cabc3c285..f011a3aa5 100644 --- a/README.rst +++ b/README.rst @@ -33,9 +33,6 @@ and `API reference`_. .. _NIfTI1: http://nifti.nimh.nih.gov/nifti-1/ .. _NIfTI2: http://nifti.nimh.nih.gov/nifti-2/ -.. role:: raw-html(raw) - :format: html - .. list-table:: :widths: 20 80 :header-rows: 0 @@ -55,8 +52,8 @@ and `API reference`_. :target: https://github.com/pre-commit/pre-commit :alt: pre-commit - :raw-html:`
` - + * - Tests + - .. image:: https://github.com/nipy/NiBabel/actions/workflows/stable.yml/badge.svg :target: https://github.com/nipy/NiBabel/actions/workflows/stable.yml :alt: stable tests @@ -64,7 +61,7 @@ and `API reference`_. :target: https://codecov.io/gh/nipy/NiBabel :alt: codecov badge - * - Distribution + * - PyPI - .. image:: https://img.shields.io/pypi/v/nibabel.svg :target: https://pypi.python.org/pypi/nibabel/ @@ -73,14 +70,14 @@ and `API reference`_. :target: https://pypistats.org/packages/nibabel/ :alt: PyPI - Downloads - :raw-html:`
` - - .. image:: https://repology.org/badge/version-for-repo/aur/python:nibabel.svg?header=Arch%20%28%41%55%52%29 - :target: https://repology.org/project/python:nibabel/versions - :alt: Arch (AUR) + * - Linux + - .. image:: https://repology.org/badge/version-for-repo/debian_unstable/nibabel.svg?header=Debian%20Unstable :target: https://repology.org/project/nibabel/versions :alt: Debian Unstable package + .. image:: https://repology.org/badge/version-for-repo/aur/python:nibabel.svg?header=Arch%20%28%41%55%52%29 + :target: https://repology.org/project/python:nibabel/versions + :alt: Arch (AUR) .. image:: https://repology.org/badge/version-for-repo/gentoo_ovl_science/nibabel.svg?header=Gentoo%20%28%3A%3Ascience%29 :target: https://repology.org/project/nibabel/versions :alt: Gentoo (::science) From b8406994b0e5fdcac38e89d1c2e00d55f73d1aaa Mon Sep 17 00:00:00 2001 From: Zvi Baratz Date: Mon, 13 Feb 2023 16:46:02 +0200 Subject: [PATCH 18/23] Update README.rst Co-authored-by: Chris Markiewicz --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index f011a3aa5..738f34036 100644 --- a/README.rst +++ b/README.rst @@ -67,7 +67,7 @@ and `API reference`_. :target: https://pypi.python.org/pypi/nibabel/ :alt: PyPI version .. image:: https://img.shields.io/pypi/dm/nibabel.svg - :target: https://pypistats.org/packages/nibabel/ + :target: https://pypistats.org/packages/nibabel :alt: PyPI - Downloads * - Linux From 95c41b32d0733a56658107e768011006aac581b6 Mon Sep 17 00:00:00 2001 From: Zvi Baratz Date: Mon, 13 Feb 2023 16:46:20 +0200 Subject: [PATCH 19/23] Update README.rst Co-authored-by: Chris Markiewicz --- README.rst | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 738f34036..23d1f550a 100644 --- a/README.rst +++ b/README.rst @@ -70,8 +70,11 @@ and `API reference`_. :target: https://pypistats.org/packages/nibabel :alt: PyPI - Downloads - * - Linux + * - Packages - + .. image:: https://img.shields.io/conda/vn/conda-forge/nibabel + :target: https://anaconda.org/conda-forge/nibabel + :alt: Conda package .. image:: https://repology.org/badge/version-for-repo/debian_unstable/nibabel.svg?header=Debian%20Unstable :target: https://repology.org/project/nibabel/versions :alt: Debian Unstable package From 08187d5f2f0a0293bee87eb84b8bff13635910c4 Mon Sep 17 00:00:00 2001 From: Zvi Baratz Date: Mon, 13 Feb 2023 16:52:10 +0200 Subject: [PATCH 20/23] Added missing space --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 23d1f550a..65c9ad383 100644 --- a/README.rst +++ b/README.rst @@ -72,7 +72,7 @@ and `API reference`_. * - Packages - - .. image:: https://img.shields.io/conda/vn/conda-forge/nibabel + .. image:: https://img.shields.io/conda/vn/conda-forge/nibabel :target: https://anaconda.org/conda-forge/nibabel :alt: Conda package .. image:: https://repology.org/badge/version-for-repo/debian_unstable/nibabel.svg?header=Debian%20Unstable From 625c75bb8efa640d87f4b9c6b8af168c9bc36462 Mon Sep 17 00:00:00 2001 From: Zvi Baratz Date: Mon, 13 Feb 2023 18:14:46 +0200 Subject: [PATCH 21/23] Copied README content to long_description --- README.rst | 2 +- nibabel/info.py | 183 ++++++++++++++++++++++++++++++++---------------- 2 files changed, 122 insertions(+), 63 deletions(-) diff --git a/README.rst b/README.rst index 65c9ad383..641480b8a 100644 --- a/README.rst +++ b/README.rst @@ -1,7 +1,7 @@ .. -*- rest -*- .. vim:syntax=rst -.. Following contents should be copied from LONG_DESCRIPTION in NiBabel/info.py +.. Following contents should be copied from LONG_DESCRIPTION in nibabel/info.py .. image:: doc/pics/logo.png :target: https://nipy.org/nibabel diff --git a/nibabel/info.py b/nibabel/info.py index 96031ac95..97be482e8 100644 --- a/nibabel/info.py +++ b/nibabel/info.py @@ -12,86 +12,145 @@ # We also include this text in the docs by ``..include::`` in # ``docs/source/index.rst``. long_description = """ -======= -NiBabel -======= +.. image:: doc/pics/logo.png + :target: https://nipy.org/nibabel + :alt: NiBabel logo -Read / write access to some common neuroimaging file formats +Read and write access to common neuroimaging file formats, including: ANALYZE_ (plain, SPM99, SPM2 and later), +GIFTI_, NIfTI1_, NIfTI2_, `CIFTI-2`_, MINC1_, MINC2_, `AFNI BRIK/HEAD`_, ECAT_ and Philips PAR/REC. +In addition, NiBabel also supports FreeSurfer_'s MGH_, geometry, annotation and morphometry files, +and provides some limited support for DICOM_. -This package provides read +/- write access to some common medical and -neuroimaging file formats, including: ANALYZE_ (plain, SPM99, SPM2 and later), -GIFTI_, NIfTI1_, NIfTI2_, `CIFTI-2`_, MINC1_, MINC2_, `AFNI BRIK/HEAD`_, MGH_ and -ECAT_ as well as Philips PAR/REC. We can read and write FreeSurfer_ geometry, -annotation and morphometry files. There is some very limited support for -DICOM_. NiBabel is the successor of PyNIfTI_. +NiBabel's API gives full or selective access to header information (metadata), and image +data is made available via NumPy arrays. For more information, see NiBabel's `documentation site`_ +and `API reference`_. -.. _ANALYZE: http://www.grahamwideman.com/gw/brain/analyze/formatdoc.htm +.. _API reference: https://nipy.org/nibabel/api.html .. _AFNI BRIK/HEAD: https://afni.nimh.nih.gov/pub/dist/src/README.attributes -.. _NIfTI1: http://nifti.nimh.nih.gov/nifti-1/ -.. _NIfTI2: http://nifti.nimh.nih.gov/nifti-2/ +.. _ANALYZE: http://www.grahamwideman.com/gw/brain/analyze/formatdoc.htm .. _CIFTI-2: https://www.nitrc.org/projects/cifti/ +.. _DICOM: http://medical.nema.org/ +.. _documentation site: http://nipy.org/nibabel +.. _ECAT: http://xmedcon.sourceforge.net/Docs/Ecat +.. _Freesurfer: https://surfer.nmr.mgh.harvard.edu +.. _GIFTI: https://www.nitrc.org/projects/gifti +.. _MGH: https://surfer.nmr.mgh.harvard.edu/fswiki/FsTutorial/MghFormat .. _MINC1: https://en.wikibooks.org/wiki/MINC/Reference/MINC1_File_Format_Reference .. _MINC2: https://en.wikibooks.org/wiki/MINC/Reference/MINC2.0_File_Format_Reference -.. _PyNIfTI: http://niftilib.sourceforge.net/pynifti/ -.. _GIFTI: https://www.nitrc.org/projects/gifti -.. _MGH: https://surfer.nmr.mgh.harvard.edu/fswiki/FsTutorial/MghFormat -.. _ECAT: http://xmedcon.sourceforge.net/Docs/Ecat -.. _Freesurfer: https://surfer.nmr.mgh.harvard.edu -.. _DICOM: http://medical.nema.org/ - -The various image format classes give full or selective access to header -(meta) information and access to the image data is made available via NumPy -arrays. - -Website -======= - -Current documentation on nibabel can always be found at the `NIPY nibabel -website `_. +.. _NIfTI1: http://nifti.nimh.nih.gov/nifti-1/ +.. _NIfTI2: http://nifti.nimh.nih.gov/nifti-2/ -Mailing Lists -============= +.. list-table:: + :widths: 20 80 + :header-rows: 0 + + * - Code + - + .. image:: https://img.shields.io/pypi/pyversions/nibabel.svg + :target: https://pypi.python.org/pypi/nibabel/ + :alt: PyPI - Python Version + .. image:: https://img.shields.io/badge/code%20style-blue-blue.svg + :target: https://blue.readthedocs.io/en/latest/ + :alt: code style: blue + .. image:: https://img.shields.io/badge/imports-isort-1674b1 + :target: https://pycqa.github.io/isort/ + :alt: imports: isort + .. image:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white + :target: https://github.com/pre-commit/pre-commit + :alt: pre-commit + + * - Tests + - + .. image:: https://github.com/nipy/NiBabel/actions/workflows/stable.yml/badge.svg + :target: https://github.com/nipy/NiBabel/actions/workflows/stable.yml + :alt: stable tests + .. image:: https://codecov.io/gh/nipy/NiBabel/branch/master/graph/badge.svg + :target: https://codecov.io/gh/nipy/NiBabel + :alt: codecov badge + + * - PyPI + - + .. image:: https://img.shields.io/pypi/v/nibabel.svg + :target: https://pypi.python.org/pypi/nibabel/ + :alt: PyPI version + .. image:: https://img.shields.io/pypi/dm/nibabel.svg + :target: https://pypistats.org/packages/nibabel + :alt: PyPI - Downloads + + * - Packages + - + .. image:: https://img.shields.io/conda/vn/conda-forge/nibabel + :target: https://anaconda.org/conda-forge/nibabel + :alt: Conda package + .. image:: https://repology.org/badge/version-for-repo/debian_unstable/nibabel.svg?header=Debian%20Unstable + :target: https://repology.org/project/nibabel/versions + :alt: Debian Unstable package + .. image:: https://repology.org/badge/version-for-repo/aur/python:nibabel.svg?header=Arch%20%28%41%55%52%29 + :target: https://repology.org/project/python:nibabel/versions + :alt: Arch (AUR) + .. image:: https://repology.org/badge/version-for-repo/gentoo_ovl_science/nibabel.svg?header=Gentoo%20%28%3A%3Ascience%29 + :target: https://repology.org/project/nibabel/versions + :alt: Gentoo (::science) + .. image:: https://repology.org/badge/version-for-repo/nix_unstable/python:nibabel.svg?header=nixpkgs%20unstable + :target: https://repology.org/project/python:nibabel/versions + :alt: nixpkgs unstable + + * - License & DOI + - + .. image:: https://img.shields.io/pypi/l/nibabel.svg + :target: https://github.com/nipy/nibabel/blob/master/COPYING + :alt: License + .. image:: https://zenodo.org/badge/DOI/10.5281/zenodo.591597.svg + :target: https://doi.org/10.5281/zenodo.591597 + :alt: Zenodo DOI + +Installation +============ + +To install NiBabel's `current release`_ with ``pip``, run:: + + pip install nibabel + +To install the latest development version, run:: + + pip install git+https://github.com/nipy/nibabel + +When working on NiBabel itself, it may be useful to install in "editable" mode:: + + git clone https://github.com/nipy/nibabel.git + pip install -e ./nibabel + +For more information on previous releases, see the `release archive`_ or `development changelog`_. + +.. _current release: https://pypi.python.org/pypi/NiBabel +.. _release archive: https://github.com/nipy/NiBabel/releases +.. _development changelog: https://nipy.org/nibabel/changelog.html + +Mailing List +============ Please send any questions or suggestions to the `neuroimaging mailing list `_. -Code -==== - -Install nibabel with:: - - pip install nibabel - -You may also be interested in: - -* the `nibabel code repository`_ on Github; -* documentation_ for all releases and current development tree; -* download the `current release`_ from pypi; -* download `current development version`_ as a zip file; -* downloads of all `available releases`_. - -.. _nibabel code repository: https://github.com/nipy/nibabel -.. _Documentation: http://nipy.org/nibabel -.. _current release: https://pypi.python.org/pypi/nibabel -.. _current development version: https://github.com/nipy/nibabel/archive/master.zip -.. _available releases: https://github.com/nipy/nibabel/releases - License ======= -Nibabel is licensed under the terms of the MIT license. Some code included -with nibabel is licensed under the BSD license. Please see the COPYING file -in the nibabel distribution. +NiBabel is licensed under the terms of the `MIT license`_. Some code included +with NiBabel is licensed under the `BSD license`_. For more information, +please see the COPYING_ file. -Citing nibabel -============== +.. _BSD license: https://opensource.org/licenses/BSD-3-Clause +.. _COPYING: https://github.com/nipy/nibabel/blob/master/COPYING +.. _MIT license: https://github.com/nipy/nibabel/blob/master/COPYING#nibabel -Please see the `available releases`_ for the release of nibabel that you are -using. Recent releases have a Zenodo_ `Digital Object Identifier`_ badge at -the top of the release notes. Click on the badge for more information. +Citation +======== + +NiBabel releases have a Zenodo_ `Digital Object Identifier`_ (DOI) badge at +the top of the release notes. Click on the badge for more information. -.. _zenodo: https://zenodo.org .. _Digital Object Identifier: https://en.wikipedia.org/wiki/Digital_object_identifier -""" +.. _zenodo: https://zenodo.org +""" # noqa: E501 From 358e575b4ef9a4422fb74d9cbb70d760920c9658 Mon Sep 17 00:00:00 2001 From: Chris Markiewicz Date: Tue, 14 Feb 2023 07:52:42 -0500 Subject: [PATCH 22/23] DOC: Move logo and badges out of long description into README * Create top-level header in index.rst * Remove duplicate definition of MIT License URL --- README.rst | 65 ++++++++++++++++++------------------- doc/source/index.rst | 4 +++ nibabel/info.py | 76 +++----------------------------------------- 3 files changed, 41 insertions(+), 104 deletions(-) diff --git a/README.rst b/README.rst index 641480b8a..6916c494b 100644 --- a/README.rst +++ b/README.rst @@ -1,38 +1,10 @@ .. -*- rest -*- .. vim:syntax=rst -.. Following contents should be copied from LONG_DESCRIPTION in nibabel/info.py - .. image:: doc/pics/logo.png :target: https://nipy.org/nibabel :alt: NiBabel logo -Read and write access to common neuroimaging file formats, including: ANALYZE_ (plain, SPM99, SPM2 and later), -GIFTI_, NIfTI1_, NIfTI2_, `CIFTI-2`_, MINC1_, MINC2_, `AFNI BRIK/HEAD`_, ECAT_ and Philips PAR/REC. -In addition, NiBabel also supports FreeSurfer_'s MGH_, geometry, annotation and morphometry files, -and provides some limited support for DICOM_. - -NiBabel's API gives full or selective access to header information (metadata), and image -data is made available via NumPy arrays. For more information, see NiBabel's `documentation site`_ -and `API reference`_. - -.. _API reference: https://nipy.org/nibabel/api.html -.. _AFNI BRIK/HEAD: https://afni.nimh.nih.gov/pub/dist/src/README.attributes -.. _ANALYZE: http://www.grahamwideman.com/gw/brain/analyze/formatdoc.htm -.. _CIFTI-2: https://www.nitrc.org/projects/cifti/ -.. _DICOM: http://medical.nema.org/ -.. _documentation site: http://nipy.org/nibabel -.. _ECAT: http://xmedcon.sourceforge.net/Docs/Ecat -.. _Freesurfer: https://surfer.nmr.mgh.harvard.edu -.. _GIFTI: https://www.nitrc.org/projects/gifti -.. _MGH: https://surfer.nmr.mgh.harvard.edu/fswiki/FsTutorial/MghFormat -.. _MINC1: - https://en.wikibooks.org/wiki/MINC/Reference/MINC1_File_Format_Reference -.. _MINC2: - https://en.wikibooks.org/wiki/MINC/Reference/MINC2.0_File_Format_Reference -.. _NIfTI1: http://nifti.nimh.nih.gov/nifti-1/ -.. _NIfTI2: http://nifti.nimh.nih.gov/nifti-2/ - .. list-table:: :widths: 20 80 :header-rows: 0 @@ -97,6 +69,35 @@ and `API reference`_. :target: https://doi.org/10.5281/zenodo.591597 :alt: Zenodo DOI +.. Following contents should be copied from LONG_DESCRIPTION in nibabel/info.py + + +Read and write access to common neuroimaging file formats, including: ANALYZE_ (plain, SPM99, SPM2 and later), +GIFTI_, NIfTI1_, NIfTI2_, `CIFTI-2`_, MINC1_, MINC2_, `AFNI BRIK/HEAD`_, ECAT_ and Philips PAR/REC. +In addition, NiBabel also supports FreeSurfer_'s MGH_, geometry, annotation and morphometry files, +and provides some limited support for DICOM_. + +NiBabel's API gives full or selective access to header information (metadata), and image +data is made available via NumPy arrays. For more information, see NiBabel's `documentation site`_ +and `API reference`_. + +.. _API reference: https://nipy.org/nibabel/api.html +.. _AFNI BRIK/HEAD: https://afni.nimh.nih.gov/pub/dist/src/README.attributes +.. _ANALYZE: http://www.grahamwideman.com/gw/brain/analyze/formatdoc.htm +.. _CIFTI-2: https://www.nitrc.org/projects/cifti/ +.. _DICOM: http://medical.nema.org/ +.. _documentation site: http://nipy.org/nibabel +.. _ECAT: http://xmedcon.sourceforge.net/Docs/Ecat +.. _Freesurfer: https://surfer.nmr.mgh.harvard.edu +.. _GIFTI: https://www.nitrc.org/projects/gifti +.. _MGH: https://surfer.nmr.mgh.harvard.edu/fswiki/FsTutorial/MghFormat +.. _MINC1: + https://en.wikibooks.org/wiki/MINC/Reference/MINC1_File_Format_Reference +.. _MINC2: + https://en.wikibooks.org/wiki/MINC/Reference/MINC2.0_File_Format_Reference +.. _NIfTI1: http://nifti.nimh.nih.gov/nifti-1/ +.. _NIfTI2: http://nifti.nimh.nih.gov/nifti-2/ + Installation ============ @@ -128,13 +129,13 @@ Please send any questions or suggestions to the `neuroimaging mailing list License ======= -NiBabel is licensed under the terms of the `MIT license`_. Some code included -with NiBabel is licensed under the `BSD license`_. For more information, -please see the COPYING_ file. +NiBabel is licensed under the terms of the `MIT license +`__. +Some code included with NiBabel is licensed under the `BSD license`_. +For more information, please see the COPYING_ file. .. _BSD license: https://opensource.org/licenses/BSD-3-Clause .. _COPYING: https://github.com/nipy/nibabel/blob/master/COPYING -.. _MIT license: https://github.com/nipy/nibabel/blob/master/COPYING#nibabel Citation ======== diff --git a/doc/source/index.rst b/doc/source/index.rst index 8eb8a9c7d..701de0136 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -7,6 +7,10 @@ # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### +======= +NiBabel +======= + .. include:: _long_description.inc Documentation diff --git a/nibabel/info.py b/nibabel/info.py index 97be482e8..c84153f22 100644 --- a/nibabel/info.py +++ b/nibabel/info.py @@ -12,10 +12,6 @@ # We also include this text in the docs by ``..include::`` in # ``docs/source/index.rst``. long_description = """ -.. image:: doc/pics/logo.png - :target: https://nipy.org/nibabel - :alt: NiBabel logo - Read and write access to common neuroimaging file formats, including: ANALYZE_ (plain, SPM99, SPM2 and later), GIFTI_, NIfTI1_, NIfTI2_, `CIFTI-2`_, MINC1_, MINC2_, `AFNI BRIK/HEAD`_, ECAT_ and Philips PAR/REC. In addition, NiBabel also supports FreeSurfer_'s MGH_, geometry, annotation and morphometry files, @@ -42,70 +38,6 @@ .. _NIfTI1: http://nifti.nimh.nih.gov/nifti-1/ .. _NIfTI2: http://nifti.nimh.nih.gov/nifti-2/ -.. list-table:: - :widths: 20 80 - :header-rows: 0 - - * - Code - - - .. image:: https://img.shields.io/pypi/pyversions/nibabel.svg - :target: https://pypi.python.org/pypi/nibabel/ - :alt: PyPI - Python Version - .. image:: https://img.shields.io/badge/code%20style-blue-blue.svg - :target: https://blue.readthedocs.io/en/latest/ - :alt: code style: blue - .. image:: https://img.shields.io/badge/imports-isort-1674b1 - :target: https://pycqa.github.io/isort/ - :alt: imports: isort - .. image:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white - :target: https://github.com/pre-commit/pre-commit - :alt: pre-commit - - * - Tests - - - .. image:: https://github.com/nipy/NiBabel/actions/workflows/stable.yml/badge.svg - :target: https://github.com/nipy/NiBabel/actions/workflows/stable.yml - :alt: stable tests - .. image:: https://codecov.io/gh/nipy/NiBabel/branch/master/graph/badge.svg - :target: https://codecov.io/gh/nipy/NiBabel - :alt: codecov badge - - * - PyPI - - - .. image:: https://img.shields.io/pypi/v/nibabel.svg - :target: https://pypi.python.org/pypi/nibabel/ - :alt: PyPI version - .. image:: https://img.shields.io/pypi/dm/nibabel.svg - :target: https://pypistats.org/packages/nibabel - :alt: PyPI - Downloads - - * - Packages - - - .. image:: https://img.shields.io/conda/vn/conda-forge/nibabel - :target: https://anaconda.org/conda-forge/nibabel - :alt: Conda package - .. image:: https://repology.org/badge/version-for-repo/debian_unstable/nibabel.svg?header=Debian%20Unstable - :target: https://repology.org/project/nibabel/versions - :alt: Debian Unstable package - .. image:: https://repology.org/badge/version-for-repo/aur/python:nibabel.svg?header=Arch%20%28%41%55%52%29 - :target: https://repology.org/project/python:nibabel/versions - :alt: Arch (AUR) - .. image:: https://repology.org/badge/version-for-repo/gentoo_ovl_science/nibabel.svg?header=Gentoo%20%28%3A%3Ascience%29 - :target: https://repology.org/project/nibabel/versions - :alt: Gentoo (::science) - .. image:: https://repology.org/badge/version-for-repo/nix_unstable/python:nibabel.svg?header=nixpkgs%20unstable - :target: https://repology.org/project/python:nibabel/versions - :alt: nixpkgs unstable - - * - License & DOI - - - .. image:: https://img.shields.io/pypi/l/nibabel.svg - :target: https://github.com/nipy/nibabel/blob/master/COPYING - :alt: License - .. image:: https://zenodo.org/badge/DOI/10.5281/zenodo.591597.svg - :target: https://doi.org/10.5281/zenodo.591597 - :alt: Zenodo DOI - Installation ============ @@ -137,13 +69,13 @@ License ======= -NiBabel is licensed under the terms of the `MIT license`_. Some code included -with NiBabel is licensed under the `BSD license`_. For more information, -please see the COPYING_ file. +NiBabel is licensed under the terms of the `MIT license +`__. +Some code included with NiBabel is licensed under the `BSD license`_. +For more information, please see the COPYING_ file. .. _BSD license: https://opensource.org/licenses/BSD-3-Clause .. _COPYING: https://github.com/nipy/nibabel/blob/master/COPYING -.. _MIT license: https://github.com/nipy/nibabel/blob/master/COPYING#nibabel Citation ======== From 6d1fd303a8f24fb13bcbd233bcf68244a0158b60 Mon Sep 17 00:00:00 2001 From: Chris Markiewicz Date: Tue, 14 Feb 2023 08:12:11 -0500 Subject: [PATCH 23/23] DOC: Update nibabel.info docstring, add line breaks for nicer pydoc experience --- README.rst | 18 ++++++++++-------- nibabel/info.py | 24 +++++++++++++----------- 2 files changed, 23 insertions(+), 19 deletions(-) diff --git a/README.rst b/README.rst index 6916c494b..45856f679 100644 --- a/README.rst +++ b/README.rst @@ -72,14 +72,15 @@ .. Following contents should be copied from LONG_DESCRIPTION in nibabel/info.py -Read and write access to common neuroimaging file formats, including: ANALYZE_ (plain, SPM99, SPM2 and later), -GIFTI_, NIfTI1_, NIfTI2_, `CIFTI-2`_, MINC1_, MINC2_, `AFNI BRIK/HEAD`_, ECAT_ and Philips PAR/REC. -In addition, NiBabel also supports FreeSurfer_'s MGH_, geometry, annotation and morphometry files, -and provides some limited support for DICOM_. +Read and write access to common neuroimaging file formats, including: +ANALYZE_ (plain, SPM99, SPM2 and later), GIFTI_, NIfTI1_, NIfTI2_, `CIFTI-2`_, +MINC1_, MINC2_, `AFNI BRIK/HEAD`_, ECAT_ and Philips PAR/REC. +In addition, NiBabel also supports FreeSurfer_'s MGH_, geometry, annotation and +morphometry files, and provides some limited support for DICOM_. -NiBabel's API gives full or selective access to header information (metadata), and image -data is made available via NumPy arrays. For more information, see NiBabel's `documentation site`_ -and `API reference`_. +NiBabel's API gives full or selective access to header information (metadata), +and image data is made available via NumPy arrays. For more information, see +NiBabel's `documentation site`_ and `API reference`_. .. _API reference: https://nipy.org/nibabel/api.html .. _AFNI BRIK/HEAD: https://afni.nimh.nih.gov/pub/dist/src/README.attributes @@ -114,7 +115,8 @@ When working on NiBabel itself, it may be useful to install in "editable" mode:: git clone https://github.com/nipy/nibabel.git pip install -e ./nibabel -For more information on previous releases, see the `release archive`_ or `development changelog`_. +For more information on previous releases, see the `release archive`_ or +`development changelog`_. .. _current release: https://pypi.python.org/pypi/NiBabel .. _release archive: https://github.com/nipy/NiBabel/releases diff --git a/nibabel/info.py b/nibabel/info.py index c84153f22..063978444 100644 --- a/nibabel/info.py +++ b/nibabel/info.py @@ -1,7 +1,7 @@ -"""Define distribution parameters for nibabel, including package version +"""Define static nibabel metadata for nibabel -The long description parameter is used to fill settings in setup.py, the -nibabel top-level docstring, and in building the docs. +The long description parameter is used in the nibabel top-level docstring, +and in building the docs. We exec this file in several places, so it cannot import nibabel or use relative imports. """ @@ -12,14 +12,15 @@ # We also include this text in the docs by ``..include::`` in # ``docs/source/index.rst``. long_description = """ -Read and write access to common neuroimaging file formats, including: ANALYZE_ (plain, SPM99, SPM2 and later), -GIFTI_, NIfTI1_, NIfTI2_, `CIFTI-2`_, MINC1_, MINC2_, `AFNI BRIK/HEAD`_, ECAT_ and Philips PAR/REC. -In addition, NiBabel also supports FreeSurfer_'s MGH_, geometry, annotation and morphometry files, -and provides some limited support for DICOM_. +Read and write access to common neuroimaging file formats, including: +ANALYZE_ (plain, SPM99, SPM2 and later), GIFTI_, NIfTI1_, NIfTI2_, `CIFTI-2`_, +MINC1_, MINC2_, `AFNI BRIK/HEAD`_, ECAT_ and Philips PAR/REC. +In addition, NiBabel also supports FreeSurfer_'s MGH_, geometry, annotation and +morphometry files, and provides some limited support for DICOM_. -NiBabel's API gives full or selective access to header information (metadata), and image -data is made available via NumPy arrays. For more information, see NiBabel's `documentation site`_ -and `API reference`_. +NiBabel's API gives full or selective access to header information (metadata), +and image data is made available via NumPy arrays. For more information, see +NiBabel's `documentation site`_ and `API reference`_. .. _API reference: https://nipy.org/nibabel/api.html .. _AFNI BRIK/HEAD: https://afni.nimh.nih.gov/pub/dist/src/README.attributes @@ -54,7 +55,8 @@ git clone https://github.com/nipy/nibabel.git pip install -e ./nibabel -For more information on previous releases, see the `release archive`_ or `development changelog`_. +For more information on previous releases, see the `release archive`_ or +`development changelog`_. .. _current release: https://pypi.python.org/pypi/NiBabel .. _release archive: https://github.com/nipy/NiBabel/releases