git: 8e6e2e32c8c9 - main - filesystems/py-universal-pathlib: New port: Pathlib API extended to use fsspec backends

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Mon, 05 Oct 2026 06:12:29 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=8e6e2e32c8c95e6275fe4256070d34c6a4e2c4db

commit 8e6e2e32c8c95e6275fe4256070d34c6a4e2c4db
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2026-10-05 06:03:58 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2026-10-05 06:12:23 +0000

    filesystems/py-universal-pathlib: New port: Pathlib API extended to use fsspec backends
    
    PR:             299046
    Approved by:    Baptiste Daroussin <bapt@FreeBSD.org> (on behalf of portmgr@)
---
 filesystems/Makefile                               |  1 +
 filesystems/py-universal-pathlib/Makefile          | 26 ++++++++++++++++++++++
 filesystems/py-universal-pathlib/distinfo          |  3 +++
 .../files/patch-pyproject.toml                     | 17 ++++++++++++++
 filesystems/py-universal-pathlib/pkg-descr         |  3 +++
 5 files changed, 50 insertions(+)

diff --git a/filesystems/Makefile b/filesystems/Makefile
index 1ca38dbdb20e..710061fcbf25 100644
--- a/filesystems/Makefile
+++ b/filesystems/Makefile
@@ -102,6 +102,7 @@
     SUBDIR += py-pyfakefs
     SUBDIR += py-s3fs
     SUBDIR += py-tahoe-lafs
+    SUBDIR += py-universal-pathlib
     SUBDIR += py-zfs-autobackup
     SUBDIR += rar2fs
     SUBDIR += rubygem-chef-winrm-fs
diff --git a/filesystems/py-universal-pathlib/Makefile b/filesystems/py-universal-pathlib/Makefile
new file mode 100644
index 000000000000..76de6a8b5af4
--- /dev/null
+++ b/filesystems/py-universal-pathlib/Makefile
@@ -0,0 +1,26 @@
+PORTNAME=	universal-pathlib
+PORTVERSION=	0.3.10
+CATEGORIES=	filesystems python
+MASTER_SITES=	PYPI
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+DISTNAME=	${PORTNAME:S/-/_/}-${PORTVERSION}
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Pathlib API extended to use fsspec backends
+WWW=		https://github.com/fsspec/universal_pathlib
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}setuptools>=63.1.0:devel/py-setuptools@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}setuptools-scm>=8:devel/py-setuptools-scm@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}fsspec>=2024.5.0:filesystems/py-fsspec@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pathlib-abc>=0.5.1,<0.6.0:devel/py-pathlib-abc@${PY_FLAVOR}
+
+USES=		python
+USE_PYTHON=	autoplist concurrent pep517
+
+NO_ARCH=	yes
+
+.include <bsd.port.mk>
diff --git a/filesystems/py-universal-pathlib/distinfo b/filesystems/py-universal-pathlib/distinfo
new file mode 100644
index 000000000000..fcb26c22577d
--- /dev/null
+++ b/filesystems/py-universal-pathlib/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1790828085
+SHA256 (universal_pathlib-0.3.10.tar.gz) = 4487cbc90730a48cfb64f811d99e14b6faed6d738420cd5f93f59f48e6930bfb
+SIZE (universal_pathlib-0.3.10.tar.gz) = 261110
diff --git a/filesystems/py-universal-pathlib/files/patch-pyproject.toml b/filesystems/py-universal-pathlib/files/patch-pyproject.toml
new file mode 100644
index 000000000000..ac9248af5938
--- /dev/null
+++ b/filesystems/py-universal-pathlib/files/patch-pyproject.toml
@@ -0,0 +1,17 @@
+-- Downgrade the minimum setuptools version to match the one available in the
+-- FreeBSD ports tree and convert the license field to the PEP 621 table form.
+--- pyproject.toml.orig	2026-10-02 06:29:38 UTC
++++ pyproject.toml
+@@ -1,10 +1,10 @@
+ [build-system]
+-requires = ["setuptools>=64", "setuptools_scm>=8"]
++requires = ["setuptools>=63.1.0", "setuptools_scm>=8"]
+ build-backend = "setuptools.build_meta"
+ 
+ [project]
+ name = "universal_pathlib"
+-license = "MIT"
++license = {text = "MIT"}
+ authors = [
+     {name = "Andrew Fulton", email = "andrewfulton9@gmail.com"},
+ ]
diff --git a/filesystems/py-universal-pathlib/pkg-descr b/filesystems/py-universal-pathlib/pkg-descr
new file mode 100644
index 000000000000..e4070dd50255
--- /dev/null
+++ b/filesystems/py-universal-pathlib/pkg-descr
@@ -0,0 +1,3 @@
+universal-pathlib extends the standard pathlib API to work with fsspec
+filesystem backends, allowing pathlib-style operations on cloud and remote
+storage paths.