diff options
Diffstat (limited to 'poky/meta/recipes-devtools/python')
17 files changed, 360 insertions, 32 deletions
diff --git a/poky/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch b/poky/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch index 1082fe79b..2b1f899ea 100644 --- a/poky/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch +++ b/poky/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch @@ -1,4 +1,4 @@ -From f6afc18e08a6c428ce8becd114c535a6840f1b9f Mon Sep 17 00:00:00 2001 +From 4e2c87105884af6dfc3bc9f8c65b199ecc3b5186 Mon Sep 17 00:00:00 2001 From: Hongxu Jia <hongxu.jia@windriver.com> Date: Tue, 17 Jul 2018 10:13:38 +0800 Subject: [PATCH] conditionally do not fetch code by easy_install diff --git a/poky/meta/recipes-devtools/python/python-cython.inc b/poky/meta/recipes-devtools/python/python-cython.inc index e3f14fc49..5a8ec2a0f 100644 --- a/poky/meta/recipes-devtools/python/python-cython.inc +++ b/poky/meta/recipes-devtools/python/python-cython.inc @@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e23fadd6ceef8c618fc1c65191d846fa" PYPI_PACKAGE = "Cython" BBCLASSEXTEND = "native nativesdk" -SRC_URI[sha256sum] = "6a0d31452f0245daacb14c979c77e093eb1a546c760816b5eed0047686baad8e" +SRC_URI[sha256sum] = "cdf04d07c3600860e8c2ebaad4e8f52ac3feb212453c1764a49ac08c827e8443" UPSTREAM_CHECK_REGEX = "Cython-(?P<pver>.*)\.tar" inherit pypi diff --git a/poky/meta/recipes-devtools/python/python3-cython_0.29.23.bb b/poky/meta/recipes-devtools/python/python3-cython_0.29.24.bb index 296fb39b6..b1d21bd15 100644 --- a/poky/meta/recipes-devtools/python/python3-cython_0.29.23.bb +++ b/poky/meta/recipes-devtools/python/python3-cython_0.29.24.bb @@ -34,3 +34,4 @@ cython_fix_sources () { fi done } + diff --git a/poky/meta/recipes-devtools/python/python3-git_3.1.18.bb b/poky/meta/recipes-devtools/python/python3-git_3.1.20.bb index d1c50d432..2c20d3952 100644 --- a/poky/meta/recipes-devtools/python/python3-git_3.1.18.bb +++ b/poky/meta/recipes-devtools/python/python3-git_3.1.20.bb @@ -12,7 +12,7 @@ PYPI_PACKAGE = "GitPython" inherit pypi setuptools3 -SRC_URI[sha256sum] = "b838a895977b45ab6f0cc926a9045c8d1c44e2b653c1fcc39fe91f42c6e8f05b" +SRC_URI[sha256sum] = "df0e072a200703a65387b0cfdf0466e3bab729c0458cf6b7349d0e9877636519" DEPENDS += " ${PYTHON_PN}-gitdb" diff --git a/poky/meta/recipes-devtools/python/python3-hypothesis/run-ptest b/poky/meta/recipes-devtools/python/python3-hypothesis/run-ptest new file mode 100644 index 000000000..8d44d7c49 --- /dev/null +++ b/poky/meta/recipes-devtools/python/python3-hypothesis/run-ptest @@ -0,0 +1,10 @@ +#!/bin/sh + +# Upstream "fast" tests take about 5 minutes and currently do not run cleanly +# (tests/cover and tests/pytest) +# https://github.com/HypothesisWorks/hypothesis/tree/master/hypothesis-python/tests +# https://github.com/HypothesisWorks/hypothesis/blob/master/hypothesis-python/scripts/basic-test.sh#L18 +# +# Instead we run two test suites imported from examples/ + +pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}' diff --git a/poky/meta/recipes-devtools/python/python3-hypothesis/test_binary_search.py b/poky/meta/recipes-devtools/python/python3-hypothesis/test_binary_search.py new file mode 100644 index 000000000..21267c4ac --- /dev/null +++ b/poky/meta/recipes-devtools/python/python3-hypothesis/test_binary_search.py @@ -0,0 +1,135 @@ +# This file is part of Hypothesis, which may be found at +# https://github.com/HypothesisWorks/hypothesis/ +# +# Most of this work is copyright (C) 2013-2021 David R. MacIver +# (david@drmaciver.com), but it contains contributions by others. See +# CONTRIBUTING.rst for a full list of people who may hold copyright, and +# consult the git log if you need to determine who owns an individual +# contribution. +# +# This Source Code Form is subject to the terms of the Mozilla Public License, +# v. 2.0. If a copy of the MPL was not distributed with this file, You can +# obtain one at https://mozilla.org/MPL/2.0/. +# +# END HEADER +# +# SPDX-License-Identifier: MPL-2.0 + +"""This file demonstrates testing a binary search. + +It's a useful example because the result of the binary search is so clearly +determined by the invariants it must satisfy, so we can simply test for those +invariants. + +It also demonstrates the useful testing technique of testing how the answer +should change (or not) in response to movements in the underlying data. +""" + +from hypothesis import given, strategies as st + + +def binary_search(ls, v): + """Take a list ls and a value v such that ls is sorted and v is comparable + with the elements of ls. + + Return an index i such that 0 <= i <= len(v) with the properties: + + 1. ls.insert(i, v) is sorted + 2. ls.insert(j, v) is not sorted for j < i + """ + # Without this check we will get an index error on the next line when the + # list is empty. + if not ls: + return 0 + + # Without this check we will miss the case where the insertion point should + # be zero: The invariant we maintain in the next section is that lo is + # always strictly lower than the insertion point. + if v <= ls[0]: + return 0 + + # Invariant: There is no insertion point i with i <= lo + lo = 0 + + # Invariant: There is an insertion point i with i <= hi + hi = len(ls) + while lo + 1 < hi: + mid = (lo + hi) // 2 + if v > ls[mid]: + # Inserting v anywhere below mid would result in an unsorted list + # because it's > the value at mid. Therefore mid is a valid new lo + lo = mid + # Uncommenting the following lines will cause this to return a valid + # insertion point which is not always minimal. + # elif v == ls[mid]: + # return mid + else: + # Either v == ls[mid] in which case mid is a valid insertion point + # or v < ls[mid], in which case all valid insertion points must be + # < hi. Either way, mid is a valid new hi. + hi = mid + assert lo + 1 == hi + # We now know that there is a valid insertion point <= hi and there is no + # valid insertion point < hi because hi - 1 is lo. Therefore hi is the + # answer we were seeking + return hi + + +def is_sorted(ls): + """Is this list sorted?""" + for i in range(len(ls) - 1): + if ls[i] > ls[i + 1]: + return False + return True + + +Values = st.integers() + +# We generate arbitrary lists and turn this into generating sorting lists +# by just sorting them. +SortedLists = st.lists(Values).map(sorted) + +# We could also do it this way, but that would be a bad idea: +# SortedLists = st.lists(Values).filter(is_sorted) +# The problem is that Hypothesis will only generate long sorted lists with very +# low probability, so we are much better off post-processing values into the +# form we want than filtering them out. + + +@given(ls=SortedLists, v=Values) +def test_insert_is_sorted(ls, v): + """We test the first invariant: binary_search should return an index such + that inserting the value provided at that index would result in a sorted + set.""" + ls.insert(binary_search(ls, v), v) + assert is_sorted(ls) + + +@given(ls=SortedLists, v=Values) +def test_is_minimal(ls, v): + """We test the second invariant: binary_search should return an index such + that no smaller index is a valid insertion point for v.""" + for i in range(binary_search(ls, v)): + ls2 = list(ls) + ls2.insert(i, v) + assert not is_sorted(ls2) + + +@given(ls=SortedLists, v=Values) +def test_inserts_into_same_place_twice(ls, v): + """In this we test a *consequence* of the second invariant: When we insert + a value into a list twice, the insertion point should be the same both + times. This is because we know that v is > the previous element and == the + next element. + + In theory if the former passes, this should always pass. In practice, + failures are detected by this test with much higher probability because it + deliberately puts the data into a shape that is likely to trigger a + failure. + + This is an instance of a good general category of test: Testing how the + function moves in responses to changes in the underlying data. + """ + i = binary_search(ls, v) + ls.insert(i, v) + assert binary_search(ls, v) == i diff --git a/poky/meta/recipes-devtools/python/python3-hypothesis/test_rle.py b/poky/meta/recipes-devtools/python/python3-hypothesis/test_rle.py new file mode 100644 index 000000000..4d618865a --- /dev/null +++ b/poky/meta/recipes-devtools/python/python3-hypothesis/test_rle.py @@ -0,0 +1,101 @@ +# This file is part of Hypothesis, which may be found at +# https://github.com/HypothesisWorks/hypothesis/ +# +# Most of this work is copyright (C) 2013-2021 David R. MacIver +# (david@drmaciver.com), but it contains contributions by others. See +# CONTRIBUTING.rst for a full list of people who may hold copyright, and +# consult the git log if you need to determine who owns an individual +# contribution. +# +# This Source Code Form is subject to the terms of the Mozilla Public License, +# v. 2.0. If a copy of the MPL was not distributed with this file, You can +# obtain one at https://mozilla.org/MPL/2.0/. +# +# END HEADER +# +# SPDX-License-Identifier: MPL-2.0 + +"""This example demonstrates testing a run length encoding scheme. That is, we +take a sequence and represent it by a shorter sequence where each 'run' of +consecutive equal elements is represented as a single element plus a count. So +e.g. + +[1, 1, 1, 1, 2, 1] is represented as [[1, 4], [2, 1], [1, 1]] + +This demonstrates the useful decode(encode(x)) == x invariant that is often +a fruitful source of testing with Hypothesis. + +It also has an example of testing invariants in response to changes in the +underlying data. +""" + +from hypothesis import assume, given, strategies as st + + +def run_length_encode(seq): + """Encode a sequence as a new run-length encoded sequence.""" + if not seq: + return [] + # By starting off the count at zero we simplify the iteration logic + # slightly. + result = [[seq[0], 0]] + for s in seq: + if ( + # If you uncomment this line this branch will be skipped and we'll + # always append a new run of length 1. Note which tests fail. + # False and + s + == result[-1][0] + # Try uncommenting this line and see what problems occur: + # and result[-1][-1] < 2 + ): + result[-1][1] += 1 + else: + result.append([s, 1]) + return result + + +def run_length_decode(seq): + """Take a previously encoded sequence and reconstruct the original from + it.""" + result = [] + for s, i in seq: + for _ in range(i): + result.append(s) + return result + + +# We use lists of a type that should have a relatively high duplication rate, +# otherwise we'd almost never get any runs. +Lists = st.lists(st.integers(0, 10)) + + +@given(Lists) +def test_decodes_to_starting_sequence(ls): + """If we encode a sequence and then decode the result, we should get the + original sequence back. + + Otherwise we've done something very wrong. + """ + assert run_length_decode(run_length_encode(ls)) == ls + + +@given(Lists, st.data()) +def test_duplicating_an_element_does_not_increase_length(ls, data): + """The previous test could be passed by simply returning the input sequence + so we need something that tests the compression property of our encoding. + + In this test we deliberately introduce or extend a run and assert + that this does not increase the length of our encoding, because they + should be part of the same run in the final result. + """ + # We use assume to get a valid index into the list. We could also have used + # e.g. flatmap, but this is relatively straightforward and will tend to + # perform better. + assume(ls) + i = data.draw(st.integers(0, len(ls) - 1)) + ls2 = list(ls) + # duplicating the value at i right next to it guarantees they are part of + # the same run in the resulting compression. + ls2.insert(i, ls2[i]) + assert len(run_length_encode(ls2)) == len(run_length_encode(ls)) diff --git a/poky/meta/recipes-devtools/python/python3-hypothesis_6.14.5.bb b/poky/meta/recipes-devtools/python/python3-hypothesis_6.14.5.bb deleted file mode 100644 index 0460a4319..000000000 --- a/poky/meta/recipes-devtools/python/python3-hypothesis_6.14.5.bb +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "A library for property-based testing" -HOMEPAGE = "https://github.com/HypothesisWorks/hypothesis/tree/master/hypothesis-python" -LICENSE = "MPL-2.0" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4ee62c16ebd0f4f99d906f36b7de8c3c" - -PYPI_PACKAGE = "hypothesis" - -inherit pypi setuptools3 - -SRC_URI[sha256sum] = "0563b9711fd9bf478cb591580a575c369d2c396f283efa85d0f9a75b26db65b5" - -RDEPENDS:${PN} += " \ - python3-attrs \ - python3-compression \ - python3-core \ - python3-json \ - python3-sortedcontainers \ - python3-statistics \ - python3-unittest \ - " - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-devtools/python/python3-hypothesis_6.15.0.bb b/poky/meta/recipes-devtools/python/python3-hypothesis_6.15.0.bb new file mode 100644 index 000000000..1ea6bb56e --- /dev/null +++ b/poky/meta/recipes-devtools/python/python3-hypothesis_6.15.0.bb @@ -0,0 +1,38 @@ +SUMMARY = "A library for property-based testing" +HOMEPAGE = "https://github.com/HypothesisWorks/hypothesis/tree/master/hypothesis-python" +LICENSE = "MPL-2.0" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4ee62c16ebd0f4f99d906f36b7de8c3c" + +PYPI_PACKAGE = "hypothesis" + +inherit pypi setuptools3 ptest + +SRC_URI += " \ + file://run-ptest \ + file://test_binary_search.py \ + file://test_rle.py \ + " + +SRC_URI[sha256sum] = "10699f595eebb9410fd902908aa13aece19be5c437b405092be34f60f69f7999" + +RDEPENDS:${PN} += " \ + python3-attrs \ + python3-compression \ + python3-core \ + python3-json \ + python3-sortedcontainers \ + python3-statistics \ + python3-unittest \ + " + +RDEPENDS:${PN}-ptest += " \ + ${PYTHON_PN}-pytest \ + " + +do_install_ptest() { + install -d ${D}${PTEST_PATH}/examples + install -m 0755 ${WORKDIR}/test_binary_search.py ${D}${PTEST_PATH}/examples/ + install -m 0755 ${WORKDIR}/test_rle.py ${D}${PTEST_PATH}/examples/ +} + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-devtools/python/python3-importlib-metadata_4.6.3.bb b/poky/meta/recipes-devtools/python/python3-importlib-metadata_4.6.4.bb index 198138af7..e5aad991e 100644 --- a/poky/meta/recipes-devtools/python/python3-importlib-metadata_4.6.3.bb +++ b/poky/meta/recipes-devtools/python/python3-importlib-metadata_4.6.4.bb @@ -8,7 +8,7 @@ inherit pypi setuptools3 PYPI_PACKAGE = "importlib_metadata" UPSTREAM_CHECK_REGEX = "/importlib-metadata/(?P<pver>(\d+[\.\-_]*)+)/" -SRC_URI[sha256sum] = "0645585859e9a6689c523927a5032f2ba5919f1f7d0e84bd4533312320de1ff9" +SRC_URI[sha256sum] = "7b30a78db2922d78a6f47fb30683156a14f3c6aa5cc23f77cc8967e9ab2d002f" S = "${WORKDIR}/importlib_metadata-${PV}" diff --git a/poky/meta/recipes-devtools/python/python3-mako_1.1.4.bb b/poky/meta/recipes-devtools/python/python3-mako_1.1.5.bb index 21ce33b80..f8be44a83 100644 --- a/poky/meta/recipes-devtools/python/python3-mako_1.1.4.bb +++ b/poky/meta/recipes-devtools/python/python3-mako_1.1.5.bb @@ -8,7 +8,7 @@ PYPI_PACKAGE = "Mako" inherit pypi setuptools3 -SRC_URI[sha256sum] = "17831f0b7087c313c0ffae2bcbbd3c1d5ba9eeac9c38f2eb7b50e8c99fe9d5ab" +SRC_URI[sha256sum] = "169fa52af22a91900d852e937400e79f535496191c63712e3b9fda5a9bed6fc3" RDEPENDS:${PN} = "${PYTHON_PN}-html \ ${PYTHON_PN}-netclient \ diff --git a/poky/meta/recipes-devtools/python/python3-pip_21.2.1.bb b/poky/meta/recipes-devtools/python/python3-pip_21.2.4.bb index f16f1e2a0..1f0f707f4 100644 --- a/poky/meta/recipes-devtools/python/python3-pip_21.2.1.bb +++ b/poky/meta/recipes-devtools/python/python3-pip_21.2.4.bb @@ -10,7 +10,7 @@ inherit pypi distutils3 SRC_URI += "file://0001-change-shebang-to-python3.patch" -SRC_URI[sha256sum] = "303a82aaa24cdc01f7ebbd1afc7d1b871a4aa0a88bb5bedef1fa86a3ee44ca0a" +SRC_URI[sha256sum] = "0eb8a1516c3d138ae8689c0c1a60fde7143310832f9dc77e11d8a4bc62de193b" do_install:append() { # Install as pip3 and leave pip2 as default diff --git a/poky/meta/recipes-devtools/python/python3-pluggy_0.13.1.bb b/poky/meta/recipes-devtools/python/python3-pluggy_1.0.0.bb index 479c10fcd..14a7ccb0b 100644 --- a/poky/meta/recipes-devtools/python/python3-pluggy_0.13.1.bb +++ b/poky/meta/recipes-devtools/python/python3-pluggy_1.0.0.bb @@ -3,8 +3,7 @@ HOMEPAGE = "https://github.com/pytest-dev/pluggy" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=1c8206d16fd5cc02fa9b0bb98955e5c2" -SRC_URI[md5sum] = "7f610e28b8b34487336b585a3dfb803d" -SRC_URI[sha256sum] = "15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0" +SRC_URI[sha256sum] = "4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159" DEPENDS += "${PYTHON_PN}-setuptools-scm-native" RDEPENDS:${PN} += "${PYTHON_PN}-importlib-metadata \ diff --git a/poky/meta/recipes-devtools/python/python3-pygments_2.9.0.bb b/poky/meta/recipes-devtools/python/python3-pygments_2.10.0.bb index 7fedcb5a8..3c1b5d15c 100644 --- a/poky/meta/recipes-devtools/python/python3-pygments_2.9.0.bb +++ b/poky/meta/recipes-devtools/python/python3-pygments_2.10.0.bb @@ -5,7 +5,7 @@ LICENSE = "BSD-2-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=98419e351433ac106a24e3ad435930bc" inherit setuptools3 -SRC_URI[sha256sum] = "a18f47b506a429f6f4b9df81bb02beab9ca21d0a5fee38ed15aef65f0545519f" +SRC_URI[sha256sum] = "f398865f7eb6874156579fdf36bc840a03cab64d1cde9e93d68f46a425ec52c6" DEPENDS += "\ ${PYTHON_PN} \ diff --git a/poky/meta/recipes-devtools/python/python3-pytest/0001-Allow-pluggy-1.0.patch b/poky/meta/recipes-devtools/python/python3-pytest/0001-Allow-pluggy-1.0.patch new file mode 100644 index 000000000..175ef987a --- /dev/null +++ b/poky/meta/recipes-devtools/python/python3-pytest/0001-Allow-pluggy-1.0.patch @@ -0,0 +1,65 @@ +From 637d4400d2bab0457688f950ea18cc4a04147c11 Mon Sep 17 00:00:00 2001 +From: Bruno Oliveira <nicoddemus@gmail.com> +Date: Thu, 26 Aug 2021 09:26:51 -0300 +Subject: [PATCH] Allow pluggy >=1.0 + +Now that pluggy 1.0 has been released, we can allow pluggy 1.0 with new pytest versions. + +Upstream-Status: Backport [commit: fbba504] + +Modify to use toml and not tomli. We will create a +python3-tomli recipe when we do an python3-pytest +upgrade. + +Signed-off-by: Tim Orling <timothy.t.orling@intel.com> +--- + setup.cfg | 36 ++++++++++++++++++------------------ + 1 file changed, 18 insertions(+), 18 deletions(-) + +diff --git a/setup.cfg b/setup.cfg +index f919a9491..a8aeab813 100644 +--- a/setup.cfg ++++ b/setup.cfg +@@ -32,24 +32,24 @@ project_urls = + Tracker=https://github.com/pytest-dev/pytest/issues + + [options] +-packages = +- _pytest +- _pytest._code +- _pytest._io +- _pytest.assertion +- _pytest.config +- _pytest.mark +- pytest +-install_requires = +- attrs>=19.2.0 +- iniconfig +- packaging +- pluggy>=0.12,<1.0.0a1 +- py>=1.8.2 +- toml +- atomicwrites>=1.0;sys_platform=="win32" +- colorama;sys_platform=="win32" +- importlib-metadata>=0.12;python_version<"3.8" ++packages = ++ _pytest ++ _pytest._code ++ _pytest._io ++ _pytest.assertion ++ _pytest.config ++ _pytest.mark ++ pytest ++install_requires = ++ attrs>=19.2.0 ++ iniconfig ++ packaging ++ pluggy>=0.12,<2.0 ++ py>=1.8.2 ++ toml ++ atomicwrites>=1.0;sys_platform=="win32" ++ colorama;sys_platform=="win32" ++ importlib-metadata>=0.12;python_version<"3.8" + python_requires = >=3.6 + package_dir = + =src diff --git a/poky/meta/recipes-devtools/python/python3-pytest_6.2.4.bb b/poky/meta/recipes-devtools/python/python3-pytest_6.2.4.bb index f0fd30aed..2e90acaf3 100644 --- a/poky/meta/recipes-devtools/python/python3-pytest_6.2.4.bb +++ b/poky/meta/recipes-devtools/python/python3-pytest_6.2.4.bb @@ -5,6 +5,7 @@ DESCRIPTION = "The pytest framework makes it easy to write small tests, yet scal LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=81eb9f71d006c6b268cf4388e3c98f7b" +SRC_URI += "file://0001-Allow-pluggy-1.0.patch" SRC_URI[sha256sum] = "50bcad0a0b9c5a72c8e4e7c9855a3ad496ca6a881a3641b4260605450772c54b" DEPENDS = "python3-setuptools-scm-native" diff --git a/poky/meta/recipes-devtools/python/python3-setuptools_57.1.0.bb b/poky/meta/recipes-devtools/python/python3-setuptools_57.4.0.bb index 63c0fe97f..ae45936c3 100644 --- a/poky/meta/recipes-devtools/python/python3-setuptools_57.1.0.bb +++ b/poky/meta/recipes-devtools/python/python3-setuptools_57.4.0.bb @@ -10,7 +10,7 @@ SRC_URI:append:class-native = " file://0001-conditionally-do-not-fetch-code-by-e SRC_URI += "file://0001-change-shebang-to-python3.patch" -SRC_URI[sha256sum] = "cfca9c97e7eebbc8abe18d5e5e962a08dcad55bb63afddd82d681de4d22a597b" +SRC_URI[sha256sum] = "6bac238ffdf24e8806c61440e755192470352850f3419a52f26ffe0a1a64f465" DEPENDS += "${PYTHON_PN}" |