commit: faa81d913f61a8aa019bb8eaba9c40838251e1a5
Author: Horea Christian <chr <AT> chymera <DOT> eu>
AuthorDate: Tue Apr 5 06:37:43 2022 +0000
Commit: Horea Christian <horea.christ <AT> gmail <DOT> com>
CommitDate: Tue Apr 5 06:37:43 2022 +0000
URL: https://gitweb.gentoo.org/proj/sci.git/commit/?id=faa81d91
dev-vcs/dandi-cli: new package
Some etelemetry issues remain
Package-Manager: Portage-3.0.30, Repoman-3.0.3
Signed-off-by: Horea Christian <chr <AT> chymera.eu>
dev-vcs/dandi-cli/dandi-cli-0.35.0.ebuild | 83 +++++++++++++++++++++
dev-vcs/dandi-cli/dandi-cli-0.37.0.ebuild | 86 ++++++++++++++++++++++
dev-vcs/dandi-cli/dandi-cli-0.38.0.ebuild | 86 ++++++++++++++++++++++
.../files/dandi-cli-0.28.0-no-etelemetry.patch | 30 ++++++++
.../files/dandi-cli-0.34.1-pip-versioncheck.patch | 13 ++++
.../files/dandi-cli-0.35.0-test_nonetwork.patch | 21 ++++++
.../files/dandi-cli-0.37.0-pip-versioncheck.patch | 13 ++++
dev-vcs/dandi-cli/metadata.xml | 26 +++++++
8 files changed, 358 insertions(+)
diff --git a/dev-vcs/dandi-cli/dandi-cli-0.35.0.ebuild
b/dev-vcs/dandi-cli/dandi-cli-0.35.0.ebuild
new file mode 100644
index 000000000..e59f3ca7f
--- /dev/null
+++ b/dev-vcs/dandi-cli/dandi-cli-0.35.0.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8..10} )
+
+inherit distutils-r1
+
+DESCRIPTION="DANDI command line client to facilitate common operations"
+HOMEPAGE="https://github.com/dandi/dandi-cli"
+SRC_URI="https://github.com/dandi/dandi-cli/archive/refs/tags/${PV}.tar.gz ->
${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test etelemetry"
+
+RDEPEND="
+ dev-python/appdirs[${PYTHON_USEDEP}]
+ dev-python/click[${PYTHON_USEDEP}]
+ dev-python/click-didyoumean[${PYTHON_USEDEP}]
+ =dev-python/dandischema-0.5*[${PYTHON_USEDEP}]
+ dev-python/fasteners[${PYTHON_USEDEP}]
+ dev-python/fscacher[${PYTHON_USEDEP}]
+ dev-python/humanize[${PYTHON_USEDEP}]
+ dev-python/joblib[${PYTHON_USEDEP}]
+ dev-python/keyring[${PYTHON_USEDEP}]
+ dev-python/keyrings_alt[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/pycryptodome[${PYTHON_USEDEP}]
+ dev-python/pydantic[${PYTHON_USEDEP}]
+ dev-python/pynwb[${PYTHON_USEDEP}]
+ dev-python/pyout[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/ruamel-yaml[${PYTHON_USEDEP}]
+ dev-python/semantic_version[${PYTHON_USEDEP}]
+ dev-python/tenacity[${PYTHON_USEDEP}]
+ dev-python/tqdm[${PYTHON_USEDEP}]
+ dev-python/wheel[${PYTHON_USEDEP}]
+"
+
+DEPEND="
+ test? (
+ dev-python/anys[${PYTHON_USEDEP}]
+ dev-python/responses[${PYTHON_USEDEP}]
+ dev-python/pyfakefs[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ )
+"
+
+# Some tests require deep copy with git history
+# https://github.com/dandi/dandi-cli/issues/878#issuecomment-1021720299
+EPYTEST_DESELECT=(
+ "dandi/tests/test_utils.py::test_get_instance_dandi_with_api"
+ "dandi/tests/test_utils.py::test_get_instance_url"
+ "dandi/tests/test_utils.py::test_get_instance_cli_version_too_old"
+ "dandi/tests/test_utils.py::test_get_instance_bad_cli_version"
+)
+
+distutils_enable_tests pytest
+
+PATCHES=(
+ "${FILESDIR}/${PN}-0.34.1-pip-versioncheck.patch"
+ "${FILESDIR}/${PN}-0.35.0-test_nonetwork.patch"
+)
+
+src_prepare() {
+ if use etelemetry; then
+ default
+ else
+ eapply "${FILESDIR}/${PN}-0.28.0-no-etelemetry.patch"
+ default
+ sed -i "/etelemetry/d" setup.cfg
+ fi
+}
+
+python_test() {
+ export DANDI_TESTS_NONETWORK=1
+ epytest
+}
diff --git a/dev-vcs/dandi-cli/dandi-cli-0.37.0.ebuild
b/dev-vcs/dandi-cli/dandi-cli-0.37.0.ebuild
new file mode 100644
index 000000000..48c1627c3
--- /dev/null
+++ b/dev-vcs/dandi-cli/dandi-cli-0.37.0.ebuild
@@ -0,0 +1,86 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8..10} )
+
+inherit distutils-r1
+
+DESCRIPTION="DANDI command line client to facilitate common operations"
+HOMEPAGE="https://github.com/dandi/dandi-cli"
+SRC_URI="https://github.com/dandi/dandi-cli/archive/refs/tags/${PV}.tar.gz ->
${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test etelemetry"
+
+RDEPEND="
+ dev-python/appdirs[${PYTHON_USEDEP}]
+ dev-python/click[${PYTHON_USEDEP}]
+ dev-python/click-didyoumean[${PYTHON_USEDEP}]
+ ~dev-python/dandischema-0.6.0[${PYTHON_USEDEP}]
+ dev-python/fasteners[${PYTHON_USEDEP}]
+ dev-python/fscacher[${PYTHON_USEDEP}]
+ dev-python/humanize[${PYTHON_USEDEP}]
+ dev-python/interleave[${PYTHON_USEDEP}]
+ dev-python/joblib[${PYTHON_USEDEP}]
+ dev-python/keyring[${PYTHON_USEDEP}]
+ dev-python/keyrings_alt[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/pycryptodome[${PYTHON_USEDEP}]
+ >=dev-python/pydantic-1.9.0[${PYTHON_USEDEP}]
+ dev-python/pynwb[${PYTHON_USEDEP}]
+ dev-python/pyout[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/ruamel-yaml[${PYTHON_USEDEP}]
+ dev-python/semantic_version[${PYTHON_USEDEP}]
+ dev-python/tenacity[${PYTHON_USEDEP}]
+ dev-python/wheel[${PYTHON_USEDEP}]
+ dev-python/zarr[${PYTHON_USEDEP}]
+"
+
+DEPEND="
+ test? (
+ dev-python/anys[${PYTHON_USEDEP}]
+ dev-python/responses[${PYTHON_USEDEP}]
+ dev-python/pyfakefs[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ media-libs/opencv[ffmpeg,${PYTHON_USEDEP}]
+ )
+"
+# Upstream might be amenable to dropping opencv:
+# https://github.com/dandi/dandi-cli/issues/944
+
+# Some tests require deep copy with git history
+# https://github.com/dandi/dandi-cli/issues/878#issuecomment-1021720299
+EPYTEST_DESELECT=(
+ "dandi/tests/test_utils.py::test_get_instance_dandi_with_api"
+ "dandi/tests/test_utils.py::test_get_instance_url"
+ "dandi/tests/test_utils.py::test_get_instance_cli_version_too_old"
+ "dandi/tests/test_utils.py::test_get_instance_bad_cli_version"
+)
+
+distutils_enable_tests pytest
+
+PATCHES=(
+ "${FILESDIR}/${PN}-0.37.0-pip-versioncheck.patch"
+)
+
+src_prepare() {
+ if use etelemetry; then
+ default
+ else
+ eapply "${FILESDIR}/${PN}-0.28.0-no-etelemetry.patch"
+ default
+ sed -i "/etelemetry/d" setup.cfg
+ fi
+}
+
+python_test() {
+ export DANDI_TESTS_NONETWORK=1
+ epytest
+}
diff --git a/dev-vcs/dandi-cli/dandi-cli-0.38.0.ebuild
b/dev-vcs/dandi-cli/dandi-cli-0.38.0.ebuild
new file mode 100644
index 000000000..48c1627c3
--- /dev/null
+++ b/dev-vcs/dandi-cli/dandi-cli-0.38.0.ebuild
@@ -0,0 +1,86 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8..10} )
+
+inherit distutils-r1
+
+DESCRIPTION="DANDI command line client to facilitate common operations"
+HOMEPAGE="https://github.com/dandi/dandi-cli"
+SRC_URI="https://github.com/dandi/dandi-cli/archive/refs/tags/${PV}.tar.gz ->
${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test etelemetry"
+
+RDEPEND="
+ dev-python/appdirs[${PYTHON_USEDEP}]
+ dev-python/click[${PYTHON_USEDEP}]
+ dev-python/click-didyoumean[${PYTHON_USEDEP}]
+ ~dev-python/dandischema-0.6.0[${PYTHON_USEDEP}]
+ dev-python/fasteners[${PYTHON_USEDEP}]
+ dev-python/fscacher[${PYTHON_USEDEP}]
+ dev-python/humanize[${PYTHON_USEDEP}]
+ dev-python/interleave[${PYTHON_USEDEP}]
+ dev-python/joblib[${PYTHON_USEDEP}]
+ dev-python/keyring[${PYTHON_USEDEP}]
+ dev-python/keyrings_alt[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/pycryptodome[${PYTHON_USEDEP}]
+ >=dev-python/pydantic-1.9.0[${PYTHON_USEDEP}]
+ dev-python/pynwb[${PYTHON_USEDEP}]
+ dev-python/pyout[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/ruamel-yaml[${PYTHON_USEDEP}]
+ dev-python/semantic_version[${PYTHON_USEDEP}]
+ dev-python/tenacity[${PYTHON_USEDEP}]
+ dev-python/wheel[${PYTHON_USEDEP}]
+ dev-python/zarr[${PYTHON_USEDEP}]
+"
+
+DEPEND="
+ test? (
+ dev-python/anys[${PYTHON_USEDEP}]
+ dev-python/responses[${PYTHON_USEDEP}]
+ dev-python/pyfakefs[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ media-libs/opencv[ffmpeg,${PYTHON_USEDEP}]
+ )
+"
+# Upstream might be amenable to dropping opencv:
+# https://github.com/dandi/dandi-cli/issues/944
+
+# Some tests require deep copy with git history
+# https://github.com/dandi/dandi-cli/issues/878#issuecomment-1021720299
+EPYTEST_DESELECT=(
+ "dandi/tests/test_utils.py::test_get_instance_dandi_with_api"
+ "dandi/tests/test_utils.py::test_get_instance_url"
+ "dandi/tests/test_utils.py::test_get_instance_cli_version_too_old"
+ "dandi/tests/test_utils.py::test_get_instance_bad_cli_version"
+)
+
+distutils_enable_tests pytest
+
+PATCHES=(
+ "${FILESDIR}/${PN}-0.37.0-pip-versioncheck.patch"
+)
+
+src_prepare() {
+ if use etelemetry; then
+ default
+ else
+ eapply "${FILESDIR}/${PN}-0.28.0-no-etelemetry.patch"
+ default
+ sed -i "/etelemetry/d" setup.cfg
+ fi
+}
+
+python_test() {
+ export DANDI_TESTS_NONETWORK=1
+ epytest
+}
diff --git a/dev-vcs/dandi-cli/files/dandi-cli-0.28.0-no-etelemetry.patch
b/dev-vcs/dandi-cli/files/dandi-cli-0.28.0-no-etelemetry.patch
new file mode 100644
index 000000000..6822e1abf
--- /dev/null
+++ b/dev-vcs/dandi-cli/files/dandi-cli-0.28.0-no-etelemetry.patch
@@ -0,0 +1,30 @@
+--- a/dandi/utils.py 2021-09-21 11:51:39.799524534 -0400
++++ b/dandi/utils.py 2021-10-06 04:58:00.506440719 -0400
+@@ -734,27 +734,4 @@
+ def check_dandi_version():
+ if os.environ.get("DANDI_NO_ET"):
+ return
+- try:
+- import etelemetry
+-
+- try:
+- etelemetry.check_available_version(
+- "dandi/dandi-cli", __version__, lgr=lgr, raise_exception=True
+- )
+- except etelemetry.client.BadVersionError:
+- # note: SystemExit is based of BaseException, so is not Exception
+- raise SystemExit(
+- "DANDI CLI has detected that you are using a version that is
known to "
+- "contain bugs, is incompatible with our current data archive,
or has "
+- "other significant performance limitations. "
+- "To continue using DANDI CLI, please upgrade your dandi
client to a newer "
+- "version (e.g., using pip install --upgrade dandi if you
installed using pip). "
+- "If you have any issues, please contact the DANDI "
+- "helpdesk at
https://github.com/dandi/helpdesk/issues/new/choose ."
+- )
+- except Exception as exc:
+- lgr.warning(
+- "Failed to check for a more recent version available with
etelemetry: %s",
+- exc,
+- )
+ os.environ["DANDI_NO_ET"] = "1"
diff --git a/dev-vcs/dandi-cli/files/dandi-cli-0.34.1-pip-versioncheck.patch
b/dev-vcs/dandi-cli/files/dandi-cli-0.34.1-pip-versioncheck.patch
new file mode 100644
index 000000000..4595390b3
--- /dev/null
+++ b/dev-vcs/dandi-cli/files/dandi-cli-0.34.1-pip-versioncheck.patch
@@ -0,0 +1,13 @@
+--- a/setup.cfg 2021-10-06 11:44:40.549337707 -0400
++++ b/dsetup.cfg 2021-10-06 11:45:10.236935245 -0400
+@@ -30,8 +30,8 @@
+ appdirs
+ click
+ click-didyoumean
+- dandischema ~= 0.5.1
+- etelemetry >= 0.2.2
++ dandischema
++ etelemetry
+ fasteners
+ fscacher
+ # Specifying != might be what causes pip 19.3.1 first to install hdmf
1.5.1
diff --git a/dev-vcs/dandi-cli/files/dandi-cli-0.35.0-test_nonetwork.patch
b/dev-vcs/dandi-cli/files/dandi-cli-0.35.0-test_nonetwork.patch
new file mode 100644
index 000000000..89b48b21d
--- /dev/null
+++ b/dev-vcs/dandi-cli/files/dandi-cli-0.35.0-test_nonetwork.patch
@@ -0,0 +1,21 @@
+From e5a6dd4bdc4db828ea1de2a48e96cbdb80465e86 Mon Sep 17 00:00:00 2001
+From: "John T. Wodder II" <[email protected]>
+Date: Tue, 25 Jan 2022 18:53:53 -0500
+Subject: [PATCH] Mark a test with missing `skipif_no_network` marker
+
+---
+ dandi/tests/test_metadata.py | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/dandi/tests/test_metadata.py b/dandi/tests/test_metadata.py
+index 5896e6ef..a0a6bce1 100644
+--- a/dandi/tests/test_metadata.py
++++ b/dandi/tests/test_metadata.py
+@@ -351,6 +351,7 @@ def test_parseobourl(url, value):
+ assert parse_purlobourl(url) == value
+
+
[email protected]_no_network
+ def test_species():
+ m = {"species": "http://purl.obolibrary.org/obo/NCBITaxon_28584"}
+ assert extract_species(m).json_dict() == {
diff --git a/dev-vcs/dandi-cli/files/dandi-cli-0.37.0-pip-versioncheck.patch
b/dev-vcs/dandi-cli/files/dandi-cli-0.37.0-pip-versioncheck.patch
new file mode 100644
index 000000000..bcc3853d3
--- /dev/null
+++ b/dev-vcs/dandi-cli/files/dandi-cli-0.37.0-pip-versioncheck.patch
@@ -0,0 +1,13 @@
+--- a/setup.cfg 2021-10-06 11:44:40.549337707 -0400
++++ b/dsetup.cfg 2021-10-06 11:45:10.236935245 -0400
+@@ -30,8 +30,8 @@
+ appdirs
+ click
+ click-didyoumean
+- dandischema ~= 0.6.0
+- etelemetry >= 0.2.2
++ dandischema
++ etelemetry
+ fasteners
+ fscacher
+ # Specifying != might be what causes pip 19.3.1 first to install hdmf
1.5.1
diff --git a/dev-vcs/dandi-cli/metadata.xml b/dev-vcs/dandi-cli/metadata.xml
new file mode 100644
index 000000000..9565a2184
--- /dev/null
+++ b/dev-vcs/dandi-cli/metadata.xml
@@ -0,0 +1,26 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>[email protected]</email>
+ <name>Horea Christian</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>[email protected]</email>
+ <name>Gentoo Science Project</name>
+ </maintainer>
+ <longdescription lang="en">
+ This package provides a dandi command line utility with a basic
interface
+ which should assist you in preparing and uploading your data to
and/or
+ obtaining data from the http://dandiarchive.org . Each of the
commands
+ has a set of options to alter their behavior. Please run
+ `dandi COMMAND --help` to get more information
+ </longdescription>
+ <use>
+ <flag name="etelemetry">version checking to respect server
schema version</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">dandi/dandi-cli</remote-id>
+ <remote-id type="pypi">dandi</remote-id>
+ </upstream>
+</pkgmetadata>