git: 3c1618d8e39e - main - devel/py-cloudpathlib: Add py-cloudpathlib 0.17.0
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 21 Feb 2024 15:17:03 UTC
The branch main has been updated by sunpoet:
URL: https://cgit.FreeBSD.org/ports/commit/?id=3c1618d8e39e3304130e9b3d7fe9115312db8434
commit 3c1618d8e39e3304130e9b3d7fe9115312db8434
Author: Po-Chuan Hsieh <sunpoet@FreeBSD.org>
AuthorDate: 2024-02-21 14:12:45 +0000
Commit: Po-Chuan Hsieh <sunpoet@FreeBSD.org>
CommitDate: 2024-02-21 15:06:04 +0000
devel/py-cloudpathlib: Add py-cloudpathlib 0.17.0
cloudpathlib is a Python library with classes that mimic pathlib.Path's
interface for URIs from different cloud storage services.
Why use cloudpathlib?
- Familiar: If you know how to interact with Path, you know how to interact with
CloudPath. All of the cloud-relevant Path methods are implemented.
- Supported clouds: AWS S3, Google Cloud Storage, and Azure Blob Storage are
implemented. FTP is on the way.
- Extensible: The base classes do most of the work generically, so implementing
two small classes MyPath and MyClient is all you need to add support for a new
cloud storage service.
- Read/write support: Reading just works. Using the write_text, write_bytes or
.open('w') methods will all upload your changes to cloud storage without any
additional file management as a developer.
- Seamless caching: Files are downloaded locally only when necessary. You can
also easily pass a persistent cache folder so that across processes and
sessions you only re-download what is necessary.
- Tested: Comprehensive test suite and code coverage.
- Testability: Local filesystem implementations that can be used to easily mock
cloud storage in your unit tests.
---
devel/Makefile | 1 +
devel/py-cloudpathlib/Makefile | 35 +++++++++++++++++++++++++++++++++++
devel/py-cloudpathlib/distinfo | 3 +++
devel/py-cloudpathlib/pkg-descr | 20 ++++++++++++++++++++
4 files changed, 59 insertions(+)
diff --git a/devel/Makefile b/devel/Makefile
index df85c22a2fc8..645d50f5bb51 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -4501,6 +4501,7 @@
SUBDIR += py-clikit
SUBDIR += py-clint
SUBDIR += py-clldutils
+ SUBDIR += py-cloudpathlib
SUBDIR += py-cloudpickle
SUBDIR += py-cluster
SUBDIR += py-cmd2
diff --git a/devel/py-cloudpathlib/Makefile b/devel/py-cloudpathlib/Makefile
new file mode 100644
index 000000000000..7ff093726299
--- /dev/null
+++ b/devel/py-cloudpathlib/Makefile
@@ -0,0 +1,35 @@
+PORTNAME= cloudpathlib
+PORTVERSION= 0.17.0
+CATEGORIES= devel python
+MASTER_SITES= PYPI
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER= sunpoet@FreeBSD.org
+COMMENT= pathlib-style classes for cloud storage services
+WWW= https://cloudpathlib.drivendata.org/stable/ \
+ https://github.com/drivendataorg/cloudpathlib
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}flit-core>=3.2<4.0:devel/py-flit-core@${PY_FLAVOR}
+
+USES= python
+USE_PYTHON= autoplist concurrent pep517
+
+NO_ARCH= yes
+
+OPTIONS_DEFINE= GS S3
+GS_DESC= Google Cloud Storage support
+S3_DESC= Amazon S3 support
+
+GS_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}google-cloud-storage>=0:www/py-google-cloud-storage@${PY_FLAVOR}
+S3_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}boto3>=0:www/py-boto3@${PY_FLAVOR}
+
+.include <bsd.port.pre.mk>
+
+.if ${PYTHON_REL} < 31100
+RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}typing-extensions>=4:devel/py-typing-extensions@${PY_FLAVOR}
+.endif
+
+.include <bsd.port.post.mk>
diff --git a/devel/py-cloudpathlib/distinfo b/devel/py-cloudpathlib/distinfo
new file mode 100644
index 000000000000..9353ae6abc91
--- /dev/null
+++ b/devel/py-cloudpathlib/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1708448814
+SHA256 (cloudpathlib-0.17.0.tar.gz) = 097c94926d0e8b76df61fec12ba1b725728c6a77071ca7e6565be93fb4496ff9
+SIZE (cloudpathlib-0.17.0.tar.gz) = 38045
diff --git a/devel/py-cloudpathlib/pkg-descr b/devel/py-cloudpathlib/pkg-descr
new file mode 100644
index 000000000000..9b00dd815ce9
--- /dev/null
+++ b/devel/py-cloudpathlib/pkg-descr
@@ -0,0 +1,20 @@
+cloudpathlib is a Python library with classes that mimic pathlib.Path's
+interface for URIs from different cloud storage services.
+
+Why use cloudpathlib?
+- Familiar: If you know how to interact with Path, you know how to interact with
+ CloudPath. All of the cloud-relevant Path methods are implemented.
+- Supported clouds: AWS S3, Google Cloud Storage, and Azure Blob Storage are
+ implemented. FTP is on the way.
+- Extensible: The base classes do most of the work generically, so implementing
+ two small classes MyPath and MyClient is all you need to add support for a new
+ cloud storage service.
+- Read/write support: Reading just works. Using the write_text, write_bytes or
+ .open('w') methods will all upload your changes to cloud storage without any
+ additional file management as a developer.
+- Seamless caching: Files are downloaded locally only when necessary. You can
+ also easily pass a persistent cache folder so that across processes and
+ sessions you only re-download what is necessary.
+- Tested: Comprehensive test suite and code coverage.
+- Testability: Local filesystem implementations that can be used to easily mock
+ cloud storage in your unit tests.