commit:     c78d9a12aa9455919f370cb05577f64ae311a8b9
Author:     Horea Christian <chr <AT> chymera <DOT> eu>
AuthorDate: Thu Jan 12 22:07:38 2023 +0000
Commit:     Horea Christian <horea.christ <AT> gmail <DOT> com>
CommitDate: Thu Jan 12 22:07:57 2023 +0000
URL:        https://gitweb.gentoo.org/proj/sci.git/commit/?id=c78d9a12

dev-vcs/dandi-cli: reinstating package

This reverts commit 219660227b38d88417176ef1a191f65689bbda8c.

Signed-off-by: Horea Christian <chr <AT> chymera.eu>

 dev-vcs/dandi-cli/dandi-cli-0.38.0.ebuild          | 87 +++++++++++++++++++++
 dev-vcs/dandi-cli/dandi-cli-0.39.4.ebuild          | 88 ++++++++++++++++++++++
 dev-vcs/dandi-cli/dandi-cli-0.45.1.ebuild          | 80 ++++++++++++++++++++
 dev-vcs/dandi-cli/dandi-cli-0.46.6.ebuild          | 79 +++++++++++++++++++
 .../files/dandi-cli-0.28.0-no-etelemetry.patch     | 30 ++++++++
 .../dandi-cli/files/dandi-cli-0.37.0-pep517.patch  | 46 +++++++++++
 .../files/dandi-cli-0.37.0-pip-versioncheck.patch  | 13 ++++
 dev-vcs/dandi-cli/metadata.xml                     | 26 +++++++
 8 files changed, 449 insertions(+)

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..1842cbb5e
--- /dev/null
+++ b/dev-vcs/dandi-cli/dandi-cli-0.38.0.ebuild
@@ -0,0 +1,87 @@
+# 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}.gh.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test etelemetry"
+
+RDEPEND="
+       dev-python/appdirs[${PYTHON_USEDEP}]
+       dev-python/click[${PYTHON_USEDEP}]
+       dev-python/click-didyoumean[${PYTHON_USEDEP}]
+       ~dev-python/dandi-schema-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"
+       "${FILESDIR}/${PN}-0.37.0-pep517.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.39.4.ebuild 
b/dev-vcs/dandi-cli/dandi-cli-0.39.4.ebuild
new file mode 100644
index 000000000..a83a0b219
--- /dev/null
+++ b/dev-vcs/dandi-cli/dandi-cli-0.39.4.ebuild
@@ -0,0 +1,88 @@
+# 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}.gh.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test etelemetry"
+
+RDEPEND="
+       dev-python/appdirs[${PYTHON_USEDEP}]
+       dev-python/click[${PYTHON_USEDEP}]
+       dev-python/click-didyoumean[${PYTHON_USEDEP}]
+       ~dev-python/dandi-schema-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/nwbinspector[${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}]
+"
+
+BDEPEND="
+       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"
+       "${FILESDIR}/${PN}-0.37.0-pep517.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.45.1.ebuild 
b/dev-vcs/dandi-cli/dandi-cli-0.45.1.ebuild
new file mode 100644
index 000000000..0453e2f00
--- /dev/null
+++ b/dev-vcs/dandi-cli/dandi-cli-0.45.1.ebuild
@@ -0,0 +1,80 @@
+# 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
+
+MY_PN="dandi"
+MY_P="${MY_PN}-${PV}"
+
+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"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test etelemetry"
+
+RDEPEND="
+       dev-python/appdirs[${PYTHON_USEDEP}]
+       dev-python/click[${PYTHON_USEDEP}]
+       dev-python/click-didyoumean[${PYTHON_USEDEP}]
+       =dev-python/dandi-schema-0.7*[${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/nwbinspector[${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}]
+"
+
+BDEPEND="
+       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
+
+S="${WORKDIR}/${MY_P}"
+
+distutils_enable_tests pytest
+
+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.46.6.ebuild 
b/dev-vcs/dandi-cli/dandi-cli-0.46.6.ebuild
new file mode 100644
index 000000000..581257bdb
--- /dev/null
+++ b/dev-vcs/dandi-cli/dandi-cli-0.46.6.ebuild
@@ -0,0 +1,79 @@
+# 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
+
+MY_PN="dandi"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="DANDI command line client to facilitate common operations"
+HOMEPAGE="https://github.com/dandi/dandi-cli";
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test etelemetry"
+
+RDEPEND="
+       dev-python/appdirs[${PYTHON_USEDEP}]
+       dev-python/click[${PYTHON_USEDEP}]
+       dev-python/click-didyoumean[${PYTHON_USEDEP}]
+       =dev-python/dandi-schema-0.7*[${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/nwbinspector[${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}]
+"
+
+BDEPEND="
+       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
+
+S="${WORKDIR}/${MY_P}"
+
+distutils_enable_tests pytest
+
+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.37.0-pep517.patch 
b/dev-vcs/dandi-cli/files/dandi-cli-0.37.0-pep517.patch
new file mode 100644
index 000000000..4d4715f95
--- /dev/null
+++ b/dev-vcs/dandi-cli/files/dandi-cli-0.37.0-pep517.patch
@@ -0,0 +1,46 @@
+From a363b68b79b3dd2004912640c90958882a918537 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgo...@gentoo.org>
+Date: Wed, 4 May 2022 19:49:37 +0200
+Subject: [PATCH] Prepend to sys.path to fix versioneer in PEP517 mode
+
+Prepend the current directory to sys.path rather than appending it
+in order to fix the build in PEP517 mode properly.  If the path
+is appended and versioneer is installed on the system, the system
+versioneer.py (i.e. the module used to install versioneer into projects)
+is imported rather than the local file, and the build fails:
+
+```
+Traceback (most recent call last):
+  File "/usr/lib/python-exec/python3.10/gpep517", line 4, in <module>
+    sys.exit(main())
+  File "/usr/lib/python3.10/site-packages/gpep517/__main__.py", line 136, in 
main
+    return func(args)
+  File "/usr/lib/python3.10/site-packages/gpep517/__main__.py", line 44, in 
build_wheel
+    wheel_name = backend.build_wheel(args.wheel_dir, args.config_json)
+  File "/usr/lib/python3.10/site-packages/setuptools/build_meta.py", line 244, 
in build_wheel
+    return self._build_with_temp_dir(['bdist_wheel'], '.whl',
+  File "/usr/lib/python3.10/site-packages/setuptools/build_meta.py", line 229, 
in _build_with_temp_dir
+    self.run_setup()
+  File "/usr/lib/python3.10/site-packages/setuptools/build_meta.py", line 174, 
in run_setup
+    exec(compile(code, __file__, 'exec'), locals())
+  File "setup.py", line 32, in <module>
+    "version": versioneer.get_version(),
+AttributeError: module 'versioneer' has no attribute 'get_version'
+```
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index e8dddc985..05765009c 100755
+--- a/setup.py
++++ b/setup.py
+@@ -23,7 +23,7 @@
+ # This is needed for versioneer to be importable when building with PEP 517.
+ # See <https://github.com/warner/python-versioneer/issues/193> and links
+ # therein for more information.
+-sys.path.append(os.path.dirname(__file__))
++sys.path.insert(0, os.path.dirname(__file__))
+ 
+ try:
+     import versioneer

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>gen...@chymera.eu</email>
+               <name>Horea Christian</name>
+       </maintainer>
+       <maintainer type="project">
+               <email>s...@gentoo.org</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