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>

Reply via email to