From nobody Wed Feb 21 15:17:03 2024 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Tg0Hg5qHBz59dj4; Wed, 21 Feb 2024 15:17:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Tg0Hg4K1Mz4t0R; Wed, 21 Feb 2024 15:17:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1708528623; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TVHPK0T3POAjor0fSn8xiC1AHSpB53oZCfUYTosiWzU=; b=v3Z1eXfQuE/lXIPcisxMJQi8MLHnJeCKXh+qzegrnoSeg5nAK/yb4F9CmtqpndV9JZZX93 48oZ3m3VGS2LSF9TS/F9nqxjelaulUbjUAuPul2JfVGab8As/QIklIoFjUfWNBZ5EAlDV+ ulDYTuDbNKOLm6q6sjhfzFkkTRge0iszLa5FVdeIHtQX5EKxDAEG5o2I0U4CmAhPuxvoh6 sLxzsBgBH593qaNNUOijQ+e96H13UtzRZQ6qSmJtlSC8tBFvbFrXn0f6E5gWrgFcSmhKEr q3N/pVT5hF3PR5fH11AjPCSgnv27Lto8wluGI4IjkWwhOXJvipVvor8mnMdJWQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1708528623; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TVHPK0T3POAjor0fSn8xiC1AHSpB53oZCfUYTosiWzU=; b=hurpZeBizGTqtQNkZzW8crU30r+gi6iKlP45tJAjygSAsN2Kk8a/jSLFIMBXwMW2Puo7hR SrUjx2OoP6Rp37NGpR7i0uJESM0FNx/h4qV8yNzKAmMqXySg9f7vUOpvefmvK84nDRV3zH xZscJbeoBISCOENg1HmlMmOt8g1I3hjc2Oycx2GH8aSPFejtZwSTnQclHVuVCFfpW7HeXN R01YVhZjN4gLWdIHBRckuPT9dztNRhazwETVbFP6f/rkmkNTGbnWRl9z4NA7vq3/T9K54r NchC43QlJA2XMEdalpFeCOl63ojNHfotlOKxGEMbBDkauS9tSjEYYHmc5XxnzA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1708528623; a=rsa-sha256; cv=none; b=TmrVJhdHC2uwEDvIAqgK/laiO8oAULFRt7LO+F5GdQaF5WhqLM2BDxvZ6NvkAmvIkqqabE dTYpwKmPlaF3oJ6Ys49Ueau10i5HRq4NStf2UcQcDr3VBQT7BWIbeOwoQTp9I3uZmY6dbW xlCG7nfNedgf1TEAcwCAgKgOlTMIo9ULwLsD+CAK2EFWeqRTVlz8q2FD4rWV/XP8J5OI/H QDj52Lh0GRJtoPTfVHgoy0lnXDTb66Go6n7Dmgkw+Radlcl0+43L2fMP0CWm8tAgKVe/FS Q/VxHB8Pu7wWB07QHkWavcapoA4htCAlalPlRwKk5EOrW1kroM3LSykG08FA3w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Tg0Hg3Q6Gz171t; Wed, 21 Feb 2024 15:17:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 41LFH3r4011766; Wed, 21 Feb 2024 15:17:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 41LFH3BR011763; Wed, 21 Feb 2024 15:17:03 GMT (envelope-from git) Date: Wed, 21 Feb 2024 15:17:03 GMT Message-Id: <202402211517.41LFH3BR011763@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Po-Chuan Hsieh Subject: git: 3c1618d8e39e - main - devel/py-cloudpathlib: Add py-cloudpathlib 0.17.0 List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-main@freebsd.org X-BeenThere: dev-commits-ports-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: sunpoet X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 3c1618d8e39e3304130e9b3d7fe9115312db8434 Auto-Submitted: auto-generated The branch main has been updated by sunpoet: URL: https://cgit.FreeBSD.org/ports/commit/?id=3c1618d8e39e3304130e9b3d7fe9115312db8434 commit 3c1618d8e39e3304130e9b3d7fe9115312db8434 Author: Po-Chuan Hsieh AuthorDate: 2024-02-21 14:12:45 +0000 Commit: Po-Chuan Hsieh 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 + +.if ${PYTHON_REL} < 31100 +RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}typing-extensions>=4:devel/py-typing-extensions@${PY_FLAVOR} +.endif + +.include 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.