Skip to content

Commit

Permalink
devel/py-cloudpathlib: Add py-cloudpathlib 0.17.0
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
sunpoet committed Feb 21, 2024
1 parent 2c0164a commit 3c1618d
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 0 deletions.
1 change: 1 addition & 0 deletions devel/Makefile
Expand Up @@ -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
Expand Down
35 changes: 35 additions & 0 deletions 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>
3 changes: 3 additions & 0 deletions 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
20 changes: 20 additions & 0 deletions 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.

0 comments on commit 3c1618d

Please sign in to comment.