git: 5e276b8b14bd - main - science/py-nibabel: Fix the failing test

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Tue, 12 Dec 2023 21:14:19 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=5e276b8b14bdcb637637955eab78baf76e435297

commit 5e276b8b14bdcb637637955eab78baf76e435297
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2023-12-12 20:50:32 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2023-12-12 21:14:13 +0000

    science/py-nibabel: Fix the failing test
---
 science/py-nibabel/Makefile              |  1 +
 science/py-nibabel/files/patch-fix-tests | 37 ++++++++++++++++++++++++++++++++
 2 files changed, 38 insertions(+)

diff --git a/science/py-nibabel/Makefile b/science/py-nibabel/Makefile
index 3fbc19195c17..90dbc234add4 100644
--- a/science/py-nibabel/Makefile
+++ b/science/py-nibabel/Makefile
@@ -1,5 +1,6 @@
 PORTNAME=	nibabel
 DISTVERSION=	5.2.0
+PORTREVISION=	1
 CATEGORIES=	science python
 MASTER_SITES=	PYPI
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
diff --git a/science/py-nibabel/files/patch-fix-tests b/science/py-nibabel/files/patch-fix-tests
new file mode 100644
index 000000000000..1a3db66036b6
--- /dev/null
+++ b/science/py-nibabel/files/patch-fix-tests
@@ -0,0 +1,37 @@
+- fix for the failing test from https://github.com/nipy/nibabel/issues/1285#issuecomment-1852612513
+
+diff --git nibabel/pkg_info.py nibabel/pkg_info.py
+index 7e816939..7232806a 100644
+--- nibabel/pkg_info.py
++++ nibabel/pkg_info.py
+@@ -1,6 +1,7 @@
+ from __future__ import annotations
+ 
+ import sys
++from contextlib import suppress
+ from subprocess import run
+ 
+ from packaging.version import Version
+@@ -102,14 +103,16 @@ def pkg_commit_hash(pkg_path: str | None = None) -> tuple[str, str]:
+     ver = Version(__version__)
+     if ver.local is not None and ver.local.startswith('g'):
+         return 'installation', ver.local[1:8]
+-    # maybe we are in a repository
+-    proc = run(
+-        ('git', 'rev-parse', '--short', 'HEAD'),
+-        capture_output=True,
+-        cwd=pkg_path,
+-    )
+-    if proc.stdout:
+-        return 'repository', proc.stdout.decode().strip()
++    # maybe we are in a repository, but consider that we may not have git
++    with suppress(FileNotFoundError):
++        proc = run(
++            ('git', 'rev-parse', '--short', 'HEAD'),
++            capture_output=True,
++            cwd=pkg_path,
++        )
++        if proc.stdout:
++            return 'repository', proc.stdout.decode().strip()
++
+     return '(none found)', '<not found>'