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.