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?= <[email protected]>
+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>[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>