git: 6bf6a93c8f3f - main - devel/py-pyTooling: update 8.16.1 → 9.0.0
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 19 Sep 2026 22:43:02 UTC
The branch main has been updated by yuri:
URL: https://cgit.FreeBSD.org/ports/commit/?id=6bf6a93c8f3fabf7e6efc66e3893f392c31dcb2d
commit 6bf6a93c8f3fabf7e6efc66e3893f392c31dcb2d
Author: Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2026-09-19 21:20:40 +0000
Commit: Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2026-09-19 22:42:23 +0000
devel/py-pyTooling: update 8.16.1 → 9.0.0
---
devel/py-pyTooling/Makefile | 24 ++++++--------
devel/py-pyTooling/distinfo | 6 ++--
.../files/patch-pyTooling_Platform_____init____.py | 29 +++++++++++++++++
.../files/patch-pyTooling_Process_____init____.py | 37 ++++++++++++++++++++++
4 files changed, 78 insertions(+), 18 deletions(-)
diff --git a/devel/py-pyTooling/Makefile b/devel/py-pyTooling/Makefile
index c72550ef152b..a27df8e3f8d4 100644
--- a/devel/py-pyTooling/Makefile
+++ b/devel/py-pyTooling/Makefile
@@ -1,6 +1,6 @@
PORTNAME= pyTooling
DISTVERSIONPREFIX= v
-DISTVERSION= 8.16.1
+DISTVERSION= 9.0.0
CATEGORIES= devel
#MASTER_SITES= PYPI # requirements.txt is missing
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -15,18 +15,11 @@ LICENSE_FILE= ${WRKSRC}/LICENSE.md
BUILD_DEPENDS= ${PY_SETUPTOOLS} \
${PYTHON_PKGNAMEPREFIX}wheel>=0.40.0:devel/py-wheel@${PY_FLAVOR}
-TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}anytree>=2.8.0:devel/py-anytree@${PY_FLAVOR} \
+TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}aiohttp>=3.12:www/py-aiohttp@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}colorama>=0.4.6:devel/py-colorama@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}coverage>0:devel/py-coverage@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}igraph>0:math/py-igraph@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}itertree>0:devel/py-itertree@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}lxml>0:devel/py-lxml@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}mypy>=1.10:devel/py-mypy@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}networkx>=2.6:math/py-networkx@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}pytest-benchmark>=4.0.0:devel/py-pytest-benchmark@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}pytest-cov>0:devel/py-pytest-cov@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}ruamel.yaml>=0.17:devel/py-ruamel.yaml@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}treelib>0:devel/py-treelib@${PY_FLAVOR}
+ ${PYTHON_PKGNAMEPREFIX}pytest>=9.1:devel/py-pytest@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}requests>=2.32:www/py-requests@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}ruamel.yaml>=0.19.1:devel/py-ruamel.yaml@${PY_FLAVOR}
USES= python
USE_PYTHON= pep517 autoplist
@@ -34,11 +27,12 @@ USE_GITHUB= yes
NO_ARCH= yes
+TEST_ARGS= --disable-plugin-autoload
TEST_WRKSRC= ${WRKSRC}
-# tests as of 8.14.0: 1149 passed, 19 skipped, 8 xfailed, 17 deselected
-
do-test:
- cd ${TEST_WRKSRC} && ${PYTHON_CMD} -m pytest tests/unit -k 'not ExplicitPathsOnWindows and not ExplicitPathsOnLinux and not ExplicitBinaryDirectoryOnWindows and not ExplicitBinaryDirectoryOnLinux and not test_TypeConvertToInt and not test_LineTerminal' -v
+ cd ${TEST_WRKSRC} && ${PYTHON_CMD} -m pytest ${TEST_ARGS} tests/unit -k 'not ExplicitPathsOnWindows and not ExplicitPathsOnLinux and not ExplicitBinaryDirectoryOnWindows and not ExplicitBinaryDirectoryOnLinux and not Packaging and not test_TypeConvertToInt and not test_LineTerminal' -v
+
+# tests as of 9.0.0: 1311 passed, 16 skipped, 29 deselected, 3 xfailed, 93 subtests passed in 35.40s
.include <bsd.port.mk>
diff --git a/devel/py-pyTooling/distinfo b/devel/py-pyTooling/distinfo
index 2f956d89f73a..52b91624f505 100644
--- a/devel/py-pyTooling/distinfo
+++ b/devel/py-pyTooling/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1783581648
-SHA256 (pyTooling-pyTooling-v8.16.1_GH0.tar.gz) = afc35f9aa5a780dc48923b9a990d0660a36162b7bb3ed2454899226af7999cdd
-SIZE (pyTooling-pyTooling-v8.16.1_GH0.tar.gz) = 802579
+TIMESTAMP = 1789676918
+SHA256 (pyTooling-pyTooling-v9.0.0_GH0.tar.gz) = 7a6ce693fc4b2ba183c86a16c3831994bc8fc86206fa6734d88903cfc41bac29
+SIZE (pyTooling-pyTooling-v9.0.0_GH0.tar.gz) = 879721
diff --git a/devel/py-pyTooling/files/patch-pyTooling_Platform_____init____.py b/devel/py-pyTooling/files/patch-pyTooling_Platform_____init____.py
new file mode 100644
index 000000000000..5109c15a4dca
--- /dev/null
+++ b/devel/py-pyTooling/files/patch-pyTooling_Platform_____init____.py
@@ -0,0 +1,29 @@
+-- Recognize FreeBSD arm64/aarch64 as AArch64 during test and runtime
+-- platform detection. This is needed because the upstream 9.0.0 release
+-- only accepts amd64 on FreeBSD, but the ports builders report arm64.
+--- pyTooling/Platform/__init__.py.orig 2026-08-20 21:49:09 UTC
++++ pyTooling/Platform/__init__.py
+@@ -306,6 +306,8 @@ class Platform(metaclass=ExtendedType, singleton=True,
+ elif sys_platform.startswith("freebsd"):
+ if machine == "amd64":
+ self._platform = Platforms.FreeBSD
++ elif machine in ("aarch64", "arm64"):
++ self._platform = Platforms.OS_FreeBSD | Platforms.ENV_Native | Platforms.ARCH_AArch64
+ else: # pragma: no cover
+ raise UnknownPlatformException(f"Unknown architecture '{machine}' for FreeBSD.")
+ else: # pragma: no cover
+@@ -366,11 +368,11 @@ class Platform(metaclass=ExtendedType, singleton=True,
+
+ @readonly
+ def IsNativeFreeBSD(self) -> bool:
+- """Returns true, if the platform is a :term:`native` FreeBSD x86-64 platform.
++ """Returns true, if the platform is a :term:`native` FreeBSD platform.
+
+- :returns: ``True``, if the platform is a native FreeBSD x86-64 platform.
++ :returns: ``True``, if the platform is a native FreeBSD platform.
+ """
+- return Platforms.FreeBSD in self._platform
++ return (Platforms.OS_FreeBSD in self._platform) and (Platforms.ENV_Native in self._platform)
+
+ @readonly
+ def IsNativeMacOS(self) -> bool:
diff --git a/devel/py-pyTooling/files/patch-pyTooling_Process_____init____.py b/devel/py-pyTooling/files/patch-pyTooling_Process_____init____.py
new file mode 100644
index 000000000000..37958ddc56cf
--- /dev/null
+++ b/devel/py-pyTooling/files/patch-pyTooling_Process_____init____.py
@@ -0,0 +1,37 @@
+-- Add a minimal FreeBSD process-memory implementation so the upstream 9.0.0
+-- test suite can run on FreeBSD arm64 builders. Upstream lacks a FreeBSD
+-- branch here and otherwise aborts during module import.
+--- pyTooling/Process/__init__.py.orig 2026-09-17 20:37:56 UTC
++++ pyTooling/Process/__init__.py
+@@ -114,6 +114,8 @@ class ProcessInformation(metaclass=ExtendedType, slots
+ _processHandle: Any
+ elif CurrentPlatform.IsNativeLinux:
+ _processStatusFile: ClassVar[Path] = Path(f"/proc/self/statm")
++ elif CurrentPlatform.IsNativeFreeBSD:
++ pass
+
+ if CurrentPlatform.IsNativeWindows or CurrentPlatform.IsMSYS2Environment:
+ def __init__(self) -> None:
+@@ -182,6 +184,22 @@ class ProcessInformation(metaclass=ExtendedType, slots
+ rss = int(fields[1]) * self._pageSize #: VmRSS
+
+ return MemoryInfo(rss, vms)
++
++ elif CurrentPlatform.IsNativeFreeBSD:
++ def GetMemoryUsage(self) -> MemoryInfo:
++ """
++ Get the memory usage of this Python process on a FreeBSD system.
++
++ ``resource.getrusage`` provides the resident size portably on FreeBSD.
++ Virtual memory usage is not exposed by the stdlib here, so report ``0``
++ for the virtual component until upstream adds a native implementation.
++
++ :returns: Memory usage of the current process.
++ """
++ from resource import RUSAGE_SELF, getrusage
++
++ rss = getrusage(RUSAGE_SELF).ru_maxrss * 1024
++ return MemoryInfo(rss, 0)
+
+ elif CurrentPlatform.IsNativeMacOS:
+ class _ProcTaskInfo(Structure):