From ecdac123787b96ce6649f0f91da12ea6458cc2b1 Mon Sep 17 00:00:00 2001 From: Palica Date: Tue, 23 Jun 2020 22:35:08 +0200 Subject: Updating liguros repo --- dev-python/doit/Manifest | 2 + dev-python/doit/doit-0.29.0.ebuild | 69 ++++++++++++++++++ dev-python/doit/doit-0.32.0-r1.ebuild | 53 ++++++++++++++ dev-python/doit/doit-0.32.0.ebuild | 71 +++++++++++++++++++ dev-python/doit/files/doit-0.32.0_pytest5.4.patch | 81 ++++++++++++++++++++++ dev-python/doit/files/doit-0.32.0_unpickable.patch | 39 +++++++++++ dev-python/doit/metadata.xml | 17 +++++ 7 files changed, 332 insertions(+) create mode 100644 dev-python/doit/Manifest create mode 100644 dev-python/doit/doit-0.29.0.ebuild create mode 100644 dev-python/doit/doit-0.32.0-r1.ebuild create mode 100644 dev-python/doit/doit-0.32.0.ebuild create mode 100644 dev-python/doit/files/doit-0.32.0_pytest5.4.patch create mode 100644 dev-python/doit/files/doit-0.32.0_unpickable.patch create mode 100644 dev-python/doit/metadata.xml (limited to 'dev-python/doit') 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 +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 +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 @@ + + + + + azamat.hackimov@gmail.com + Azamat H. Hackimov + + + proxy-maint@gentoo.org + Proxy Maintainers + + + pydoit/doit + doit + + gentoo-staging + -- cgit v1.3.1