summaryrefslogtreecommitdiff
path: root/dev-python/doit
diff options
context:
space:
mode:
authorPalica <palica+gitlab@liguros.net>2020-06-23 22:35:08 +0200
committerPalica <palica+gitlab@liguros.net>2020-06-23 22:35:08 +0200
commitecdac123787b96ce6649f0f91da12ea6458cc2b1 (patch)
treeb89c74d9e6fe6e8aebc4c77bcbeb4ab73214127d /dev-python/doit
parent1be72aa41cf41dedadeecf59dca9f01de6381f5e (diff)
downloadbaldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.tar.gz
baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.tar.xz
baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.zip
Updating liguros repo
Diffstat (limited to 'dev-python/doit')
-rw-r--r--dev-python/doit/Manifest2
-rw-r--r--dev-python/doit/doit-0.29.0.ebuild69
-rw-r--r--dev-python/doit/doit-0.32.0-r1.ebuild53
-rw-r--r--dev-python/doit/doit-0.32.0.ebuild71
-rw-r--r--dev-python/doit/files/doit-0.32.0_pytest5.4.patch81
-rw-r--r--dev-python/doit/files/doit-0.32.0_unpickable.patch39
-rw-r--r--dev-python/doit/metadata.xml17
7 files changed, 332 insertions, 0 deletions
diff --git a/dev-python/doit/Manifest b/dev-python/doit/Manifest
new file mode 100644
index 000000000000..1889fcc12d2a
--- /dev/null
+++ b/dev-python/doit/Manifest
@@ -0,0 +1,2 @@
+DIST doit-0.29.0.tar.gz 222341 BLAKE2B 8489568fe9236af04f87debfb4889840aa162d17d20f82ac0a9a22d1034b4c58976cd6829486a15b941ac1f50e7137c052fe332657c2b3f529fe2345bbcba2fc SHA512 a686457df31b414d0c3797789e0ae1ae5cdfa3674025236419cb59b254f342cd2db07911ef18b2cb576d8d817b44035b9372265b34b786b2779fb7074b394de1
+DIST doit-0.32.0.tar.gz 1437939 BLAKE2B 39134341582cd964630a1667c78b0e44eeb32406a06e3567123b820fb61cbee0f6a7c8879a84eed750860a365aa4c792e461bb1534c66e4f20a6289522dc8183 SHA512 d5c28a0c6a38648aeef58027b2246fc26360e133e91933f2244bd484f70d6d26110acbfec19c74d53c796e0bbae07a4bf6d76542d45e8b1a6b503c186bf2a68a
diff --git a/dev-python/doit/doit-0.29.0.ebuild b/dev-python/doit/doit-0.29.0.ebuild
new file mode 100644
index 000000000000..c4bf8bd37a49
--- /dev/null
+++ b/dev-python/doit/doit-0.29.0.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+PYTHON_COMPAT=( python3_6 )
+inherit eutils distutils-r1
+
+RESTRICT="test" # can't work as it imports nonexistant modules from coverage
+
+DESCRIPTION="Automation tool"
+HOMEPAGE="http://python-doit.sourceforge.net/ https://pypi.org/project/doit/"
+SRC_URI="mirror://pypi/${PN::1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~x86"
+IUSE="doc test"
+
+RDEPEND="
+ dev-python/cloudpickle[${PYTHON_USEDEP}]
+ dev-python/pyinotify[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+"
+DEPEND="test? ( ${RDEPEND}
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pyflakes[${PYTHON_USEDEP}]
+ dev-python/coverage[${PYTHON_USEDEP}] )
+"
+PDEPEND=">=dev-python/doit-py-0.3.0[${PYTHON_USEDEP}]"
+
+# Required for test phase
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ # Disable test failing due to impact on PATH run in a sandbox
+ sed -e s':test_target:_&:' -i tests/test_cmd_strace.py || die
+
+ # Test requires connection to an absent database
+ sed -e s':testIgnoreAll:_&:' -i tests/test_cmd_ignore.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ local -x TMPDIR="${T}"
+ # disable tests where pypy's treatment of some tests' use of a db is incompatible
+
+ if [[ "${EPYTHON}" == pypy ]]; then
+ sed -e 's:test_remove_all:_&:' -i tests/test_dependency.py || die
+ sed -e 's:testForgetAll:_&:' -i tests/test_cmd_forget.py || die
+ sed -e 's:test_not_picklable:_&:' \
+ -e 's:test_task_not_picklabe_multiprocess:_&:' \
+ -i tests/test_runner.py || die
+ fi
+
+ py.test || die "Tests failed under ${EPYTHON}"
+}
+
+src_install() {
+ use doc && HTML_DOCS=( doc/_build/html/. )
+
+ distutils-r1_src_install
+}
diff --git a/dev-python/doit/doit-0.32.0-r1.ebuild b/dev-python/doit/doit-0.32.0-r1.ebuild
new file mode 100644
index 000000000000..e73b597bd0ed
--- /dev/null
+++ b/dev-python/doit/doit-0.32.0-r1.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7} )
+DISTUTILS_USE_SETUPTOOLS=rdepend
+
+inherit bash-completion-r1 distutils-r1
+
+DESCRIPTION="Automation tool"
+HOMEPAGE="https://pydoit.org/ https://pypi.org/project/doit/"
+SRC_URI="mirror://pypi/${PN::1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ dev-python/cloudpickle[${PYTHON_USEDEP}]
+ dev-python/pyinotify[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="
+ test? (
+ ${RDEPEND}
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pyflakes[${PYTHON_USEDEP}]
+ >=dev-python/pytest-5.4[${PYTHON_USEDEP}]
+ )"
+PDEPEND=">=dev-python/doit-py-0.4.0[${PYTHON_USEDEP}]"
+
+distutils_enable_tests pytest
+distutils_enable_sphinx doc dev-python/sphinx_rtd_theme
+
+PATCHES=(
+ "${FILESDIR}/${P}_pytest5.4.patch"
+ "${FILESDIR}/${P}_unpickable.patch"
+)
+
+src_prepare() {
+ default
+ # Replace custom theme with builtin for documentation
+ sed -i -e "s:'press':'sphinx_rtd_theme':" doc/conf.py || die
+ # Disable test failing due to impact on PATH run in a sandbox
+ sed -i -e "s:test_target:_&:" tests/test_cmd_strace.py || die
+}
+
+src_install() {
+ distutils-r1_src_install
+ newbashcomp bash_completion_doit ${PN}
+ insinto /usr/share/zsh/site-functions
+ newins zsh_completion_doit _${PN}
+}
diff --git a/dev-python/doit/doit-0.32.0.ebuild b/dev-python/doit/doit-0.32.0.ebuild
new file mode 100644
index 000000000000..347f0c06dfe8
--- /dev/null
+++ b/dev-python/doit/doit-0.32.0.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_6 )
+DISTUTILS_USE_SETUPTOOLS=rdepend
+
+inherit eutils distutils-r1
+
+DESCRIPTION="Automation tool"
+HOMEPAGE="http://python-doit.sourceforge.net/ https://pypi.org/project/doit/"
+SRC_URI="mirror://pypi/${PN::1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ dev-python/cloudpickle[${PYTHON_USEDEP}]
+ dev-python/pyinotify[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+"
+DEPEND="test? ( ${RDEPEND}
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pyflakes[${PYTHON_USEDEP}]
+ dev-python/coverage[${PYTHON_USEDEP}] )
+"
+PDEPEND=">=dev-python/doit-py-0.3.0[${PYTHON_USEDEP}]"
+
+# Required for test phase
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ # Disable test failing due to impact on PATH run in a sandbox
+ sed -e s':test_target:_&:' -i tests/test_cmd_strace.py || die
+
+ # Test requires connection to an absent database
+ sed -e s':testIgnoreAll:_&:' -i tests/test_cmd_ignore.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C doc html
+}
+
+python_test() {
+ local -x TMPDIR="${T}"
+ # disable tests where pypy's treatment of some tests' use of a db is incompatible
+
+ if [[ "${EPYTHON}" == pypy ]]; then
+ sed -e 's:test_remove_all:_&:' -i tests/test_dependency.py || die
+ sed -e 's:testForgetAll:_&:' -i tests/test_cmd_forget.py || die
+ sed -e 's:test_not_picklable:_&:' \
+ -e 's:test_task_not_picklabe_multiprocess:_&:' \
+ -i tests/test_runner.py || die
+ fi
+
+ py.test || die "Tests failed under ${EPYTHON}"
+}
+
+src_install() {
+ use doc && HTML_DOCS=( doc/_build/html/. )
+
+ distutils-r1_src_install
+}
diff --git a/dev-python/doit/files/doit-0.32.0_pytest5.4.patch b/dev-python/doit/files/doit-0.32.0_pytest5.4.patch
new file mode 100644
index 000000000000..58dd154859cb
--- /dev/null
+++ b/dev-python/doit/files/doit-0.32.0_pytest5.4.patch
@@ -0,0 +1,81 @@
+From 159b7baebfefeacb443f55f2d12cbf0876628cbc Mon Sep 17 00:00:00 2001
+From: Eduardo Schettino <schettino72@gmail.com>
+Date: Wed, 22 Apr 2020 04:48:36 +0800
+Subject: [PATCH] fix tests for pytest 5.4
+
+---
+ dev_requirements.txt | 2 +-
+ tests/conftest.py | 22 +++++++---------------
+ tests/test_dependency.py | 4 ++--
+ 3 files changed, 10 insertions(+), 18 deletions(-)
+
+diff --git a/dev_requirements.txt b/dev_requirements.txt
+index 1e31e4f..f16ba86 100644
+--- a/dev_requirements.txt
++++ b/dev_requirements.txt
+@@ -2,6 +2,6 @@
+ # $ pip install --requirement dev_requirements.txt
+
+ pyflakes
+-pytest>=4.0
++pytest>=5.4.1
+ coverage>=4.0
+ doit-py>=0.4.0
+diff --git a/tests/conftest.py b/tests/conftest.py
+index 5c4da9f..9eab396 100644
+--- a/tests/conftest.py
++++ b/tests/conftest.py
+@@ -78,12 +78,9 @@ def remove_db(filename):
+ 'dbm.ndbm': ['.db'],
+ }
+
+-def dep_manager_fixture(request, dep_class):
+- # copied from tempdir plugin
+- name = request._pyfuncitem.name
+- name = py.std.re.sub("[\W]", "_", name)
+- my_tmpdir = request.config._tmpdirhandler.mktemp(name, numbered=True)
+- dep_file = Dependency(dep_class, os.path.join(my_tmpdir.strpath, "testdb"))
++def dep_manager_fixture(request, dep_class, tmp_path_factory):
++ filename = str(tmp_path_factory.mktemp('x', True) / 'testdb')
++ dep_file = Dependency(dep_class, filename)
+ dep_file.whichdb = whichdb(dep_file.name) if dep_class is DbmDB else 'XXX'
+ dep_file.name_ext = db_ext.get(dep_file.whichdb, [''])
+
+@@ -97,18 +94,13 @@ def remove_depfile():
+
+
+ @pytest.fixture
+-def dep_manager(request):
+- return dep_manager_fixture(request, DbmDB)
++def dep_manager(request, tmp_path_factory):
++ return dep_manager_fixture(request, DbmDB, tmp_path_factory)
+
+
+ @pytest.fixture
+-def depfile_name(request):
+- # copied from tempdir plugin
+- name = request._pyfuncitem.name
+- name = py.std.re.sub("[\W]", "_", name)
+- my_tmpdir = request.config._tmpdirhandler.mktemp(name, numbered=True)
+- depfile_name = (os.path.join(my_tmpdir.strpath, "testdb"))
+-
++def depfile_name(request, tmp_path_factory):
++ depfile_name = str(tmp_path_factory.mktemp('x', True) / 'testdb')
+ def remove_depfile():
+ remove_db(depfile_name)
+ request.addfinalizer(remove_depfile)
+diff --git a/tests/test_dependency.py b/tests/test_dependency.py
+index 3fc2a14..f84e002 100644
+--- a/tests/test_dependency.py
++++ b/tests/test_dependency.py
+@@ -68,8 +68,8 @@ def test_sqlite_import():
+ # create a separate fixture to be used only by this module
+ # because only here it is required to test with all backends
+ @pytest.fixture(params=[JsonDB, DbmDB, SqliteDB])
+-def pdep_manager(request):
+- return dep_manager_fixture(request, request.param)
++def pdep_manager(request, tmp_path_factory):
++ return dep_manager_fixture(request, request.param, tmp_path_factory)
+
+
+
diff --git a/dev-python/doit/files/doit-0.32.0_unpickable.patch b/dev-python/doit/files/doit-0.32.0_unpickable.patch
new file mode 100644
index 000000000000..d96da6cd73c6
--- /dev/null
+++ b/dev-python/doit/files/doit-0.32.0_unpickable.patch
@@ -0,0 +1,39 @@
+From df4dc1c6a92d9f50cfe7f56d9507eca5bc56870e Mon Sep 17 00:00:00 2001
+From: Stefano Rivera <stefano@rivera.za.net>
+Date: Sun, 2 Feb 2020 13:02:58 +0100
+Subject: [PATCH] Replace recursive knot with explicitly unpicklable object
+
+Python 3.8 was able to pickle the previously unpicklable. Instead of
+relying on limits, let's raise an explicit error.
+
+Fixes: #341
+---
+ tests/test_runner.py | 13 ++++---------
+ 1 file changed, 4 insertions(+), 9 deletions(-)
+
+diff --git a/tests/test_runner.py b/tests/test_runner.py
+index 51c8a61..a9029e8 100644
+--- a/tests/test_runner.py
++++ b/tests/test_runner.py
+@@ -577,17 +577,12 @@ def non_top_function(): return 4
+ t2 = pickle.loads(t1p)
+ assert 4 == t2.actions[0].py_callable()
+
+- @pytest.mark.xfail('PLAT_IMPL == "PyPy"') # pypy can handle it :)
+ def test_not_picklable_raises_InvalidTask(self):
+- # create a large enough recursive obj so pickle fails
+- d1 = {}
+- last = d1
+- for x in range(400):
+- dn = {'p': last}
+- last = dn
+- d1['p'] = last
+-
+ def non_top_function(): pass
++ class Unpicklable:
++ def __getstate__(self):
++ raise pickle.PicklingError("DO NOT PICKLE")
++ d1 = Unpicklable()
+ t1 = Task('t1', [non_top_function, (d1,)])
+ pytest.raises(InvalidTask, runner.JobTask, t1)
+
diff --git a/dev-python/doit/metadata.xml b/dev-python/doit/metadata.xml
new file mode 100644
index 000000000000..468448918f80
--- /dev/null
+++ b/dev-python/doit/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>azamat.hackimov@gmail.com</email>
+ <name>Azamat H. Hackimov</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">pydoit/doit</remote-id>
+ <remote-id type="pypi">doit</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>