summaryrefslogtreecommitdiff
path: root/meta-openembedded/meta-python
diff options
context:
space:
mode:
Diffstat (limited to 'meta-openembedded/meta-python')
-rw-r--r--meta-openembedded/meta-python/classes/distutils-common-base.bbclass28
-rw-r--r--meta-openembedded/meta-python/classes/distutils3-base.bbclass9
-rw-r--r--meta-openembedded/meta-python/classes/distutils3.bbclass71
-rw-r--r--meta-openembedded/meta-python/classes/pyo3.bbclass30
-rw-r--r--meta-openembedded/meta-python/classes/setuptools3_rust.bbclass11
-rw-r--r--meta-openembedded/meta-python/conf/layer.conf2
-rw-r--r--meta-openembedded/meta-python/licenses/CRC32C-ADLER15
-rw-r--r--meta-openembedded/meta-python/recipes-connectivity/python-txws/python3-txws_0.9.1.bb1
-rw-r--r--meta-openembedded/meta-python/recipes-connectivity/telepathy/telepathy-python3_0.15.19.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb41
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/gyp/gyp/0001-Fix-for-Python-3.10-compatibility.patch9
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1.inc31
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-systemd/0002-setup.py-switch-from-distutils-to-setuptools.patch30
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-aiofiles_0.8.0.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp_3.8.1.bb3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.7.7.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.7.6.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-ansi2html_1.7.0.bb9
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-antlr4-runtime_4.9.2.bb11
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-anyjson_0.3.3.bb28
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-argh_0.26.2.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-arpeggio_2.0.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-arpeggio_1.10.2.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-asn1crypto_1.4.0.bb25
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-astor_0.8.1.bb1
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.11.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.9.3.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-asttokens_2.0.5.bb7
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-async-timeout_4.0.2.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-asyncinotify_2.0.2.bb15
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-asyncio-glib_0.1.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-autobahn_22.3.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-autobahn_22.1.1.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python/0001-setup.py-Use-setuptools-instead-of-distutils.patch29
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.5.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.4.9.bb)8
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-babel_2.9.1.bb26
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-backcall_0.2.0.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-backports-functools-lru-cache_1.6.4.bb31
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.7.4.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.7.2.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-bcrypt_3.2.0.bb30
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-bidict_0.21.4.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.4.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.3.7.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-bitstruct_8.13.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-bitstruct_8.12.1.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-cachetools_5.0.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-cachetools_4.2.4.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-can_3.3.4.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_37.0.7.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_37.0.1.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.4.2.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-cchardet_2.1.7.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-certifi_2021.10.8.bb14
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.15.0.bb18
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-chardet_4.0.0.bb23
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-charset-normalizer_2.0.12.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-charset-normalizer_2.0.10.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-cheetah_3.2.6.post2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-cheetah_3.2.6.post1.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-coloredlogs_15.0.1.bb4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-configobj/0001-Switch-from-using-distutils-to-setuptools.patch28
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-configobj_5.0.6.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-configparser_5.2.0.bb13
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-configshell-fb_1.1.29.bb1
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-contextlib2_21.6.0.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-cppy_1.2.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-cppy_1.1.0.bb)5
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-crc32c_2.2.post0.bb22
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-crcmod/0001-setup.py-use-setuptools-instead-of-distutils.patch22
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-crcmod_1.7.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_36.0.1.bb24
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography/0001-Cargo.toml-specify-pem-version.patch31
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography/0002-Cargo.toml-edition-2018-2021.patch28
-rwxr-xr-xmeta-openembedded/meta-python/recipes-devtools/python/python3-cryptography/check-memfree.py10
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography/run-ptest4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_36.0.1.bb121
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-cvxopt_1.2.7.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.8.2.bb3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-dbussy_1.3.bb4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-defusedxml_0.7.1.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-django_2.2.27.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-django_2.2.26.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-django_3.2.12.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-django_3.2.11.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-django_4.0.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-django_4.0.1.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_2.2.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_2.2.0.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-dominate_2.6.0.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.3.1.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-fann2_1.1.2.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-fasteners_0.17.3.bb7
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-feedformatter_0.4.bb18
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_3.1.0.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.1.1.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-frozenlist_1.3.0.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-gcovr_5.0.bb1
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-geomet_0.3.0.bb1
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-gmpy2_2.1.2.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-greenlet_1.1.2.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch13
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.44.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.41.1.bb)7
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch17
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/abseil-ppc-fixes.patch79
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.44.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.43.0.bb)6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-h11_0.13.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-h11_0.12.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.6.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.5.0.bb)3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-html2text_2020.1.16.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-httplib2_0.20.4.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-httplib2_0.20.2.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-humanize_4.0.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-humanize_3.14.0.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-hyperlink_21.0.0.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-icu/0001-Fix-host-contamination-of-include-files.patch12
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-icu_2.8.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-icu_2.8.bb)6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.16.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.16.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-intervals_1.10.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-intervals_1.10.0.post1.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-ipy_1.01.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-iso3166_2.0.2.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-iso8601_1.0.2.bb15
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-isort_5.10.1.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-itsdangerous_2.1.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-itsdangerous_2.1.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-jsonrpcserver_5.0.7.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-jsonrpcserver_5.0.3.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-keras-applications_1.0.8.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-kivy_2.0.0.bb1
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-kiwisolver_1.4.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-kiwisolver_1.3.2.bb)6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-langtable_0.0.57.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-license-expression_21.6.14.bb7
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-lrparsing/0001-setup.py-use-setuptools-instead-of-distutils.patch27
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-lrparsing_1.0.17.bb7
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-luma-core_2.3.1.bb4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-lxml/0001-setupinfo.py-check-the-return-value.patch46
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-lxml_4.8.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-lxml_4.7.1.bb)8
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-lz4/run-ptest3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_3.1.10.bb15
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_4.0.0.bb26
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-marshmallow_3.14.1.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib_3.5.1.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-mccabe_0.7.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-mccabe_0.6.1.bb)3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-monotonic_1.6.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_0.910.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-ndg-httpsclient_0.5.1.bb31
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_2.7.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_2.6.3.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-nocasedict_1.0.2.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-ntplib_0.4.0.bb10
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-obd_0.7.1.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-ordered-set_4.1.0.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pako_0.3.1.bb3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.10.3.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.9.2.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-path_16.4.0.bb9
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_9.0.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_9.0.0.bb)5
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pint_0.18.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pkgconfig_1.5.5.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-ply_3.11.bb18
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-portion_2.2.0.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-prctl_1.8.1.bb5
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pretend_1.0.9.bb11
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-prettytable_3.1.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-prettytable_2.4.0.bb)3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.19.4.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.19.3.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-psutil/0001-fix-failure-test-cases.patch197
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-psutil_5.9.0.bb28
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-ptyprocess_0.7.0.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyalsaaudio_0.9.0.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1/run-ptest3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1_0.4.8.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyatspi_2.38.2.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11_2.8.1.bb3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pybluez_0.23.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_10.3.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_10.2.3.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pycparser_2.21.bb21
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pycurl_7.44.1.bb9
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus_0.6.0.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyhamcrest_2.0.3.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyiface_0.0.11.bb11
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyiface_git.bb18
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_1.8.3.bb38
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_2.13.2.bb18
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pymetno_0.9.0.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.157.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.152.bb)6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_2.5.3.bb35
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.0.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.0.1.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pynacl_1.5.0.bb3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pynetlinux/0001-setup.py-switch-to-setuptools.patch32
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pynetlinux_1.1.bb3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyopenssl_22.0.0.bb23
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyrad_2.4.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyroute2_0.5.19.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate/0001-linux.rs-Define-consts-for-rv32-architecture.patch26
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate/0001-riscv64-mod.rs-Add-missing-error-codes.patch32
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate_1.1.2.bb13
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.1.5.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.1.4.bb)14
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyserial-asyncio_0.6.bb10
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyserial_3.5.bb1
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pysocks_1.7.1.bb20
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pystache/0001-Modernize-python-versions-remove-py2x-and-fix-tests-.patch4150
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pystache_0.5.4.bb17
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pystemd_0.8.0.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-forked_1.4.0.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-helpers-namespace_2021.4.29.bb12
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-html_3.1.1.bb3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-lazy-fixture/run-ptest (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-bcrypt/run-ptest)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-lazy-fixture_0.6.3.bb23
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-metadata_2.0.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-metadata_1.11.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-runner_5.3.1.bb15
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-subtests_0.6.0.bb20
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-xdist_2.5.0.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-python-vlc_3.0.16120.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-python-vlc_3.0.12118.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pytz-deprecation-shim_0.1.0.post0.bb7
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pytz/run-ptest3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pytz_2021.3.bb35
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyudev_0.23.2.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq/club-rpath-out.patch (renamed from meta-openembedded/meta-python/recipes-devtools/python/python-pyzmq/club-rpath-out.patch)0
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_22.3.0.bb8
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-qface_2.0.6.bb24
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-redis_4.2.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-redis_4.1.1.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2022.3.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2021.11.10.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.27.1.bb25
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_5.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_4.1.3.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-rsa_4.8.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt_0.8.20.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt_0.8.19.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-sdnotify/0001-setup.py-switch-to-setuptools.patch31
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-sdnotify_0.3.2.bb3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-semantic-version_2.8.5.bb12
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.5.7.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.5.3.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-setuptools-rust-native_1.1.2.bb26
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-simpleeval_0.9.12.bb6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-slip-dbus/0001-setup.py-Use-setuptools-instead-of-distutils.patch38
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-slip-dbus/9b939c0b534c1b7958fa0a3c7aedf30bca910431.patch76
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-slip-dbus_0.6.5.bb13
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-smbus_4.3.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-smpplib_2.2.1.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-snappy_0.6.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-snappy_0.6.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.5.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.5.1.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-soupsieve_2.3.1.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_1.4.32.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_1.4.31.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-systemd_234.bb7
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-term_2.3.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-termcolor/0001-setup.py-Use-setuptools-instead-of-distutils.patch27
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-termcolor_1.1.0.bb3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.63.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.62.3.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.1.1.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-transitions_0.8.11.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-transitions_0.8.10.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-twine_3.8.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-twine_3.7.1.bb)9
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_22.2.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_22.1.0.bb)20
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-twofish/0002-setup.py-switch-to-setuptools.patch26
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-twofish_0.3.0.bb6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-txaio_22.2.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-txaio_21.2.1.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-typed-ast_1.5.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-typed-ast_1.4.3.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_2.13.3.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-typing-extensions_3.10.0.0.bb12
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_4.1.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.26.8.bb22
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-versiontools_1.9.1.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-waitress_2.1.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-waitress_2.0.0.bb)8
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-watchdog_2.1.7.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-watchdog_2.1.6.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-websocket-client_1.3.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-websocket-client_1.2.3.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_10.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_10.1.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-wrapt_1.14.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-wrapt_1.13.3.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-xlrd_2.0.1.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_3.0.3.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_3.0.2.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-xmlrunner_1.7.7.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-xmodem_0.4.6.bb7
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-xstatic-font-awesome_4.7.0.0.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-xxhash_3.0.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-xxhash_2.0.2.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-yamlloader_1.1.0.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.38.1.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.4.3.bb (renamed from meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.4.0.bb)16
-rw-r--r--meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui/0001-Use-setuptools-instead-of-distutils-in-setup.py.patch30
-rw-r--r--meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.3.0.bb (renamed from meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.2.1.bb)12
-rw-r--r--meta-openembedded/meta-python/recipes-extended/python-cson/python3-cson_git.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh/0001-setup.py-switch-from-distutils-to-setuptools.patch31
-rw-r--r--meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.50.1.bb13
-rw-r--r--meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.34.bb4
-rw-r--r--meta-openembedded/meta-python/recipes-extended/python-pyparted/python3-pyparted_3.11.7.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-extended/python3-portalocker/python3-portalocker_2.3.2.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-extended/python3-pydot/python3-pydot_1.4.2.bb11
-rw-r--r--meta-openembedded/meta-python/recipes-extended/pywbem/python3-pywbem_1.3.0.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-extended/pywbemtools/python3-pywbemtools_1.0.0.bb (renamed from meta-openembedded/meta-python/recipes-extended/pywbemtools/python3-pywbemtools_0.9.1.bb)2
261 files changed, 1208 insertions, 5746 deletions
diff --git a/meta-openembedded/meta-python/classes/distutils-common-base.bbclass b/meta-openembedded/meta-python/classes/distutils-common-base.bbclass
new file mode 100644
index 0000000000..59c750a3cf
--- /dev/null
+++ b/meta-openembedded/meta-python/classes/distutils-common-base.bbclass
@@ -0,0 +1,28 @@
+export STAGING_INCDIR
+export STAGING_LIBDIR
+
+# LDSHARED is the ld *command* used to create shared library
+export LDSHARED = "${CCLD} -shared"
+# LDXXSHARED is the ld *command* used to create shared library of C++
+# objects
+export LDCXXSHARED = "${CXX} -shared"
+# CCSHARED are the C *flags* used to create objects to go into a shared
+# library (module)
+export CCSHARED = "-fPIC -DPIC"
+# LINKFORSHARED are the flags passed to the $(CC) command that links
+# the python executable
+export LINKFORSHARED = "${SECURITY_CFLAGS} -Xlinker -export-dynamic"
+
+FILES:${PN} += "${libdir}/* ${libdir}/${PYTHON_DIR}/*"
+
+FILES:${PN}-staticdev += "\
+ ${PYTHON_SITEPACKAGES_DIR}/*.a \
+"
+FILES:${PN}-dev += "\
+ ${datadir}/pkgconfig \
+ ${libdir}/pkgconfig \
+ ${PYTHON_SITEPACKAGES_DIR}/*.la \
+"
+python __anonymous() {
+ bb.warn("distutils-common-base.bbclass is deprecated, please use setuptools3-base.bbclass instead")
+}
diff --git a/meta-openembedded/meta-python/classes/distutils3-base.bbclass b/meta-openembedded/meta-python/classes/distutils3-base.bbclass
new file mode 100644
index 0000000000..850c535bb1
--- /dev/null
+++ b/meta-openembedded/meta-python/classes/distutils3-base.bbclass
@@ -0,0 +1,9 @@
+DEPENDS:append:class-target = " ${PYTHON_PN}-native ${PYTHON_PN}"
+DEPENDS:append:class-nativesdk = " ${PYTHON_PN}-native ${PYTHON_PN}"
+RDEPENDS:${PN} += "${@['', '${PYTHON_PN}-core']['${CLASSOVERRIDE}' == 'class-target']}"
+
+inherit distutils-common-base python3native python3targetconfig
+
+python __anonymous() {
+ bb.warn("distutils3-base.bbclass is deprecated, please use setuptools3-base.bbclass instead")
+
diff --git a/meta-openembedded/meta-python/classes/distutils3.bbclass b/meta-openembedded/meta-python/classes/distutils3.bbclass
new file mode 100644
index 0000000000..a6d8e8763f
--- /dev/null
+++ b/meta-openembedded/meta-python/classes/distutils3.bbclass
@@ -0,0 +1,71 @@
+inherit distutils3-base
+
+B = "${WORKDIR}/build"
+distutils_do_configure[cleandirs] = "${B}"
+
+DISTUTILS_BUILD_ARGS ?= ""
+DISTUTILS_INSTALL_ARGS ?= "--root=${D} \
+ --prefix=${prefix} \
+ --install-lib=${PYTHON_SITEPACKAGES_DIR} \
+ --install-data=${datadir}"
+
+DISTUTILS_PYTHON = "python3"
+DISTUTILS_PYTHON:class-native = "nativepython3"
+
+DISTUTILS_SETUP_PATH ?= "${S}"
+
+python __anonymous() {
+ bb.warn("distutils3.bbclass is deprecated, please use setuptools3.bbclass instead")
+}
+
+distutils3_do_configure() {
+ :
+}
+
+distutils3_do_compile() {
+ cd ${DISTUTILS_SETUP_PATH}
+ NO_FETCH_BUILD=1 \
+ STAGING_INCDIR=${STAGING_INCDIR} \
+ STAGING_LIBDIR=${STAGING_LIBDIR} \
+ ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py \
+ build --build-base=${B} ${DISTUTILS_BUILD_ARGS} || \
+ bbfatal_log "'${PYTHON_PN} setup.py build ${DISTUTILS_BUILD_ARGS}' execution failed."
+}
+distutils3_do_compile[vardepsexclude] = "MACHINE"
+
+distutils3_do_install() {
+ cd ${DISTUTILS_SETUP_PATH}
+ install -d ${D}${PYTHON_SITEPACKAGES_DIR}
+ STAGING_INCDIR=${STAGING_INCDIR} \
+ STAGING_LIBDIR=${STAGING_LIBDIR} \
+ PYTHONPATH=${D}${PYTHON_SITEPACKAGES_DIR} \
+ ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py \
+ build --build-base=${B} install --skip-build ${DISTUTILS_INSTALL_ARGS} || \
+ bbfatal_log "'${PYTHON_PN} setup.py install ${DISTUTILS_INSTALL_ARGS}' execution failed."
+
+ # support filenames with *spaces*
+ find ${D} -name "*.py" -exec grep -q ${D} {} \; \
+ -exec sed -i -e s:${D}::g {} \;
+
+ for i in ${D}${bindir}/* ${D}${sbindir}/*; do
+ if [ -f "$i" ]; then
+ sed -i -e s:${PYTHON}:${USRBINPATH}/env\ ${DISTUTILS_PYTHON}:g $i
+ sed -i -e s:${STAGING_BINDIR_NATIVE}:${bindir}:g $i
+ fi
+ done
+
+ rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/easy-install.pth
+
+ #
+ # FIXME: Bandaid against wrong datadir computation
+ #
+ if [ -e ${D}${datadir}/share ]; then
+ mv -f ${D}${datadir}/share/* ${D}${datadir}/
+ rmdir ${D}${datadir}/share
+ fi
+}
+distutils3_do_install[vardepsexclude] = "MACHINE"
+
+EXPORT_FUNCTIONS do_configure do_compile do_install
+
+export LDSHARED="${CCLD} -shared"
diff --git a/meta-openembedded/meta-python/classes/pyo3.bbclass b/meta-openembedded/meta-python/classes/pyo3.bbclass
deleted file mode 100644
index 6ce21329c2..0000000000
--- a/meta-openembedded/meta-python/classes/pyo3.bbclass
+++ /dev/null
@@ -1,30 +0,0 @@
-#
-# This class helps make sure that Python extensions built with PyO3
-# and setuptools_rust properly set up the environment for cross compilation
-#
-
-inherit cargo python3-dir siteinfo
-
-export PYO3_CROSS="1"
-export PYO3_CROSS_PYTHON_VERSION="${PYTHON_BASEVERSION}"
-export PYO3_CROSS_LIB_DIR="${STAGING_LIBDIR}"
-export CARGO_BUILD_TARGET="${HOST_SYS}"
-export RUSTFLAGS
-export PYO3_PYTHON="${PYTHON}"
-export PYO3_CONFIG_FILE="${WORKDIR}/pyo3.config"
-
-pyo3_do_configure () {
- cat > ${WORKDIR}/pyo3.config << EOF
-implementation=CPython
-version=${PYTHON_BASEVERSION}
-shared=true
-abi3=false
-lib_name=${PYTHON_DIR}
-lib_dir=${STAGING_LIBDIR}
-pointer_width=${SITEINFO_BITS}
-build_flags=WITH_THREAD
-suppress_build_script_link_lines=false
-EOF
-}
-
-EXPORT_FUNCTIONS do_configure
diff --git a/meta-openembedded/meta-python/classes/setuptools3_rust.bbclass b/meta-openembedded/meta-python/classes/setuptools3_rust.bbclass
deleted file mode 100644
index fb11f08f89..0000000000
--- a/meta-openembedded/meta-python/classes/setuptools3_rust.bbclass
+++ /dev/null
@@ -1,11 +0,0 @@
-inherit pyo3 setuptools3
-
-DEPENDS += "python3-setuptools-rust-native"
-
-setuptools3_rust_do_configure() {
- pyo3_do_configure
- cargo_common_do_configure
- setuptools3_do_configure
-}
-
-EXPORT_FUNCTIONS do_configure
diff --git a/meta-openembedded/meta-python/conf/layer.conf b/meta-openembedded/meta-python/conf/layer.conf
index 98f734152f..e444498ff0 100644
--- a/meta-openembedded/meta-python/conf/layer.conf
+++ b/meta-openembedded/meta-python/conf/layer.conf
@@ -6,7 +6,7 @@ BBFILES += "${LAYERDIR}/recipes*/*/*.bb ${LAYERDIR}/recipes*/*/*.bbappend"
BBFILE_COLLECTIONS += "meta-python"
BBFILE_PATTERN_meta-python := "^${LAYERDIR}/"
-BBFILE_PRIORITY_meta-python = "7"
+BBFILE_PRIORITY_meta-python = "5"
# This should only be incremented on significant changes that will
# cause compatibility issues with other layers
diff --git a/meta-openembedded/meta-python/licenses/CRC32C-ADLER b/meta-openembedded/meta-python/licenses/CRC32C-ADLER
new file mode 100644
index 0000000000..f1f0e94ee0
--- /dev/null
+++ b/meta-openembedded/meta-python/licenses/CRC32C-ADLER
@@ -0,0 +1,15 @@
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the author be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-txws/python3-txws_0.9.1.bb b/meta-openembedded/meta-python/recipes-connectivity/python-txws/python3-txws_0.9.1.bb
index 7910fcd18a..c075e42700 100644
--- a/meta-openembedded/meta-python/recipes-connectivity/python-txws/python3-txws_0.9.1.bb
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-txws/python3-txws_0.9.1.bb
@@ -13,3 +13,4 @@ S = "${WORKDIR}/git"
inherit setuptools3
+PIP_INSTALL_PACKAGE = "txWS"
diff --git a/meta-openembedded/meta-python/recipes-connectivity/telepathy/telepathy-python3_0.15.19.bb b/meta-openembedded/meta-python/recipes-connectivity/telepathy/telepathy-python3_0.15.19.bb
index 1e9ba9e140..f5e2f67b35 100644
--- a/meta-openembedded/meta-python/recipes-connectivity/telepathy/telepathy-python3_0.15.19.bb
+++ b/meta-openembedded/meta-python/recipes-connectivity/telepathy/telepathy-python3_0.15.19.bb
@@ -1,6 +1,6 @@
SUMMARY = "Telepathy IM framework - Python package"
HOMEPAGE = "http://telepathy.freedesktop.org/wiki/"
-LICENSE = "LGPLv2.1+"
+LICENSE = "LGPL-2.1-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1 \
file://src/utils.py;beginline=1;endline=17;md5=9a07d1a9791a7429a14e7b25c6c86822"
diff --git a/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb b/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
index d90e6551e7..f7bf365192 100644
--- a/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
+++ b/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
@@ -26,7 +26,6 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-alembic \
python3-ansi2html \
python3-ansicolors \
- python3-anyjson \
python3-appdirs \
python3-apply-defaults \
python3-argcomplete \
@@ -34,7 +33,6 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-argh \
python3-arpeggio \
python3-asciitree \
- python3-asn1crypto \
python3-aspectlib \
python3-astor \
python3-astroid \
@@ -45,11 +43,8 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-autobahn \
python3-automat \
python3-aws-iot-device-sdk-python \
- python3-babel \
python3-backcall \
- python3-backports-functools-lru-cache \
python3-bandit \
- python3-bcrypt \
python3-beautifulsoup4 \
python3-behave \
python3-betamax \
@@ -66,10 +61,7 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-cantools \
python3-cassandra-driver \
python3-cbor2 \
- python3-cchardet \
python3-cerberus \
- python3-certifi \
- python3-cffi \
python3-chardet \
python3-charset-normalizer \
python3-cheetah \
@@ -83,7 +75,6 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-colorzero \
python3-configargparse \
python3-configobj \
- python3-configparser \
python3-configshell-fb \
python3-constantly \
python3-contextlib2 \
@@ -91,8 +82,6 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-cppy \
python3-crcmod \
python3-croniter \
- python3-cryptography \
- python3-cryptography-vectors \
python3-cson \
python3-custom-inherit \
python3-cvxopt \
@@ -125,7 +114,6 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-fasteners \
python3-fastjsonschema \
python3-fastnumbers \
- python3-feedformatter \
python3-fields \
python3-flask \
python3-flask-babel \
@@ -195,7 +183,6 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-ipython \
python3-ipython-genutils \
python3-iso3166 \
- python3-iso8601 \
python3-isodate \
python3-isort \
python3-itsdangerous \
@@ -245,7 +232,6 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-mypy \
python3-mypy-extensions \
python3-natsort \
- python3-ndg-httpsclient \
python3-netaddr \
python3-netifaces \
python3-networkx \
@@ -281,27 +267,23 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-pint \
python3-pkcs11 \
python3-pkgconfig \
- python3-ply \
python3-pocketsphinx \
python3-polyline \
python3-portalocker \
python3-posix-ipc \
python3-prctl \
python3-precise-runner \
- python3-pretend \
python3-prettytable \
python3-priority \
python3-process-tests \
python3-progress \
python3-prompt-toolkit \
python3-protobuf \
- python3-psutil \
python3-ptyprocess \
python3-pulsectl \
python3-py-cpuinfo \
python3-py-ubjson \
python3-pyalsaaudio \
- python3-pyasn1 \
python3-pyasn1-modules \
python3-pyatspi \
python3-pyaudio \
@@ -312,7 +294,6 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-pycocotools \
python3-pycodestyle \
python3-pyconnman \
- python3-pycparser \
python3-pycurl \
python3-pydbus \
python3-pydbus-manager \
@@ -336,7 +317,6 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-pymysql \
python3-pynacl \
python3-pynetlinux \
- python3-pyopenssl \
python3-pyparted \
python3-pyperclip \
python3-pyperf \
@@ -346,9 +326,7 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-pyrsistent \
python3-pyscaffold \
python3-pyserial \
- python3-pysocks \
python3-pysonos \
- python3-pystache \
python3-pystemd \
python3-pytest-asyncio \
python3-pytest-benchmark \
@@ -356,9 +334,8 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-pytest-forked \
python3-pytest-helpers-namespace \
python3-pytest-html \
+ python3-pytest-lazy-fixture \
python3-pytest-metadata \
- python3-pytest-runner \
- python3-pytest-subtests \
python3-pytest-tempdir \
python3-pytest-timeout \
python3-pytest-xdist \
@@ -366,7 +343,6 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-python-vlc \
python3-pytoml \
python3-pytun \
- python3-pytz \
python3-pytz-deprecation-shim \
python3-pyudev \
python3-pyusb \
@@ -379,7 +355,6 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-rdflib \
python3-redis \
python3-regex \
- python3-requests \
python3-requests-file \
python3-requests-ftp \
python3-requests-futures \
@@ -395,7 +370,6 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-scrypt \
python3-sdnotify \
python3-semver \
- python3-semantic-version \
python3-send2trash \
python3-sentry-sdk \
python3-serpent \
@@ -443,13 +417,11 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-txws \
python3-typed-ast \
python3-typeguard \
- python3-typing-extensions \
python3-tzlocal \
python3-u-msgpack-python \
python3-ujson \
python3-unidiff \
python3-uritemplate \
- python3-urllib3 \
python3-vcversioner \
python3-versiontools \
python3-visitor \
@@ -477,24 +449,17 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-yarl \
python3-zopeinterface \
telepathy-python3 \
+ unattended-upgrades \
"
-RDEPENDS:packagegroup-meta-python3:remove:libc-musl:powerpc64le = "python3-grpcio python3-grpcio-tools"
RDEPENDS:packagegroup-meta-python3-ptest = "\
- python3-cryptography-ptest \
- python3-jinja2-ptest \
- python3-markupsafe-ptest \
python3-ansicolors-ptest \
- python3-anyjson-ptest \
python3-appdirs-ptest \
- python3-backports-functools-lru-cache-ptest \
- python3-bcrypt-ptest \
python3-betamax-ptest \
python3-blinker-ptest \
python3-cachetools-ptest \
python3-cbor2-ptest \
python3-click-ptest \
- python3-cryptography-ptest \
python3-dnspython-ptest \
python3-dominate-ptest \
python3-geojson-ptest \
@@ -523,8 +488,8 @@ RDEPENDS:packagegroup-meta-python3-ptest = "\
python3-pyasn1-modules-ptest \
python3-pyroute2-ptest \
python3-pyserial-ptest \
+ python3-pytest-lazy-fixture-ptest \
python3-pytoml-ptest \
- python3-pytz-ptest \
python3-requests-file-ptest \
python3-requests-toolbelt-ptest \
python3-scrypt-ptest \
diff --git a/meta-openembedded/meta-python/recipes-devtools/gyp/gyp/0001-Fix-for-Python-3.10-compatibility.patch b/meta-openembedded/meta-python/recipes-devtools/gyp/gyp/0001-Fix-for-Python-3.10-compatibility.patch
index 2b88023fe8..1848654404 100644
--- a/meta-openembedded/meta-python/recipes-devtools/gyp/gyp/0001-Fix-for-Python-3.10-compatibility.patch
+++ b/meta-openembedded/meta-python/recipes-devtools/gyp/gyp/0001-Fix-for-Python-3.10-compatibility.patch
@@ -14,6 +14,15 @@ diff --git a/pylib/gyp/common.py b/pylib/gyp/common.py
index b268d229..4f9cb0ec 100644
--- a/pylib/gyp/common.py
+++ b/pylib/gyp/common.py
+@@ -4,7 +4,7 @@
+
+ from __future__ import with_statement
+
+-import collections
++import collections.abc
+ import errno
+ import filecmp
+ import os.path
@@ -494,7 +494,7 @@ def uniquer(seq, idfun=None):
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1.inc
deleted file mode 100644
index 6cbed0fcd5..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1.inc
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "Python library implementing ASN.1 types."
-HOMEPAGE = "http://pyasn1.sourceforge.net/"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=a14482d15c2249de3b6f0e8a47e021fd"
-
-SRC_URI[md5sum] = "dffae4ff9f997a83324b3f33fe62be54"
-SRC_URI[sha256sum] = "aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba"
-
-RDEPENDS:${PN}:class-target += " \
- ${PYTHON_PN}-codecs \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-math \
- ${PYTHON_PN}-shell \
-"
-
-BBCLASSEXTEND = "native nativesdk"
-
-inherit ptest
-
-SRC_URI += " \
- file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-systemd/0002-setup.py-switch-from-distutils-to-setuptools.patch b/meta-openembedded/meta-python/recipes-devtools/python/python-systemd/0002-setup.py-switch-from-distutils-to-setuptools.patch
new file mode 100644
index 0000000000..b3180f29f2
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-systemd/0002-setup.py-switch-from-distutils-to-setuptools.patch
@@ -0,0 +1,30 @@
+From a681a79472df85cdc8c052bc61fb8b9e7b9a6495 Mon Sep 17 00:00:00 2001
+From: Tim Orling <tim.orling@konsulko.com>
+Date: Sun, 27 Feb 2022 11:50:36 -0800
+Subject: [PATCH] setup.py: switch from distutils to setuptools
+
+In Python 3.10, distutils is deprecated and slated for removal in Python
+3.12. It also prevents 'setup.py bdist_wheel' from building a wheel.
+
+Upstream-Status: Submitted
+[https://github.com/systemd/python-systemd/pull/103]
+
+Signed-off-by: Tim Orling <tim.orling@konsulko.com>
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index 099819b..fe9c03a 100644
+--- a/setup.py
++++ b/setup.py
+@@ -1,5 +1,5 @@
+ import sys, os
+-from distutils.core import setup, Extension
++from setuptools import setup, Extension
+ from subprocess import Popen, PIPE, check_output
+
+ def call(*cmd):
+--
+2.30.2
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiofiles_0.8.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiofiles_0.8.0.bb
index f7a75ec1ef..d50cb8e6f4 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiofiles_0.8.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiofiles_0.8.0.bb
@@ -8,7 +8,7 @@ SRC_URI[sha256sum] = "8334f23235248a3b2e83b2c3a78a22674f39969b96397126cc93664d9a
PYPI_PACKAGE = "aiofiles"
-inherit pypi setuptools3
+inherit pypi python_poetry_core
RDEPENDS:${PN} = "\
${PYTHON_PN}-asyncio \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp_3.8.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp_3.8.1.bb
index 1d8434e3ca..f2b8d52a72 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp_3.8.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp_3.8.1.bb
@@ -7,7 +7,8 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=8074d6c6e217873b2a018a4522243ea3"
SRC_URI[sha256sum] = "fc5471e1a54de15ef71c1bc6ebe80d4dc681ea600e68bfd1cbce40427f0b7578"
PYPI_PACKAGE = "aiohttp"
-inherit setuptools3 pypi
+inherit python_setuptools_build_meta pypi
+
RDEPENDS:${PN} = "\
${PYTHON_PN}-async-timeout \
${PYTHON_PN}-attrs \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.7.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.7.7.bb
index 822b3c02b8..6b7ac4a99c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.7.6.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.7.7.bb
@@ -4,7 +4,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=f5a8522010db1a393833988dbe2c7f0b"
inherit pypi setuptools3
-SRC_URI[sha256sum] = "6c0c05e9768a896d804387e20b299880fe01bc56484246b0dffe8075d6d3d847"
+SRC_URI[sha256sum] = "4961248173ead7ce8a21efb3de378f13b8398e6630fab0eb258dc74a8af24c58"
PYPI_PACKAGE = "alembic"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ansi2html_1.7.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ansi2html_1.7.0.bb
index df50bc7a89..0f1804de88 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ansi2html_1.7.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ansi2html_1.7.0.bb
@@ -1,13 +1,13 @@
DESCRPTION = "ansi2html - Convert text with ANSI color codes to HTML or to LaTeX"
HOMEPAGE = "https://github.com/ralphbean/ansi2html"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3000208d539ec061b899bce1d9ce9404"
-LICENSE = "GPLv3"
+LICENSE = "GPL-3.0-only"
PYPI_PACKAGE = "ansi2html"
SRC_URI[sha256sum] = "69316be8c68ac91c5582d397c2890e69c993cc7cda52062ac7e45fcb660d8edc"
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
DEPENDS += " \
${PYTHON_PN}-setuptools-scm-native \
@@ -18,8 +18,3 @@ RDEPENDS:${PN} = " \
${PYTHON_PN}-six \
${PYTHON_PN}-compression \
"
-
-do_compile:prepend() {
- echo "from setuptools import setup" > ${S}/setup.py
- echo "setup()" >> ${S}/setup.py
-}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-antlr4-runtime_4.9.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-antlr4-runtime_4.9.2.bb
new file mode 100644
index 0000000000..8a19b6c64c
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-antlr4-runtime_4.9.2.bb
@@ -0,0 +1,11 @@
+SUMMARY = "ANTLR runtime for Python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=c96f0ee5f5d08fd4387e5f00507bb13e"
+
+SRC_URI[sha256sum] = "31f5abdc7faf16a1a6e9bf2eb31565d004359b821b09944436a34361929ae85a"
+
+PYPI_PACKAGE = "antlr4-python3-runtime"
+
+inherit pypi python_setuptools_build_meta
+
+BBCLASSEXTEND = "nativesdk native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-anyjson_0.3.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-anyjson_0.3.3.bb
deleted file mode 100644
index 2b8abb8b80..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-anyjson_0.3.3.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "Wraps the best available JSON implementation available in a common interface"
-DESCRIPTION = "Anyjson loads whichever is the fastest JSON module installed and \
-provides a uniform API regardless of which JSON implementation is used."
-HOMEPAGE = "https://bitbucket.org/runeh/anyjson"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=989aa97e73c912a83a3c873fa11deb08"
-
-inherit pypi setuptools3 ptest
-
-SRC_URI += " \
- file://0001-setup.py-Do-not-use-2to3.patch \
- file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
- ${PYTHON_PN}-nose \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
-SRC_URI[md5sum] = "2ea28d6ec311aeeebaf993cb3008b27c"
-SRC_URI[sha256sum] = "37812d863c9ad3e35c0734c42e0bf0320ce8c3bed82cd20ad54cb34d158157ba"
-
-RDEPENDS:${PN} += "${PYTHON_PN}-simplejson"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-argh_0.26.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-argh_0.26.2.bb
index d07ccbbf90..c02e31a9a1 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-argh_0.26.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-argh_0.26.2.bb
@@ -1,6 +1,6 @@
SUMMARY = "Pattern matching and various utilities for file systems paths."
-LICENSE = "LGPLv2"
+LICENSE = "LGPL-2.0-only"
LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=cede70b648dcc81baf5b431d38905bad"
SRC_URI[sha256sum] = "e9535b8c84dc9571a48999094fda7f33e63c3f1b74f3e5f3ac0105a58405bb65"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-arpeggio_1.10.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-arpeggio_2.0.0.bb
index 468e6d5fde..96d6de6a69 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-arpeggio_1.10.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-arpeggio_2.0.0.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://pypi.org/project/Arpeggio/"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=33b8d1ba459a2fa4d801acfd1d1b7ceb"
-SRC_URI[sha256sum] = "bfe349f252f82f82d84cb886f1d5081d1a31451e6045275e9f90b65d0daa06f1"
+SRC_URI[sha256sum] = "d6b03839019bb8a68785f9292ee6a36b1954eb84b925b84a6b8a5e1e26d3ed3d"
PYPI_PACKAGE = "Arpeggio"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-asn1crypto_1.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-asn1crypto_1.4.0.bb
deleted file mode 100644
index c052cb8c82..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-asn1crypto_1.4.0.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-DESCRIPTION = "A fast, pure Python library for parsing and serializing ASN.1 structures"
-HOMEPAGE = "https://github.com/wbond/asn1crypto"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=7439e38f5e04ff62fae436184786b7ca"
-
-PYPI_PACKAGE = "asn1crypto"
-
-SRC_URI[md5sum] = "00bf5b72d37778e62cc73b1d8909ae27"
-SRC_URI[sha256sum] = "f4f6e119474e58e04a2b1af817eb585b4fd72bdd89b998624712b5c99be7641c"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN}:class-target += " \
- ${PYTHON_PN}-codecs \
- ${PYTHON_PN}-crypt \
- ${PYTHON_PN}-ctypes \
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-shell \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-astor_0.8.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-astor_0.8.1.bb
index bc3315f751..54e43e3754 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-astor_0.8.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-astor_0.8.1.bb
@@ -10,6 +10,7 @@ SRC_URI = "git://github.com/berkerpeksag/astor.git;branch=master;protocol=https
SRCREV ?= "c7553c79f9222e20783fe9bd8a553f932e918072"
inherit setuptools3
+PIP_INSTALL_PACKAGE = "astor"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.9.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.11.2.bb
index 7bc93bf335..c52008ee65 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.9.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.11.2.bb
@@ -1,10 +1,10 @@
SUMMARY = "An abstract syntax tree for Python with inference support."
HOMEPAGE = "https://pypi.python.org/pypi/astroid"
SECTION = "devel/python"
-LICENSE = "LGPL-2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a70cf540abf41acb644ac3b621b2fad1"
-SRC_URI[sha256sum] = "1efdf4e867d4d8ba4a9f6cf9ce07cd182c4c41de77f23814feb27ca93ca9d877"
+SRC_URI[sha256sum] = "8d0a30fe6481ce919f56690076eafbb2fb649142a89dc874f1ec0e7a011492d0"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-asttokens_2.0.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-asttokens_2.0.5.bb
index 429a56bae6..da49040d76 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-asttokens_2.0.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-asttokens_2.0.5.bb
@@ -5,13 +5,10 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
PYPI_PACKAGE = "asttokens"
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
SRC_URI[sha256sum] = "9a54c114f02c7a9480d56550932546a3f1fe71d8a02f1bc7ccd0ee3ee35cf4d5"
-DEPENDS += "\
- python3-setuptools-scm-native \
- python3-wheel-native \
-"
+DEPENDS += "python3-setuptools-scm-native"
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-async-timeout_4.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-async-timeout_4.0.2.bb
index 7355f00131..b1d19ce619 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-async-timeout_4.0.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-async-timeout_4.0.2.bb
@@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=4fa41f15bb5f23b6d3560c5845eb8d57"
SRC_URI[sha256sum] = "2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15"
PYPI_PACKAGE = "async-timeout"
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
RDEPENDS:${PN} = "\
${PYTHON_PN}-asyncio \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-asyncinotify_2.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-asyncinotify_2.0.2.bb
new file mode 100644
index 0000000000..2bf9192481
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-asyncinotify_2.0.2.bb
@@ -0,0 +1,15 @@
+SUMMARY = "A simple optionally-async python inotify library, focused on simplicity of use and operation, and leveraging modern Python features"
+HOMEPAGE = "https://gitlab.com/Taywee/asyncinotify"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6ec941a1cd6616454970d03cb9c9e8f8"
+
+SRC_URI[sha256sum] = "867cc056d88fc07aa8b3d1dc5b9c3c911cdd6130a4df5f67beb1fdecfd37b164"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-asyncio \
+ python3-core \
+ python3-ctypes \
+ python3-io \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-asyncio-glib_0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-asyncio-glib_0.1.bb
index 6f67d28651..2314f72845 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-asyncio-glib_0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-asyncio-glib_0.1.bb
@@ -1,6 +1,6 @@
SUMMARY = "An implementation of the Python 3 asyncio event loop on top of GLib"
AUTHOR = "James Henstridge"
-LICENSE = "LGPL-2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c"
inherit setuptools3 pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-autobahn_22.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-autobahn_22.3.2.bb
index f149b1221e..78514a412f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-autobahn_22.1.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-autobahn_22.3.2.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://crossbar.io/autobahn"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=97c0bda20ad1d845c6369c0e47a1cd98"
-SRC_URI[sha256sum] = "17e1b58b6ae1a63ca7d926b1d71bb9e4fd6b9ac9a1a2277d8ee40e0b61f54746"
+SRC_URI[sha256sum] = "58a887c7a196bb08d8b6624cb3695f493a9e5c9f00fd350d8d6f829b47ff9036"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python/0001-setup.py-Use-setuptools-instead-of-distutils.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python/0001-setup.py-Use-setuptools-instead-of-distutils.patch
new file mode 100644
index 0000000000..9bc8b36f36
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python/0001-setup.py-Use-setuptools-instead-of-distutils.patch
@@ -0,0 +1,29 @@
+From 36f8106535150b970c75e8b8456ebc5a7d1dbdb3 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 2 Mar 2022 11:11:01 -0800
+Subject: [PATCH] setup.py: Use setuptools instead of distutils
+
+distutils is deprecated and will be gone in 3.12+
+
+Upstream-Status: Submitted [https://github.com/aws/aws-iot-device-sdk-python/pull/305]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index 3846bae..d0c2b8d 100644
+--- a/setup.py
++++ b/setup.py
+@@ -3,7 +3,7 @@ sys.path.insert(0, 'AWSIoTPythonSDK')
+ import AWSIoTPythonSDK
+ currentVersion = AWSIoTPythonSDK.__version__
+
+-from distutils.core import setup
++from setuptools import setup
+ setup(
+ name = 'AWSIoTPythonSDK',
+ packages=['AWSIoTPythonSDK', 'AWSIoTPythonSDK.core',
+--
+2.35.1
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.4.9.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.5.1.bb
index 27f37fec4c..0b2181e4fe 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.4.9.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.5.1.bb
@@ -6,10 +6,14 @@ LIC_FILES_CHKSUM = "\
file://LICENSE.txt;md5=9ac49901b833e769c7d6f21e8dbd7b30 \
file://AWSIoTPythonSDK/core/protocol/paho/client.py;endline=14;md5=5a3c8a1a4bb71bd934f450ecff972ad9 \
"
+SRCREV = "6ca6c73775c953114f83240a850a0d1ab49b68ac"
+SRC_URI = "git://github.com/aws/aws-iot-device-sdk-python;branch=master;protocol=https \
+ file://0001-setup.py-Use-setuptools-instead-of-distutils.patch \
+ "
-SRC_URI[sha256sum] = "84b440c5929f33da1cd204f3ad0ea891e208637dd63de9fb039ed7d49d78c303"
+S = "${WORKDIR}/git"
-inherit pypi setuptools3
+inherit setuptools3
PYPI_PACKAGE = "AWSIoTPythonSDK"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-babel_2.9.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-babel_2.9.1.bb
deleted file mode 100644
index 11c8d60105..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-babel_2.9.1.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-DESCRIPTION = "A collection of tools for internationalizing Python applications"
-HOMEPAGE = "http://babel.edgewall.org/"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=05fb707293a85504aa67afc8ea34d747"
-
-SRC_URI[sha256sum] = "bc0c176f9f6a994582230df350aa6e05ba2ebe4b3ac317eab29d9be5d2768da0"
-
-PYPI_PACKAGE = "Babel"
-
-inherit pypi setuptools3
-
-CLEANBROKEN = "1"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-codecs \
- ${PYTHON_PN}-difflib \
- ${PYTHON_PN}-distutils \
- ${PYTHON_PN}-netserver \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-pickle \
- ${PYTHON_PN}-pytz \
- ${PYTHON_PN}-shell \
- ${PYTHON_PN}-threading \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-backcall_0.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-backcall_0.2.0.bb
index 56b1485342..434ab57c50 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-backcall_0.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-backcall_0.2.0.bb
@@ -9,4 +9,4 @@ PYPI_PACKAGE = "backcall"
SRC_URI[md5sum] = "1f4c9a370c78743406296f48e56e8821"
SRC_URI[sha256sum] = "5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e"
-inherit setuptools3 pypi
+inherit pypi python_flit_core
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-backports-functools-lru-cache_1.6.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-backports-functools-lru-cache_1.6.4.bb
deleted file mode 100644
index 392c044bfc..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-backports-functools-lru-cache_1.6.4.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "Backport of functools.lru_cache from Python 3.3"
-HOMEPAGE = "https://github.com/jaraco/backports.functools_lru_cache"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=7a7126e068206290f3fe9f8d6c713ea6"
-
-PYPI_PACKAGE = "backports.functools_lru_cache"
-
-SRC_URI[sha256sum] = "d5ed2169378b67d3c545e5600d363a923b09c456dab1593914935a68ad478271"
-
-DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
-
-inherit pypi setuptools3 ptest
-
-SRC_URI += " \
- file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-pickle \
- ${PYTHON_PN}-threading \
- "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.7.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.7.4.bb
index f1d387688f..cfdbde9689 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.7.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.7.4.bb
@@ -2,7 +2,7 @@ SUMMARY = "Security oriented static analyser for python code."
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=34400b68072d710fecd0a2940a0d1658"
-SRC_URI[sha256sum] = "6d11adea0214a43813887bfe71a377b5a9955e4c826c8ffd341b494e3ab25260"
+SRC_URI[sha256sum] = "2d63a8c573417bae338962d4b9b06fbc6080f74ecd955a092849e1e65c717bd2"
DEPENDS = "python3-pbr-native python3-git python3-pbr python3-pyyaml python3-six python3-stevedore"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bcrypt_3.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bcrypt_3.2.0.bb
deleted file mode 100644
index a6d5007069..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-bcrypt_3.2.0.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-DESCRIPTION = "Modern password hashing for your software and your servers."
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=8f7bb094c7232b058c7e9f2e431f389c"
-
-DEPENDS += "${PYTHON_PN}-cffi-native"
-
-SRC_URI[md5sum] = "fe31390dab603728f756cd3d6830c80a"
-SRC_URI[sha256sum] = "5b93c1726e50a93a033c36e5ca7fdcd29a5c7395af50a6892f5d9e7c6cfbfb29"
-
-inherit pypi setuptools3 ptest
-
-SRC_URI += " \
- file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
-RDEPENDS:${PN}:class-target += "\
- ${PYTHON_PN}-cffi \
- ${PYTHON_PN}-ctypes \
- ${PYTHON_PN}-shell \
- ${PYTHON_PN}-six \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bidict_0.21.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bidict_0.21.4.bb
index 266dc606a2..a154bfba49 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-bidict_0.21.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-bidict_0.21.4.bb
@@ -6,6 +6,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=9741c346eef56131163e13b9db1241b3"
SRC_URI[sha256sum] = "42c84ffbe6f8de898af6073b4be9ea7ccedcd78d3474aa844c54e49d5a079f6f"
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
DEPENDS += "python3-setuptools-scm-native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.3.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.4.0.bb
index cac003a4fb..39d1618cb1 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.3.7.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.4.0.bb
@@ -1,9 +1,9 @@
SUMMARY = "A high-level Python efficient arrays of booleans -- C extension"
HOMEPAGE = "https://github.com/ilanschnell/bitarray"
-LICENSE = "PSF"
+LICENSE = "PSF-2.0"
LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=2ad702cdcd49e8d2ac01d7e7d0810d2d"
-SRC_URI[sha256sum] = "4da790ab193e993107f3ff0aebc4f8d6ad5196a19071fbafad16b02898a44fd7"
+SRC_URI[sha256sum] = "f1203e902d51df31917d77eeba9c3fe78d032873a2ad78c737e26420f0080e58"
inherit setuptools3 pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitstruct_8.12.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitstruct_8.13.0.bb
index f53f84f83e..954c9ab46c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitstruct_8.12.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitstruct_8.13.0.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/eerimoq/bitstruct"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=d9aa4ec07de78abae21c490c9ffe61bd"
-SRC_URI[sha256sum] = "45b2b932ce6681f5c6ce8cba39abdd423b579b0568c76fa48b1e09c88368ede7"
+SRC_URI[sha256sum] = "7b87d9e41ff552a8cae06ea2368c3772b6f3102bdab4b65e793be7590d69f03b"
PYPI_PACKAGE = "bitstruct"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cachetools_4.2.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cachetools_5.0.0.bb
index 1040dc7e5a..f2974f7e34 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cachetools_4.2.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cachetools_5.0.0.bb
@@ -8,7 +8,7 @@ SECTION = "devel/python"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=439a07e400525964c3c82684146e46eb"
-inherit pypi setuptools3 ptest
+inherit pypi python_setuptools_build_meta ptest
SRC_URI += " \
file://run-ptest \
@@ -27,6 +27,6 @@ do_install_ptest() {
cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
}
-SRC_URI[sha256sum] = "89ea6f1b638d5a73a4f9226be57ac5e4f399d22770b92355f92dcb0f7f001693"
+SRC_URI[sha256sum] = "486471dfa8799eb7ec503a8059e263db000cdda20075ce5e48903087f79d5fd6"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-can_3.3.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-can_3.3.4.bb
index 760b5dde9c..4fe7bcbff0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-can_3.3.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-can_3.3.4.bb
@@ -1,6 +1,6 @@
SUMMARY = "Controller Area Network (CAN) interface module for Python"
SECTION = "devel/python"
-LICENSE = "LGPLv3"
+LICENSE = "LGPL-3.0-only"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e6a600fd5e1d9cbde2d983680233ad02"
SRC_URI[md5sum] = "305075968c56bd85130b19d86e9e505d"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_37.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_37.0.7.bb
index 9642bc5287..c179071afa 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_37.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_37.0.7.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/eerimoq/cantools"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=d9aa4ec07de78abae21c490c9ffe61bd"
-SRC_URI[sha256sum] = "5852ad9fd17ddd7b1a1ce87b21b000e7f5716b358cdac4fdaca13b3e292f4c99"
+SRC_URI[sha256sum] = "e603a7e1e40f5b4963c4c64cf4b013264afa009e232a878c73d31c29942e4466"
PYPI_PACKAGE = "cantools"
@@ -14,6 +14,8 @@ RDEPENDS:${PN} += "\
${PYTHON_PN}-bitstruct \
${PYTHON_PN}-core \
${PYTHON_PN}-textparser \
+ ${PYTHON_PN}-typing-extensions \
+ ${PYTHON_PN}-diskcache \
"
CLEANBROKEN = "1"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.4.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.4.2.bb
index d3f6cd8c16..cafc32ad10 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.4.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.4.2.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7ca
SRC_URI[sha256sum] = "e283e70b55a049ff364cc5e648fde587e4d9b0e87e4b2664c69e639135e6b3b8"
-inherit pypi setuptools3 ptest
+inherit pypi python_setuptools_build_meta ptest
SRC_URI += " \
file://run-ptest \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cchardet_2.1.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cchardet_2.1.7.bb
index 8fa9797768..d6d96965eb 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cchardet_2.1.7.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cchardet_2.1.7.bb
@@ -1,6 +1,6 @@
SUMMARY = "Universal character encoding detector"
HOMEPAGE = "https://github.com/PyYoshi/cChardet"
-LICENSE = "MPLv1.1"
+LICENSE = "MPL-1.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=6ecda54f6f525388d71d6b3cd92f7474"
SRC_URI[sha256sum] = "c428b6336545053c2589f6caf24ea32276c6664cb86db817e03a94c60afa0eaf"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-certifi_2021.10.8.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-certifi_2021.10.8.bb
deleted file mode 100644
index 4c376da897..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-certifi_2021.10.8.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Python package for providing Mozilla's CA Bundle."
-DESCRIPTION = "This installable Python package contains a CA Bundle that you can reference in your \
-Python code. This is useful for verifying HTTP requests, for example. This is the same CA Bundle \
-which ships with the Requests codebase, and is derived from Mozilla Firefox's canonical set."
-HOMEPAGE = " http://certifi.io/"
-
-LICENSE = "ISC"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=67da0714c3f9471067b729eca6c9fbe8"
-
-SRC_URI[sha256sum] = "78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872"
-
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.15.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.15.0.bb
deleted file mode 100644
index c36f23b3dd..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.15.0.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Foreign Function Interface for Python calling C code"
-HOMEPAGE = "http://cffi.readthedocs.org/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=5677e2fdbf7cdda61d6dd2b57df547bf"
-DEPENDS += "libffi ${PYTHON_PN}-pycparser"
-
-SRC_URI[sha256sum] = "920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN}:class-target = " \
- ${PYTHON_PN}-ctypes \
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-pycparser \
- ${PYTHON_PN}-shell \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-chardet_4.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-chardet_4.0.0.bb
deleted file mode 100644
index 8b3c8bbaaf..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-chardet_4.0.0.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "Universal encoding detector for Python 2 and 3"
-LICENSE = "LGPL-2.1"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a6f89e2100d9b6cdffcea4f398e37343"
-
-SRC_URI[sha256sum] = "0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa"
-
-# setup.py of chardet needs this.
-DEPENDS += "${PYTHON_PN}-pytest-runner-native"
-
-inherit pypi setuptools3
-
-PACKAGES =+ "${PN}-cli"
-FILES:${PN}-cli += " \
- ${PYTHON_SITEPACKAGES_DIR}/chardet/cli \
-"
-
-RDEPENDS:${PN}-cli = "${PN} "
-
-RDEPENDS:${PN}:class-target += " \
- ${PYTHON_PN}-logging \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-charset-normalizer_2.0.10.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-charset-normalizer_2.0.12.bb
index 3c1e6804e6..47b8579a1a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-charset-normalizer_2.0.10.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-charset-normalizer_2.0.12.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/ousret/charset_normalizer"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=0974a390827087287db39928f7c524b5"
-SRC_URI[sha256sum] = "876d180e9d7432c5d1dfd4c5d26b72f099d503e8fcc0feb7532c9289be60fcbd"
+SRC_URI[sha256sum] = "2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cheetah_3.2.6.post1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cheetah_3.2.6.post2.bb
index 448772960b..8eed99ee30 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cheetah_3.2.6.post1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cheetah_3.2.6.post2.bb
@@ -11,4 +11,4 @@ RDEPENDS:${PN}:class-native = ""
BBCLASSEXTEND = "native nativesdk"
-SRC_URI[sha256sum] = "58b5d84e5fbff6cf8e117414b3ea49ef51654c02ee887d155113c5b91d761967"
+SRC_URI[sha256sum] = "63157d7a00a273b59676b5be5aa817c75c37efc88478231f1a160f4cfb7f7878"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-coloredlogs_15.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-coloredlogs_15.0.1.bb
index 9eafbaa3c6..d17ab87525 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-coloredlogs_15.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-coloredlogs_15.0.1.bb
@@ -8,10 +8,6 @@ SRC_URI[sha256sum] = "7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5
inherit pypi setuptools3
-do_compile:prepend() {
- sed -ie "s/find_pth_directory(),/'',/g" ${S}/setup.py
-}
-
do_install:append() {
rm -rf ${D}${datadir}
}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-configobj/0001-Switch-from-using-distutils-to-setuptools.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-configobj/0001-Switch-from-using-distutils-to-setuptools.patch
new file mode 100644
index 0000000000..ed6ceca8e1
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-configobj/0001-Switch-from-using-distutils-to-setuptools.patch
@@ -0,0 +1,28 @@
+From ad9024e50a9df4a2b8a1a019e07bb133c3df31bf Mon Sep 17 00:00:00 2001
+From: Daniel Watkins <daniel@daniel-watkins.co.uk>
+Date: Thu, 28 Aug 2014 18:49:04 +0200
+Subject: [PATCH] Switch from using distutils to setuptools.
+
+Upstream-Status: Backport
+
+Signed-off-by: Tim Orling <tim.orling@konsulko.com>
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index c6d57a6..6755ab4 100644
+--- a/setup.py
++++ b/setup.py
+@@ -12,7 +12,7 @@
+ # http://opensource.org/licenses/BSD-3-Clause
+ import os
+ import sys
+-from distutils.core import setup
++from setuptools import setup
+ # a simple import wouldn't work if we moved towards a package with __init__
+ from _version import __version__
+
+--
+2.30.2
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-configobj_5.0.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-configobj_5.0.6.bb
index 1b85368105..1125a6389d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-configobj_5.0.6.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-configobj_5.0.6.bb
@@ -6,4 +6,6 @@ LIC_FILES_CHKSUM = "file://configobj.py;md5=a7c3968dd866dfd23e91e125b669ab21"
PYPI_PACKAGE = "configobj"
SRC_URI[sha256sum] = "a2f5650770e1c87fb335af19a9b7eb73fc05ccf22144eb68db7d00cd2bcb0902"
+SRC_URI += "file://0001-Switch-from-using-distutils-to-setuptools.patch"
+
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-configparser_5.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-configparser_5.2.0.bb
deleted file mode 100644
index e629331330..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-configparser_5.2.0.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "This module provides the ConfigParser class which implements a basic configuration language which provides a structure similar to what's found in Microsoft Windows INI files."
-SECTION = "devel/python"
-HOMEPAGE = "https://docs.python.org/3/library/configparser.html"
-LICENSE = "MIT"
-
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=10;endline=10;md5=23f9ad5cad3d8cc0336e2a5d8a87e1fa"
-
-SRC_URI[sha256sum] = "1b35798fdf1713f1c3139016cfcbc461f09edbf099d1fb658d4b7479fcaa3daa"
-
-DEPENDS += "${PYTHON_PN}-setuptools-scm-native ${PYTHON_PN}-toml-native"
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-configshell-fb_1.1.29.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-configshell-fb_1.1.29.bb
index 359c9d002c..2bb196c209 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-configshell-fb_1.1.29.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-configshell-fb_1.1.29.bb
@@ -12,5 +12,6 @@ SRCREV = "d74a33b69f688ed9b8b28033835303604639d4eb"
S = "${WORKDIR}/git"
inherit setuptools3
+PIP_INSTALL_PACKAGE = "configshell_fb"
RDEPENDS:${PN} += "python3-modules python3-fcntl python3-six"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-contextlib2_21.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-contextlib2_21.6.0.bb
index f9900b134b..5a54c696f4 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-contextlib2_21.6.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-contextlib2_21.6.0.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Backports and enhancements for the contextlib module"
HOMEPAGE = "http://contextlib2.readthedocs.org/"
SECTION = "devel/python"
-LICENSE = "PSF & Apache-2"
+LICENSE = "PSF-2.0 & Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=d2b6be100f1002194122ec9bfee7b8b4"
SRC_URI[sha256sum] = "ab1e2bfe1d01d968e1b7e8d9023bc51ef3509bba217bb730cee3827e1ee82869"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cppy_1.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cppy_1.2.0.bb
index 79ddbed7c2..f86f571938 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cppy_1.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cppy_1.2.0.bb
@@ -3,8 +3,9 @@ HOMEPAGE = "https://cppy.readthedocs.io/en/latest/"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=0bfb3e39b13587f0028f17baf0e42371"
-SRC_URI[md5sum] = "2110891d75aa12551deebba1603428c6"
-SRC_URI[sha256sum] = "4eda6f1952054a270f32dc11df7c5e24b259a09fddf7bfaa5f33df9fb4a29642"
+SRC_URI[sha256sum] = "95e8862e4f826c3f2a6b7b658333b162f80cbe9f943aa0d0a7a6b2ef850aeffc"
+
+RDEPENDS:${PN} += "python3-setuptools python3-distutils"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-crc32c_2.2.post0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-crc32c_2.2.post0.bb
new file mode 100644
index 0000000000..4f6a3aba99
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-crc32c_2.2.post0.bb
@@ -0,0 +1,22 @@
+SUMMARY = "A python package implementing the crc32c algorithmin hardware and software"
+HOMEPAGE = "https://github.com/ICRAR/crc32c"
+
+LICENSE = "BSD-2-Clause & BSD-3-Clause & CRC32C-ADLER & LGPL-2.0-or-later"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE;md5=4fbd65380cdd255951079008b364516c \
+ file://LICENSE.google-crc32c;md5=e9ed01b5e5ac9eae23fc2bb33701220c \
+ file://LICENSE.slice-by-8;md5=6b3bc7709d6b2db6646ec2467310ff6b \
+ file://crc32c_adler.c;startline=9;endline=24;md5=c60e6e55d0e5d95effa6fad27db0711a \
+"
+
+SRC_URI[sha256sum] = "3d058e7a5e37e4985d1a7ad4cb702bca56b490daa658d4851377d13ead8b435e"
+
+inherit pypi setuptools3
+
+do_compile:prepend() {
+ if ! grep 'platform =' setup.cfg; then
+ printf "[build_ext]\nplatform = ${TARGET_ARCH}" >> setup.cfg
+ fi
+}
+
+RDEPENDS:${PN} += "python3-core"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-crcmod/0001-setup.py-use-setuptools-instead-of-distutils.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-crcmod/0001-setup.py-use-setuptools-instead-of-distutils.patch
new file mode 100644
index 0000000000..9bcb871135
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-crcmod/0001-setup.py-use-setuptools-instead-of-distutils.patch
@@ -0,0 +1,22 @@
+From 3dc1e9584ed2ac81e7526b8dbf76b4a06ea8ac76 Mon Sep 17 00:00:00 2001
+From: Justin Bronder <jsbronder@cold-front.org>
+Date: Tue, 1 Mar 2022 10:34:42 -0500
+Subject: [PATCH] setup.py use setuptools instead of distutils
+
+Upstream-Status: Pending
+Signed-off-by: Justin Bronder <jsbronder@cold-front.org>
+---
+ setup.py | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index e3a524b..2f2bcfc 100644
+--- a/setup.py
++++ b/setup.py
+@@ -1,5 +1,4 @@
+-from distutils.core import setup
+-from distutils.extension import Extension
++from setuptools import Extension, setup
+ import sys,os
+
+ if sys.version_info[0] == 2:
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-crcmod_1.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-crcmod_1.7.bb
index df8f0d83d8..f8f1683601 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-crcmod_1.7.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-crcmod_1.7.bb
@@ -4,7 +4,7 @@ LICENSE = "MIT"
SECTION = "devel/python"
LIC_FILES_CHKSUM = "file://LICENSE;md5=f9a19291627cad2d1dfbfcf3c9fb85c2"
-SRC_URI[md5sum] = "2d5b92117d958dcead94f9e17f54cd32"
+SRC_URI += "file://0001-setup.py-use-setuptools-instead-of-distutils.patch"
SRC_URI[sha256sum] = "dc7051a0db5f2bd48665a990d3ec1cc305a466a77358ca4492826f41f283601e"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_36.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_36.0.1.bb
deleted file mode 100644
index b9e6b811c3..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_36.0.1.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Test vectors for the cryptography package."
-HOMEPAGE = "https://cryptography.io/"
-SECTION = "devel/python"
-LICENSE = "Apache-2.0 | BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=8c3617db4fb6fae01f1d253ab91511e4 \
- file://LICENSE.APACHE;md5=4e168cce331e5c827d4c2b68a6200e1b \
- file://LICENSE.BSD;md5=5ae30ba4123bc4f2fa49aa0b0dce887b"
-
-# NOTE: Make sure to keep this recipe at the same version as python3-cryptography
-# Upgrade both recipes at the same time
-
-SRC_URI[sha256sum] = "fc8490afd5424342b868215435bd174dcd76ab396b4ea9435498be5721dcd598"
-
-PYPI_PACKAGE = "cryptography_vectors"
-
-inherit pypi setuptools3
-
-DEPENDS += " \
- ${PYTHON_PN}-cryptography \
-"
-
-BBCLASSEXTEND = "native nativesdk"
-
-UPSTREAM_CHECK_REGEX = ""
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography/0001-Cargo.toml-specify-pem-version.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography/0001-Cargo.toml-specify-pem-version.patch
deleted file mode 100644
index d7ab757bb5..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography/0001-Cargo.toml-specify-pem-version.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From ec8d3f3c61280c8140b34ed1479baef5e706f064 Mon Sep 17 00:00:00 2001
-From: Tim Orling <tim.orling@konsulko.com>
-Date: Fri, 14 Jan 2022 22:02:25 -0800
-Subject: [PATCH] Cargo.toml: specify pem version
-
-pem = "1.0" is not resolving, specify the current
-pem = { version: "1.0.2"}
-
-Upstream-Status: Pending
-
-Signed-off-by: Tim Orling <tim.orling@konsulko.com>
----
- src/rust/Cargo.toml | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/rust/Cargo.toml b/src/rust/Cargo.toml
-index 617167d0..174eaa80 100644
---- a/src/rust/Cargo.toml
-+++ b/src/rust/Cargo.toml
-@@ -9,7 +9,7 @@ publish = false
- lazy_static = "1"
- pyo3 = { version = "0.15.1" }
- asn1 = { version = "0.8.7", default-features = false, features = ["derive"] }
--pem = "1.0"
-+pem = { version = "1.0.2" }
- chrono = { version = "0.4", default-features = false, features = ["alloc", "clock"] }
- ouroboros = "0.13"
-
---
-2.30.2
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography/0002-Cargo.toml-edition-2018-2021.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography/0002-Cargo.toml-edition-2018-2021.patch
deleted file mode 100644
index 366e3a4d39..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography/0002-Cargo.toml-edition-2018-2021.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 4b73298b214a5b69ea6edf3c2e21dd82b2b29708 Mon Sep 17 00:00:00 2001
-From: Tim Orling <tim.orling@konsulko.com>
-Date: Fri, 14 Jan 2022 22:34:59 -0800
-Subject: [PATCH 2/2] Cargo.toml: edition 2018 -> 2021
-
-Upstream-Status: Pending
-
-Signed-off-by: Tim Orling <tim.orling@konsulko.com>
----
- src/rust/Cargo.toml | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/rust/Cargo.toml b/src/rust/Cargo.toml
-index 174eaa80..7ad053d9 100644
---- a/src/rust/Cargo.toml
-+++ b/src/rust/Cargo.toml
-@@ -2,7 +2,7 @@
- name = "cryptography-rust"
- version = "0.1.0"
- authors = ["The cryptography developers <cryptography-dev@python.org>"]
--edition = "2018"
-+edition = "2021"
- publish = false
-
- [dependencies]
---
-2.30.2
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography/check-memfree.py b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography/check-memfree.py
deleted file mode 100755
index c111a9074c..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography/check-memfree.py
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/usr/bin/env python3
-# https://stackoverflow.com/questions/22102999/get-total-physical-memory-in-python/28161352
-import sys
-meminfo = dict((i.split()[0].rstrip(':'),int(i.split()[1])) for i in open('/proc/meminfo').readlines())
-mem_free = meminfo['MemTotal']/1024./1024.
-if mem_free < 2.:
- raise RuntimeError("Insufficient free memory({:.3f}): requires > 2 GB".format(mem_free))
- sys.exit(1)
-else:
- print("Free memory: {:.3f} GB".format(mem_free))
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography/run-ptest
deleted file mode 100644
index 1e97dda63e..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography/run-ptest
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-if ./check-memfree.py; then
- pytest -vvvv tests/
-fi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_36.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_36.0.1.bb
deleted file mode 100644
index abb15381f5..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_36.0.1.bb
+++ /dev/null
@@ -1,121 +0,0 @@
-SUMMARY = "Provides cryptographic recipes and primitives to python developers"
-HOMEPAGE = "https://cryptography.io/"
-SECTION = "devel/python"
-LICENSE = "( Apache-2.0 | BSD-3-Clause ) & PSF-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=bf405a8056a6647e7d077b0e7bc36aba \
- file://LICENSE.APACHE;md5=4e168cce331e5c827d4c2b68a6200e1b \
- file://LICENSE.BSD;md5=5ae30ba4123bc4f2fa49aa0b0dce887b \
- file://LICENSE.PSF;md5=43c37d21e1dbad10cddcd150ba2c0595 \
- "
-LDSHARED += "-pthread"
-
-SRC_URI[sha256sum] = "53e5c1dc3d7a953de055d77bef2ff607ceef7a2aac0353b5d630ab67f7423638"
-
-SRC_URI += " \
- file://run-ptest \
- file://check-memfree.py \
- file://0001-Cargo.toml-specify-pem-version.patch \
- file://0002-Cargo.toml-edition-2018-2021.patch \
-"
-
-inherit pypi setuptools3_rust
-
-DEPENDS += " \
- ${PYTHON_PN}-asn1crypto-native \
- ${PYTHON_PN}-cffi-native \
- ${PYTHON_PN}-setuptools-rust-native \
- ${PYTHON_PN}-six-native \
-"
-
-SRC_URI += " \
- crate://crates.io/Inflector/0.11.4 \
- crate://crates.io/aliasable/0.1.3 \
- crate://crates.io/asn1/0.8.7 \
- crate://crates.io/asn1_derive/0.8.7 \
- crate://crates.io/autocfg/1.0.1 \
- crate://crates.io/base64/0.13.0 \
- crate://crates.io/bitflags/1.3.2 \
- crate://crates.io/cfg-if/1.0.0 \
- crate://crates.io/chrono/0.4.19 \
- crate://crates.io/indoc-impl/0.3.6 \
- crate://crates.io/indoc/0.3.6 \
- crate://crates.io/instant/0.1.12 \
- crate://crates.io/lazy_static/1.4.0 \
- crate://crates.io/libc/0.2.112 \
- crate://crates.io/lock_api/0.4.5 \
- crate://crates.io/num-integer/0.1.44 \
- crate://crates.io/num-traits/0.2.14 \
- crate://crates.io/once_cell/1.9.0 \
- crate://crates.io/ouroboros/0.13.0 \
- crate://crates.io/ouroboros_macro/0.13.0 \
- crate://crates.io/parking_lot/0.11.2 \
- crate://crates.io/parking_lot_core/0.8.5 \
- crate://crates.io/paste-impl/0.1.18 \
- crate://crates.io/paste/0.1.18 \
- crate://crates.io/pem/1.0.2 \
- crate://crates.io/proc-macro-error-attr/1.0.4 \
- crate://crates.io/proc-macro-error/1.0.4 \
- crate://crates.io/proc-macro-hack/0.5.19 \
- crate://crates.io/proc-macro2/1.0.36 \
- crate://crates.io/pyo3-build-config/0.15.1 \
- crate://crates.io/pyo3-macros-backend/0.15.1 \
- crate://crates.io/pyo3-macros/0.15.1 \
- crate://crates.io/pyo3/0.15.1 \
- crate://crates.io/quote/1.0.14 \
- crate://crates.io/redox_syscall/0.2.10 \
- crate://crates.io/scopeguard/1.1.0 \
- crate://crates.io/smallvec/1.7.0 \
- crate://crates.io/stable_deref_trait/1.2.0 \
- crate://crates.io/syn/1.0.85 \
- crate://crates.io/unicode-xid/0.2.2 \
- crate://crates.io/unindent/0.1.7 \
- crate://crates.io/version_check/0.9.4 \
- crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
- crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
- crate://crates.io/winapi/0.3.9 \
-"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-asn1crypto \
- ${PYTHON_PN}-cffi \
- ${PYTHON_PN}-idna \
- ${PYTHON_PN}-setuptools \
- ${PYTHON_PN}-six \
-"
-
-RDEPENDS:${PN}:append:class-target = " \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-threading \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-bcrypt \
- ${PYTHON_PN}-cryptography-vectors \
- ${PYTHON_PN}-hypothesis \
- ${PYTHON_PN}-iso8601 \
- ${PYTHON_PN}-pretend \
- ${PYTHON_PN}-psutil \
- ${PYTHON_PN}-pytest \
- ${PYTHON_PN}-pytest-subtests \
- ${PYTHON_PN}-pytz \
-"
-
-inherit ptest
-
-do_install_ptest() {
- install -D ${WORKDIR}/check-memfree.py ${D}${PTEST_PATH}/
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
- install -d ${D}${PTEST_PATH}/tests/hazmat
- cp -rf ${S}/tests/hazmat/* ${D}${PTEST_PATH}/tests/hazmat/
- cp -r ${S}/pyproject.toml ${D}${PTEST_PATH}/
-}
-
-FILES:${PN}-ptest += " \
- ${PTEST_PATH}/check-memfree.py \
-"
-FILES:${PN}-dbg += " \
- ${PYTHON_SITEPACKAGES_DIR}/${SRCNAME}/hazmat/bindings/.debug \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cvxopt_1.2.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cvxopt_1.2.7.bb
index 1bcf18ab6f..70e9831770 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cvxopt_1.2.7.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cvxopt_1.2.7.bb
@@ -1,6 +1,6 @@
SUMMARY = "Convex optimization package"
HOMEPAGE = "http://cvxopt.org"
-LICENSE = "GPL-3.0"
+LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=ba1a8a73d8ebea5c47a1173aaf476ddd"
SRC_URI = "git://github.com/cvxopt/cvxopt;protocol=https;branch=master"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.8.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.8.2.bb
index cd0bdf6671..e281f0f285 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.8.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.8.2.bb
@@ -7,7 +7,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=e3155c7bdc71f66e02678411d2abf996"
SRC_URI[sha256sum] = "0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"
PYPI_PACKAGE = "python-dateutil"
-inherit pypi setuptools3
+PIP_INSTALL_PACKAGE = "python_dateutil"
+inherit pypi python_setuptools_build_meta
PACKAGES =+ "${PN}-zoneinfo"
FILES:${PN}-zoneinfo = "${libdir}/${PYTHON_DIR}/site-packages/dateutil/zoneinfo"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-dbussy_1.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-dbussy_1.3.bb
index 0cf9dc8a7d..b1ba953922 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-dbussy_1.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-dbussy_1.3.bb
@@ -1,6 +1,6 @@
SUMMARY = "language bindings for libdbus, for Python 3.5 or later"
HOMEPAGE = "https://github.com/ldo/dbussy"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7"
SRC_URI = "git://github.com/ldo/dbussy.git;branch=master;protocol=https \
@@ -12,6 +12,8 @@ S = "${WORKDIR}/git"
inherit setuptools3
+PIP_INSTALL_PACKAGE = "DBussy"
+
RDEPENDS:${PN} += "\
python3-asyncio \
python3-core \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-defusedxml_0.7.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-defusedxml_0.7.1.bb
index e5790f478c..3396c7262d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-defusedxml_0.7.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-defusedxml_0.7.1.bb
@@ -2,7 +2,7 @@ SUMMARY = "XML bomb protection for Python stdlib modules"
DESCRIPTION = "Python package with modified subclasses of all stdlib XML \
parsers that prevent any potentially malicious operation."
-LICENSE = "PSF"
+LICENSE = "PSF-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=056fea6a4b395a24d0d278bf5c80249e"
SRC_URI[sha256sum] = "1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_2.2.26.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_2.2.27.bb
index 523f0e0912..786afab248 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_2.2.26.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_2.2.27.bb
@@ -5,7 +5,7 @@ UPSTREAM_CHECK_REGEX = "/${PYPI_PACKAGE}/(?P<pver>(2\.2\.\d*)+)/"
inherit setuptools3
-SRC_URI[sha256sum] = "dfa537267d52c6243a62b32855a744ca83c37c70600aacffbfd98bc5d6d8518f"
+SRC_URI[sha256sum] = "1ee37046b0bf2b61e83b3a01d067323516ec3b6f2b17cd49b1326dd4ba9dc913"
RDEPENDS:${PN} += "\
${PYTHON_PN}-sqlparse \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_3.2.11.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_3.2.12.bb
index 6b97ef49c0..adbc498bdf 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_3.2.11.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_3.2.12.bb
@@ -1,7 +1,7 @@
require python-django.inc
inherit setuptools3
-SRC_URI[sha256sum] = "69c94abe5d6b1b088bf475e09b7b74403f943e34da107e798465d2045da27e75"
+SRC_URI[sha256sum] = "9772e6935703e59e993960832d66a614cf0233a1c5123bc6224ecc6ad69e41e2"
RDEPENDS:${PN} += "\
${PYTHON_PN}-sqlparse \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_4.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_4.0.2.bb
index 6cf8cad8a9..690b9809dc 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_4.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_4.0.2.bb
@@ -1,7 +1,7 @@
require python-django.inc
inherit setuptools3
-SRC_URI[sha256sum] = "2485eea3cc4c3bae13080dee866ebf90ba9f98d1afe8fda89bfb0eb2e218ef86"
+SRC_URI[sha256sum] = "110fb58fb12eca59e072ad59fc42d771cd642dd7a2f2416582aa9da7a8ef954a"
RDEPENDS:${PN} += "\
${PYTHON_PN}-sqlparse \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_2.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_2.2.1.bb
index ee670af824..67158fbdad 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_2.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_2.2.1.bb
@@ -3,9 +3,9 @@ HOMEPAGE = "http://www.dnspython.org/"
LICENSE = "ISC"
LIC_FILES_CHKSUM = "file://LICENSE;md5=5af50906b5929837f667dfe31052bd34"
-SRC_URI[sha256sum] = "e79351e032d0b606b98d38a4b0e6e2275b31a5b85c873e587cc11b73aca026d6"
+SRC_URI[sha256sum] = "0f7569a4a6ff151958b64304071d370daa3243d15941a7beedf0c9fe5105603e"
-inherit pypi setuptools3 ptest
+inherit pypi python_poetry_core ptest
SRC_URI += " \
file://run-ptest \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-dominate_2.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-dominate_2.6.0.bb
index 40bc1868f4..8e17438262 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-dominate_2.6.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-dominate_2.6.0.bb
@@ -1,5 +1,5 @@
SUMMARY = "Dominate is a Python library for creating and manipulating HTML documents using an elegant DOM API."
-LICENSE = "LGPLv3"
+LICENSE = "LGPL-3.0-only"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b52f2d57d10c4f7ee67a7eb9615d5d24"
SRC_URI[md5sum] = "9f714324ca99eee98bb3c3cdbe838de6"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.3.1.bb
index a16306effb..35e8d790ab 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.3.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.3.1.bb
@@ -5,7 +5,7 @@ SECTION = "devel/python"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=42d0a9e728978f0eeb759c3be91536b8"
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
PYPI_PACKAGE = "python-engineio"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-fann2_1.1.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-fann2_1.1.2.bb
index 3fdc1363c1..2fbc277139 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-fann2_1.1.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-fann2_1.1.2.bb
@@ -1,6 +1,6 @@
SUMMARY = "Python bindings for Fast Artificial Neural Networks 2.2.0 (FANN >= 2.2.0)"
SECTION = "devel/python"
-LICENSE = "LGPLv2"
+LICENSE = "LGPL-2.0-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=c73b943dc75f6f65e007c56ac6515c8f"
SRC_URI[md5sum] = "0b85b418018746d63ed66b55465697a9"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-fasteners_0.17.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-fasteners_0.17.3.bb
index d672708776..51691b7593 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-fasteners_0.17.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-fasteners_0.17.3.bb
@@ -5,14 +5,9 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=4476c4be31402271e101d9a4a3430d52"
SRC_URI[sha256sum] = "a9a42a208573d4074c77d041447336cf4e3c1389a256fd3e113ef59cf29b7980"
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
RDEPENDS:${PN} += "\
${PYTHON_PN}-logging \
${PYTHON_PN}-fcntl \
"
-
-do_compile:prepend() {
- echo "from setuptools import setup" > ${S}/setup.py
- echo "setup()" >> ${S}/setup.py
-}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-feedformatter_0.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-feedformatter_0.4.bb
deleted file mode 100644
index 6932b3b549..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-feedformatter_0.4.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-DESCRIPTION = "A Python library for generating news feeds in RSS and Atom formats"
-HOMEPAGE = "http://code.google.com/p/feedformatter/"
-SECTION = "devel/python"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=258e3f39e2383fbd011035d04311008d"
-
-SRC_URI = "git://github.com/marianoguerra/feedformatter.git;branch=master;protocol=https"
-SRCREV = "7391193c83e10420b5a2d8ef846d23fc368c6d85"
-
-S = "${WORKDIR}/git"
-
-inherit setuptools3
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-xml \
- "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_3.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_3.1.0.bb
index 7a7c3fa3f3..8153156458 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_3.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_3.1.0.bb
@@ -6,7 +6,7 @@ SRC_URI[sha256sum] = "57d6060839e3a7f150eaab6fe4e726d9e3e7cffe2150fb223d73f92421
PYPI_PACKAGE = "Flask-Migrate"
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
RDEPENDS:${PN} += "\
${PYTHON_PN}-flask-sqlalchemy \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.1.1.bb
index 3d7a1cb6a8..00e958022a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.1.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.1.1.bb
@@ -5,7 +5,7 @@ SECTION = "devel/python"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=38cc21254909604298ce763a6e4440a0"
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
PYPI_PACKAGE = "Flask-SocketIO"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-frozenlist_1.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-frozenlist_1.3.0.bb
index e3a932f773..4dd77383b9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-frozenlist_1.3.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-frozenlist_1.3.0.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=cf056e8e7a0a5477451af18b7b5aa98c"
SRC_URI[sha256sum] = "ce6f2ba0edb7b0c1d8976565298ad2deba6f8064d2bebb6ffce2ca896eb35b0b"
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gcovr_5.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gcovr_5.0.bb
index 330831a0b3..27ae198139 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-gcovr_5.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-gcovr_5.0.bb
@@ -10,6 +10,7 @@ SRCREV = "2b50284e8a6792b4ddcba14e2050c5c05f15deb6"
S = "${WORKDIR}/git"
inherit setuptools3
+PIP_INSTALL_PACKAGE = "gcovr"
RDEPENDS:${PN} += "${PYTHON_PN}-jinja2 ${PYTHON_PN}-lxml ${PYTHON_PN}-setuptools ${PYTHON_PN}-pygments"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-geomet_0.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-geomet_0.3.0.bb
index 4337d8558e..8e907462ae 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-geomet_0.3.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-geomet_0.3.0.bb
@@ -14,6 +14,7 @@ SRC_URI = "git://github.com/geomet/geomet.git;protocol=https;branch=release-${PV
SRCREV = "73ec5ec96cca32f2e2461d3964fc3d4ab80248f9"
inherit setuptools3
+PIP_INSTALL_PACKAGE = "geomet"
RDEPENDS:${PN} += "\
${PYTHON_PN}-click \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gmpy2_2.1.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gmpy2_2.1.2.bb
index d064ba5c07..274f24090b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-gmpy2_2.1.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-gmpy2_2.1.2.bb
@@ -1,6 +1,6 @@
SUMMARY = "GMP/MPIR, MPFR, and MPC interface to Python 2.6+ and 3.x"
SECTION = "devel/python"
-LICENSE = "GPL-3.0 | LGPL-3.0+"
+LICENSE = "GPL-3.0-only | LGPL-3.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-greenlet_1.1.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-greenlet_1.1.2.bb
index 4a5b1d2c8b..d14987b1fe 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-greenlet_1.1.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-greenlet_1.1.2.bb
@@ -1,6 +1,6 @@
SUMMARY = "Python lightweight in-process concurrent programming"
HOMEPAGE = "https://greenlet.readthedocs.io/en/latest/"
-LICENSE = "MIT & PSF"
+LICENSE = "MIT & PSF-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e95668d68e4329085c7ab3535e6a7aee \
file://LICENSE.PSF;md5=c106931d9429eda0492617f037b8f69a"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch
index aef67b5748..4713da174f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch
@@ -26,11 +26,9 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
setup.py | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
-diff --git a/setup.py b/setup.py
-index a316038..70aa174 100644
--- a/setup.py
+++ b/setup.py
-@@ -76,8 +76,11 @@ def check_linker_need_libatomic():
+@@ -87,8 +87,11 @@ def check_linker_need_libatomic():
"""Test if linker on system needs libatomic."""
code_test = (b'#include <atomic>\n' +
b'int main() { return std::atomic<int64_t>{}; }')
@@ -44,15 +42,12 @@ index a316038..70aa174 100644
stdin=PIPE,
stdout=PIPE,
stderr=PIPE)
-@@ -87,7 +90,7 @@ def check_linker_need_libatomic():
+@@ -98,7 +101,7 @@ def check_linker_need_libatomic():
# Double-check to see if -latomic actually can solve the problem.
# https://github.com/grpc/grpc/issues/22491
cpp_test = subprocess.Popen(
-- [cxx, '-x', 'c++', '-std=c++11', '-latomic', '-'],
-+ [cxx, cxx_args, '-x', 'c++', '-std=c++11', '-latomic', '-'],
+- [cxx, '-x', 'c++', '-std=c++11', '-', '-latomic'],
++ [cxx, cxx_args, '-x', 'c++', '-std=c++11', '-', '-latomic'],
stdin=PIPE,
stdout=PIPE,
stderr=PIPE)
---
-2.30.1
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.41.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.44.0.bb
index fdc4ad9cc2..1b219fc950 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.41.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.44.0.bb
@@ -10,13 +10,8 @@ inherit pypi setuptools3
DEPENDS += "${PYTHON_PN}-grpcio"
SRC_URI += "file://0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch"
-
-SRC_URI[sha256sum] = "f16e4c63996ca8fe0af1eb9c4a07e5207874c4a69f890ccb824cd858521d981f"
+SRC_URI[sha256sum] = "be37f458ea510c9a8f1caabbc2b258d12e55d189a567f5edcace90f27dc0efbf"
RDEPENDS:${PN} = "${PYTHON_PN}-grpcio"
BBCLASSEXTEND = "native nativesdk"
-
-# Needs abseil-cpp which does not build for ppc64le/musl
-COMPATIBLE_HOST:libc-musl:powerpc64le = "null"
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch
index 373669461b..febe6c4c87 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch
@@ -28,11 +28,9 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
src/python/grpcio/commands.py | 5 ++++-
2 files changed, 10 insertions(+), 4 deletions(-)
-diff --git a/setup.py b/setup.py
-index 4b8c9d4..271b7b1 100644
--- a/setup.py
+++ b/setup.py
-@@ -172,8 +172,11 @@ def check_linker_need_libatomic():
+@@ -199,8 +199,11 @@ def check_linker_need_libatomic():
"""Test if linker on system needs libatomic."""
code_test = (b'#include <atomic>\n' +
b'int main() { return std::atomic<int64_t>{}; }')
@@ -46,20 +44,18 @@ index 4b8c9d4..271b7b1 100644
stdin=PIPE,
stdout=PIPE,
stderr=PIPE)
-@@ -183,7 +186,7 @@ def check_linker_need_libatomic():
+@@ -210,7 +213,7 @@ def check_linker_need_libatomic():
# Double-check to see if -latomic actually can solve the problem.
# https://github.com/grpc/grpc/issues/22491
cpp_test = subprocess.Popen(
-- [cxx, '-x', 'c++', '-std=c++11', '-latomic', '-'],
-+ [cxx, cxx_args, '-x', 'c++', '-std=c++11', '-latomic', '-'],
+- [cxx, '-x', 'c++', '-std=c++11', '-', '-latomic'],
++ [cxx, cxx_args, '-x', 'c++', '-std=c++11', '-', '-latomic'],
stdin=PIPE,
stdout=PIPE,
stderr=PIPE)
-diff --git a/src/python/grpcio/commands.py b/src/python/grpcio/commands.py
-index a8b2ff5..b928201 100644
--- a/src/python/grpcio/commands.py
+++ b/src/python/grpcio/commands.py
-@@ -219,7 +219,10 @@ class BuildExt(build_ext.build_ext):
+@@ -228,7 +228,10 @@ class BuildExt(build_ext.build_ext):
"""
try:
# TODO(lidiz) Remove the generated a.out for success tests.
@@ -71,6 +67,3 @@ index a8b2ff5..b928201 100644
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
---
-2.30.1
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/abseil-ppc-fixes.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/abseil-ppc-fixes.patch
new file mode 100644
index 0000000000..e8048fe940
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/abseil-ppc-fixes.patch
@@ -0,0 +1,79 @@
+An all-in-one patch that fixes several issues:
+
+1) UnscaledCycleClock not fully implemented for ppc*-musl (disabled on musl)
+2) powerpc stacktrace implementation only works on glibc (disabled on musl)
+3) powerpc stacktrace implementation has ppc64 assumptions (fixed)
+4) examine_stack.cpp makes glibc assumptions on powerpc (fixed)
+
+Sourced from void linux
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/absl/base/internal/unscaledcycleclock.cc
++++ b/absl/base/internal/unscaledcycleclock.cc
+@@ -20,7 +20,7 @@
+ #include <intrin.h>
+ #endif
+
+-#if defined(__powerpc__) || defined(__ppc__)
++#if (defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)
+ #ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
+ #elif defined(__FreeBSD__)
+@@ -59,7 +59,7 @@ double UnscaledCycleClock::Frequency() {
+ return base_internal::NominalCPUFrequency();
+ }
+
+-#elif defined(__powerpc__) || defined(__ppc__)
++#elif (defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)
+
+ int64_t UnscaledCycleClock::Now() {
+ #ifdef __GLIBC__
+--- a/absl/base/internal/unscaledcycleclock.h
++++ b/absl/base/internal/unscaledcycleclock.h
+@@ -46,7 +46,8 @@
+
+ // The following platforms have an implementation of a hardware counter.
+ #if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__) || \
+- defined(__powerpc__) || defined(__ppc__) || defined(__riscv) || \
++ ((defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)) || \
++ defined(__riscv) || \
+ defined(_M_IX86) || defined(_M_X64)
+ #define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 1
+ #else
+--- a/absl/debugging/internal/examine_stack.cc
++++ b/absl/debugging/internal/examine_stack.cc
+@@ -27,6 +27,10 @@
+ #include <csignal>
+ #include <cstdio>
+
++#if defined(__powerpc__)
++#include <asm/ptrace.h>
++#endif
++
+ #include "absl/base/attributes.h"
+ #include "absl/base/internal/raw_logging.h"
+ #include "absl/base/macros.h"
+@@ -63,8 +67,10 @@ void* GetProgramCounter(void* vuc) {
+ return reinterpret_cast<void*>(context->uc_mcontext.pc);
+ #elif defined(__powerpc64__)
+ return reinterpret_cast<void*>(context->uc_mcontext.gp_regs[32]);
+-#elif defined(__powerpc__)
++#elif defined(__powerpc__) && defined(__GLIBC__)
+ return reinterpret_cast<void*>(context->uc_mcontext.uc_regs->gregs[32]);
++#elif defined(__powerpc__)
++ return reinterpret_cast<void*>(((struct pt_regs *)context->uc_regs)->gregs[32]);
+ #elif defined(__riscv)
+ return reinterpret_cast<void*>(context->uc_mcontext.__gregs[REG_PC]);
+ #elif defined(__s390__) && !defined(__s390x__)
+--- a/absl/debugging/internal/stacktrace_config.h
++++ b/absl/debugging/internal/stacktrace_config.h
+@@ -59,7 +59,7 @@
+ #elif defined(__i386__) || defined(__x86_64__)
+ #define ABSL_STACKTRACE_INL_HEADER \
+ "absl/debugging/internal/stacktrace_x86-inl.inc"
+-#elif defined(__ppc__) || defined(__PPC__)
++#elif (defined(__ppc__) || defined(__PPC__)) && defined(__GLIBC__)
+ #define ABSL_STACKTRACE_INL_HEADER \
+ "absl/debugging/internal/stacktrace_powerpc-inl.inc"
+ #elif defined(__aarch64__)
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.43.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.44.0.bb
index 6d76967bee..ffa009d7b7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.43.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.44.0.bb
@@ -11,8 +11,9 @@ SRC_URI:append:class-target = " file://ppc-boringssl-support.patch \
file://boring_ssl.patch \
file://mips_bigendian.patch \
file://0001-absl-always-use-asm-sgidefs.h.patch \
+ file://abseil-ppc-fixes.patch;patchdir=third_party/abseil-cpp \
"
-SRC_URI[sha256sum] = "735d9a437c262ab039d02defddcb9f8f545d7009ae61c0114e19dda3843febe5"
+SRC_URI[sha256sum] = "4bae1c99896045d3062ab95478411c8d5a52cb84b91a1517312629fa6cfeb50e"
RDEPENDS:${PN} = "${PYTHON_PN}-protobuf \
${PYTHON_PN}-setuptools \
@@ -43,6 +44,3 @@ CLEANBROKEN = "1"
BBCLASSEXTEND = "native nativesdk"
CCACHE_DISABLE = "1"
-
-# needs vdso support
-COMPATIBLE_HOST:libc-musl:powerpc64le = "null"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-h11_0.12.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-h11_0.13.0.bb
index 4cd0d4de74..afc6439654 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-h11_0.12.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-h11_0.13.0.bb
@@ -5,4 +5,4 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=f5501d19c3116f4aaeef89369f458693"
inherit pypi setuptools3
-SRC_URI[sha256sum] = "47222cb6067e4a307d535814917cd98fd0a57b6788ce715755fa2b6c28b56042"
+SRC_URI[sha256sum] = "70813c1135087a248a4d38cc0e1a0181ffab2188141a93eaf567940c3957ff06"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.5.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.6.0.bb
index aad2f91777..64abe73cba 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.5.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.6.0.bb
@@ -4,11 +4,10 @@ SECTION = "devel/python"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=113251d71fb0384712c719b567261c5c"
-SRC_URI[sha256sum] = "77c7be4001ac7d3ed80477de5b6942501d782de1bbe4886597bdfec2a7ab821f"
+SRC_URI[sha256sum] = "8752d2814a92aba4e2b2a5922d2782d0029102d99caaf3c201a566bc0b40db29"
SRC_URI:append = " \
file://0001-setup_build.py-avoid-absolute-path.patch \
- file://0001-setup.py-Fix-numpy-version.patch \
"
inherit pkgconfig pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-html2text_2020.1.16.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-html2text_2020.1.16.bb
index c5ef2ccd3a..64873d2464 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-html2text_2020.1.16.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-html2text_2020.1.16.bb
@@ -1,7 +1,7 @@
SUMMARY = "Convert HTML to Markdown-formatted text"
HOMEPAGE = "https://github.com/Alir3z4/html2text"
-LICENSE = "GPL-3.0"
+LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
SRC_URI[md5sum] = "c77b580c94d1a9e0145f23cc4472993d"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-httplib2_0.20.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-httplib2_0.20.4.bb
index bda1d1f0bc..52fd88ddf5 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-httplib2_0.20.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-httplib2_0.20.4.bb
@@ -4,9 +4,9 @@ SECTION = "devel/python"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=56e5e931172b6164b62dc7c4aba6c8cf"
-SRC_URI[sha256sum] = "e404681d2fbcec7506bcb52c503f2b021e95bee0ef7d01e5c221468a2406d8dc"
+SRC_URI[sha256sum] = "58a98e45b4b1a48273073f905d2961666ecf0fbac4250ea5b47aef259eb5c585"
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
RDEPENDS:${PN} += "\
${PYTHON_PN}-compression \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-humanize_3.14.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-humanize_4.0.0.bb
index 6b2fd3ad65..86eed73388 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-humanize_3.14.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-humanize_4.0.0.bb
@@ -5,9 +5,9 @@ SECTION = "devel/python"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENCE;md5=4ecc42519e84f6f3e23529464df7bd1d"
-SRC_URI[sha256sum] = "60dd8c952b1df1ad83f0903844dec50a34ba7a04eea22a6b14204ffb62dbb0a4"
+SRC_URI[sha256sum] = "ee1f872fdfc7d2ef4a28d4f80ddde9f96d36955b5d6b0dac4bdeb99502bddb00"
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
DEPENDS += "\
${PYTHON_PN}-setuptools-scm-native \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-hyperlink_21.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-hyperlink_21.0.0.bb
index e9bf92aa1a..7cdecf1094 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-hyperlink_21.0.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-hyperlink_21.0.0.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=6dc5b4bd3d02faedf08461621aa2aeca"
SRC_URI[sha256sum] = "427af957daa58bc909471c6c40f74c5450fa123dd093fc53efd2e91d2705a56b"
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
RDEPENDS:${PN} += "${PYTHON_PN}-stringold ${PYTHON_PN}-netclient ${PYTHON_PN}-idna"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-icu/0001-Fix-host-contamination-of-include-files.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-icu/0001-Fix-host-contamination-of-include-files.patch
index c45217a88a..36485d56ce 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-icu/0001-Fix-host-contamination-of-include-files.patch
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-icu/0001-Fix-host-contamination-of-include-files.patch
@@ -1,4 +1,4 @@
-From 8abf79f77d9151d6786da3c8e868117822bce6d4 Mon Sep 17 00:00:00 2001
+From a82fea9663f0c70cf57cd06650f400e878afc5e4 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 16 Apr 2021 10:48:36 -0700
Subject: [PATCH] Fix host contamination of include files
@@ -10,12 +10,13 @@ Also, don't use icu-config
Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
setup.py | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/setup.py b/setup.py
-index e647db4..abed399 100644
+index d308b80..56e9c74 100644
--- a/setup.py
+++ b/setup.py
@@ -81,7 +81,7 @@ Building PyICU %s for ICU %s (max ICU major version supported: %s)
@@ -27,14 +28,11 @@ index e647db4..abed399 100644
'freebsd': False, # not tested
'win32': False, # no icu-config
'sunos5': False, # not tested
-@@ -267,7 +267,6 @@ setup(name="PyICU",
- ext_modules=[Extension('_icu',
+@@ -273,7 +273,6 @@ setup(name="PyICU",
+ ext_modules=[Extension('icu._icu_',
[filename for filename in sorted(os.listdir(os.curdir))
if filename.endswith('.cpp')],
- include_dirs=_includes,
extra_compile_args=_cflags,
extra_link_args=_lflags,
libraries=_libraries)],
---
-2.31.1
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-icu_2.8.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-icu_2.8.1.bb
index f3dd7a4f52..027ef129ee 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-icu_2.8.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-icu_2.8.1.bb
@@ -3,13 +3,13 @@ HOMEPAGE = "https://gitlab.pyicu.org/main/pyicu"
BUGTRACKER = "https://gitlab.pyicu.org/main/pyicu/-/issues"
SECTION = "devel/python"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c7c4bfd81a21e3b6368bdcced992bf59"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0724597863f1581ab01429e0423e779f"
DEPENDS += "icu"
PYPI_PACKAGE = "PyICU"
-SRC_URI[sha256sum] = "3d80de47045a8163db5aebc947c42b4d429eeea4f0c32af4f40b33981fa872b9"
+SRC_URI[sha256sum] = "f0b9549a87f87ba7c413f13679d137271e0b37f1f39b0109ace38257d4d148d6"
SRC_URI += "file://0001-Fix-host-contamination-of-include-files.patch"
-inherit pkgconfig pypi setuptools3
+inherit pkgconfig pypi python_setuptools_build_meta
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.16.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.16.1.bb
index 04d5b9c95e..d1d318d5ae 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.16.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.16.1.bb
@@ -5,7 +5,7 @@ SECTION = "devel/python"
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=7b9bbbb543b6af3e6b53f9b7fb68f71d"
-SRC_URI[sha256sum] = "7f7d8d8e1eb6f8bb1d15e0dd93bee3f72026a4c3b96e9c690e42f403f7bdea3e"
+SRC_URI[sha256sum] = "7f123cb23a77ac5abe8ed4e7ad6a60831a82de2c5d123463dcf1d4278c4779d2"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-intervals_1.10.0.post1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-intervals_1.10.0.bb
index fd636421bd..abf87c597c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-intervals_1.10.0.post1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-intervals_1.10.0.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Interval arithmetic for Python"
HOMEPAGE = "https://github.com/AlexandreDecan/python-intervals"
SECTION = "devel/python"
-LICENSE = "LGPLv3"
+LICENSE = "LGPL-3.0-only"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=05f1e16a8e59ce3e9a979e881816c2ab"
PYPI_PACKAGE := "python-intervals"
@@ -22,6 +22,6 @@ do_install_ptest() {
cp -f ${S}/README.md ${D}${PTEST_PATH}
}
-SRC_URI[sha256sum] = "68a772dc2de6b2b2e83b457329ffa8f9286710994b8070db54348a05762515d2"
+SRC_URI[sha256sum] = "0d26746eaed0be78a61dd289bb7a10721b08770bb3e807614835f490d514f2a5"
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ipy_1.01.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ipy_1.01.bb
index 8b39679e45..8e7b5b987e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ipy_1.01.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ipy_1.01.bb
@@ -12,7 +12,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=848d24919845901b4f48bae5f13252e6"
SRC_URI[md5sum] = "d6cf83e7f418ebbd23324ba1c658b907"
SRC_URI[sha256sum] = "edeca741dea2d54aca568fa23740288c3fe86c0f3ea700344571e9ef14a7cc1a"
-inherit pypi setuptools3 ptest
+inherit pypi setuptools3_legacy ptest
SRC_URI += " \
file://run-ptest \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-iso3166_2.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-iso3166_2.0.2.bb
index bc05f066a6..e578b8aeff 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-iso3166_2.0.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-iso3166_2.0.2.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5e2f4edc7e7408a82e4a1d05f229b695"
SRC_URI[sha256sum] = "04d02cfcfc18a6f8a9a4edb4d0a55e2e4fc575626c29d702f750de415e88d372"
-inherit pypi setuptools3 ptest
+inherit pypi python_setuptools_build_meta ptest
SRC_URI += " \
file://run-ptest \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-iso8601_1.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-iso8601_1.0.2.bb
deleted file mode 100644
index 474c2a8140..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-iso8601_1.0.2.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Simple module to parse ISO 8601 dates"
-HOMEPAGE = "http://pyiso8601.readthedocs.org/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b05625f2336fa024e8d57e65c6595844"
-
-SRC_URI[sha256sum] = "27f503220e6845d9db954fb212b95b0362d8b7e6c1b2326a87061c3de93594b1"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-numbers \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-isort_5.10.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-isort_5.10.1.bb
index 5cb41c5fcf..27977821c6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-isort_5.10.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-isort_5.10.1.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=6;endline=6;md5=8227180126797a0148
SRC_URI[sha256sum] = "e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"
-inherit pypi setuptools3
+inherit pypi python_poetry_core
RDEPENDS:${PN} += "\
${PYTHON_PN}-datetime \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-itsdangerous_2.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-itsdangerous_2.1.1.bb
index 30d23c6569..ef1d7cc07b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-itsdangerous_2.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-itsdangerous_2.1.1.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://github.com/mitsuhiko/itsdangerous"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=4cda9a0ebd516714f360b0e9418cfb37"
-SRC_URI[sha256sum] = "d848fcb8bc7d507c4546b448574e8a44fc4ea2ba84ebf8d783290d53e81992f5"
+SRC_URI[sha256sum] = "7b7d3023cd35d9cb0c1fd91392f8c95c6fa02c59bf8ad64b8849be3401b95afb"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonrpcserver_5.0.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonrpcserver_5.0.7.bb
index c2500300f1..537fd33136 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonrpcserver_5.0.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonrpcserver_5.0.7.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/bcb/jsonrpcserver"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=61b63ea9d36f6fb63ddaaaac8265304f"
-SRC_URI[sha256sum] = "0cc514559596fa380bf188e31b0cdf3d9e6d9cc162fdca8a49ed511b291a9ae1"
+SRC_URI[sha256sum] = "b15d3fd043ad0c40b2ff17f7df2ddaec2e880bb923b40d133939a107c97fde5c"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-applications_1.0.8.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-applications_1.0.8.bb
index 11ab8b0a5f..6c2af0d4ea 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-applications_1.0.8.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-applications_1.0.8.bb
@@ -10,6 +10,8 @@ SRCREV ?= "3b180cb10eda683dda7913ecee2e6487288d292d"
inherit setuptools3
+PIP_INSTALL_PACKAGE = "Keras_Applications"
+
S = "${WORKDIR}/git"
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-kivy_2.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-kivy_2.0.0.bb
index 3daf13473a..38f5216f56 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-kivy_2.0.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-kivy_2.0.0.bb
@@ -5,6 +5,7 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=f0c851d60495c7e27225a819e179208a"
inherit setuptools3 pkgconfig features_check
+PIP_INSTALL_PACKAGE = "Kivy"
SRC_URI = "\
git://github.com/kivy/kivy.git;protocol=https;branch=master \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-kiwisolver_1.3.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-kiwisolver_1.4.0.bb
index dac6cd48b9..ab1ad717b4 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-kiwisolver_1.3.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-kiwisolver_1.4.0.bb
@@ -1,11 +1,11 @@
SUMMARY = "A fast implementation of the Cassowary constraint solver"
HOMEPAGE = "https://github.com/nucleic/kiwi"
LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://setup.py;endline=7;md5=e54bd74bd9d0a84ae3f8f6d21ada0ab4"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=f137eeae9cf8004d06830f6ab25b2d52"
-SRC_URI[sha256sum] = "fc4453705b81d03568d5b808ad8f09c77c47534f6ac2e72e733f9ca4714aa75c"
+SRC_URI[sha256sum] = "7508b01e211178a85d21f1f87029846b77b2404a4c68cbd14748d4d4142fa3b8"
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
DEPENDS += "\
python3-cppy-native \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-langtable_0.0.57.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-langtable_0.0.57.bb
index 39819f4351..948f7651a0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-langtable_0.0.57.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-langtable_0.0.57.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "langtable is used to guess reasonable defaults for locale,\
keyboard, territory"
HOMEPAGE = "https://github.com/mike-fabian/langtable/"
-LICENSE = "GPLv3+"
+LICENSE = "GPL-3.0-or-later"
SECTION = "devel/python"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-license-expression_21.6.14.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-license-expression_21.6.14.bb
index efa8854411..2ee4909bd7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-license-expression_21.6.14.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-license-expression_21.6.14.bb
@@ -6,12 +6,9 @@ LIC_FILES_CHKSUM = "file://apache-2.0.LICENSE;md5=9429839cdc4b292ff46e88b524c6e0
SRC_URI[sha256sum] = "9de87a427c9a449eee7913472fb9ed03b63036295547369fdbf95f76a8b924b2"
-inherit pypi ptest setuptools3
+inherit pypi ptest python_setuptools_build_meta
-DEPENDS += "\
- ${PYTHON_PN}-setuptools-scm-native \
- ${PYTHON_PN}-wheel-native \
-"
+DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
RDEPENDS:${PN} += "\
${PYTHON_PN}-booleanpy \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-lrparsing/0001-setup.py-use-setuptools-instead-of-distutils.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-lrparsing/0001-setup.py-use-setuptools-instead-of-distutils.patch
new file mode 100644
index 0000000000..28af8fa4ec
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-lrparsing/0001-setup.py-use-setuptools-instead-of-distutils.patch
@@ -0,0 +1,27 @@
+From 04d9a4cea699d64b464daef7760de594b1c7f9bf Mon Sep 17 00:00:00 2001
+From: Justin Bronder <jsbronder@cold-front.org>
+Date: Tue, 1 Mar 2022 17:34:34 -0500
+Subject: [PATCH] setup.py: use setuptools instead of distutils
+
+With python 3.10, distutils is deprecated in favor of setuptools and will
+be removed in python 3.12.
+
+Upstream-Status: Submitted [sent to maintainer at russell-lrparsing@stuart.id.au]
+Signed-off-by: Justin Bronder <jsbronder@cold-front.org>
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index 89ea344..2848b4f 100644
+--- a/setup.py
++++ b/setup.py
+@@ -3,7 +3,7 @@
+ # Copyright (c) 2013,2014,2015,2016,2017,2018,2021 Russell Stuart.
+ # Licensed under GPLv2, or any later version.
+ #
+-from distutils.core import setup
++from setuptools import setup
+ import re
+
+ def get_long_description():
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-lrparsing_1.0.17.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-lrparsing_1.0.17.bb
index 24e4e2671d..673d32c2d4 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-lrparsing_1.0.17.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-lrparsing_1.0.17.bb
@@ -1,13 +1,15 @@
SUMMARY = "Python LR parsing library"
SECTION = "devel/python"
-LICENSE = "AGPL-3.0"
+LICENSE = "AGPL-3.0-only"
LIC_FILES_CHKSUM = "file://agpl-3.0.txt;md5=73f1eb20517c55bf9493b7dd6e480788"
HOMEPAGE = "http://lrparsing.sourceforge.net/"
BUGTRACKER = "https://sourceforge.net/p/lrparsing/tickets/"
UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/lrparsing/files/"
UPSTREAM_CHECK_REGEX = "lrparsing-(?P<pver>\d+(\.\d+)+)"
-SRC_URI = "${SOURCEFORGE_MIRROR}/lrparsing/lrparsing-${PV}.tar.gz"
+SRC_URI = "${SOURCEFORGE_MIRROR}/lrparsing/lrparsing-${PV}.tar.gz \
+ file://0001-setup.py-use-setuptools-instead-of-distutils.patch \
+ "
SRC_URI[sha256sum] = "7c060d9f03cf582fdbc0ae0fef0ea2ff6fd56251047ba7e425af97e23f46f582"
RDEPENDS:${PN} = " \
@@ -15,6 +17,7 @@ RDEPENDS:${PN} = " \
"
inherit setuptools3
+PIP_INSTALL_PACKAGE = "lrparsing"
S = "${WORKDIR}/lrparsing-${PV}"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-luma-core_2.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-luma-core_2.3.1.bb
index c37cc22c46..1d5b146fa9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-luma-core_2.3.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-luma-core_2.3.1.bb
@@ -4,12 +4,10 @@ HOMEPAGE = "https://github.com/rm-hull/luma.core"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=3b1d500f5911ec7522f1f790d616e0ee"
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
SRC_URI[sha256sum] = "f293f5fff8946eea62af3a5d5d7da55c37d2b64aac6c9c90180a385da9f7d003"
-CLEANBROKEN = "1"
-
PYPI_PACKAGE = "luma.core"
RDEPENDS:${PN} += " \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-lxml/0001-setupinfo.py-check-the-return-value.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-lxml/0001-setupinfo.py-check-the-return-value.patch
deleted file mode 100644
index 7d9121846f..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-lxml/0001-setupinfo.py-check-the-return-value.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 057872fa40e061100d61117cee5c3413ef2e40fc Mon Sep 17 00:00:00 2001
-From: Mingli Yu <mingli.yu@windriver.com>
-Date: Thu, 20 Jan 2022 15:18:20 +0800
-Subject: [PATCH] setupinfo.py: check the return value
-
-Use the return value altogether to check the subprocess execute
-successfully or not as in some case it will print some noise
-message though run successfully as below.
-
- # python
- Python 3.8.10 (default, Nov 26 2021, 20:14:08)
- [GCC 9.3.0] on linux
- Type "help", "copyright", "credits" or "license" for more information.
- >>> import subprocess
- >>> cmd = "pkg-config --modversion libxml-2.0"
- >>> p = subprocess.Popen(cmd, shell=True,stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- >>> stdout_data, errors = p.communicate()
- >>> print(stdout_data)
- b'2.9.12\n'
- >>> print(errors)
- b'do_ypcall: clnt_call: RPC: Unable to send; errno = Network is unreachable\n'
- >>>
-
-Upstream-Status: Submitted [https://github.com/lxml/lxml/pull/336]
-
-Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
----
- setupinfo.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/setupinfo.py b/setupinfo.py
-index 8c2a36fb..c1247c6d 100644
---- a/setupinfo.py
-+++ b/setupinfo.py
-@@ -365,7 +365,7 @@ def run_command(cmd, *args):
- stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- stdout_data, errors = p.communicate()
-
-- if errors:
-+ if p.returncode != 0 and errors:
- return ''
- return decode_input(stdout_data).strip()
-
---
-2.17.1
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-lxml_4.7.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-lxml_4.8.0.bb
index 43f071281d..c4d4df383a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-lxml_4.7.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-lxml_4.8.0.bb
@@ -6,7 +6,7 @@ significantly to offer support for XPath, RelaxNG, XML Schema, XSLT, \
C14N and much more."
HOMEPAGE = "https://lxml.de/"
SECTION = "devel/python"
-LICENSE = "BSD-3-Clause & GPLv2 & MIT & PSF"
+LICENSE = "BSD-3-Clause & GPL-2.0-only & MIT & PSF-2.0"
LIC_FILES_CHKSUM = "file://LICENSES.txt;md5=e4c045ebad958ead4b48008f70838403 \
file://doc/licenses/elementtree.txt;md5=eb34d036a6e3d56314ee49a6852ac891 \
file://doc/licenses/BSD.txt;md5=700a1fc17f4797d4f2d34970c8ee694b \
@@ -18,11 +18,9 @@ LIC_FILES_CHKSUM = "file://LICENSES.txt;md5=e4c045ebad958ead4b48008f70838403 \
DEPENDS += "libxml2 libxslt"
-SRC_URI[sha256sum] = "a1613838aa6b89af4ba10a0f3a972836128801ed008078f8c1244e65958f1b24"
+SRC_URI[sha256sum] = "f63f62fc60e6228a4ca9abae28228f35e1bd3ce675013d1dfb828688d50c6e23"
-SRC_URI += " \
- file://0001-setupinfo.py-check-the-return-value.patch \
-"
+SRC_URI += "${PYPI_SRC_URI}"
inherit pkgconfig pypi setuptools3
# {standard input}: Assembler messages:
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-lz4/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-lz4/run-ptest
new file mode 100644
index 0000000000..1b245bcd8f
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-lz4/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest -v
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_3.1.10.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_3.1.10.bb
deleted file mode 100644
index b557529cc1..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_3.1.10.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-DESCRIPTION = "python bindings for the lz4 compression library by Yann Collet"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=6231efa4dd4811e62407314d90a57573"
-
-DEPENDS += " \
- ${PYTHON_PN}-setuptools-scm-native \
- ${PYTHON_PN}-pkgconfig-native \
-"
-
-SRC_URI[sha256sum] = "439e575ecfa9ecffcbd63cfed99baefbe422ab9645b1e82278024d8a21d9720b"
-
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_4.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_4.0.0.bb
new file mode 100644
index 0000000000..ef5b006272
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_4.0.0.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "python bindings for the lz4 compression library by Yann Collet"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6231efa4dd4811e62407314d90a57573"
+
+DEPENDS += " \
+ lz4 \
+ ${PYTHON_PN}-setuptools-scm-native \
+ ${PYTHON_PN}-pkgconfig-native \
+"
+
+SRC_URI += "file://run-ptest"
+
+SRC_URI[sha256sum] = "57c5dfd3b7dae833b0d2b2c1aafd7f9d0dfcab40683d183d010c67c9fd1beca3"
+
+inherit pkgconfig pypi python_setuptools_build_meta ptest
+
+RDEPENDS:${PN}-ptest += "${PYTHON_PN}-pytest ${PYTHON_PN}-multiprocessing ${PYTHON_PN}-psutil"
+
+do_install_ptest() {
+ cp -rf ${S}/tests/ ${D}${PTEST_PATH}/
+ # The stream API is experimental and not enabled yet, so don't ship the test suite
+ rm -rf ${D}${PTEST_PATH}/tests/stream
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-marshmallow_3.14.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-marshmallow_3.14.1.bb
index ddfe4b99c6..dc5f173888 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-marshmallow_3.14.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-marshmallow_3.14.1.bb
@@ -15,4 +15,6 @@ S = "${WORKDIR}/git"
inherit setuptools3
+PIP_INSTALL_PACKAGE = "marshmallow"
+
RDEPENDS:${PN} += "python3-core"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib_3.5.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib_3.5.1.bb
index 84bec0b201..b9eab3c931 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib_3.5.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib_3.5.1.bb
@@ -5,7 +5,7 @@ publication-quality figures in a variety of hardcopy formats \
and interactive environments across platforms."
HOMEPAGE = "https://github.com/matplotlib/matplotlib"
SECTION = "devel/python"
-LICENSE = "PSF"
+LICENSE = "PSF-2.0"
LIC_FILES_CHKSUM = "\
file://setup.py;beginline=296;endline=296;md5=20e7ab4d2b2b1395a0e4ab800181eb96 \
file://LICENSE/LICENSE;md5=afec61498aa5f0c45936687da9a53d74 \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-mccabe_0.6.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-mccabe_0.7.0.bb
index 513a5a9f22..a2c72fcc99 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-mccabe_0.6.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-mccabe_0.7.0.bb
@@ -4,8 +4,7 @@ SECTION = "devel/python"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a489dc62bacbdad3335c0f160a974f0f"
-SRC_URI[md5sum] = "723df2f7b1737b8887475bac4c763e1e"
-SRC_URI[sha256sum] = "dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"
+SRC_URI[sha256sum] = "348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-monotonic_1.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-monotonic_1.6.bb
index aacc32a6d6..2af7b57921 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-monotonic_1.6.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-monotonic_1.6.bb
@@ -11,3 +11,5 @@ SRC_URI = "git://github.com/atdt/monotonic.git;branch=master;protocol=https"
S = "${WORKDIR}/git"
inherit setuptools3
+
+PIP_INSTALL_PACKAGE = "monotonic"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_0.910.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_0.910.bb
index 1a494af5af..5dd717ae7d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_0.910.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_0.910.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=17b7180fcfc43c4e70c07c71588604c4"
PYPI_PACKAGE = "mypy"
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
SRC_URI[sha256sum] = "704098302473cb31a218f1775a873b376b30b4c18229421e9e9dc8916fd16150"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ndg-httpsclient_0.5.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ndg-httpsclient_0.5.1.bb
deleted file mode 100644
index 6f3c096cf0..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ndg-httpsclient_0.5.1.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-DESCRIPTION = "Provides enhanced HTTPS support for httplib and urllib2 using PyOpenSSL"
-HOMEPAGE = "https://github.com/cedadev/ndg_httpsclient/"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://MANIFEST.in;md5=ce22c0cd986d2de3f7073cd6b5523ae0"
-
-SRC_URI[md5sum] = "b0fc8ea38f87d2c1ab1ed79a95c078f9"
-SRC_URI[sha256sum] = "d72faed0376ab039736c2ba12e30695e2788c4aa569c9c3e3d72131de2592210"
-
-inherit pypi setuptools3 update-alternatives
-
-PYPI_PACKAGE = "ndg_httpsclient"
-
-DEPENDS += " \
- ${PYTHON_PN}-pyopenssl \
- ${PYTHON_PN}-pyasn1 \
-"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-pyopenssl \
- ${PYTHON_PN}-pyasn1 \
-"
-
-BBCLASSEXTEND = "native nativesdk"
-
-UPSTREAM_CHECK_REGEX = ""
-
-ALTERNATIVE:${PN} = "ndg_httpclient"
-ALTERNATIVE_LINK_NAME[ndg_httpclient] = "${bindir}/ndg_httpclient"
-ALTERNATIVE_PRIORITY = "30"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_2.6.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_2.7.1.bb
index 1608e03809..9e5b086a99 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_2.6.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_2.7.1.bb
@@ -1,9 +1,9 @@
DESCRIPTION = "Python package for creating and manipulating graphs and networks"
HOMEPAGE = "http://networkx.github.io/"
LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5cfa4d8f5881e0d053bb497130b9c73a"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=44614b6df7cf3c19be69d0a945e29904"
-SRC_URI[sha256sum] = "c0946ed31d71f1b732b5aaa6da5a0388a345019af232ce2f49c766e2d6795c51"
+SRC_URI[sha256sum] = "d1194ba753e5eed07cdecd1d23c5cd7a3c772099bd8dbd2fea366788cf4de7ba"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-nocasedict_1.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-nocasedict_1.0.2.bb
index 952286d37c..591b9c6b8d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-nocasedict_1.0.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-nocasedict_1.0.2.bb
@@ -1,6 +1,6 @@
SUMMARY = "A case-insensitive ordered dictionary for Python"
HOMEPAGE = "https://github.com/pywbem/nocasedict"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a87a7059d580c45495c1218f53e3610d"
SRC_URI[sha256sum] = "86e2dae49e34de7c31b65b486c8f9aa58b66dc2e8ee9b34c390c6c58885c85a0"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ntplib_0.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ntplib_0.4.0.bb
index e8620b14b5..d78bec046f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ntplib_0.4.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ntplib_0.4.0.bb
@@ -1,13 +1,11 @@
DESCRIPTION = "This module offers a simple interface to query NTP servers from Python."
+HOMEPAGE = "https://github.com/cf-natali/ntplib"
SECTION = "devel/python"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://ntplib.py;beginline=1;endline=23;md5=afa07338a9595257e94c205c3e72224d"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=40707636fe237d725e2bd32cd949b7fe"
-SRC_URI = "git://github.com/cf-natali/ntplib.git;branch=master;protocol=https"
-SRCREV ?= "b9c11c5906bc802a20a2dab390e57c50be558808"
+SRC_URI[sha256sum] = "899d8fb5f8c2555213aea95efca02934c7343df6ace9d7628a5176b176906267"
-S = "${WORKDIR}/git"
-
-inherit setuptools3 python3native
+inherit pypi setuptools3
RDEPENDS:${PN} += "${PYTHON_PN}-datetime ${PYTHON_PN}-io"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-obd_0.7.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-obd_0.7.1.bb
index b3a78ad651..0cb1b85e5a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-obd_0.7.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-obd_0.7.1.bb
@@ -1,5 +1,5 @@
DESCRIPTION = "A python module for handling realtime sensor data from OBD-II vehicle ports"HOMEPAGE = "https://github.com/brendan-w/python-OBD"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://README.md;md5=58ba896fa086c96ad23317cebfeab277"
SRC_URI[md5sum] = "305efcb6c650db7b9583532355ebeb7c"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ordered-set_4.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ordered-set_4.1.0.bb
index 2740b33551..f2f1cf8e45 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ordered-set_4.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ordered-set_4.1.0.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://MIT-LICENSE;md5=3bf5e1ad64c0d99032c3143361fa234e"
SRC_URI[sha256sum] = "694a8e44c87657c59292ede72891eb91d34131f6531463aab3009191c77364a8"
-inherit pypi setuptools3 ptest
+inherit pypi python_flit_core ptest
DEPENDS += "python3-pytest-runner-native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pako_0.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pako_0.3.1.bb
index 65af4121f9..34cd096c9d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pako_0.3.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pako_0.3.1.bb
@@ -8,5 +8,6 @@ SRC_URI[sha256sum] = "c033a073bb818ca336ae1fccba2655bd60dfe77744f85d4517abd3160d
inherit pypi setuptools3
do_install:append() {
- rm -rf ${D}/usr/share
+ rm -rf ${D}${prefix}/pako/LICENSE
+ rm -rf ${D}${prefix}/pako
}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.9.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.10.3.bb
index 0a54efde82..9f7f458723 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.9.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.10.3.bb
@@ -1,9 +1,9 @@
DESCRIPTION = "The leading native Python SSHv2 protocol library."
HOMEPAGE = "https://github.com/paramiko/paramiko/"
-LICENSE = "LGPL-2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=fd0120fc2e9f841c73ac707a30389af5"
-SRC_URI[sha256sum] = "944a9e5dbdd413ab6c7951ea46b0ab40713235a9c4c5ca81cfe45c6f14fa677b"
+SRC_URI[sha256sum] = "ddb1977853aef82804b35d72a0e597b244fa326c404c350bd00c5b01dbfee71a"
PYPI_PACKAGE = "paramiko"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-path_16.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-path_16.4.0.bb
new file mode 100644
index 0000000000..7c520dd85a
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-path_16.4.0.bb
@@ -0,0 +1,9 @@
+SUMMARY = "A module wrapper for os.path"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7a7126e068206290f3fe9f8d6c713ea6"
+
+SRC_URI[sha256sum] = "baf2e757c4b19be8208f9e67e48fb475b4a577d5613590ce46693bdbdf082f52"
+
+inherit pypi python_setuptools_build_meta
+
+BBCLASSEXTEND = "nativesdk native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_9.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_9.0.1.bb
index de3c92c3d3..fb86322f77 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_9.0.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_9.0.1.bb
@@ -13,6 +13,9 @@ SRCREV ?= "82541b6dec8452cb612067fcebba1c5a1a2bfdc8"
inherit setuptools3
+PIP_INSTALL_PACKAGE = "Pillow"
+PIP_INSTALL_DIST_PATH = "${S}/dist"
+
DEPENDS += " \
zlib \
jpeg \
@@ -35,3 +38,5 @@ S = "${WORKDIR}/git"
RPROVIDES:${PN} += "python3-imaging"
BBCLASSEXTEND = "native"
+
+SRCREV = "6deac9e3a23caffbfdd75c00d3f0a1cd36cdbd5d"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pint_0.18.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pint_0.18.bb
index a7a1384da1..f555144f45 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pint_0.18.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pint_0.18.bb
@@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=bccf824202692270a1e0829a62e3f47b"
PYPI_PACKAGE := "Pint"
-inherit pypi ptest setuptools3
+inherit pypi ptest python_setuptools_build_meta
SRC_URI[sha256sum] = "8c4bce884c269051feb7abc69dbfd18403c0c764abc83da132e8a7222f8ba801"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pkgconfig_1.5.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pkgconfig_1.5.5.bb
index 2d68a78e37..1aa91deac5 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pkgconfig_1.5.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pkgconfig_1.5.5.bb
@@ -10,7 +10,7 @@ RDEPENDS:${PN} = "pkgconfig \
${PYTHON_PN}-shell \
"
-inherit pypi setuptools3
+inherit pypi python_poetry_core
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ply_3.11.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ply_3.11.bb
deleted file mode 100644
index 99c037bb73..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ply_3.11.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Python Lex and Yacc"
-DESCRIPTION = "Python ply: PLY is yet another implementation of lex and yacc for Python"
-HOMEPAGE = "https://pypi.python.org/pypi/ply"
-SECTION = "devel/python"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://README.md;beginline=5;endline=32;md5=f5ee5c355c0e6719c787a71b8f0fa96c"
-
-SRC_URI[md5sum] = "6465f602e656455affcd7c5734c638f8"
-SRC_URI[sha256sum] = "00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN}:class-target += "\
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-shell \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-portion_2.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-portion_2.2.0.bb
index e712c8f1ed..0dad8b0ce9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-portion_2.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-portion_2.2.0.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Python data structure and operations for intervals"
HOMEPAGE = "https://github.com/AlexandreDecan/portion"
SECTION = "devel/python"
-LICENSE = "LGPLv3"
+LICENSE = "LGPL-3.0-only"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=05f1e16a8e59ce3e9a979e881816c2ab"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-prctl_1.8.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-prctl_1.8.1.bb
index 8426e48113..a45ef45f32 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-prctl_1.8.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-prctl_1.8.1.bb
@@ -4,19 +4,18 @@ process' behaviour. Usage of the function is fairly messy though, due to \
limitations in C and linux. This module provides a nice non-messy python(ic) \
interface."
SECTION = "devel/python"
-LICENSE = "GPLv3"
+LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=1475481f9ec754d758859bd2c75f6f6f"
S = "${WORKDIR}/git"
B = "${S}"
SRCREV = "5e12e398eb5c4e30d7b29b02458c76d2cc780700"
-PV = "1.8.1+git${SRCPV}"
-
SRC_URI = "git://github.com/seveas/python-prctl;protocol=https;branch=main \
file://0001-support-cross-complication.patch \
"
inherit setuptools3 python3native
+PIP_INSTALL_PACKAGE = "python_prctl"
DEPENDS += "libcap"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pretend_1.0.9.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pretend_1.0.9.bb
deleted file mode 100644
index 21d14a03b8..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pretend_1.0.9.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "A library for stubbing in Python"
-HOMEPAGE = "https://github.com/alex/pretend"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=411780c0b7fa756753e94affeee5bc99"
-
-SRC_URI[md5sum] = "ad53883ede48aeac7ae584f0de0240e8"
-SRC_URI[sha256sum] = "c90eb810cde8ebb06dafcb8796f9a95228ce796531bc806e794c2f4649aa1b10"
-
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-prettytable_2.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-prettytable_3.1.1.bb
index 8f5eb42996..5520edc067 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-prettytable_2.4.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-prettytable_3.1.1.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://code.google.com/p/prettytable"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=c9a6829fcd174d9535b46211917c7671"
-SRC_URI[sha256sum] = "18e56447f636b447096977d468849c1e2d3cfa0af8e7b5acfcf83a64790c0aca"
+SRC_URI[sha256sum] = "43c9e23272ca253d038ae76fe3adde89794e92e7fcab2ddf5b94b38642ef4f21"
do_install:append() {
perm_files=`find "${D}${PYTHON_SITEPACKAGES_DIR}/" -name "*.txt" -o -name "PKG-INFO"`
@@ -35,6 +35,7 @@ RDEPENDS:${PN} += " \
RDEPENDS:${PN}-ptest += " \
${PYTHON_PN}-pytest \
+ ${PYTHON_PN}-pytest-lazy-fixture \
${PYTHON_PN}-sqlite3 \
"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.19.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.19.4.bb
index 5e0ee7cb26..85147544e7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.19.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.19.4.bb
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=19e8f490f9526b1de8
inherit pypi setuptools3
-SRC_URI[sha256sum] = "d975a6314fbf5c524d4981e24294739216b5fb81ef3c14b86fb4b045d6690907"
+SRC_URI[sha256sum] = "9df0c10adf3e83015ced42a9a7bd64e13d06c4cf45c340d2c63020ea04499d0a"
# http://errors.yoctoproject.org/Errors/Details/184715/
# Can't find required file: ../src/google/protobuf/descriptor.proto
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-psutil/0001-fix-failure-test-cases.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-psutil/0001-fix-failure-test-cases.patch
deleted file mode 100644
index 34ea03b27f..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-psutil/0001-fix-failure-test-cases.patch
+++ /dev/null
@@ -1,197 +0,0 @@
-From 8b4e38958ff8bdbb3ece4796bfa2d3b6f7536f71 Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Wed, 23 Feb 2022 11:54:40 +0800
-Subject: [PATCH] fix failure test cases
-
-The test cases is not robust enough. skip some cases that is
-not suitable for all conditions.
-
-* test_io_counters failed when kernel config CONFIG_TASKSTATS
- and CONFIG_TASK_IO_ACCOUNTING are not enable in OE
-* test_setup_script failed since oe don't install setup.py
-* test_used failed since oe use git source for free, so the version
- is 3.3.17-dirty
-* test_weird_environ failed since gcc not installed
-* test_debug failed since it is designed to run when PSUTIL_DEBUG is set
-* test_against_findmnt/test_comparisons/test_disk_partitions_mocked/
- test_disk_partitions is not suitable for Linux nfs boot
-
-Upstream-Status: Pending
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- psutil/tests/test_contracts.py | 1 +
- psutil/tests/test_linux.py | 8 ++++++--
- psutil/tests/test_misc.py | 4 ++++
- psutil/tests/test_process.py | 5 +++++
- psutil/tests/test_system.py | 1 +
- psutil/tests/test_unicode.py | 4 +++-
- 6 files changed, 20 insertions(+), 3 deletions(-)
-
-diff --git a/psutil/tests/test_contracts.py b/psutil/tests/test_contracts.py
-index 7401cc1..bf0fca0 100755
---- a/psutil/tests/test_contracts.py
-+++ b/psutil/tests/test_contracts.py
-@@ -172,6 +172,7 @@ class TestAvailProcessAPIs(PsutilTestCase):
- def test_rlimit(self):
- self.assertEqual(hasattr(psutil.Process, "rlimit"), LINUX or FREEBSD)
-
-+ @unittest.skip("broken on OE since kernel config maye not be enabled")
- def test_io_counters(self):
- hasit = hasattr(psutil.Process, "io_counters")
- self.assertEqual(hasit, False if MACOS or SUNOS else True)
-diff --git a/psutil/tests/test_linux.py b/psutil/tests/test_linux.py
-index 20e28d2..66b6dda 100755
---- a/psutil/tests/test_linux.py
-+++ b/psutil/tests/test_linux.py
-@@ -196,8 +196,9 @@ def get_free_version_info():
- out = sh(["free", "-V"]).strip()
- if 'UNKNOWN' in out:
- raise unittest.SkipTest("can't determine free version")
-- return tuple(map(int, out.split()[-1].split('.')))
--
-+ vlist = out.split()[-1].split('.')
-+ vlist[:] = [n.split('-')[0] for n in vlist]
-+ return tuple(map(int, vlist))
-
- @contextlib.contextmanager
- def mock_open_content(for_path, content):
-@@ -1289,6 +1290,7 @@ class TestRootFsDeviceFinder(PsutilTestCase):
- finder.ask_sys_class_block()
-
- @unittest.skipIf(GITHUB_ACTIONS, "unsupported on GITHUB_ACTIONS")
-+ @unittest.skip("Broken for oe")
- def test_comparisons(self):
- finder = RootFsDeviceFinder()
- self.assertIsNotNone(finder.find())
-@@ -1311,11 +1313,13 @@ class TestRootFsDeviceFinder(PsutilTestCase):
-
- @unittest.skipIf(not which("findmnt"), "findmnt utility not available")
- @unittest.skipIf(GITHUB_ACTIONS, "unsupported on GITHUB_ACTIONS")
-+ @unittest.skip("Broken for oe")
- def test_against_findmnt(self):
- psutil_value = RootFsDeviceFinder().find()
- findmnt_value = sh("findmnt -o SOURCE -rn /")
- self.assertEqual(psutil_value, findmnt_value)
-
-+ @unittest.skip("Broken for oe")
- def test_disk_partitions_mocked(self):
- with mock.patch(
- 'psutil._pslinux.cext.disk_partitions',
-diff --git a/psutil/tests/test_misc.py b/psutil/tests/test_misc.py
-index d946eb6..121004a 100755
---- a/psutil/tests/test_misc.py
-+++ b/psutil/tests/test_misc.py
-@@ -54,6 +54,8 @@ from psutil.tests import unittest
- # ===================================================================
-
-
-+PSUTIL_DEBUG = bool(os.getenv('PSUTIL_DEBUG', 0))
-+
- class TestMisc(PsutilTestCase):
-
- def test_process__repr__(self, func=repr):
-@@ -368,6 +370,7 @@ class TestMisc(PsutilTestCase):
-
- # XXX: https://github.com/pypa/setuptools/pull/2896
- @unittest.skipIf(APPVEYOR, "temporarily disabled due to setuptools bug")
-+ @unittest.skip("OE run this test outof source tree")
- def test_setup_script(self):
- setup_py = os.path.join(ROOT_DIR, 'setup.py')
- if CI_TESTING and not os.path.exists(setup_py):
-@@ -401,6 +404,7 @@ class TestMisc(PsutilTestCase):
- reload_module(psutil)
- self.assertIn("version conflict", str(cm.exception).lower())
-
-+ @unittest.skipIf(not PSUTIL_DEBUG, "env PSUTIL_DEBUG not set")
- def test_debug(self):
- if PY3:
- from io import StringIO
-diff --git a/psutil/tests/test_process.py b/psutil/tests/test_process.py
-index c9059e3..a34ba3d 100755
---- a/psutil/tests/test_process.py
-+++ b/psutil/tests/test_process.py
-@@ -36,6 +36,7 @@ from psutil._compat import PY3
- from psutil._compat import FileNotFoundError
- from psutil._compat import long
- from psutil._compat import super
-+from psutil._compat import which
- from psutil.tests import APPVEYOR
- from psutil.tests import CI_TESTING
- from psutil.tests import GITHUB_ACTIONS
-@@ -726,6 +727,7 @@ class TestProcess(PsutilTestCase):
- self.assertEqual(' '.join(p.cmdline()), ' '.join(cmdline))
-
- @unittest.skipIf(PYPY, "broken on PYPY")
-+ @unittest.skipIf(not which("gcc"), "gcc not installed")
- def test_long_cmdline(self):
- testfn = self.get_testfn()
- create_exe(testfn)
-@@ -740,6 +742,7 @@ class TestProcess(PsutilTestCase):
- assert pyexe.startswith(name), (pyexe, name)
-
- @unittest.skipIf(PYPY, "unreliable on PYPY")
-+ @unittest.skipIf(not which("gcc"), "gcc not installed")
- def test_long_name(self):
- testfn = self.get_testfn(suffix="0123456789" * 2)
- create_exe(testfn)
-@@ -750,6 +753,7 @@ class TestProcess(PsutilTestCase):
- @unittest.skipIf(SUNOS, "broken on SUNOS")
- @unittest.skipIf(AIX, "broken on AIX")
- @unittest.skipIf(PYPY, "broken on PYPY")
-+ @unittest.skipIf(not which("gcc"), "gcc not installed")
- def test_prog_w_funky_name(self):
- # Test that name(), exe() and cmdline() correctly handle programs
- # with funky chars such as spaces and ")", see:
-@@ -1408,6 +1412,7 @@ class TestProcess(PsutilTestCase):
-
- @unittest.skipIf(not HAS_ENVIRON, "not supported")
- @unittest.skipIf(not POSIX, "POSIX only")
-+ @unittest.skipIf(not which("gcc"), "gcc not installed")
- def test_weird_environ(self):
- # environment variables can contain values without an equals sign
- code = textwrap.dedent("""
-diff --git a/psutil/tests/test_system.py b/psutil/tests/test_system.py
-index db2cb34..5ee519f 100755
---- a/psutil/tests/test_system.py
-+++ b/psutil/tests/test_system.py
-@@ -580,6 +580,7 @@ class TestDiskAPIs(PsutilTestCase):
- def test_disk_usage_bytes(self):
- psutil.disk_usage(b'.')
-
-+ @unittest.skip("Broken for oe")
- def test_disk_partitions(self):
- def check_ntuple(nt):
- self.assertIsInstance(nt.device, str)
-diff --git a/psutil/tests/test_unicode.py b/psutil/tests/test_unicode.py
-index e635726..7ba5b0f 100755
---- a/psutil/tests/test_unicode.py
-+++ b/psutil/tests/test_unicode.py
-@@ -86,6 +86,7 @@ from psutil import POSIX
- from psutil import WINDOWS
- from psutil._compat import PY3
- from psutil._compat import u
-+from psutil._compat import which
- from psutil.tests import APPVEYOR
- from psutil.tests import ASCII_FS
- from psutil.tests import CI_TESTING
-@@ -156,7 +157,7 @@ def try_unicode(suffix):
- # FS APIs
- # ===================================================================
-
--
-+@unittest.skipIf(not which("gcc"), "gcc not installed")
- class BaseUnicodeTest(PsutilTestCase):
- funky_suffix = None
-
-@@ -169,6 +170,7 @@ class BaseUnicodeTest(PsutilTestCase):
- @serialrun
- @unittest.skipIf(ASCII_FS, "ASCII fs")
- @unittest.skipIf(PYPY and not PY3, "too much trouble on PYPY2")
-+@unittest.skipIf(not which("gcc"), "gcc not installed")
- class TestFSAPIs(BaseUnicodeTest):
- """Test FS APIs with a funky, valid, UTF8 path name."""
-
---
-2.25.1
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-psutil_5.9.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-psutil_5.9.0.bb
deleted file mode 100644
index 3df0e5d003..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-psutil_5.9.0.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "A cross-platform process and system utilities module for Python"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e35fd9f271d19d5f742f20a9d1f8bb8b"
-
-SRC_URI[sha256sum] = "869842dbd66bb80c3217158e629d6fceaecc3a3166d3d1faee515b05dd26ca25"
-
-inherit pypi setuptools3
-
-SRC_URI += "file://0001-fix-failure-test-cases.patch"
-
-PACKAGES =+ "${PN}-tests"
-
-FILES:${PN}-tests += " \
- ${PYTHON_SITEPACKAGES_DIR}/psutil/test* \
- ${PYTHON_SITEPACKAGES_DIR}/psutil/__pycache__/test* \
-"
-
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-shell \
- ${PYTHON_PN}-threading \
- ${PYTHON_PN}-xml \
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-ctypes \
- ${PYTHON_PN}-resource \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ptyprocess_0.7.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ptyprocess_0.7.0.bb
index ff1155eeb1..bff2d499f1 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ptyprocess_0.7.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ptyprocess_0.7.0.bb
@@ -8,7 +8,7 @@ SRCNAME = "ptyprocess"
SRC_URI[sha256sum] = "5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"
-inherit pypi setuptools3
+inherit pypi python_flit_core
UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/ptyprocess"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyalsaaudio_0.9.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyalsaaudio_0.9.0.bb
index c1e549bcb5..862c3d594e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyalsaaudio_0.9.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyalsaaudio_0.9.0.bb
@@ -1,6 +1,6 @@
SUMMARY = "ALSA bindings"
SECTION = "devel/python"
-LICENSE = "PSF"
+LICENSE = "PSF-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=1a3b161aa0fcec32a0c8907a2219ad9d"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1/run-ptest
deleted file mode 100644
index b63c4de0d9..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-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/meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1_0.4.8.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1_0.4.8.bb
deleted file mode 100644
index a5e2a71362..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1_0.4.8.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-pyasn1.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyatspi_2.38.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyatspi_2.38.2.bb
index d67975b52b..7c822ac23f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyatspi_2.38.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyatspi_2.38.2.bb
@@ -2,7 +2,7 @@ SUMMARY = "Python bindings for DBus AT-SPI2 accessibility"
DESCRIPTION = "AT-SPI2 is a protocol over DBus, toolkit widgets use to provide content to screen readers such as Orca"
SECTION = "devel/python"
HOMEPAGE = "https://www.freedesktop.org/wiki/Accessibility/AT-SPI2/"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=db29218e6ba3794c56df7d4987dc7e4d \
file://COPYING.GPL;md5=751419260aa954499f7abaabaa882bbe"
DEPENDS = "python3-dbus-native glib-2.0 dbus-glib libxml2 atk gtk+ python3-pygobject"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11_2.8.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11_2.8.1.bb
index dfacb41f19..4d94e2033e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11_2.8.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11_2.8.1.bb
@@ -19,6 +19,9 @@ EXTRA_OECMAKE = "-DPYBIND11_TEST=OFF"
inherit cmake setuptools3 python3native
+PIP_INSTALL_DIST_PATH = "${S}/dist"
+PIP_INSTALL_PACKAGE = "pybind11"
+
do_configure() {
cmake_do_configure
}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pybluez_0.23.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pybluez_0.23.bb
index cc659ea678..b32f3a3627 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pybluez_0.23.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pybluez_0.23.bb
@@ -4,7 +4,7 @@ SECTION = "devel/python"
DEPENDS = "bluez5"
-LICENSE = "GPL-2.0"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=8a71d0475d08eee76d8b6d0c6dbec543"
SRC_URI[md5sum] = "afbe8429bb82d2c46a3d0f5f4f898f9d"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_10.2.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_10.3.0.bb
index 9bd0379817..43ba3a9dd0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_10.2.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_10.3.0.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/balloob/pychromecast"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=b1dbd4e85f47b389bdadee9c694669f5"
-SRC_URI[sha256sum] = "ddb86c5acdc13e8bdadd2b7f5738fda36b32c1750548f7b629ca8d178f05e0da"
+SRC_URI[sha256sum] = "4eb107446fdbed876f48c83202b6212b221286168a55c16b3eb8edf4200f10a1"
PYPI_PACKAGE = "PyChromecast"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pycparser_2.21.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pycparser_2.21.bb
deleted file mode 100644
index 53b7367903..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pycparser_2.21.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Parser of the C language, written in pure Python"
-HOMEPAGE = "https://github.com/eliben/pycparser"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=2c28cdeabcb88f5843d934381b4b4fea"
-
-SRC_URI[sha256sum] = "e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"
-
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native nativesdk"
-
-RDEPENDS:${PN}:class-target += "\
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-ply \
- ${PYTHON_PN}-pprint \
- "
-
-RSUGGESTS:${PN}:class-target += "\
- cpp \
- cpp-symlinks \
- "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pycurl_7.44.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pycurl_7.44.1.bb
index a80fed62de..c9b3b71873 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pycurl_7.44.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pycurl_7.44.1.bb
@@ -7,16 +7,13 @@ be used to fetch objects identified by a URL from a Python program \
SECTION = "devel/python"
HOMEPAGE = "http://pycurl.io/"
-LICENSE = "LGPLv2 | MIT"
+LICENSE = "LGPL-2.0-only | MIT"
LIC_FILES_CHKSUM = "file://COPYING-LGPL;md5=4fbd65380cdd255951079008b364516c \
file://COPYING-MIT;md5=75f131c591546fd1277ca49c9a81ab1b \
"
SRC_URI[sha256sum] = "5bcef4d988b74b99653602101e17d8401338d596b9234d263c728a0c3df003e8"
-inherit pypi setuptools3
+DEPENDS = "curl"
-DEPENDS = "\
- curl \
- ${PYTHON_PN}\
-"
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus_0.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus_0.6.0.bb
index 188934ab97..a1b9fffea6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus_0.6.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus_0.6.0.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "Pythonic DBus library"
HOMEPAGE = "https://pypi.python.org/pypi/pydbus/"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a916467b91076e631dd8edb7424769c7"
SRC_URI += "file://0001-Support-asynchronous-calls-58.patch \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyhamcrest_2.0.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyhamcrest_2.0.3.bb
index 7c0824c2d1..5b06e52aa1 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyhamcrest_2.0.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyhamcrest_2.0.3.bb
@@ -7,6 +7,6 @@ PYPI_PACKAGE = "PyHamcrest"
SRC_URI[sha256sum] = "dfb19cf6d71743e086fbb761ed7faea5aacbc8ec10c17a08b93ecde39192a3db"
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
RDEPENDS:${PN} += "${PYTHON_PN}-six"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyiface_0.0.11.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyiface_0.0.11.bb
deleted file mode 100644
index 3022d08343..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyiface_0.0.11.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "Pyiface is a package that exposes the network interfaces of the operating system in a easy to use and transparent way"
-SECTION = "devel/python"
-HOMEPAGE = "https://pypi.python.org/pypi/pyiface/"
-LICENSE = "GPLv3+"
-
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4fe869ee987a340198fb0d54c55c47f1"
-
-SRC_URI[md5sum] = "b066aa984656742738127c9c75436ab4"
-SRC_URI[sha256sum] = "e231e5735d329c5b2d4fc8854f069fdaa5436d3ef91ed64ee49e41e3f5e8a3f5"
-
-inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyiface_git.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyiface_git.bb
new file mode 100644
index 0000000000..5e0d2de916
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyiface_git.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Pyiface is a package that exposes the network interfaces of the operating system in a easy to use and transparent way"
+SECTION = "devel/python"
+HOMEPAGE = "https://pypi.python.org/pypi/pyiface/"
+LICENSE = "GPL-3.0-or-later"
+
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4fe869ee987a340198fb0d54c55c47f1"
+
+DEPENDS += "python3-setuptools-scm-native"
+
+inherit setuptools3
+
+SRC_URI = "git://github.com/bat-serjo/PyIface.git;protocol=https;branch=master"
+SRCREV = "4557dbda96d2e4b1142c60603d4a27d007a9ffe6"
+PV = "0.1.dev33+g4557dbd"
+
+PIP_INSTALL_PACKAGE = "pyiface"
+
+S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_1.8.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_1.8.3.bb
deleted file mode 100644
index 47a40fdce2..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_1.8.3.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-SUMMARY="Pylint is a Python source code analyzer"
-HOMEPAGE= "http://www.pylint.org/"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4"
-
-SRC_URI[md5sum] = "2eb5f3cb8fe567eaf5420dd415012202"
-SRC_URI[sha256sum] = "c77311859e0c2d7932095f30d2b1bfdc4b6fe111f534450ba727a52eae330ef2"
-
-inherit pypi setuptools3 python3-dir
-
-DEPENDS += "${PYTHON_PN}-pytest-runner-native"
-
-do_install:append(){
- rm ${D}${bindir}/pylint
- cat >> ${D}${bindir}/pylint <<EOF
-#!/usr/bin/env ${PYTHON_PN}
-from pylint import run_pylint
-run_pylint()
-EOF
- chmod 755 ${D}${bindir}/pylint
- sed -i -e 's:^#!/usr/bin/python:#!/usr/bin/env\ ${PYTHON_PN}:g' ${D}/${PYTHON_SITEPACKAGES_DIR}/pylint/test/data/ascript
-}
-
-PACKAGES =+ "${PN}-tests"
-FILES:${PN}-tests+= " \
- ${PYTHON_SITEPACKAGES_DIR}/pylint/test/ \
- ${PYTHON_SITEPACKAGES_DIR}/pylint/testutils.py \
-"
-
-RDEPENDS:${PN} += "${PYTHON_PN}-astroid \
- ${PYTHON_PN}-isort \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-shell \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-pkgutil \
- ${PYTHON_PN}-difflib \
- ${PYTHON_PN}-netserver \
- "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_2.13.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_2.13.2.bb
new file mode 100644
index 0000000000..9c699f8f2f
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_2.13.2.bb
@@ -0,0 +1,18 @@
+SUMMARY="Pylint is a Python source code analyzer"
+HOMEPAGE= "http://www.pylint.org/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c107cf754550e65755c42985a5d4e9c9"
+
+SRC_URI[sha256sum] = "0c6dd0e53e6e17f2d0d62660905f3868611e734e9d9b310dc651a4b9f3dc70da"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "${PYTHON_PN}-astroid \
+ ${PYTHON_PN}-isort \
+ ${PYTHON_PN}-numbers \
+ ${PYTHON_PN}-shell \
+ ${PYTHON_PN}-json \
+ ${PYTHON_PN}-pkgutil \
+ ${PYTHON_PN}-difflib \
+ ${PYTHON_PN}-netserver \
+ "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymetno_0.9.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymetno_0.9.0.bb
index 02e8935f07..50b202b042 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymetno_0.9.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymetno_0.9.0.bb
@@ -9,6 +9,8 @@ S = "${WORKDIR}/git"
inherit setuptools3
+PIP_INSTALL_PACKAGE = "PyMetno"
+
RDEPENDS:${PN} = "\
${PYTHON_PN}-aiohttp (>=3.6.1) \
${PYTHON_PN}-async-timeout (>=3.0.1) \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.152.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.157.bb
index 254330bf5d..a900e70279 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.152.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.157.bb
@@ -4,10 +4,12 @@ LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a3639cf5780f71b125d3e9d1dc127c20"
SRC_URI = "git://github.com/MISP/PyMISP.git;protocol=https;branch=main"
-SRCREV = "d991e53f9a9641f454e116e83d2913edf405a53f"
+SRCREV = "b1892efb6a078d1370cee51c9103f3a591c628d2"
S = "${WORKDIR}/git"
-inherit setuptools3
+inherit python_poetry_core
+
+PIP_INSTALL_PACKAGE = "pymisp"
RDEPENDS:${PN} += " \
${PYTHON_PN}-dateutil \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_2.5.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_2.5.3.bb
new file mode 100644
index 0000000000..46565876fe
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_2.5.3.bb
@@ -0,0 +1,35 @@
+SUMMARY = "A fully featured modbus protocol stack in python"
+HOMEPAGE = "https://github.com/riptideio/pymodbus/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2c2223d66c7e674b40527b5a4c35bd76"
+DEPENDS += "python3-six-native"
+
+SRC_URI[sha256sum] = "5ef68c1a109bdb467c830ef003ef2db6494349a5248e4af946fe21c9eefe7e74"
+S = "${WORKDIR}/pymodbus-${PV}"
+
+inherit pypi setuptools3
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[repl] = ",,,python3-aiohttp python3-click python3-prompt-toolkit python3-pygments python3-pyserial-asyncio"
+PACKAGECONFIG[asyncio] = ",,,python3-pyserial-asyncio"
+PACKAGECONFIG[tornado] = ",,,python3-tornado"
+PACKAGECONFIG[twisted] = ",,,python3-twisted-conch"
+PACKAGECONFIG[redis] = ",,,python3-redis"
+PACKAGECONFIG[sql] = ",,,python3-sqlalchemy"
+
+RDEPENDS:${PN} += " \
+ python3-asyncio \
+ python3-core \
+ python3-io \
+ python3-json \
+ python3-logging \
+ python3-math \
+ python3-netserver \
+"
+
+RDEPENDS:${PN} += " \
+ python3-pyserial \
+ python3-six \
+"
+
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.0.2.bb
index 8eb0833fd0..6189730b34 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.0.2.bb
@@ -8,7 +8,7 @@ HOMEPAGE = "http://github.com/mongodb/mongo-python-driver"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
-SRC_URI[sha256sum] = "13d0624c13a91da71fa0d960205d93b3d98344481be865ee7cc238c972d41d73"
+SRC_URI[sha256sum] = "3364b5c153b0de15c39cd13c5ee73a473f7337eb2d9610711f50f14a3a611413"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pynacl_1.5.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pynacl_1.5.0.bb
index 10f624b484..6e53461979 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pynacl_1.5.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pynacl_1.5.0.bb
@@ -8,10 +8,9 @@ SRC_URI[sha256sum] = "8ac7448f09ab85811607bdd21ec2464495ac8b7c66d146bf545b0f08fb
PYPI_PACKAGE = "PyNaCl"
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
DEPENDS += "\
- ${PYTHON_PN}-wheel-native \
${PYTHON_PN}-cffi-native \
libsodium \
"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pynetlinux/0001-setup.py-switch-to-setuptools.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pynetlinux/0001-setup.py-switch-to-setuptools.patch
new file mode 100644
index 0000000000..35bc4a6bd1
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pynetlinux/0001-setup.py-switch-to-setuptools.patch
@@ -0,0 +1,32 @@
+From a36abadfb2d135260bef7703a1d0b56e6aa7eeff Mon Sep 17 00:00:00 2001
+From: Tim Orling <tim.orling@konsulko.com>
+Date: Mon, 28 Feb 2022 08:21:33 -0800
+Subject: [PATCH] setup.py: switch to setuptools
+
+In Python 3.10, 'distutils' has been deprecated and is slated for
+removal in Python 3.12.
+
+Switch from 'distutils.core' to 'setuptools'. This also allows for the
+'wheel' binary archive format to be built with 'setup.py bdist_wheel'.
+
+Upstream-Status: Submitted
+[https://github.com/rlisagor/pynetlinux/pull/12]
+
+Signed-off-by: Tim Orling <tim.orling@konsulko.com>
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index 670e064..45f1053 100755
+--- a/setup.py
++++ b/setup.py
+@@ -1,4 +1,4 @@
+-from distutils.core import setup
++from setuptools import setup
+
+ setup(
+ name = "pynetlinux",
+--
+2.30.2
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pynetlinux_1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pynetlinux_1.1.bb
index c80a166177..a5ac74fd68 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pynetlinux_1.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pynetlinux_1.1.bb
@@ -5,7 +5,8 @@ HOMEPAGE = "http://github.com/rlisagor/pynetlinux"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=74e1861736ee959824fe7542323c12e9"
-SRC_URI[md5sum] = "3336e5d4a478acca4e35bf3125b4f883"
SRC_URI[sha256sum] = "4ad08298c9f5ba15a11cddc639ba8778cabdfc402b51066d9e0a325e5a5b391c"
+SRC_URI += "file://0001-setup.py-switch-to-setuptools.patch"
+
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyopenssl_22.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyopenssl_22.0.0.bb
deleted file mode 100644
index db0e809ef5..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyopenssl_22.0.0.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "Simple Python wrapper around the OpenSSL library"
-HOMEPAGE = "https://pyopenssl.org/"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-DEPENDS += "openssl ${PYTHON_PN}-cryptography"
-
-SRC_URI[sha256sum] = "660b1b1425aac4a1bea1d94168a85d99f0b3144c869dd4390d27629d0087f1bf"
-
-PYPI_PACKAGE = "pyOpenSSL"
-inherit pypi setuptools3
-
-PACKAGES =+ "${PN}-tests"
-FILES:${PN}-tests = "${libdir}/${PYTHON_DIR}/site-packages/OpenSSL/test"
-
-RDEPENDS:${PN}:class-target = " \
- ${PYTHON_PN}-cryptography \
- ${PYTHON_PN}-six \
- ${PYTHON_PN}-threading \
-"
-RDEPENDS:${PN}-tests = "${PN}"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyrad_2.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyrad_2.4.bb
index 86a95a4aa4..b2d0dc324b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyrad_2.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyrad_2.4.bb
@@ -6,4 +6,4 @@ LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e910b35b0ef4e1f665
PYPI_PACKAGE = "pyrad"
SRC_URI[sha256sum] = "057de4b7e89d8da57ba782c1bde45c63ebee720ae2c0b0a69beaff15c47e30d9"
-inherit pypi setuptools3
+inherit pypi python_poetry_core
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyroute2_0.5.19.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyroute2_0.5.19.bb
index a85b0929d4..fa5b3a522a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyroute2_0.5.19.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyroute2_0.5.19.bb
@@ -1,5 +1,5 @@
SUMMARY = "A pure Python netlink and Linux network configuration library"
-LICENSE = "GPLv2 & Apache-2.0"
+LICENSE = "GPL-2.0-only & Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE.GPL.v2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://LICENSE.Apache.v2;md5=34281e312165f843a2b7d1f114fe65ce"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate/0001-linux.rs-Define-consts-for-rv32-architecture.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate/0001-linux.rs-Define-consts-for-rv32-architecture.patch
new file mode 100644
index 0000000000..a2d4091a95
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate/0001-linux.rs-Define-consts-for-rv32-architecture.patch
@@ -0,0 +1,26 @@
+From 3a3bd8475f93d54cb5bb62d239247fef2e03a733 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 5 Mar 2022 00:37:01 -0800
+Subject: [PATCH] linux.rs: Define consts for rv32 architecture
+
+Upstream-Status: Submitted [https://github.com/nix-rust/nix/pull/1669]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/sys/ioctl/linux.rs | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/sys/ioctl/linux.rs b/src/sys/ioctl/linux.rs
+index 68ebaba..08cd0c3 100644
+--- a/src/sys/ioctl/linux.rs
++++ b/src/sys/ioctl/linux.rs
+@@ -34,6 +34,7 @@ mod consts {
+ target_arch = "s390x",
+ target_arch = "x86_64",
+ target_arch = "aarch64",
++ target_arch = "riscv32",
+ target_arch = "riscv64"))]
+ mod consts {
+ #[doc(hidden)]
+--
+2.35.1
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate/0001-riscv64-mod.rs-Add-missing-error-codes.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate/0001-riscv64-mod.rs-Add-missing-error-codes.patch
deleted file mode 100644
index 67108472ac..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate/0001-riscv64-mod.rs-Add-missing-error-codes.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From c711fb215de54f960a35cdc48cd506b6b5db4918 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 26 Jan 2022 11:50:58 -0800
-Subject: [PATCH] riscv64/mod.rs: Add missing error codes
-
-These are flagged by apps e.g. python3-pyruvate
-
-Upstream-Status: Submitted [https://github.com/rust-lang/libc/pull/2656]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/unix/linux_like/linux/musl/b64/riscv64/mod.rs | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs
-index b075b4a05..6b17621c7 100644
---- a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs
-+++ b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs
-@@ -548,6 +548,11 @@ pub const EHOSTUNREACH: ::c_int = 113;
- pub const EALREADY: ::c_int = 114;
- pub const EINPROGRESS: ::c_int = 115;
- pub const ESTALE: ::c_int = 116;
-+pub const EUCLEAN: ::c_int = 117;
-+pub const ENOTNAM: ::c_int = 118;
-+pub const ENAVAIL: ::c_int = 119;
-+pub const EISNAM: ::c_int = 120;
-+pub const EREMOTEIO: ::c_int = 121;
- pub const EDQUOT: ::c_int = 122;
- pub const ENOMEDIUM: ::c_int = 123;
- pub const EMEDIUMTYPE: ::c_int = 124;
---
-2.35.0
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate_1.1.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate_1.1.2.bb
index b83302d44c..1f1c186d31 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate_1.1.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate_1.1.2.bb
@@ -12,7 +12,9 @@ SRC_URI[sha256sum] = "10befedd97e73fc18b902d02aa3b24e8978aa162242c1b664849c886c0
S = "${WORKDIR}/pyruvate-${PV}"
-inherit pypi setuptools3_rust
+inherit pypi python_setuptools3_rust
+
+PIP_INSTALL_DIST_PATH = "${S}/dist"
# crossbeam-* -> std::sync::atomic AtomicI64, AtomicU64
# not supported on mips/powerpc with 32-bit pointers
@@ -22,9 +24,6 @@ RUSTFLAGS:append:mipsel = " --cfg crossbeam_no_atomic_64"
RUSTFLAGS:append:powerpc = " --cfg crossbeam_no_atomic_64"
RUSTFLAGS:append:riscv32 = " --cfg crossbeam_no_atomic_64"
-SRC_URI:append:mips = " file://0001-check-for-mips-targets-for-stat.st_dev-definitions.patch;patchdir=../cargo_home/bitbake/libsystemd-0.4.1/"
-SRC_URI:append = " file://0001-riscv64-mod.rs-Add-missing-error-codes.patch;patchdir=../cargo_home/bitbake/libc-0.2.112/"
-
SRC_URI += " \
crate://crates.io/aho-corasick/0.7.18 \
crate://crates.io/atty/0.2.14 \
@@ -64,7 +63,7 @@ SRC_URI += " \
crate://crates.io/humantime/2.1.0 \
crate://crates.io/instant/0.1.12 \
crate://crates.io/lazy_static/1.4.0 \
- crate://crates.io/libc/0.2.112 \
+ crate://crates.io/libc/0.2.120 \
crate://crates.io/libsystemd/0.4.1 \
crate://crates.io/log/0.4.14 \
crate://crates.io/memchr/2.4.1 \
@@ -116,6 +115,10 @@ SRC_URI += " \
crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
crate://crates.io/winapi/0.3.9 \
"
+SRC_URI += "\
+ file://0001-linux.rs-Define-consts-for-rv32-architecture.patch;patchdir=../cargo_home/bitbake/nix-0.23.1/ \
+ "
+SRC_URI:append:mips = " file://0001-check-for-mips-targets-for-stat.st_dev-definitions.patch;patchdir=../cargo_home/bitbake/libsystemd-0.4.1/"
# The following configs & dependencies are from setuptools extras_require.
# These dependencies are optional, hence can be controlled via PACKAGECONFIG.
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.1.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.1.5.bb
index 7e5599e4aa..7826d89ad0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.1.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.1.5.bb
@@ -5,18 +5,18 @@ used to create template Projects."
HOMEPAGE = "https://github.com/pyscaffold/pyscaffold"
SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489"
+LICENSE = "0BSD & MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=14a49c74a1d91829908ac756c07e6b91"
+DEPENDS += "python3-setuptools-scm-native"
-inherit pypi setuptools3
+SRC_URI[sha256sum] = "55f6532fd6d62b3b698d604257f7a7eda6a87557bbec22760f8c0d9549454802"
+inherit pypi python_setuptools_build_meta
PYPI_PACKAGE = "PyScaffold"
-SRC_URI[sha256sum] = "46a2bbdf255ba2efc6c56ae1428249b61d56c4a3e54ef3db0d05fa97792011a5"
-
-BBCLASSEXTEND = "native nativesdk"
-
RDEPENDS:${PN} += " \
python3-email \
python3-compression \
"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyserial-asyncio_0.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyserial-asyncio_0.6.bb
new file mode 100644
index 0000000000..30ff62a7ed
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyserial-asyncio_0.6.bb
@@ -0,0 +1,10 @@
+SUMMARY = "Python Serial Port Extension - Asynchronous I/O support"
+HOMEPAGE = "https://github.com/pyserial/pyserial-asyncio"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=9a79418f241689e78034391d51162d24"
+
+SRC_URI[sha256sum] = "b6032923e05e9d75ec17a5af9a98429c46d2839adfaf80604d52e0faacd7a32f"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-asyncio python3-core python3-pyserial"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyserial_3.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyserial_3.5.bb
index 4766d92266..15646235df 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyserial_3.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyserial_3.5.bb
@@ -9,6 +9,7 @@ inherit pypi setuptools3 ptest
do_install:append() {
rm -f ${D}${bindir}/pyserial-miniterm
rm -f ${D}${bindir}/pyserial-ports
+ rm -rf ${D}${bindir}/__pycache__
rmdir ${D}${bindir}
}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pysocks_1.7.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pysocks_1.7.1.bb
deleted file mode 100644
index 9144401703..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pysocks_1.7.1.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-DESCRIPTION = "A Python SOCKS client module"
-HOMEPAGE = "http://python-requests.org"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1d457bcffb9661b45f799d4efee72f16"
-
-SRC_URI[md5sum] = "89b1a6865c61bae67a32417517612ee6"
-SRC_URI[sha256sum] = "3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0"
-
-PYPI_PACKAGE = "PySocks"
-inherit pypi setuptools3
-
-RDEPENDS:${PN}:class-target += "\
- ${PYTHON_PN}-email \
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-shell \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pystache/0001-Modernize-python-versions-remove-py2x-and-fix-tests-.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pystache/0001-Modernize-python-versions-remove-py2x-and-fix-tests-.patch
deleted file mode 100644
index d268cc5cd9..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pystache/0001-Modernize-python-versions-remove-py2x-and-fix-tests-.patch
+++ /dev/null
@@ -1,4150 +0,0 @@
-From 8bb1ac2d81f697598a766714f2c439d78c85d71e Mon Sep 17 00:00:00 2001
-From: Stephen L Arnold <nerdboy@gentoo.org>
-Date: Sat, 7 Nov 2020 12:38:33 -0800
-Subject: [PATCH] Modernize python versions (remove py2x) and fix tests, update
- spec
-
-* migrate to github actions for CI, add conda recipe/workflow
-* fix document processing, update pandoc args and history
-* convert doctests and modules to py3
-* convert packaging/setup.py to pep517, keep doc processing
-* cleanup tox cfg, add coverage, readme status
-* add pep8speaks cfg, cleanup warnings, use correct env
-* update setup_description.rst for packaging
-* set version for test release => 0.6.0 and deploy
-
-Upstream-Status: Backport [https://github.com/defunkt/pystache/pull/214]
-Signed-off-by: Stephen L Arnold <nerdboy@gentoo.org>
----
- .coveragerc | 38 +++
- .gitchangelog.rc | 295 +++++++++++++++++++++
- .github/workflows/ci.yml | 73 ++++++
- .github/workflows/conda.yml | 55 ++++
- .github/workflows/release.yml | 94 +++++++
- .github/workflows/wheels.yml | 82 ++++++
- .pep8speaks.yml | 15 ++
- HISTORY.md | 37 ++-
- MANIFEST.in | 8 +-
- README.md | 141 +++++-----
- TODO.md | 5 +-
- conda/meta.yaml | 50 ++++
- pyproject.toml | 3 +
- pystache/__init__.py | 2 +-
- pystache/commands/render.py | 4 +-
- pystache/common.py | 13 +-
- pystache/defaults.py | 2 +-
- pystache/loader.py | 14 +-
- pystache/parsed.py | 6 +-
- pystache/parser.py | 20 +-
- pystache/renderengine.py | 2 +-
- pystache/renderer.py | 22 +-
- pystache/specloader.py | 2 +-
- pystache/tests/benchmark.py | 15 +-
- pystache/tests/common.py | 10 +-
- pystache/tests/examples/unicode_output.py | 2 +-
- pystache/tests/main.py | 28 +-
- pystache/tests/spectesting.py | 16 +-
- pystache/tests/test___init__.py | 4 +-
- pystache/tests/test_commands.py | 2 +-
- pystache/tests/test_defaults.py | 18 +-
- pystache/tests/test_examples.py | 40 +--
- pystache/tests/test_loader.py | 46 ++--
- pystache/tests/test_pystache.py | 6 +-
- pystache/tests/test_renderengine.py | 148 +++++------
- pystache/tests/test_renderer.py | 86 +++----
- pystache/tests/test_simple.py | 20 +-
- pystache/tests/test_specloader.py | 60 ++---
- setup.cfg | 74 +++++-
- setup.py | 134 +---------
- setup_description.rst | 297 +++++++++++++---------
- tox.ini | 118 +++++++--
- travis.yml_disabled | 52 ++++
- 43 files changed, 1487 insertions(+), 672 deletions(-)
- create mode 100644 .coveragerc
- create mode 100644 .gitchangelog.rc
- create mode 100644 .github/workflows/ci.yml
- create mode 100644 .github/workflows/conda.yml
- create mode 100644 .github/workflows/release.yml
- create mode 100644 .github/workflows/wheels.yml
- create mode 100644 .pep8speaks.yml
- create mode 100644 conda/meta.yaml
- create mode 100644 pyproject.toml
- create mode 100644 travis.yml_disabled
-
-diff --git a/.coveragerc b/.coveragerc
-new file mode 100644
-index 0000000..9a336dd
---- /dev/null
-+++ b/.coveragerc
-@@ -0,0 +1,38 @@
-+# .coveragerc to control coverage.py
-+[run]
-+branch = True
-+
-+source = pystache
-+
-+omit =
-+ .tox/*
-+ setup.py
-+ pystache/tests/*
-+
-+#plugins =
-+# coverage_python_version
-+
-+[report]
-+# must set this to True to see missing
-+#show_missing = True
-+
-+# Regexes for lines to exclude from consideration
-+exclude_lines =
-+ # Have to re-enable the standard pragma
-+ pragma: no cover
-+
-+ # Don't complain about missing debug-only code:
-+ def __repr__
-+ if self\.debug
-+
-+ # Don't complain if tests don't hit defensive assertion code:
-+ raise AssertionError
-+ raise NotImplementedError
-+
-+ # Don't complain if non-runnable code isn't run:
-+ if 0:
-+
-+ignore_errors = True
-+
-+[html]
-+directory = cover
-diff --git a/.gitchangelog.rc b/.gitchangelog.rc
-new file mode 100644
-index 0000000..5cf63a0
---- /dev/null
-+++ b/.gitchangelog.rc
-@@ -0,0 +1,295 @@
-+# -*- coding: utf-8; mode: python -*-
-+##
-+## Format
-+##
-+## ACTION: [AUDIENCE:] COMMIT_MSG [!TAG ...]
-+##
-+## Description
-+##
-+## ACTION is one of 'chg', 'fix', 'new'
-+##
-+## Is WHAT the change is about.
-+##
-+## 'chg' is for refactor, small improvement, cosmetic changes...
-+## 'fix' is for bug fixes
-+## 'new' is for new features, big improvement
-+##
-+## AUDIENCE is optional and one of 'dev', 'usr', 'pkg', 'test', 'doc'
-+##
-+## Is WHO is concerned by the change.
-+##
-+## 'dev' is for developpers (API changes, refactors...)
-+## 'usr' is for final users (UI changes)
-+## 'pkg' is for packagers (packaging changes)
-+## 'test' is for testers (test only related changes)
-+## 'doc' is for doc guys (doc only changes)
-+##
-+## COMMIT_MSG is ... well ... the commit message itself.
-+##
-+## TAGs are additionnal adjective as 'refactor' 'minor' 'cosmetic'
-+##
-+## They are preceded with a '!' or a '@' (prefer the former, as the
-+## latter is wrongly interpreted in github.) Commonly used tags are:
-+##
-+## 'refactor' is obviously for refactoring code only
-+## 'minor' is for a very meaningless change (a typo, adding a comment)
-+## 'cosmetic' is for cosmetic driven change (re-indentation, 80-col...)
-+## 'wip' is for partial functionality but complete subfunctionality.
-+##
-+## Example:
-+##
-+## new: usr: support of bazaar implemented
-+## chg: re-indentend some lines !cosmetic
-+## new: dev: updated code to be compatible with last version of killer lib.
-+## fix: pkg: updated year of licence coverage.
-+## new: test: added a bunch of test around user usability of feature X.
-+## fix: typo in spelling my name in comment. !minor
-+##
-+## Please note that multi-line commit message are supported, and only the
-+## first line will be considered as the "summary" of the commit message. So
-+## tags, and other rules only applies to the summary. The body of the commit
-+## message will be displayed in the changelog without reformatting.
-+
-+
-+##
-+## ``ignore_regexps`` is a line of regexps
-+##
-+## Any commit having its full commit message matching any regexp listed here
-+## will be ignored and won't be reported in the changelog.
-+##
-+ignore_regexps = [
-+ r'@minor', r'!minor',
-+ r'@cosmetic', r'!cosmetic',
-+ r'@refactor', r'!refactor',
-+ r'@wip', r'!wip',
-+ r'^([cC]hg|[fF]ix|[nN]ew)\s*:\s*[p|P]kg:',
-+ r'^([cC]hg|[fF]ix|[nN]ew)\s*:\s*[d|D]ev:',
-+ r'^(.{3,3}\s*:)?\s*[fF]irst commit.?\s*$',
-+ r'^$', ## ignore commits with empty messages
-+]
-+
-+
-+## ``section_regexps`` is a list of 2-tuples associating a string label and a
-+## list of regexp
-+##
-+## Commit messages will be classified in sections thanks to this. Section
-+## titles are the label, and a commit is classified under this section if any
-+## of the regexps associated is matching.
-+##
-+## Please note that ``section_regexps`` will only classify commits and won't
-+## make any changes to the contents. So you'll probably want to go check
-+## ``subject_process`` (or ``body_process``) to do some changes to the subject,
-+## whenever you are tweaking this variable.
-+##
-+section_regexps = [
-+ ('New', [
-+ r'^[nN]ew\s*:\s*((dev|use?r|pkg|test|doc)\s*:\s*)?([^\n]*)$',
-+ ]),
-+ ('Features', [
-+ r'^([nN]ew|[fF]eat)\s*:\s*((dev|use?r|pkg|test|doc)\s*:\s*)?([^\n]*)$',
-+ ]),
-+ ('Changes', [
-+ r'^[cC]hg\s*:\s*((dev|use?r|pkg|test|doc)\s*:\s*)?([^\n]*)$',
-+ ]),
-+ ('Fixes', [
-+ r'^[fF]ix\s*:\s*((dev|use?r|pkg|test|doc)\s*:\s*)?([^\n]*)$',
-+ ]),
-+
-+ ('Other', None ## Match all lines
-+ ),
-+]
-+
-+
-+## ``body_process`` is a callable
-+##
-+## This callable will be given the original body and result will
-+## be used in the changelog.
-+##
-+## Available constructs are:
-+##
-+## - any python callable that take one txt argument and return txt argument.
-+##
-+## - ReSub(pattern, replacement): will apply regexp substitution.
-+##
-+## - Indent(chars=" "): will indent the text with the prefix
-+## Please remember that template engines gets also to modify the text and
-+## will usually indent themselves the text if needed.
-+##
-+## - Wrap(regexp=r"\n\n"): re-wrap text in separate paragraph to fill 80-Columns
-+##
-+## - noop: do nothing
-+##
-+## - ucfirst: ensure the first letter is uppercase.
-+## (usually used in the ``subject_process`` pipeline)
-+##
-+## - final_dot: ensure text finishes with a dot
-+## (usually used in the ``subject_process`` pipeline)
-+##
-+## - strip: remove any spaces before or after the content of the string
-+##
-+## - SetIfEmpty(msg="No commit message."): will set the text to
-+## whatever given ``msg`` if the current text is empty.
-+##
-+## Additionally, you can `pipe` the provided filters, for instance:
-+#body_process = Wrap(regexp=r'\n(?=\w+\s*:)') | Indent(chars=" ")
-+#body_process = Wrap(regexp=r'\n(?=\w+\s*:)')
-+#body_process = noop
-+body_process = ReSub(r'((^|\n)[A-Z]\w+(-\w+)*: .*(\n\s+.*)*)+$', r'') | strip
-+
-+
-+## ``subject_process`` is a callable
-+##
-+## This callable will be given the original subject and result will
-+## be used in the changelog.
-+##
-+## Available constructs are those listed in ``body_process`` doc.
-+subject_process = (strip |
-+ ReSub(r'^([cC]hg|[fF]ix|[nN]ew)\s*:\s*((dev|use?r|pkg|test|doc)\s*:\s*)?([^\n@]*)(@[a-z]+\s+)*$', r'\4') |
-+ SetIfEmpty("No commit message.") | ucfirst | final_dot)
-+
-+
-+## ``tag_filter_regexp`` is a regexp
-+##
-+## Tags that will be used for the changelog must match this regexp.
-+##
-+#tag_filter_regexp = r'^v?[0-9]+\.[0-9]+(\.[0-9]+)?$'
-+tag_filter_regexp = r'^[0-9]+\.[0-9]+(\.[0-9]+)?$'
-+
-+
-+## ``unreleased_version_label`` is a string or a callable that outputs a string
-+##
-+## This label will be used as the changelog Title of the last set of changes
-+## between last valid tag and HEAD if any.
-+unreleased_version_label = "(unreleased)"
-+#unreleased_version_label = lambda: swrap(
-+# ["git", "describe", "--tags"],
-+#shell=False)
-+
-+
-+## ``output_engine`` is a callable
-+##
-+## This will change the output format of the generated changelog file
-+##
-+## Available choices are:
-+##
-+## - rest_py
-+##
-+## Legacy pure python engine, outputs ReSTructured text.
-+## This is the default.
-+##
-+## - mustache(<template_name>)
-+##
-+## Template name could be any of the available templates in
-+## ``templates/mustache/*.tpl``.
-+## Requires python package ``pystache``.
-+## Examples:
-+## - mustache("markdown")
-+## - mustache("restructuredtext")
-+##
-+## - makotemplate(<template_name>)
-+##
-+## Template name could be any of the available templates in
-+## ``templates/mako/*.tpl``.
-+## Requires python package ``mako``.
-+## Examples:
-+## - makotemplate("restructuredtext")
-+##
-+#output_engine = rest_py
-+#output_engine = mustache("restructuredtext")
-+output_engine = mustache("markdown")
-+#output_engine = makotemplate("restructuredtext")
-+
-+
-+## ``include_merge`` is a boolean
-+##
-+## This option tells git-log whether to include merge commits in the log.
-+## The default is to include them.
-+include_merge = True
-+
-+
-+## ``log_encoding`` is a string identifier
-+##
-+## This option tells gitchangelog what encoding is outputed by ``git log``.
-+## The default is to be clever about it: it checks ``git config`` for
-+## ``i18n.logOutputEncoding``, and if not found will default to git's own
-+## default: ``utf-8``.
-+#log_encoding = 'utf-8'
-+
-+
-+## ``publish`` is a callable
-+##
-+## Sets what ``gitchangelog`` should do with the output generated by
-+## the output engine. ``publish`` is a callable taking one argument
-+## that is an interator on lines from the output engine.
-+##
-+## Some helper callable are provided:
-+##
-+## Available choices are:
-+##
-+## - stdout
-+##
-+## Outputs directly to standard output
-+## (This is the default)
-+##
-+## - FileInsertAtFirstRegexMatch(file, pattern, idx=lamda m: m.start(), flags)
-+##
-+## Creates a callable that will parse given file for the given
-+## regex pattern and will insert the output in the file.
-+## ``idx`` is a callable that receive the matching object and
-+## must return a integer index point where to insert the
-+## the output in the file. Default is to return the position of
-+## the start of the matched string.
-+##
-+## - FileRegexSubst(file, pattern, replace, flags)
-+##
-+## Apply a replace inplace in the given file. Your regex pattern must
-+## take care of everything and might be more complex. Check the README
-+## for a complete copy-pastable example.
-+##
-+# publish = FileInsertIntoFirstRegexMatch(
-+# "CHANGELOG.rst",
-+# r'/(?P<rev>[0-9]+\.[0-9]+(\.[0-9]+)?)\s+\([0-9]+-[0-9]{2}-[0-9]{2}\)\n--+\n/',
-+# idx=lambda m: m.start(1)
-+# )
-+#publish = stdout
-+
-+
-+## ``revs`` is a list of callable or a list of string
-+##
-+## callable will be called to resolve as strings and allow dynamical
-+## computation of these. The result will be used as revisions for
-+## gitchangelog (as if directly stated on the command line). This allows
-+## to filter exaclty which commits will be read by gitchangelog.
-+##
-+## To get a full documentation on the format of these strings, please
-+## refer to the ``git rev-list`` arguments. There are many examples.
-+##
-+## Using callables is especially useful, for instance, if you
-+## are using gitchangelog to generate incrementally your changelog.
-+##
-+## Some helpers are provided, you can use them::
-+##
-+## - FileFirstRegexMatch(file, pattern): will return a callable that will
-+## return the first string match for the given pattern in the given file.
-+## If you use named sub-patterns in your regex pattern, it'll output only
-+## the string matching the regex pattern named "rev".
-+##
-+## - Caret(rev): will return the rev prefixed by a "^", which is a
-+## way to remove the given revision and all its ancestor.
-+##
-+## Please note that if you provide a rev-list on the command line, it'll
-+## replace this value (which will then be ignored).
-+##
-+## If empty, then ``gitchangelog`` will act as it had to generate a full
-+## changelog.
-+##
-+## The default is to use all commits to make the changelog.
-+#revs = ["^1.0.3", ]
-+#revs = [
-+# Caret(
-+# FileFirstRegexMatch(
-+# "CHANGELOG.rst",
-+# r"(?P<rev>[0-9]+\.[0-9]+(\.[0-9]+)?)\s+\([0-9]+-[0-9]{2}-[0-9]{2}\)\n--+\n")),
-+# "HEAD"
-+#]
-+revs = []
-diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
-new file mode 100644
-index 0000000..356dd2c
---- /dev/null
-+++ b/.github/workflows/ci.yml
-@@ -0,0 +1,73 @@
-+# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
-+# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
-+
-+name: ci
-+
-+on:
-+ push:
-+ branches: [ master ]
-+ pull_request:
-+ branches: [ master ]
-+
-+jobs:
-+ build:
-+
-+ runs-on: ${{ matrix.os }}
-+ defaults:
-+ run:
-+ shell: bash
-+ env:
-+ OS: ${{ matrix.os }}
-+ PYTHON: ${{ matrix.python-version }}
-+ PYTHONIOENCODING: utf-8
-+ PIP_DOWNLOAD_CACHE: ${{ github.workspace }}/../.pip_download_cache
-+ strategy:
-+ fail-fast: false
-+ matrix:
-+ os: [ubuntu-20.04, macos-latest, windows-latest]
-+ python-version: [3.6, 3.7, 3.8, 3.9]
-+ steps:
-+ - name: Set git crlf/eol
-+ run: |
-+ git config --global core.autocrlf false
-+ git config --global core.eol lf
-+
-+ - uses: actions/checkout@v2
-+ with:
-+ submodules: True
-+
-+ - name: Set up Python ${{ matrix.python-version }}
-+ uses: actions/setup-python@v2
-+ with:
-+ python-version: ${{ matrix.python-version }}
-+
-+ - name: Install dependencies
-+ run: |
-+ python -m pip install --upgrade pip
-+ pip install tox tox-gh-actions
-+
-+ - name: Run tests with coverage
-+ run: |
-+ tox
-+ env:
-+ PLATFORM: ${{ matrix.os }}
-+
-+ - name: Upload coverage to Codecov
-+ uses: codecov/codecov-action@v1
-+ with:
-+ env_vars: OS,PYTHON
-+
-+ - name: Test with specs and pystache-test
-+ run: |
-+ tox -e setup . ext/spec/specs
-+
-+ - name: Check pkg builds
-+ run: |
-+ tox -e deploy
-+
-+ - name: Check docs
-+ if: runner.os == 'Linux'
-+ run: |
-+ sudo apt-get -qq update
-+ sudo apt-get install -y pandoc
-+ tox -e docs
-diff --git a/.github/workflows/conda.yml b/.github/workflows/conda.yml
-new file mode 100644
-index 0000000..261f9ad
---- /dev/null
-+++ b/.github/workflows/conda.yml
-@@ -0,0 +1,55 @@
-+name: Conda
-+
-+on:
-+ workflow_dispatch:
-+ pull_request:
-+ push:
-+ branches:
-+ - master
-+
-+jobs:
-+ build:
-+ strategy:
-+ fail-fast: false
-+ matrix:
-+ platform: [ubuntu-18.04, windows-latest, macos-latest]
-+ python-version: [3.6, 3.7, 3.8, 3.9]
-+
-+ runs-on: ${{ matrix.platform }}
-+
-+ # The setup-miniconda action needs this to activate miniconda
-+ defaults:
-+ run:
-+ shell: "bash -l {0}"
-+
-+ steps:
-+ - uses: actions/checkout@v2
-+ with:
-+ fetch-depth: 0
-+
-+ - name: Cache conda
-+ uses: actions/cache@v1
-+ with:
-+ path: ~/conda_pkgs_dir
-+ key: ${{matrix.os}}-conda-pkgs-${{hashFiles('**/conda/meta.yaml')}}
-+
-+ - name: Get conda
-+ uses: conda-incubator/setup-miniconda@v2
-+ with:
-+ python-version: ${{ matrix.python-version }}
-+ channels: conda-forge
-+ channel-priority: strict
-+ use-only-tar-bz2: true
-+ auto-activate-base: true
-+
-+ - name: Prepare
-+ run: conda install conda-build conda-verify
-+
-+ - name: Build
-+ run: conda build conda
-+
-+ - name: Install
-+ run: conda install -c ${CONDA_PREFIX}/conda-bld/ pystache
-+
-+ - name: Test
-+ run: python test_pystache.py
-diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
-new file mode 100644
-index 0000000..f33c4b5
---- /dev/null
-+++ b/.github/workflows/release.yml
-@@ -0,0 +1,94 @@
-+name: Release
-+
-+on:
-+ push:
-+ # release on tag push
-+ tags:
-+ - '*'
-+
-+jobs:
-+ wheels:
-+
-+ runs-on: ${{ matrix.os }}
-+ defaults:
-+ run:
-+ shell: bash
-+ env:
-+ PYTHONIOENCODING: utf-8
-+ strategy:
-+ fail-fast: false
-+ matrix:
-+ os: [ubuntu-18.04, macos-latest, windows-latest]
-+ python-version: [3.6, 3.7, 3.8, 3.9]
-+ exclude:
-+ - os: windows-latest
-+ python-version: 2.7
-+
-+ steps:
-+ - name: Set git crlf/eol
-+ run: |
-+ git config --global core.autocrlf false
-+ git config --global core.eol lf
-+
-+ - uses: actions/checkout@v2
-+ with:
-+ fetch-depth: 0
-+
-+ - name: Set up Python ${{ matrix.python-version }}
-+ uses: actions/setup-python@v2
-+ with:
-+ python-version: ${{ matrix.python-version }}
-+
-+ - name: Install dependencies
-+ run: |
-+ python -m pip install --upgrade pip wheel
-+ pip install tox tox-gh-actions
-+
-+ - name: Build dist pkgs
-+ run: |
-+ tox -e deploy
-+
-+ - name: Upload artifacts
-+ if: matrix.python-version == 3.7 && runner.os == 'Linux'
-+ uses: actions/upload-artifact@v2
-+ with:
-+ name: wheels
-+ path: ./dist/*.whl
-+
-+ create_release:
-+ name: Create Release
-+ needs: [wheels]
-+ runs-on: ubuntu-18.04
-+
-+ steps:
-+ - name: Get version
-+ id: get_version
-+ run: |
-+ echo "VERSION=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV
-+ echo ${{ env.VERSION }}
-+
-+ - uses: actions/checkout@v2
-+ with:
-+ fetch-depth: 0
-+
-+ # download all artifacts to project dir
-+ - uses: actions/download-artifact@v2
-+
-+ - name: Generate changes file
-+ uses: sarnold/gitchangelog-action@master
-+ with:
-+ github_token: ${{ secrets.GITHUB_TOKEN}}
-+
-+ - name: Create release
-+ id: create_release
-+ uses: softprops/action-gh-release@v1
-+ env:
-+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-+ with:
-+ tag_name: ${{ env.VERSION }}
-+ name: Release v${{ env.VERSION }}
-+ body_path: CHANGES.md
-+ draft: false
-+ prerelease: false
-+ files: |
-+ wheels/pystache*.whl
-diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml
-new file mode 100644
-index 0000000..58f0c5e
---- /dev/null
-+++ b/.github/workflows/wheels.yml
-@@ -0,0 +1,82 @@
-+name: Wheels
-+
-+on:
-+ workflow_dispatch:
-+ pull_request:
-+ #push:
-+ #branches: [ master ]
-+
-+jobs:
-+ build:
-+
-+ runs-on: ${{ matrix.os }}
-+ defaults:
-+ run:
-+ shell: bash
-+ env:
-+ PYTHONIOENCODING: utf-8
-+ strategy:
-+ fail-fast: false
-+ matrix:
-+ os: [ubuntu-18.04, macos-latest, windows-latest]
-+ python-version: [3.6, 3.7, 3.8, 3.9]
-+
-+ steps:
-+ - name: Set git crlf/eol
-+ run: |
-+ git config --global core.autocrlf false
-+ git config --global core.eol lf
-+
-+ - uses: actions/checkout@v2
-+ with:
-+ fetch-depth: 0
-+
-+ - name: Set up Python ${{ matrix.python-version }}
-+ uses: actions/setup-python@v2
-+ with:
-+ python-version: ${{ matrix.python-version }}
-+
-+ - name: Install dependencies
-+ run: |
-+ python -m pip install --upgrade pip wheel
-+ pip install tox tox-gh-actions
-+
-+ - name: Build dist pkgs
-+ run: |
-+ tox -e deploy
-+
-+ - name: Upload artifacts
-+ if: matrix.python-version == 3.7 && runner.os == 'Linux'
-+ uses: actions/upload-artifact@v2
-+ with:
-+ name: wheels
-+ path: ./dist/*.whl
-+
-+ check_artifact:
-+ name: Check wheel artifact
-+ needs: [build]
-+ runs-on: ${{ matrix.os }}
-+ defaults:
-+ run:
-+ shell: bash
-+ env:
-+ PYTHONIOENCODING: utf-8
-+ strategy:
-+ fail-fast: false
-+ matrix:
-+ os: [ubuntu-18.04, macos-latest, windows-latest]
-+ python-version: [3.6, 3.8, 3.9]
-+
-+ steps:
-+ - name: Set up Python ${{ matrix.python-version }}
-+ uses: actions/setup-python@v2
-+ with:
-+ python-version: ${{ matrix.python-version }}
-+
-+ # download all artifacts to project dir
-+ - uses: actions/download-artifact@v2
-+
-+ - name: Check wheel install
-+ run: |
-+ bash -c 'export WHL=$(ls wheels/*.whl); python -m pip install $WHL'
-+ pystache-test
-diff --git a/.pep8speaks.yml b/.pep8speaks.yml
-new file mode 100644
-index 0000000..e841b66
---- /dev/null
-+++ b/.pep8speaks.yml
-@@ -0,0 +1,15 @@
-+scanner:
-+ linter: flake8 # Other option is pycodestyle
-+
-+no_blank_comment: False # If True, no comment is made on PR without any errors.
-+descending_issues_order: True # If True, PEP 8 issues in message will be displayed in descending order of line numbers in the file
-+
-+[flake8]
-+exclude =
-+ .git,
-+ .github,
-+ __pycache__,
-+ build,
-+ dist
-+
-+max-line-length = 110
-diff --git a/HISTORY.md b/HISTORY.md
-index e5b7638..60b6308 100644
---- a/HISTORY.md
-+++ b/HISTORY.md
-@@ -1,7 +1,42 @@
- History
- =======
-
--**Note:** Official support for Python 2.4 will end with Pystache version 0.6.0.
-+**Note:** Official support for Python 2.7 will end with Pystache version 0.6.0.
-+
-+0.6.0 (2021-03-04)
-+------------------
-+
-+- Bump spec versions to latest => v1.1.3
-+- Modernize python and CI tools, update docs/doctests
-+- Update unicode conversion test for py3-only
-+- Add pep8speaks cfg, cleanup warnings
-+- Remove superfluous setup test/unused imports
-+- Add conda recipe/CI build
-+
-+0.5.6 (2021-02-28)
-+------------------
-+
-+- Use correct wheel name in release workflow, limit wheels
-+- Add install check/test of downloaded wheel
-+- Update/add ci workflows and tox cfg, bump to next dev0 version
-+
-+0.5.5 (2020-12-16)
-+------------------
-+
-+- fix document processing, update pandoc args and history
-+- add release.yml to CI, test env settings
-+- fix bogus commit message, update versions and tox cf
-+- add post-test steps for building pkgs with/without doc updates
-+- add CI build check, fix MANIFEST.in pruning
-+
-+0.5.4-2 (2020-11-09)
-+--------------------
-+
-+- Merge pull request #1 from sarnold/rebase-up
-+- Bugfix: test_specloader.py: fix test_find__with_directory on other OSs
-+- Bugfix: pystache/loader.py: remove stray windows line-endings
-+- fix crufty (and insecure) http urls
-+- Bugfix: modernize python versions (keep py27) and fix spec_test load cmd
-
- 0.5.4 (2014-07-11)
- ------------------
-diff --git a/MANIFEST.in b/MANIFEST.in
-index bdc64bf..1593143 100644
---- a/MANIFEST.in
-+++ b/MANIFEST.in
-@@ -1,7 +1,4 @@
--include README.md
--include HISTORY.md
--include LICENSE
--include TODO.md
-+include README.md HISTORY.md TODO.md LICENSE
- include setup_description.rst
- include tox.ini
- include test_pystache.py
-@@ -11,3 +8,6 @@ recursive-include pystache/tests *.mustache *.txt
- # We deliberately exclude the gh/ directory because it contains copies
- # of resources needed only for the web page hosted on GitHub (via the
- # gh-pages branch).
-+exclude *.ini *travis*
-+prune gh
-+prune .git*
-diff --git a/README.md b/README.md
-index 54a9608..1203b7a 100644
---- a/README.md
-+++ b/README.md
-@@ -10,11 +10,25 @@ Pystache
- <!-- -->
- <!-- We leave the leading brackets empty here. Otherwise, unwanted -->
- <!-- caption text shows up in the reST version converted by pandoc. -->
--![](http://defunkt.github.com/pystache/images/logo_phillips.png "mustachioed, monocled snake by David Phillips")
-+[![ci](https://github.com/sarnold/pystache/actions/workflows/ci.yml/badge.svg)](https://github.com/sarnold/pystache/actions/workflows/ci.yml)
-+[![Conda](https://github.com/sarnold/pystache/actions/workflows/conda.yml/badge.svg)](https://github.com/sarnold/pystache/actions/workflows/conda.yml)
-+[![Wheels](https://github.com/sarnold/pystache/actions/workflows/wheels.yml/badge.svg)](https://github.com/sarnold/pystache/actions/workflows/wheels.yml)
-+[![Release](https://github.com/sarnold/pystache/actions/workflows/release.yml/badge.svg)](https://github.com/sarnold/pystache/actions/workflows/release.yml)
-+[![Python](https://img.shields.io/badge/python-3.6+-blue.svg)](https://www.python.org/downloads/)
-
--![](https://secure.travis-ci.org/defunkt/pystache.png "Travis CI current build status")
-+[![Latest release](https://img.shields.io/github/v/release/sarnold/pystache?include_prereleases)](https://github.com/sarnold/pystache/releases/latest)
-+[![License](https://img.shields.io/github/license/sarnold/pystache)](https://github.com/sarnold/pystache/blob/master/LICENSE)
-+[![Maintainability](https://api.codeclimate.com/v1/badges/a8fa1bf4638bfc6581b6/maintainability)](https://codeclimate.com/github/sarnold/pystache/maintainability)
-+[![codecov](https://codecov.io/gh/sarnold/pystache/branch/master/graph/badge.svg?token=5PZNMZBI6K)](https://codecov.io/gh/sarnold/pystache)
-
--[Pystache](http://defunkt.github.com/pystache) is a Python
-+
-+
-+This updated fork of Pystache is currently tested on Python 3.6+ and in
-+Conda, on Linux, Macos, and Windows (Python 2.7 support has been removed).
-+
-+![](gh/images/logo_phillips_small.png "mustachioed, monocled snake by David Phillips")
-+
-+[Pystache](http://sarnold.github.com/pystache) is a Python
- implementation of [Mustache](http://mustache.github.com/). Mustache is a
- framework-agnostic, logic-free templating system inspired by
- [ctemplate](http://code.google.com/p/google-ctemplate/) and
-@@ -27,10 +41,10 @@ provides a good introduction to Mustache's syntax. For a more complete
- (and more current) description of Mustache's behavior, see the official
- [Mustache spec](https://github.com/mustache/spec).
-
--Pystache is [semantically versioned](http://semver.org) and can be found
--on [PyPI](http://pypi.python.org/pypi/pystache). This version of
--Pystache passes all tests in [version
--1.1.2](https://github.com/mustache/spec/tree/v1.1.2) of the spec.
-+Pystache is [semantically versioned](http://semver.org) and older versions
-+can still be found on [PyPI](http://pypi.python.org/pypi/pystache). This
-+version of Pystache now passes all tests in [version
-+1.1.3](https://github.com/mustache/spec/tree/v1.1.3) of the spec.
-
-
- Requirements
-@@ -38,41 +52,25 @@ Requirements
-
- Pystache is tested with--
-
--- Python 2.4 (requires simplejson [version
-- 2.0.9](http://pypi.python.org/pypi/simplejson/2.0.9) or earlier)
--- Python 2.5 (requires
-- [simplejson](http://pypi.python.org/pypi/simplejson/))
--- Python 2.6
--- Python 2.7
--- Python 3.1
--- Python 3.2
--- Python 3.3
--- [PyPy](http://pypy.org/)
-+- Python 3.6
-+- Python 3.7
-+- Python 3.8
-+- Python 3.9
-+- Conda (py36-py39)
-
- [Distribute](http://packages.python.org/distribute/) (the setuptools fork)
--is recommended over [setuptools](http://pypi.python.org/pypi/setuptools),
--and is required in some cases (e.g. for Python 3 support).
--If you use [pip](http://www.pip-installer.org/), you probably already satisfy
--this requirement.
-+is no longer required over [setuptools](http://pypi.python.org/pypi/setuptools),
-+as the current packaging is now PEP517-compliant.
-
- JSON support is needed only for the command-line interface and to run
--the spec tests. We require simplejson for earlier versions of Python
--since Python's [json](http://docs.python.org/library/json.html) module
--was added in Python 2.6.
--
--For Python 2.4 we require an earlier version of simplejson since
--simplejson stopped officially supporting Python 2.4 in simplejson
--version 2.1.0. Earlier versions of simplejson can be installed manually,
--as follows:
-+the spec tests; PyYAML can still be used (see the Develop section).
-
-- pip install 'simplejson<2.1.0'
--
--Official support for Python 2.4 will end with Pystache version 0.6.0.
-+Official support for Python 2 will end with Pystache version 0.6.0.
-
- Install It
- ----------
-
-- pip install pystache
-+ pip install -U pystache -f https://github.com/sarnold/pystache/releases/
-
- And test it--
-
-@@ -85,12 +83,12 @@ Use It
- ------
-
- >>> import pystache
-- >>> print pystache.render('Hi {{person}}!', {'person': 'Mom'})
-+ >>> print(pystache.render('Hi {{person}}!', {'person': 'Mom'}))
- Hi Mom!
-
- You can also create dedicated view classes to hold your view logic.
-
--Here's your view class (in .../examples/readme.py):
-+Here's your view class (in ../pystache/tests/examples/readme.py):
-
- class SayHello(object):
- def to(self):
-@@ -109,7 +107,7 @@ directory as your class definition):
- Pull it together:
-
- >>> renderer = pystache.Renderer()
-- >>> print renderer.render(hello)
-+ >>> print(renderer.render(hello))
- Hello, Pizza!
-
- For greater control over rendering (e.g. to specify a custom template
-@@ -117,22 +115,22 @@ directory), use the `Renderer` class like above. One can pass attributes
- to the Renderer class constructor or set them on a Renderer instance. To
- customize template loading on a per-view basis, subclass `TemplateSpec`.
- See the docstrings of the
--[Renderer](https://github.com/defunkt/pystache/blob/master/pystache/renderer.py)
-+[Renderer](https://github.com/sarnold/pystache/blob/master/pystache/renderer.py)
- class and
--[TemplateSpec](https://github.com/defunkt/pystache/blob/master/pystache/template_spec.py)
-+[TemplateSpec](https://github.com/sarnold/pystache/blob/master/pystache/template_spec.py)
- class for more information.
-
- You can also pre-parse a template:
-
- >>> parsed = pystache.parse(u"Hey {{#who}}{{.}}!{{/who}}")
-- >>> print parsed
-- [u'Hey ', _SectionNode(key=u'who', index_begin=12, index_end=18, parsed=[_EscapeNode(key=u'.'), u'!'])]
-+ >>> print(parsed)
-+ ['Hey ', _SectionNode(key='who', index_begin=12, index_end=18, parsed=[_EscapeNode(key='.'), '!'])]
-
- And then:
-
-- >>> print renderer.render(parsed, {'who': 'Pops'})
-+ >>> print(renderer.render(parsed, {'who': 'Pops'}))
- Hey Pops!
-- >>> print renderer.render(parsed, {'who': 'you'})
-+ >>> print(renderer.render(parsed, {'who': 'you'}))
- Hey you!
-
- Python 3
-@@ -194,15 +192,16 @@ To test from a source distribution (without installing)--
- python test_pystache.py
-
- To test Pystache with multiple versions of Python (with a single
--command!), you can use [tox](http://pypi.python.org/pypi/tox):
-+command!) and different platforms, you can use [tox](http://pypi.python.org/pypi/tox):
-+
-+ pip install tox
-+ tox -e setup
-
-- pip install 'virtualenv<1.8' # Version 1.8 dropped support for Python 2.4.
-- pip install 'tox<1.4' # Version 1.4 dropped support for Python 2.4.
-- tox
-+To run tests on multiple versions with coverage, run:
-
--If you do not have all Python versions listed in `tox.ini`--
-+ tox -e py38-linux,py39-linux # for example
-
-- tox -e py26,py32 # for example
-+(substitute your platform above, eg, macos or windows)
-
- The source distribution tests also include doctests and tests from the
- Mustache spec. To include tests from the Mustache spec in your test
-@@ -217,57 +216,33 @@ parses the json files. To install PyYAML--
-
- pip install pyyaml
-
-+Once the submodule is available, you can run the full test set with:
-+
-+ tox -e setup . ext/spec/specs
-+
- To run a subset of the tests, you can use
- [nose](http://somethingaboutorange.com/mrl/projects/nose/0.11.1/testing.html):
-
- pip install nose
- nosetests --tests pystache/tests/test_context.py:GetValueTests.test_dictionary__key_present
-
--### Using Python 3 with Pystache from source
--
--Pystache is written in Python 2 and must be converted to Python 3 prior to
--using it with Python 3. The installation process (and tox) do this
--automatically.
-
--To convert the code to Python 3 manually (while using Python 3)--
-+Mailing List (old)
-+------------------
-
-- python setup.py build
--
--This writes the converted code to a subdirectory called `build`.
--By design, Python 3 builds
--[cannot](https://bitbucket.org/tarek/distribute/issue/292/allow-use_2to3-with-python-2)
--be created from Python 2.
--
--To convert the code without using setup.py, you can use
--[2to3](http://docs.python.org/library/2to3.html) as follows (two steps)--
--
-- 2to3 --write --nobackups --no-diffs --doctests_only pystache
-- 2to3 --write --nobackups --no-diffs pystache
--
--This converts the code (and doctests) in place.
--
--To `import pystache` from a source distribution while using Python 3, be
--sure that you are importing from a directory containing a converted
--version of the code (e.g. from the `build` directory after converting),
--and not from the original (unconverted) source directory. Otherwise, you will
--get a syntax error. You can help prevent this by not running the Python
--IDE from the project directory when importing Pystache while using Python 3.
--
--
--Mailing List
--------------
--
--There is a [mailing list](http://librelist.com/browser/pystache/). Note
-+There is(was) a [mailing list](http://librelist.com/browser/pystache/). Note
- that there is a bit of a delay between posting a message and seeing it
- appear in the mailing list archive.
-
- Credits
- -------
-
-- >>> context = { 'author': 'Chris Wanstrath', 'maintainer': 'Chris Jerdonek' }
-- >>> print pystache.render("Author: {{author}}\nMaintainer: {{maintainer}}", context)
-+ >>> import pystache
-+ >>> context = { 'author': 'Chris Wanstrath', 'maintainer': 'Chris Jerdonek','refurbisher': 'Steve Arnold' }
-+ >>> print(pystache.render("Author: {{author}}\nMaintainer: {{maintainer}}\nRefurbisher: {{refurbisher}}", context))
- Author: Chris Wanstrath
- Maintainer: Chris Jerdonek
-+ Refurbisher: Steve Arnold
-
- Pystache logo by [David Phillips](http://davidphillips.us/) is licensed
- under a [Creative Commons Attribution-ShareAlike 3.0 Unported
-diff --git a/TODO.md b/TODO.md
-index cd82417..76853a4 100644
---- a/TODO.md
-+++ b/TODO.md
-@@ -6,11 +6,10 @@ In development branch:
- * Figure out a way to suppress center alignment of images in reST output.
- * Add a unit test for the change made in 7ea8e7180c41. This is with regard
- to not requiring spec tests when running tests from a downloaded sdist.
--* End support for Python 2.4.
--* Add Python 3.3 to tox file (after deprecating 2.4).
-+* End support for Python 2.7 (done as of 03/03/21 - SA)
-+* Release 0.6.0 on github, make a pypi account (SA)
- * Turn the benchmarking script at pystache/tests/benchmark.py into a command
- in pystache/commands, or make it a subcommand of one of the existing
- commands (i.e. using a command argument).
- * Provide support for logging in at least one of the commands.
--* Make sure command parsing to pystache-test doesn't break with Python 2.4 and earlier.
- * Combine pystache-test with the main command.
-diff --git a/conda/meta.yaml b/conda/meta.yaml
-new file mode 100644
-index 0000000..e7f4fd9
---- /dev/null
-+++ b/conda/meta.yaml
-@@ -0,0 +1,50 @@
-+{% set name = "pystache" %}
-+{% set version = "0.6.0.dev0" %}
-+
-+package:
-+ name: {{ name|lower }}
-+ version: {{ version }}
-+
-+source:
-+ path: ..
-+
-+build:
-+ number: 0
-+ script: {{ PYTHON }} -m pip install . --no-deps --ignore-installed -vvv
-+ noarch: python
-+ entry_points:
-+ - pystache = pystache.commands.render:main
-+ - pystache-test = pystache.commands.test:main
-+
-+requirements:
-+ build:
-+ - python
-+ - setuptools
-+
-+ run:
-+ - python
-+
-+test:
-+ imports:
-+ - pystache
-+ - pystache.commands
-+ - pystache.tests
-+ - pystache.tests.data
-+ - pystache.tests.data.locator
-+ - pystache.tests.examples
-+
-+ commands:
-+ - pystache --help
-+ - pystache-test
-+
-+
-+about:
-+ home: https://github.com/sarnold/pystache
-+ license: MIT
-+ license_family: MIT
-+ license_file: LICENSE
-+ summary: Mustache for Python
-+
-+extra:
-+ recipe-maintainers:
-+ - sarnold
-diff --git a/pyproject.toml b/pyproject.toml
-new file mode 100644
-index 0000000..2f21011
---- /dev/null
-+++ b/pyproject.toml
-@@ -0,0 +1,3 @@
-+[build-system]
-+requires = ["setuptools>=40.8.0", "wheel"]
-+build-backend = "setuptools.build_meta"
-diff --git a/pystache/__init__.py b/pystache/__init__.py
-index 4cf2434..5edc1c5 100644
---- a/pystache/__init__.py
-+++ b/pystache/__init__.py
-@@ -10,4 +10,4 @@ from pystache.init import parse, render, Renderer, TemplateSpec
-
- __all__ = ['parse', 'render', 'Renderer', 'TemplateSpec']
-
--__version__ = '0.5.4' # Also change in setup.py.
-+__version__ = '0.6.0'
-diff --git a/pystache/commands/render.py b/pystache/commands/render.py
-index 1a9c309..9c913e7 100644
---- a/pystache/commands/render.py
-+++ b/pystache/commands/render.py
-@@ -22,7 +22,7 @@ except:
- from sys import exc_info
- ex_type, ex_value, tb = exc_info()
- new_ex = Exception("%s: %s" % (ex_type.__name__, ex_value))
-- raise new_ex.__class__, new_ex, tb
-+ raise new_ex.__class__(new_ex).with_traceback(tb)
-
- # The optparse module is deprecated in Python 2.7 in favor of argparse.
- # However, argparse is not available in Python 2.6 and earlier.
-@@ -88,7 +88,7 @@ def main(sys_argv=sys.argv):
- context = json.loads(context)
-
- rendered = renderer.render(template, context)
-- print rendered
-+ print(rendered)
-
-
- if __name__=='__main__':
-diff --git a/pystache/common.py b/pystache/common.py
-index fb266dd..0e9b091 100644
---- a/pystache/common.py
-+++ b/pystache/common.py
-@@ -5,17 +5,12 @@ Exposes functionality needed throughout the project.
-
- """
-
--from sys import version_info
-
- def _get_string_types():
-- # TODO: come up with a better solution for this. One of the issues here
-- # is that in Python 3 there is no common base class for unicode strings
-- # and byte strings, and 2to3 seems to convert all of "str", "unicode",
-- # and "basestring" to Python 3's "str".
-- if version_info < (3, ):
-- return basestring
-- # The latter evaluates to "bytes" in Python 3 -- even after conversion by 2to3.
-- return (unicode, type(u"a".encode('utf-8')))
-+ """
-+ Return the Python3 string type (no more python2)
-+ """
-+ return (str, type("a".encode('utf-8')))
-
-
- _STRING_TYPES = _get_string_types()
-diff --git a/pystache/defaults.py b/pystache/defaults.py
-index bcfdf4c..2fab0e0 100644
---- a/pystache/defaults.py
-+++ b/pystache/defaults.py
-@@ -39,7 +39,7 @@ STRING_ENCODING = sys.getdefaultencoding()
- FILE_ENCODING = sys.getdefaultencoding()
-
- # The delimiters to start with when parsing.
--DELIMITERS = (u'{{', u'}}')
-+DELIMITERS = ('{{', '}}')
-
- # How to handle missing tags when rendering a template.
- MISSING_TAGS = MissingTags.ignore
-diff --git a/pystache/loader.py b/pystache/loader.py
-index d4a7e53..ea01d17 100644
---- a/pystache/loader.py
-+++ b/pystache/loader.py
-@@ -6,6 +6,7 @@ This module provides a Loader class for locating and reading templates.
- """
-
- import os
-+import platform
- import sys
-
- from pystache import common
-@@ -24,7 +25,7 @@ def _make_to_unicode():
- """
- if encoding is None:
- encoding = defaults.STRING_ENCODING
-- return unicode(s, encoding, defaults.DECODE_ERRORS)
-+ return str(s, encoding, defaults.DECODE_ERRORS)
- return to_unicode
-
-
-@@ -86,7 +87,7 @@ class Loader(object):
- def _make_locator(self):
- return Locator(extension=self.extension)
-
-- def unicode(self, s, encoding=None):
-+ def str(self, s, encoding=None):
- """
- Convert a string to unicode using the given encoding, and return it.
-
-@@ -104,8 +105,8 @@ class Loader(object):
- Defaults to None.
-
- """
-- if isinstance(s, unicode):
-- return unicode(s)
-+ if isinstance(s, str):
-+ return str(s)
-
- return self.to_unicode(s, encoding)
-
-@@ -118,8 +119,9 @@ class Loader(object):
-
- if encoding is None:
- encoding = self.file_encoding
--
-- return self.unicode(b, encoding)
-+ if platform.system() == "Windows":
-+ return self.str(b, encoding).replace('\r', '')
-+ return self.str(b, encoding)
-
- def load_file(self, file_name):
- """
-diff --git a/pystache/parsed.py b/pystache/parsed.py
-index 372d96c..75d417d 100644
---- a/pystache/parsed.py
-+++ b/pystache/parsed.py
-@@ -41,10 +41,10 @@ class ParsedTemplate(object):
- """
- # We avoid use of the ternary operator for Python 2.4 support.
- def get_unicode(node):
-- if type(node) is unicode:
-+ if type(node) is str:
- return node
- return node.render(engine, context)
-- parts = map(get_unicode, self._parse_tree)
-+ parts = list(map(get_unicode, self._parse_tree))
- s = ''.join(parts)
-
-- return unicode(s)
-+ return str(s)
-diff --git a/pystache/parser.py b/pystache/parser.py
-index c6a171f..1afd50a 100644
---- a/pystache/parser.py
-+++ b/pystache/parser.py
-@@ -11,8 +11,8 @@ from pystache import defaults
- from pystache.parsed import ParsedTemplate
-
-
--END_OF_LINE_CHARACTERS = [u'\r', u'\n']
--NON_BLANK_RE = re.compile(ur'^(.)', re.M)
-+END_OF_LINE_CHARACTERS = ['\r', '\n']
-+NON_BLANK_RE = re.compile(r'^(.)', re.M)
-
-
- # TODO: add some unit tests for this.
-@@ -30,12 +30,12 @@ def parse(template, delimiters=None):
-
- Examples:
-
-- >>> parsed = parse(u"Hey {{#who}}{{name}}!{{/who}}")
-- >>> print str(parsed).replace('u', '') # This is a hack to get the test to pass both in Python 2 and 3.
-+ >>> parsed = parse("Hey {{#who}}{{name}}!{{/who}}")
-+ >>> print(str(parsed).replace('u', '')) # This is an old hack.
- ['Hey ', _SectionNode(key='who', index_begin=12, index_end=21, parsed=[_EscapeNode(key='name'), '!'])]
-
- """
-- if type(template) is not unicode:
-+ if type(template) is not str:
- raise Exception("Template is not unicode: %s" % type(template))
- parser = _Parser(delimiters)
- return parser.parse(template)
-@@ -94,7 +94,7 @@ class _CommentNode(object):
- return _format(self)
-
- def render(self, engine, context):
-- return u''
-+ return ''
-
-
- class _ChangeNode(object):
-@@ -106,7 +106,7 @@ class _ChangeNode(object):
- return _format(self)
-
- def render(self, engine, context):
-- return u''
-+ return ''
-
-
- class _EscapeNode(object):
-@@ -147,7 +147,7 @@ class _PartialNode(object):
- def render(self, engine, context):
- template = engine.resolve_partial(self.key)
- # Indent before rendering.
-- template = re.sub(NON_BLANK_RE, self.indent + ur'\1', template)
-+ template = re.sub(NON_BLANK_RE, self.indent + r'\1', template)
-
- return engine.render(template, context)
-
-@@ -168,7 +168,7 @@ class _InvertedNode(object):
- # Note that lambdas are considered truthy for inverted sections
- # per the spec.
- if data:
-- return u''
-+ return ''
- return self.parsed_section.render(engine, context)
-
-
-@@ -218,7 +218,7 @@ class _SectionNode(object):
- parts.append(self.parsed.render(engine, context))
- context.pop()
-
-- return unicode(''.join(parts))
-+ return str(''.join(parts))
-
-
- class _Parser(object):
-diff --git a/pystache/renderengine.py b/pystache/renderengine.py
-index c797b17..2f1e341 100644
---- a/pystache/renderengine.py
-+++ b/pystache/renderengine.py
-@@ -160,7 +160,7 @@ class RenderEngine(object):
- if not is_string(val):
- # In case the template is an integer, for example.
- val = self.to_str(val)
-- if type(val) is not unicode:
-+ if type(val) is not str:
- val = self.literal(val)
- return self.render(val, context, delimiters)
-
-diff --git a/pystache/renderer.py b/pystache/renderer.py
-index ff6a90c..064f040 100644
---- a/pystache/renderer.py
-+++ b/pystache/renderer.py
-@@ -32,7 +32,7 @@ class Renderer(object):
- >>> partials = {'partial': 'Hello, {{thing}}!'}
- >>> renderer = Renderer(partials=partials)
- >>> # We apply print to make the test work in Python 3 after 2to3.
-- >>> print renderer.render('{{>partial}}', {'thing': 'world'})
-+ >>> print(renderer.render('{{>partial}}', {'thing': 'world'}))
- Hello, world!
-
- To customize string coercion (e.g. to render False values as ''), one can
-@@ -130,7 +130,7 @@ class Renderer(object):
- if string_encoding is None:
- string_encoding = defaults.STRING_ENCODING
-
-- if isinstance(search_dirs, basestring):
-+ if isinstance(search_dirs, str):
- search_dirs = [search_dirs]
-
- self._context = None
-@@ -177,16 +177,16 @@ class Renderer(object):
- """
- # We type-check to avoid "TypeError: decoding Unicode is not supported".
- # We avoid the Python ternary operator for Python 2.4 support.
-- if isinstance(s, unicode):
-+ if isinstance(s, str):
- return s
-- return self.unicode(s)
-+ return self.str(s)
-
- def _to_unicode_hard(self, s):
- """
- Convert a basestring to a string with type unicode (not subclass).
-
- """
-- return unicode(self._to_unicode_soft(s))
-+ return str(self._to_unicode_soft(s))
-
- def _escape_to_unicode(self, s):
- """
-@@ -195,9 +195,9 @@ class Renderer(object):
- Returns a unicode string (not subclass).
-
- """
-- return unicode(self.escape(self._to_unicode_soft(s)))
-+ return str(self.escape(self._to_unicode_soft(s)))
-
-- def unicode(self, b, encoding=None):
-+ def str(self, b, encoding=None):
- """
- Convert a byte string to unicode, using string_encoding and decode_errors.
-
-@@ -222,7 +222,7 @@ class Renderer(object):
-
- # TODO: Wrap UnicodeDecodeErrors with a message about setting
- # the string_encoding and decode_errors attributes.
-- return unicode(b, encoding, self.decode_errors)
-+ return str(b, encoding, self.decode_errors)
-
- def _make_loader(self):
- """
-@@ -230,7 +230,7 @@ class Renderer(object):
-
- """
- return Loader(file_encoding=self.file_encoding, extension=self.file_extension,
-- to_unicode=self.unicode, search_dirs=self.search_dirs)
-+ to_unicode=self.str, search_dirs=self.search_dirs)
-
- def _make_load_template(self):
- """
-@@ -299,7 +299,7 @@ class Renderer(object):
- try:
- return load_partial(name)
- except TemplateNotFoundError:
-- return u''
-+ return ''
-
- return resolve_partial
-
-@@ -316,7 +316,7 @@ class Renderer(object):
- try:
- return context_get(stack, name)
- except KeyNotFoundError:
-- return u''
-+ return ''
-
- return resolve_context
-
-diff --git a/pystache/specloader.py b/pystache/specloader.py
-index 3a77d4c..a82d52a 100644
---- a/pystache/specloader.py
-+++ b/pystache/specloader.py
-@@ -83,7 +83,7 @@ class SpecLoader(object):
-
- """
- if spec.template is not None:
-- return self.loader.unicode(spec.template, spec.template_encoding)
-+ return self.loader.str(spec.template, spec.template_encoding)
-
- path = self._find(spec)
-
-diff --git a/pystache/tests/benchmark.py b/pystache/tests/benchmark.py
-index d46e973..6cb54f8 100755
---- a/pystache/tests/benchmark.py
-+++ b/pystache/tests/benchmark.py
-@@ -13,6 +13,13 @@ tests/benchmark.py 10000
- import sys
- from timeit import Timer
-
-+try:
-+ import chevron as pystache
-+ print('Using module: chevron')
-+except (ImportError):
-+ import pystache
-+ print('Using module: pystache')
-+
- import pystache
-
- # TODO: make the example realistic.
-@@ -76,17 +83,17 @@ def main(sys_argv):
- args = sys_argv[1:]
- count = int(args[0])
-
-- print "Benchmarking: %sx" % count
-- print
-+ print("Benchmarking: %sx" % count)
-+ print()
-
- for example in examples:
-
- test = make_test_function(example)
-
- t = Timer(test,)
-- print min(t.repeat(repeat=3, number=count))
-+ print(min(t.repeat(repeat=3, number=count)))
-
-- print "Done"
-+ print("Done")
-
-
- if __name__ == '__main__':
-diff --git a/pystache/tests/common.py b/pystache/tests/common.py
-index 222e14f..12b76b5 100644
---- a/pystache/tests/common.py
-+++ b/pystache/tests/common.py
-@@ -72,8 +72,8 @@ def _find_files(root_dir, should_include):
- # http://docs.python.org/library/os.html#os.walk
- for dir_path, dir_names, file_names in os.walk(root_dir):
- new_paths = [os.path.join(dir_path, file_name) for file_name in file_names]
-- new_paths = filter(is_module, new_paths)
-- new_paths = filter(should_include, new_paths)
-+ new_paths = list(filter(is_module, new_paths))
-+ new_paths = list(filter(should_include, new_paths))
- paths.extend(new_paths)
-
- return paths
-@@ -183,7 +183,7 @@ class AssertExceptionMixin:
- try:
- callable(*args, **kwds)
- raise Exception("Expected exception: %s: %s" % (exception_type, repr(msg)))
-- except exception_type, err:
-+ except exception_type as err:
- self.assertEqual(str(err), msg)
-
-
-@@ -228,10 +228,10 @@ class Attachable(object):
- """
- def __init__(self, **kwargs):
- self.__args__ = kwargs
-- for arg, value in kwargs.iteritems():
-+ for arg, value in kwargs.items():
- setattr(self, arg, value)
-
- def __repr__(self):
- return "%s(%s)" % (self.__class__.__name__,
- ", ".join("%s=%s" % (k, repr(v))
-- for k, v in self.__args__.iteritems()))
-+ for k, v in self.__args__.items()))
-diff --git a/pystache/tests/examples/unicode_output.py b/pystache/tests/examples/unicode_output.py
-index da0e1d2..7bdea36 100644
---- a/pystache/tests/examples/unicode_output.py
-+++ b/pystache/tests/examples/unicode_output.py
-@@ -8,4 +8,4 @@ TODO: add a docstring.
- class UnicodeOutput(object):
-
- def name(self):
-- return u'Henri Poincaré'
-+ return 'Henri Poincaré'
-diff --git a/pystache/tests/main.py b/pystache/tests/main.py
-index 8af6b2e..17f2fb2 100644
---- a/pystache/tests/main.py
-+++ b/pystache/tests/main.py
-@@ -88,7 +88,7 @@ def main(sys_argv):
-
- """
- # TODO: use logging module
-- print "pystache: running tests: argv: %s" % repr(sys_argv)
-+ print("pystache: running tests: argv: %s" % repr(sys_argv))
-
- should_source_exist = False
- spec_test_dir = None
-@@ -131,11 +131,9 @@ def main(sys_argv):
- module_names = _discover_test_modules(PACKAGE_DIR)
- sys_argv.extend(module_names)
- if project_dir is not None:
-- # Add the current module for unit tests contained here (e.g.
-- # to include SetupTests).
-+ # Add the current module for unit tests contained here
- sys_argv.append(__name__)
-
-- SetupTests.project_dir = project_dir
-
- extra_tests = make_extra_tests(project_dir, spec_test_dir)
- test_program_class = make_test_program_class(extra_tests)
-@@ -166,25 +164,3 @@ def _discover_test_modules(package_dir):
- raise Exception("No unit-test modules found--\n in %s" % package_dir)
-
- return names
--
--
--class SetupTests(TestCase):
--
-- """Tests about setup.py."""
--
-- project_dir = None
--
-- def test_version(self):
-- """
-- Test that setup.py's version matches the package's version.
--
-- """
-- original_path = list(sys.path)
--
-- sys.path.insert(0, self.project_dir)
--
-- try:
-- from setup import VERSION
-- self.assertEqual(VERSION, pystache.__version__)
-- finally:
-- sys.path = original_path
-diff --git a/pystache/tests/spectesting.py b/pystache/tests/spectesting.py
-index ec8a08d..2dd57e8 100644
---- a/pystache/tests/spectesting.py
-+++ b/pystache/tests/spectesting.py
-@@ -37,7 +37,7 @@ except ImportError:
- from sys import exc_info
- ex_type, ex_value, tb = exc_info()
- new_ex = Exception("%s: %s" % (ex_type.__name__, ex_value))
-- raise new_ex.__class__, new_ex, tb
-+ raise new_ex.__class__(new_ex).with_traceback(tb)
- file_extension = 'json'
- parser = json
- else:
-@@ -62,7 +62,7 @@ def get_spec_tests(spec_test_dir):
-
- """
- # TODO: use logging module instead.
-- print "pystache: spec tests: using %s" % _get_parser_info()
-+ print("pystache: spec tests: using %s" % _get_parser_info())
-
- cases = []
-
-@@ -103,7 +103,7 @@ def _read_spec_tests(path):
-
- """
- b = common.read(path)
-- u = unicode(b, encoding=FILE_ENCODING)
-+ u = str(b, encoding=FILE_ENCODING)
- spec_data = parse(u)
- tests = spec_data['tests']
-
-@@ -133,7 +133,7 @@ def _convert_children(node):
- return
- # Otherwise, node is a dict, so attempt the conversion.
-
-- for key in node.keys():
-+ for key in list(node.keys()):
- val = node[key]
-
- if not isinstance(val, dict) or val.get('__tag__') != 'code':
-@@ -158,9 +158,9 @@ def _deserialize_spec_test(data, file_path):
- context = data['data']
- description = data['desc']
- # PyYAML seems to leave ASCII strings as byte strings.
-- expected = unicode(data['expected'])
-+ expected = str(data['expected'])
- # TODO: switch to using dict.get().
-- partials = data.has_key('partials') and data['partials'] or {}
-+ partials = 'partials' in data and data['partials'] or {}
- template = data['template']
- test_name = data['name']
-
-@@ -237,8 +237,8 @@ def parse(u):
- value = loader.construct_mapping(node)
- return eval(value['python'], {})
-
-- yaml.add_constructor(u'!code', code_constructor)
-- return yaml.load(u)
-+ yaml.add_constructor('!code', code_constructor)
-+ return yaml.full_load(u)
-
-
- class SpecTestBase(unittest.TestCase, AssertStringMixin):
-diff --git a/pystache/tests/test___init__.py b/pystache/tests/test___init__.py
-index eae42c1..63d2c3b 100644
---- a/pystache/tests/test___init__.py
-+++ b/pystache/tests/test___init__.py
-@@ -6,9 +6,9 @@ Tests of __init__.py.
- """
-
- # Calling "import *" is allowed only at the module level.
--GLOBALS_INITIAL = globals().keys()
-+GLOBALS_INITIAL = list(globals().keys())
- from pystache import *
--GLOBALS_PYSTACHE_IMPORTED = globals().keys()
-+GLOBALS_PYSTACHE_IMPORTED = list(globals().keys())
-
- import unittest
-
-diff --git a/pystache/tests/test_commands.py b/pystache/tests/test_commands.py
-index 2529d25..34fe8ba 100644
---- a/pystache/tests/test_commands.py
-+++ b/pystache/tests/test_commands.py
-@@ -39,7 +39,7 @@ class CommandsTestCase(unittest.TestCase):
-
- """
- actual = self.callScript("Hi {{thing}}", '{"thing": "world"}')
-- self.assertEqual(actual, u"Hi world\n")
-+ self.assertEqual(actual, "Hi world\n")
-
- def tearDown(self):
- sys.stdout = ORIGINAL_STDOUT
-diff --git a/pystache/tests/test_defaults.py b/pystache/tests/test_defaults.py
-index c78ea7c..5399bb0 100644
---- a/pystache/tests/test_defaults.py
-+++ b/pystache/tests/test_defaults.py
-@@ -31,37 +31,37 @@ class DefaultsConfigurableTestCase(unittest.TestCase, AssertStringMixin):
- self.saved[e] = getattr(pystache.defaults, e)
-
- def tearDown(self):
-- for key, value in self.saved.items():
-+ for key, value in list(self.saved.items()):
- setattr(pystache.defaults, key, value)
-
- def test_tag_escape(self):
- """Test that changes to defaults.TAG_ESCAPE take effect."""
-- template = u"{{foo}}"
-+ template = "{{foo}}"
- context = {'foo': '<'}
- actual = pystache.render(template, context)
-- self.assertString(actual, u"&lt;")
-+ self.assertString(actual, "&lt;")
-
- pystache.defaults.TAG_ESCAPE = lambda u: u
- actual = pystache.render(template, context)
-- self.assertString(actual, u"<")
-+ self.assertString(actual, "<")
-
- def test_delimiters(self):
- """Test that changes to defaults.DELIMITERS take effect."""
-- template = u"[[foo]]{{foo}}"
-+ template = "[[foo]]{{foo}}"
- context = {'foo': 'FOO'}
- actual = pystache.render(template, context)
-- self.assertString(actual, u"[[foo]]FOO")
-+ self.assertString(actual, "[[foo]]FOO")
-
- pystache.defaults.DELIMITERS = ('[[', ']]')
- actual = pystache.render(template, context)
-- self.assertString(actual, u"FOO{{foo}}")
-+ self.assertString(actual, "FOO{{foo}}")
-
- def test_missing_tags(self):
- """Test that changes to defaults.MISSING_TAGS take effect."""
-- template = u"{{foo}}"
-+ template = "{{foo}}"
- context = {}
- actual = pystache.render(template, context)
-- self.assertString(actual, u"")
-+ self.assertString(actual, "")
-
- pystache.defaults.MISSING_TAGS = 'strict'
- self.assertRaises(pystache.context.KeyNotFoundError,
-diff --git a/pystache/tests/test_examples.py b/pystache/tests/test_examples.py
-index 5c9f74d..9f93de3 100644
---- a/pystache/tests/test_examples.py
-+++ b/pystache/tests/test_examples.py
-@@ -7,15 +7,15 @@ TODO: add a docstring.
-
- import unittest
-
--from examples.comments import Comments
--from examples.double_section import DoubleSection
--from examples.escaped import Escaped
--from examples.unescaped import Unescaped
--from examples.template_partial import TemplatePartial
--from examples.delimiters import Delimiters
--from examples.unicode_output import UnicodeOutput
--from examples.unicode_input import UnicodeInput
--from examples.nested_context import NestedContext
-+from .examples.comments import Comments
-+from .examples.double_section import DoubleSection
-+from .examples.escaped import Escaped
-+from .examples.unescaped import Unescaped
-+from .examples.template_partial import TemplatePartial
-+from .examples.delimiters import Delimiters
-+from .examples.unicode_output import UnicodeOutput
-+from .examples.unicode_input import UnicodeInput
-+from .examples.nested_context import NestedContext
- from pystache import Renderer
- from pystache.tests.common import EXAMPLES_DIR
- from pystache.tests.common import AssertStringMixin
-@@ -29,34 +29,34 @@ class TestView(unittest.TestCase, AssertStringMixin):
- self.assertString(actual, expected)
-
- def test_comments(self):
-- self._assert(Comments(), u"<h1>A Comedy of Errors</h1>")
-+ self._assert(Comments(), "<h1>A Comedy of Errors</h1>")
-
- def test_double_section(self):
-- self._assert(DoubleSection(), u"* first\n* second\n* third")
-+ self._assert(DoubleSection(), "* first\n* second\n* third")
-
- def test_unicode_output(self):
- renderer = Renderer()
- actual = renderer.render(UnicodeOutput())
-- self.assertString(actual, u'<p>Name: Henri Poincaré</p>')
-+ self.assertString(actual, '<p>Name: Henri Poincaré</p>')
-
- def test_unicode_input(self):
- renderer = Renderer()
- actual = renderer.render(UnicodeInput())
-- self.assertString(actual, u'abcdé')
-+ self.assertString(actual, 'abcdé')
-
- def test_escaping(self):
-- self._assert(Escaped(), u"<h1>Bear &gt; Shark</h1>")
-+ self._assert(Escaped(), "<h1>Bear &gt; Shark</h1>")
-
- def test_literal(self):
- renderer = Renderer()
- actual = renderer.render(Unescaped())
-- self.assertString(actual, u"<h1>Bear > Shark</h1>")
-+ self.assertString(actual, "<h1>Bear > Shark</h1>")
-
- def test_template_partial(self):
- renderer = Renderer(search_dirs=EXAMPLES_DIR)
- actual = renderer.render(TemplatePartial(renderer=renderer))
-
-- self.assertString(actual, u"""<h1>Welcome</h1>
-+ self.assertString(actual, """<h1>Welcome</h1>
- Again, Welcome!""")
-
- def test_template_partial_extension(self):
-@@ -65,7 +65,7 @@ Again, Welcome!""")
- view = TemplatePartial(renderer=renderer)
-
- actual = renderer.render(view)
-- self.assertString(actual, u"""Welcome
-+ self.assertString(actual, """Welcome
- -------
-
- ## Again, Welcome! ##""")
-@@ -73,7 +73,7 @@ Again, Welcome!""")
- def test_delimiters(self):
- renderer = Renderer()
- actual = renderer.render(Delimiters())
-- self.assertString(actual, u"""\
-+ self.assertString(actual, """\
- * It worked the first time.
- * And it worked the second time.
- * Then, surprisingly, it worked the third time.
-@@ -82,7 +82,7 @@ Again, Welcome!""")
- def test_nested_context(self):
- renderer = Renderer()
- actual = renderer.render(NestedContext(renderer))
-- self.assertString(actual, u"one and foo and two")
-+ self.assertString(actual, "one and foo and two")
-
- def test_nested_context_is_available_in_view(self):
- renderer = Renderer()
-@@ -91,7 +91,7 @@ Again, Welcome!""")
- view.template = '{{#herp}}{{#derp}}{{nested_context_in_view}}{{/derp}}{{/herp}}'
-
- actual = renderer.render(view)
-- self.assertString(actual, u'it works!')
-+ self.assertString(actual, 'it works!')
-
- def test_partial_in_partial_has_access_to_grand_parent_context(self):
- renderer = Renderer(search_dirs=EXAMPLES_DIR)
-diff --git a/pystache/tests/test_loader.py b/pystache/tests/test_loader.py
-index f2c2187..315daff 100644
---- a/pystache/tests/test_loader.py
-+++ b/pystache/tests/test_loader.py
-@@ -55,23 +55,23 @@ class LoaderTests(unittest.TestCase, AssertStringMixin, SetupDefaults):
-
- def test_init__to_unicode__default(self):
- loader = Loader()
-- self.assertRaises(TypeError, loader.to_unicode, u"abc")
-+ self.assertRaises(TypeError, loader.to_unicode, "abc")
-
- decode_errors = defaults.DECODE_ERRORS
- string_encoding = defaults.STRING_ENCODING
-
-- nonascii = u'abcdé'.encode('utf-8')
-+ nonascii = 'abcdé'.encode('utf-8')
-
- loader = Loader()
- self.assertRaises(UnicodeDecodeError, loader.to_unicode, nonascii)
-
- defaults.DECODE_ERRORS = 'ignore'
- loader = Loader()
-- self.assertString(loader.to_unicode(nonascii), u'abcd')
-+ self.assertString(loader.to_unicode(nonascii), 'abcd')
-
- defaults.STRING_ENCODING = 'utf-8'
- loader = Loader()
-- self.assertString(loader.to_unicode(nonascii), u'abcdé')
-+ self.assertString(loader.to_unicode(nonascii), 'abcdé')
-
-
- def _get_path(self, filename):
-@@ -83,9 +83,9 @@ class LoaderTests(unittest.TestCase, AssertStringMixin, SetupDefaults):
-
- """
- loader = Loader()
-- actual = loader.unicode("foo")
-+ actual = loader.str("foo")
-
-- self.assertString(actual, u"foo")
-+ self.assertString(actual, "foo")
-
- def test_unicode__basic__input_unicode(self):
- """
-@@ -93,24 +93,24 @@ class LoaderTests(unittest.TestCase, AssertStringMixin, SetupDefaults):
-
- """
- loader = Loader()
-- actual = loader.unicode(u"foo")
-+ actual = loader.str("foo")
-
-- self.assertString(actual, u"foo")
-+ self.assertString(actual, "foo")
-
- def test_unicode__basic__input_unicode_subclass(self):
- """
- Test unicode(): default arguments with unicode-subclass input.
-
- """
-- class UnicodeSubclass(unicode):
-+ class UnicodeSubclass(str):
- pass
-
-- s = UnicodeSubclass(u"foo")
-+ s = UnicodeSubclass("foo")
-
- loader = Loader()
-- actual = loader.unicode(s)
-+ actual = loader.str(s)
-
-- self.assertString(actual, u"foo")
-+ self.assertString(actual, "foo")
-
- def test_unicode__to_unicode__attribute(self):
- """
-@@ -119,16 +119,16 @@ class LoaderTests(unittest.TestCase, AssertStringMixin, SetupDefaults):
- """
- loader = Loader()
-
-- non_ascii = u'abcdé'.encode('utf-8')
-- self.assertRaises(UnicodeDecodeError, loader.unicode, non_ascii)
-+ non_ascii = 'abcdé'.encode('utf-8')
-+ self.assertRaises(UnicodeDecodeError, loader.str, non_ascii)
-
- def to_unicode(s, encoding=None):
- if encoding is None:
- encoding = 'utf-8'
-- return unicode(s, encoding)
-+ return str(s, encoding)
-
- loader.to_unicode = to_unicode
-- self.assertString(loader.unicode(non_ascii), u"abcdé")
-+ self.assertString(loader.str(non_ascii), "abcdé")
-
- def test_unicode__encoding_argument(self):
- """
-@@ -137,12 +137,12 @@ class LoaderTests(unittest.TestCase, AssertStringMixin, SetupDefaults):
- """
- loader = Loader()
-
-- non_ascii = u'abcdé'.encode('utf-8')
-+ non_ascii = 'abcdé'.encode('utf-8')
-
-- self.assertRaises(UnicodeDecodeError, loader.unicode, non_ascii)
-+ self.assertRaises(UnicodeDecodeError, loader.str, non_ascii)
-
-- actual = loader.unicode(non_ascii, encoding='utf-8')
-- self.assertString(actual, u'abcdé')
-+ actual = loader.str(non_ascii, encoding='utf-8')
-+ self.assertString(actual, 'abcdé')
-
- # TODO: check the read() unit tests.
- def test_read(self):
-@@ -153,7 +153,7 @@ class LoaderTests(unittest.TestCase, AssertStringMixin, SetupDefaults):
- loader = Loader()
- path = self._get_path('ascii.mustache')
- actual = loader.read(path)
-- self.assertString(actual, u'ascii: abc')
-+ self.assertString(actual, 'ascii: abc')
-
- def test_read__file_encoding__attribute(self):
- """
-@@ -167,7 +167,7 @@ class LoaderTests(unittest.TestCase, AssertStringMixin, SetupDefaults):
-
- loader.file_encoding = 'utf-8'
- actual = loader.read(path)
-- self.assertString(actual, u'non-ascii: é')
-+ self.assertString(actual, 'non-ascii: é')
-
- def test_read__encoding__argument(self):
- """
-@@ -180,7 +180,7 @@ class LoaderTests(unittest.TestCase, AssertStringMixin, SetupDefaults):
- self.assertRaises(UnicodeDecodeError, loader.read, path)
-
- actual = loader.read(path, encoding='utf-8')
-- self.assertString(actual, u'non-ascii: é')
-+ self.assertString(actual, 'non-ascii: é')
-
- def test_read__to_unicode__attribute(self):
- """
-diff --git a/pystache/tests/test_pystache.py b/pystache/tests/test_pystache.py
-index 5447f8d..cf5d6af 100644
---- a/pystache/tests/test_pystache.py
-+++ b/pystache/tests/test_pystache.py
-@@ -71,14 +71,14 @@ class PystacheTests(unittest.TestCase):
- template = "{{#stats}}({{key}} & {{value}}){{/stats}}"
- stats = []
- stats.append({'key': 123, 'value': ['something']})
-- stats.append({'key': u"chris", 'value': 0.900})
-+ stats.append({'key': "chris", 'value': 0.900})
- context = { 'stats': stats }
- self._assert_rendered(self.non_strings_expected, template, context)
-
- def test_unicode(self):
- template = 'Name: {{name}}; Age: {{age}}'
-- context = {'name': u'Henri Poincaré', 'age': 156 }
-- self._assert_rendered(u'Name: Henri Poincaré; Age: 156', template, context)
-+ context = {'name': 'Henri Poincaré', 'age': 156}
-+ self._assert_rendered('Name: Henri Poincaré; Age: 156', template, context)
-
- def test_sections(self):
- template = """<ul>{{#users}}<li>{{name}}</li>{{/users}}</ul>"""
-diff --git a/pystache/tests/test_renderengine.py b/pystache/tests/test_renderengine.py
-index db916f7..ed604c5 100644
---- a/pystache/tests/test_renderengine.py
-+++ b/pystache/tests/test_renderengine.py
-@@ -33,11 +33,11 @@ def mock_literal(s):
- s: a byte string or unicode string.
-
- """
-- if isinstance(s, unicode):
-+ if isinstance(s, str):
- # Strip off unicode super classes, if present.
-- u = unicode(s)
-+ u = str(s)
- else:
-- u = unicode(s, encoding='ascii')
-+ u = str(s, encoding='ascii')
-
- # We apply upper() to make sure we are actually using our custom
- # function in the tests
-@@ -94,17 +94,17 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- engine = kwargs.get('engine', self._engine())
-
- if partials is not None:
-- engine.resolve_partial = lambda key: unicode(partials[key])
-+ engine.resolve_partial = lambda key: str(partials[key])
-
- context = ContextStack(*context)
-
- # RenderEngine.render() only accepts unicode template strings.
-- actual = engine.render(unicode(template), context)
-+ actual = engine.render(str(template), context)
-
- self.assertString(actual=actual, expected=expected)
-
- def test_render(self):
-- self._assert_render(u'Hi Mom', 'Hi {{person}}', {'person': 'Mom'})
-+ self._assert_render('Hi Mom', 'Hi {{person}}', {'person': 'Mom'})
-
- def test__resolve_partial(self):
- """
-@@ -112,10 +112,10 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
-
- """
- engine = self._engine()
-- partials = {'partial': u"{{person}}"}
-+ partials = {'partial': "{{person}}"}
- engine.resolve_partial = lambda key: partials[key]
-
-- self._assert_render(u'Hi Mom', 'Hi {{>partial}}', {'person': 'Mom'}, engine=engine)
-+ self._assert_render('Hi Mom', 'Hi {{>partial}}', {'person': 'Mom'}, engine=engine)
-
- def test__literal(self):
- """
-@@ -125,13 +125,13 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- engine = self._engine()
- engine.literal = lambda s: s.upper()
-
-- self._assert_render(u'BAR', '{{{foo}}}', {'foo': 'bar'}, engine=engine)
-+ self._assert_render('BAR', '{{{foo}}}', {'foo': 'bar'}, engine=engine)
-
- def test_literal__sigil(self):
- template = "<h1>{{& thing}}</h1>"
- context = {'thing': 'Bear > Giraffe'}
-
-- expected = u"<h1>Bear > Giraffe</h1>"
-+ expected = "<h1>Bear > Giraffe</h1>"
-
- self._assert_render(expected, template, context)
-
-@@ -143,7 +143,7 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- engine = self._engine()
- engine.escape = lambda s: "**" + s
-
-- self._assert_render(u'**bar', '{{foo}}', {'foo': 'bar'}, engine=engine)
-+ self._assert_render('**bar', '{{foo}}', {'foo': 'bar'}, engine=engine)
-
- def test__escape_does_not_call_literal(self):
- """
-@@ -157,7 +157,7 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- template = 'literal: {{{foo}}} escaped: {{foo}}'
- context = {'foo': 'bar'}
-
-- self._assert_render(u'literal: BAR escaped: **bar', template, context, engine=engine)
-+ self._assert_render('literal: BAR escaped: **bar', template, context, engine=engine)
-
- def test__escape_preserves_unicode_subclasses(self):
- """
-@@ -167,7 +167,7 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- variable value is markupsafe.Markup when escaping.
-
- """
-- class MyUnicode(unicode):
-+ class MyUnicode(str):
- pass
-
- def escape(s):
-@@ -182,7 +182,7 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- template = '{{foo1}} {{foo2}}'
- context = {'foo1': MyUnicode('bar'), 'foo2': 'bar'}
-
-- self._assert_render(u'**bar bar**', template, context, engine=engine)
-+ self._assert_render('**bar bar**', template, context, engine=engine)
-
- # Custom to_str for testing purposes.
- def _to_str(self, val):
-@@ -197,9 +197,9 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- template = '{{value}}'
- context = {'value': None}
-
-- self._assert_render(u'None', template, context, engine=engine)
-+ self._assert_render('None', template, context, engine=engine)
- engine.to_str = self._to_str
-- self._assert_render(u'', template, context, engine=engine)
-+ self._assert_render('', template, context, engine=engine)
-
- def test_to_str__lambda(self):
- """Test the to_str attribute for a lambda."""
-@@ -207,9 +207,9 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- template = '{{value}}'
- context = {'value': lambda: None}
-
-- self._assert_render(u'None', template, context, engine=engine)
-+ self._assert_render('None', template, context, engine=engine)
- engine.to_str = self._to_str
-- self._assert_render(u'', template, context, engine=engine)
-+ self._assert_render('', template, context, engine=engine)
-
- def test_to_str__section_list(self):
- """Test the to_str attribute for a section list."""
-@@ -217,9 +217,9 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- template = '{{#list}}{{.}}{{/list}}'
- context = {'list': [None, None]}
-
-- self._assert_render(u'NoneNone', template, context, engine=engine)
-+ self._assert_render('NoneNone', template, context, engine=engine)
- engine.to_str = self._to_str
-- self._assert_render(u'', template, context, engine=engine)
-+ self._assert_render('', template, context, engine=engine)
-
- def test_to_str__section_lambda(self):
- # TODO: add a test for a "method with an arity of 1".
-@@ -239,7 +239,7 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- template = '{{text}} {{int}} {{{int}}}'
- context = {'int': 100, 'text': 'foo'}
-
-- self._assert_render(u'FOO 100 100', template, context, engine=engine)
-+ self._assert_render('FOO 100 100', template, context, engine=engine)
-
- def test_tag__output_not_interpolated(self):
- """
-@@ -248,7 +248,7 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- """
- template = '{{template}}: {{planet}}'
- context = {'template': '{{planet}}', 'planet': 'Earth'}
-- self._assert_render(u'{{planet}}: Earth', template, context)
-+ self._assert_render('{{planet}}: Earth', template, context)
-
- def test_tag__output_not_interpolated__section(self):
- """
-@@ -257,7 +257,7 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- """
- template = '{{test}}'
- context = {'test': '{{#hello}}'}
-- self._assert_render(u'{{#hello}}', template, context)
-+ self._assert_render('{{#hello}}', template, context)
-
- ## Test interpolation with "falsey" values
- #
-@@ -268,17 +268,17 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- def test_interpolation__falsey__zero(self):
- template = '{{.}}'
- context = 0
-- self._assert_render(u'0', template, context)
-+ self._assert_render('0', template, context)
-
- def test_interpolation__falsey__none(self):
- template = '{{.}}'
- context = None
-- self._assert_render(u'None', template, context)
-+ self._assert_render('None', template, context)
-
- def test_interpolation__falsey__zero(self):
- template = '{{.}}'
- context = False
-- self._assert_render(u'False', template, context)
-+ self._assert_render('False', template, context)
-
- # Built-in types:
- #
-@@ -310,7 +310,7 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- Check tag interpolation with a built-in type: string.
-
- """
-- self._assert_builtin_type('abc', 'upper', 'ABC', u'xyz')
-+ self._assert_builtin_type('abc', 'upper', 'ABC', 'xyz')
-
- def test_interpolation__built_in_type__integer(self):
- """
-@@ -324,7 +324,7 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- #
- # we need to resort to built-in attributes (double-underscored) on
- # the integer type.
-- self._assert_builtin_type(15, '__neg__', -15, u'999')
-+ self._assert_builtin_type(15, '__neg__', -15, '999')
-
- def test_interpolation__built_in_type__list(self):
- """
-@@ -338,7 +338,7 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
-
- template = '{{#section}}{{%s}}{{/section}}' % attr_name
- context = {'section': item, attr_name: 7}
-- self._assert_render(u'7', template, context)
-+ self._assert_render('7', template, context)
-
- # This test is also important for testing 2to3.
- def test_interpolation__nonascii_nonunicode(self):
-@@ -347,8 +347,8 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
-
- """
- template = '{{nonascii}}'
-- context = {'nonascii': u'abcdé'.encode('utf-8')}
-- self._assert_render(u'abcdé', template, context)
-+ context = {'nonascii': 'abcdé'.encode('utf-8')}
-+ self._assert_render('abcdé', template, context)
-
- def test_implicit_iterator__literal(self):
- """
-@@ -358,7 +358,7 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- template = """{{#test}}{{{.}}}{{/test}}"""
- context = {'test': ['<', '>']}
-
-- self._assert_render(u'<>', template, context)
-+ self._assert_render('<>', template, context)
-
- def test_implicit_iterator__escaped(self):
- """
-@@ -368,7 +368,7 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- template = """{{#test}}{{.}}{{/test}}"""
- context = {'test': ['<', '>']}
-
-- self._assert_render(u'&lt;&gt;', template, context)
-+ self._assert_render('&lt;&gt;', template, context)
-
- def test_literal__in_section(self):
- """
-@@ -378,7 +378,7 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- template = '{{#test}}1 {{{less_than}}} 2{{/test}}'
- context = {'test': {'less_than': '<'}}
-
-- self._assert_render(u'1 < 2', template, context)
-+ self._assert_render('1 < 2', template, context)
-
- def test_literal__in_partial(self):
- """
-@@ -389,11 +389,11 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- partials = {'partial': '1 {{{less_than}}} 2'}
- context = {'less_than': '<'}
-
-- self._assert_render(u'1 < 2', template, context, partials=partials)
-+ self._assert_render('1 < 2', template, context, partials=partials)
-
- def test_partial(self):
- partials = {'partial': "{{person}}"}
-- self._assert_render(u'Hi Mom', 'Hi {{>partial}}', {'person': 'Mom'}, partials=partials)
-+ self._assert_render('Hi Mom', 'Hi {{>partial}}', {'person': 'Mom'}, partials=partials)
-
- def test_partial__context_values(self):
- """
-@@ -406,7 +406,9 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- partials = {'partial': 'unescaped: {{{foo}}} escaped: {{foo}}'}
- context = {'foo': '<'}
-
-- self._assert_render(u'unescaped: < escaped: &lt;', template, context, engine=engine, partials=partials)
-+ self._assert_render(
-+ 'unescaped: < escaped: &lt;',
-+ template, context, engine=engine, partials=partials)
-
- ## Test cases related specifically to lambdas.
-
-@@ -417,8 +419,8 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
-
- """
- template = '{{#nonascii}}{{.}}{{/nonascii}}'
-- context = {'nonascii': u'abcdé'.encode('utf-8')}
-- self._assert_render(u'abcdé', template, context)
-+ context = {'nonascii': 'abcdé'.encode('utf-8')}
-+ self._assert_render('abcdé', template, context)
-
- # This test is also important for testing 2to3.
- def test_lambda__returning_nonascii_nonunicode(self):
-@@ -427,8 +429,8 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
-
- """
- template = '{{lambda}}'
-- context = {'lambda': lambda: u'abcdé'.encode('utf-8')}
-- self._assert_render(u'abcdé', template, context)
-+ context = {'lambda': lambda: 'abcdé'.encode('utf-8')}
-+ self._assert_render('abcdé', template, context)
-
- ## Test cases related specifically to sections.
-
-@@ -440,7 +442,7 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- template = '{{/section}}'
- try:
- self._assert_render(None, template)
-- except ParsingError, err:
-+ except ParsingError as err:
- self.assertEqual(str(err), "Section end tag mismatch: section != None")
-
- def test_section__end_tag_mismatch(self):
-@@ -451,7 +453,7 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- template = '{{#section_start}}{{/section_end}}'
- try:
- self._assert_render(None, template)
-- except ParsingError, err:
-+ except ParsingError as err:
- self.assertEqual(str(err), "Section end tag mismatch: section_end != section_start")
-
- def test_section__context_values(self):
-@@ -464,7 +466,7 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- template = '{{#test}}unescaped: {{{foo}}} escaped: {{foo}}{{/test}}'
- context = {'test': {'foo': '<'}}
-
-- self._assert_render(u'unescaped: < escaped: &lt;', template, context, engine=engine)
-+ self._assert_render('unescaped: < escaped: &lt;', template, context, engine=engine)
-
- def test_section__context_precedence(self):
- """
-@@ -473,7 +475,7 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- """
- template = '{{entree}} : {{#vegetarian}}{{entree}}{{/vegetarian}}'
- context = {'entree': 'chicken', 'vegetarian': {'entree': 'beans and rice'}}
-- self._assert_render(u'chicken : beans and rice', template, context)
-+ self._assert_render('chicken : beans and rice', template, context)
-
- def test_section__list_referencing_outer_context(self):
- """
-@@ -491,7 +493,7 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
-
- template = "{{#list}}{{greeting}} {{name}}, {{/list}}"
-
-- self._assert_render(u"Hi Al, Hi Bob, ", template, context)
-+ self._assert_render("Hi Al, Hi Bob, ", template, context)
-
- def test_section__output_not_interpolated(self):
- """
-@@ -500,7 +502,7 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- """
- template = '{{#section}}{{template}}{{/section}}: {{planet}}'
- context = {'section': True, 'template': '{{planet}}', 'planet': 'Earth'}
-- self._assert_render(u'{{planet}}: Earth', template, context)
-+ self._assert_render('{{planet}}: Earth', template, context)
-
- # TODO: have this test case added to the spec.
- def test_section__string_values_not_lists(self):
-@@ -511,7 +513,7 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- template = '{{#section}}foo{{/section}}'
- context = {'section': '123'}
- # If strings were interpreted as lists, this would give "foofoofoo".
-- self._assert_render(u'foo', template, context)
-+ self._assert_render('foo', template, context)
-
- def test_section__nested_truthy(self):
- """
-@@ -525,7 +527,7 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- """
- template = '| A {{#bool}}B {{#bool}}C{{/bool}} D{{/bool}} E |'
- context = {'bool': True}
-- self._assert_render(u'| A B C D E |', template, context)
-+ self._assert_render('| A B C D E |', template, context)
-
- def test_section__nested_with_same_keys(self):
- """
-@@ -537,16 +539,16 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- # Start with an easier, working case.
- template = '{{#x}}{{#z}}{{y}}{{/z}}{{/x}}'
- context = {'x': {'z': {'y': 1}}}
-- self._assert_render(u'1', template, context)
-+ self._assert_render('1', template, context)
-
- template = '{{#x}}{{#x}}{{y}}{{/x}}{{/x}}'
- context = {'x': {'x': {'y': 1}}}
-- self._assert_render(u'1', template, context)
-+ self._assert_render('1', template, context)
-
- def test_section__lambda(self):
- template = '{{#test}}Mom{{/test}}'
- context = {'test': (lambda text: 'Hi %s' % text)}
-- self._assert_render(u'Hi Mom', template, context)
-+ self._assert_render('Hi Mom', template, context)
-
- # This test is also important for testing 2to3.
- def test_section__lambda__returning_nonascii_nonunicode(self):
-@@ -555,8 +557,8 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
-
- """
- template = '{{#lambda}}{{/lambda}}'
-- context = {'lambda': lambda text: u'abcdé'.encode('utf-8')}
-- self._assert_render(u'abcdé', template, context)
-+ context = {'lambda': lambda text: 'abcdé'.encode('utf-8')}
-+ self._assert_render('abcdé', template, context)
-
- def test_section__lambda__returning_nonstring(self):
- """
-@@ -565,7 +567,7 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- """
- template = '{{#lambda}}foo{{/lambda}}'
- context = {'lambda': lambda text: len(text)}
-- self._assert_render(u'3', template, context)
-+ self._assert_render('3', template, context)
-
- def test_section__iterable(self):
- """
-@@ -575,10 +577,10 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- template = '{{#iterable}}{{.}}{{/iterable}}'
-
- context = {'iterable': (i for i in range(3))} # type 'generator'
-- self._assert_render(u'012', template, context)
-+ self._assert_render('012', template, context)
-
-- context = {'iterable': xrange(4)} # type 'xrange'
-- self._assert_render(u'0123', template, context)
-+ context = {'iterable': range(4)} # type 'xrange'
-+ self._assert_render('0123', template, context)
-
- d = {'foo': 0, 'bar': 0}
- # We don't know what order of keys we'll be given, but from the
-@@ -586,8 +588,8 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- # "If items(), keys(), values(), iteritems(), iterkeys(), and
- # itervalues() are called with no intervening modifications to
- # the dictionary, the lists will directly correspond."
-- expected = u''.join(d.keys())
-- context = {'iterable': d.iterkeys()} # type 'dictionary-keyiterator'
-+ expected = ''.join(list(d.keys()))
-+ context = {'iterable': iter(d.keys())} # type 'dictionary-keyiterator'
- self._assert_render(expected, template, context)
-
- def test_section__lambda__tag_in_output(self):
-@@ -605,7 +607,7 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- """
- template = '{{#test}}Hi {{person}}{{/test}}'
- context = {'person': 'Mom', 'test': (lambda text: text + " :)")}
-- self._assert_render(u'Hi Mom :)', template, context)
-+ self._assert_render('Hi Mom :)', template, context)
-
- def test_section__lambda__list(self):
- """
-@@ -621,7 +623,7 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- 'lambdas': [lambda text: "~{{%s}}~" % text,
- lambda text: "#{{%s}}#" % text]}
-
-- self._assert_render(u'<~bar~#bar#>', template, context)
-+ self._assert_render('<~bar~#bar#>', template, context)
-
- def test_section__lambda__mixed_list(self):
- """
-@@ -636,7 +638,7 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- context = {'foo': 'bar',
- 'lambdas': [lambda text: "~{{%s}}~" % text, 1]}
-
-- self._assert_render(u'<~bar~foo>', template, context)
-+ self._assert_render('<~bar~foo>', template, context)
-
- def test_section__lambda__not_on_context_stack(self):
- """
-@@ -653,7 +655,7 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- """
- context = {'foo': 'bar', 'lambda': (lambda text: "{{.}}")}
- template = '{{#foo}}{{#lambda}}blah{{/lambda}}{{/foo}}'
-- self._assert_render(u'bar', template, context)
-+ self._assert_render('bar', template, context)
-
- def test_section__lambda__no_reinterpolation(self):
- """
-@@ -670,15 +672,15 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- """
- template = '{{#planet}}{{#lambda}}dot{{/lambda}}{{/planet}}'
- context = {'planet': 'Earth', 'dot': '~{{.}}~', 'lambda': (lambda text: "#{{%s}}#" % text)}
-- self._assert_render(u'#~{{.}}~#', template, context)
-+ self._assert_render('#~{{.}}~#', template, context)
-
- def test_comment__multiline(self):
- """
- Check that multiline comments are permitted.
-
- """
-- self._assert_render(u'foobar', 'foo{{! baz }}bar')
-- self._assert_render(u'foobar', 'foo{{! \nbaz }}bar')
-+ self._assert_render('foobar', 'foo{{! baz }}bar')
-+ self._assert_render('foobar', 'foo{{! \nbaz }}bar')
-
- def test_custom_delimiters__sections(self):
- """
-@@ -689,7 +691,7 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- """
- template = '{{=[[ ]]=}}[[#foo]]bar[[/foo]]'
- context = {'foo': True}
-- self._assert_render(u'bar', template, context)
-+ self._assert_render('bar', template, context)
-
- def test_custom_delimiters__not_retroactive(self):
- """
-@@ -698,7 +700,7 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- Test case for issue #35: https://github.com/defunkt/pystache/issues/35
-
- """
-- expected = u' {{foo}} '
-+ expected = ' {{foo}} '
- self._assert_render(expected, '{{=$ $=}} {{foo}} ')
- self._assert_render(expected, '{{=$ $=}} {{foo}} $={{ }}=$') # was yielding u' '.
-
-@@ -713,7 +715,7 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- template = 'Hello, {{person.name}}. I see you are {{person.details.age}}.'
- person = Attachable(name='Biggles', details={'age': 42})
- context = {'person': person}
-- self._assert_render(u'Hello, Biggles. I see you are 42.', template, context)
-+ self._assert_render('Hello, Biggles. I see you are 42.', template, context)
-
- def test_dot_notation__multiple_levels(self):
- """
-@@ -722,7 +724,7 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- """
- template = """Hello, Mr. {{person.name.lastname}}.
- I see you're back from {{person.travels.last.country.city}}."""
-- expected = u"""Hello, Mr. Pither.
-+ expected = """Hello, Mr. Pither.
- I see you're back from Cornwall."""
- context = {'person': {'name': {'firstname': 'unknown', 'lastname': 'Pither'},
- 'travels': {'last': {'country': {'city': 'Cornwall'}}},
-@@ -758,10 +760,10 @@ class RenderTests(unittest.TestCase, AssertStringMixin, AssertExceptionMixin):
- context = {'a': {'b': 'A.B'}, 'c': {'a': 'A'} }
-
- template = '{{a.b}}'
-- self._assert_render(u'A.B', template, context)
-+ self._assert_render('A.B', template, context)
-
- template = '{{#c}}{{a}}{{/c}}'
-- self._assert_render(u'A', template, context)
-+ self._assert_render('A', template, context)
-
- template = '{{#c}}{{a.b}}{{/c}}'
- self.assertException(KeyNotFoundError, "Key %(unicode)s'a.b' not found: missing %(unicode)s'b'" %
-diff --git a/pystache/tests/test_renderer.py b/pystache/tests/test_renderer.py
-index 0dbe0d9..e0d2448 100644
---- a/pystache/tests/test_renderer.py
-+++ b/pystache/tests/test_renderer.py
-@@ -10,7 +10,7 @@ import os
- import sys
- import unittest
-
--from examples.simple import Simple
-+from .examples.simple import Simple
- from pystache import Renderer
- from pystache import TemplateSpec
- from pystache.common import TemplateNotFoundError
-@@ -33,7 +33,7 @@ def _make_renderer():
- def mock_unicode(b, encoding=None):
- if encoding is None:
- encoding = 'ascii'
-- u = unicode(b, encoding=encoding)
-+ u = str(b, encoding=encoding)
- return u.upper()
-
-
-@@ -197,13 +197,13 @@ class RendererTests(unittest.TestCase, AssertStringMixin):
-
- """
- renderer = self._renderer()
-- b = u"é".encode('utf-8')
-+ b = "é".encode('utf-8')
-
- renderer.string_encoding = "ascii"
-- self.assertRaises(UnicodeDecodeError, renderer.unicode, b)
-+ self.assertRaises(UnicodeDecodeError, renderer.str, b)
-
- renderer.string_encoding = "utf-8"
-- self.assertEqual(renderer.unicode(b), u"é")
-+ self.assertEqual(renderer.str(b), "é")
-
- def test_unicode__decode_errors(self):
- """
-@@ -212,14 +212,14 @@ class RendererTests(unittest.TestCase, AssertStringMixin):
- """
- renderer = self._renderer()
- renderer.string_encoding = "ascii"
-- b = u"déf".encode('utf-8')
-+ b = "déf".encode('utf-8')
-
- renderer.decode_errors = "ignore"
-- self.assertEqual(renderer.unicode(b), "df")
-+ self.assertEqual(renderer.str(b), "df")
-
- renderer.decode_errors = "replace"
- # U+FFFD is the official Unicode replacement character.
-- self.assertEqual(renderer.unicode(b), u'd\ufffd\ufffdf')
-+ self.assertEqual(renderer.str(b), u'd\ufffd\ufffdf')
-
- ## Test the _make_loader() method.
-
-@@ -243,7 +243,7 @@ class RendererTests(unittest.TestCase, AssertStringMixin):
- renderer = self._renderer()
- renderer.file_encoding = 'enc'
- renderer.file_extension = 'ext'
-- renderer.unicode = unicode_
-+ renderer.str = unicode_
-
- loader = renderer._make_loader()
-
-@@ -260,12 +260,12 @@ class RendererTests(unittest.TestCase, AssertStringMixin):
- """
- renderer = self._renderer()
- rendered = renderer.render('foo')
-- self.assertEqual(type(rendered), unicode)
-+ self.assertEqual(type(rendered), str)
-
- def test_render__unicode(self):
- renderer = self._renderer()
-- actual = renderer.render(u'foo')
-- self.assertEqual(actual, u'foo')
-+ actual = renderer.render('foo')
-+ self.assertEqual(actual, 'foo')
-
- def test_render__str(self):
- renderer = self._renderer()
-@@ -274,8 +274,8 @@ class RendererTests(unittest.TestCase, AssertStringMixin):
-
- def test_render__non_ascii_character(self):
- renderer = self._renderer()
-- actual = renderer.render(u'Poincaré')
-- self.assertEqual(actual, u'Poincaré')
-+ actual = renderer.render('Poincaré')
-+ self.assertEqual(actual, 'Poincaré')
-
- def test_render__context(self):
- """
-@@ -326,7 +326,7 @@ class RendererTests(unittest.TestCase, AssertStringMixin):
-
- """
- renderer = _make_renderer()
-- template = u"déf".encode("utf-8")
-+ template = "déf".encode("utf-8")
-
- # Check that decode_errors and string_encoding are both respected.
- renderer.decode_errors = 'ignore'
-@@ -334,7 +334,7 @@ class RendererTests(unittest.TestCase, AssertStringMixin):
- self.assertEqual(renderer.render(template), "df")
-
- renderer.string_encoding = 'utf_8'
-- self.assertEqual(renderer.render(template), u"déf")
-+ self.assertEqual(renderer.render(template), "déf")
-
- def test_make_resolve_partial(self):
- """
-@@ -347,7 +347,7 @@ class RendererTests(unittest.TestCase, AssertStringMixin):
-
- actual = resolve_partial('foo')
- self.assertEqual(actual, 'bar')
-- self.assertEqual(type(actual), unicode, "RenderEngine requires that "
-+ self.assertEqual(type(actual), str, "RenderEngine requires that "
- "resolve_partial return unicode strings.")
-
- def test_make_resolve_partial__unicode(self):
-@@ -362,7 +362,7 @@ class RendererTests(unittest.TestCase, AssertStringMixin):
- self.assertEqual(resolve_partial("partial"), "foo")
-
- # Now with a value that is already unicode.
-- renderer.partials = {'partial': u'foo'}
-+ renderer.partials = {'partial': 'foo'}
- resolve_partial = renderer._make_resolve_partial()
- # If the next line failed, we would get the following error:
- # TypeError: decoding Unicode is not supported
-@@ -373,7 +373,7 @@ class RendererTests(unittest.TestCase, AssertStringMixin):
- data_dir = get_data_path()
- renderer = Renderer(search_dirs=data_dir)
- actual = renderer.render_name("say_hello", to='foo')
-- self.assertString(actual, u"Hello, foo")
-+ self.assertString(actual, "Hello, foo")
-
- def test_render_path(self):
- """
-@@ -412,7 +412,7 @@ class RendererTests(unittest.TestCase, AssertStringMixin):
-
- spec = Spec()
- actual = renderer.render(spec)
-- self.assertString(actual, u'hello, world')
-+ self.assertString(actual, 'hello, world')
-
- def test_render__view(self):
- """
-@@ -484,7 +484,7 @@ class Renderer_MakeRenderEngineTests(unittest.TestCase, AssertStringMixin, Asser
- Check that resolve_partial returns unicode (and not a subclass).
-
- """
-- class MyUnicode(unicode):
-+ class MyUnicode(str):
- pass
-
- renderer = Renderer()
-@@ -495,12 +495,12 @@ class Renderer_MakeRenderEngineTests(unittest.TestCase, AssertStringMixin, Asser
-
- actual = engine.resolve_partial('str')
- self.assertEqual(actual, "foo")
-- self.assertEqual(type(actual), unicode)
-+ self.assertEqual(type(actual), str)
-
- # Check that unicode subclasses are not preserved.
- actual = engine.resolve_partial('subclass')
- self.assertEqual(actual, "abc")
-- self.assertEqual(type(actual), unicode)
-+ self.assertEqual(type(actual), str)
-
- def test__resolve_partial__not_found(self):
- """
-@@ -512,7 +512,7 @@ class Renderer_MakeRenderEngineTests(unittest.TestCase, AssertStringMixin, Asser
- engine = renderer._make_render_engine()
- resolve_partial = engine.resolve_partial
-
-- self.assertString(resolve_partial('foo'), u'')
-+ self.assertString(resolve_partial('foo'), '')
-
- def test__resolve_partial__not_found__missing_tags_strict(self):
- """
-@@ -539,7 +539,7 @@ class Renderer_MakeRenderEngineTests(unittest.TestCase, AssertStringMixin, Asser
- engine = renderer._make_render_engine()
- resolve_partial = engine.resolve_partial
-
-- self.assertString(resolve_partial('foo'), u'')
-+ self.assertString(resolve_partial('foo'), '')
-
- def test__resolve_partial__not_found__partials_dict__missing_tags_strict(self):
- """
-@@ -566,12 +566,12 @@ class Renderer_MakeRenderEngineTests(unittest.TestCase, AssertStringMixin, Asser
-
- """
- renderer = self._make_renderer()
-- renderer.unicode = mock_unicode
-+ renderer.str = mock_unicode
-
- engine = renderer._make_render_engine()
- literal = engine.literal
-
-- b = u"foo".encode("ascii")
-+ b = "foo".encode("ascii")
- self.assertEqual(literal(b), "FOO")
-
- def test__literal__handles_unicode(self):
-@@ -585,7 +585,7 @@ class Renderer_MakeRenderEngineTests(unittest.TestCase, AssertStringMixin, Asser
- engine = renderer._make_render_engine()
- literal = engine.literal
-
-- self.assertEqual(literal(u"foo"), "foo")
-+ self.assertEqual(literal("foo"), "foo")
-
- def test__literal__returns_unicode(self):
- """
-@@ -598,16 +598,16 @@ class Renderer_MakeRenderEngineTests(unittest.TestCase, AssertStringMixin, Asser
- engine = renderer._make_render_engine()
- literal = engine.literal
-
-- self.assertEqual(type(literal("foo")), unicode)
-+ self.assertEqual(type(literal("foo")), str)
-
-- class MyUnicode(unicode):
-+ class MyUnicode(str):
- pass
-
- s = MyUnicode("abc")
-
- self.assertEqual(type(s), MyUnicode)
-- self.assertTrue(isinstance(s, unicode))
-- self.assertEqual(type(literal(s)), unicode)
-+ self.assertTrue(isinstance(s, str))
-+ self.assertEqual(type(literal(s)), str)
-
- ## Test the engine's escape attribute.
-
-@@ -630,12 +630,12 @@ class Renderer_MakeRenderEngineTests(unittest.TestCase, AssertStringMixin, Asser
-
- """
- renderer = Renderer()
-- renderer.unicode = mock_unicode
-+ renderer.str = mock_unicode
-
- engine = renderer._make_render_engine()
- escape = engine.escape
-
-- b = u"foo".encode('ascii')
-+ b = "foo".encode('ascii')
- self.assertEqual(escape(b), "FOO")
-
- def test__escape__has_access_to_original_unicode_subclass(self):
-@@ -644,16 +644,16 @@ class Renderer_MakeRenderEngineTests(unittest.TestCase, AssertStringMixin, Asser
-
- """
- renderer = Renderer()
-- renderer.escape = lambda s: unicode(type(s).__name__)
-+ renderer.escape = lambda s: str(type(s).__name__)
-
- engine = renderer._make_render_engine()
- escape = engine.escape
-
-- class MyUnicode(unicode):
-+ class MyUnicode(str):
- pass
-
-- self.assertEqual(escape(u"foo".encode('ascii')), unicode.__name__)
-- self.assertEqual(escape(u"foo"), unicode.__name__)
-+ self.assertEqual(escape("foo".encode('ascii')), str.__name__)
-+ self.assertEqual(escape("foo"), str.__name__)
- self.assertEqual(escape(MyUnicode("foo")), MyUnicode.__name__)
-
- def test__escape__returns_unicode(self):
-@@ -667,17 +667,17 @@ class Renderer_MakeRenderEngineTests(unittest.TestCase, AssertStringMixin, Asser
- engine = renderer._make_render_engine()
- escape = engine.escape
-
-- self.assertEqual(type(escape("foo")), unicode)
-+ self.assertEqual(type(escape("foo")), str)
-
- # Check that literal doesn't preserve unicode subclasses.
-- class MyUnicode(unicode):
-+ class MyUnicode(str):
- pass
-
- s = MyUnicode("abc")
-
- self.assertEqual(type(s), MyUnicode)
-- self.assertTrue(isinstance(s, unicode))
-- self.assertEqual(type(escape(s)), unicode)
-+ self.assertTrue(isinstance(s, str))
-+ self.assertEqual(type(escape(s)), str)
-
- ## Test the missing_tags attribute.
-
-@@ -706,7 +706,7 @@ class Renderer_MakeRenderEngineTests(unittest.TestCase, AssertStringMixin, Asser
- stack = ContextStack({'foo': 'bar'})
-
- self.assertEqual('bar', engine.resolve_context(stack, 'foo'))
-- self.assertString(u'', engine.resolve_context(stack, 'missing'))
-+ self.assertString('', engine.resolve_context(stack, 'missing'))
-
- def test__resolve_context__missing_tags_strict(self):
- """
-diff --git a/pystache/tests/test_simple.py b/pystache/tests/test_simple.py
-index 07b059f..b88bf35 100644
---- a/pystache/tests/test_simple.py
-+++ b/pystache/tests/test_simple.py
-@@ -2,11 +2,11 @@ import unittest
-
- import pystache
- from pystache import Renderer
--from examples.nested_context import NestedContext
--from examples.complex import Complex
--from examples.lambdas import Lambdas
--from examples.template_partial import TemplatePartial
--from examples.simple import Simple
-+from .examples.nested_context import NestedContext
-+from .examples.complex import Complex
-+from .examples.lambdas import Lambdas
-+from .examples.template_partial import TemplatePartial
-+from .examples.simple import Simple
-
- from pystache.tests.common import EXAMPLES_DIR
- from pystache.tests.common import AssertStringMixin
-@@ -20,7 +20,7 @@ class TestSimple(unittest.TestCase, AssertStringMixin):
- view.template = '{{#foo}}{{thing1}} and {{thing2}} and {{outer_thing}}{{/foo}}{{^foo}}Not foo!{{/foo}}'
-
- actual = renderer.render(view)
-- self.assertString(actual, u"one and foo and two")
-+ self.assertString(actual, "one and foo and two")
-
- def test_looping_and_negation_context(self):
- template = '{{#item}}{{header}}: {{name}} {{/item}}{{^item}} Shouldnt see me{{/item}}'
-@@ -40,7 +40,7 @@ class TestSimple(unittest.TestCase, AssertStringMixin):
-
- renderer = Renderer()
- actual = renderer.render(view)
-- self.assertString(actual, u'bar != bar. oh, it does!')
-+ self.assertString(actual, 'bar != bar. oh, it does!')
-
- def test_rendering_partial(self):
- renderer = Renderer(search_dirs=EXAMPLES_DIR)
-@@ -49,11 +49,11 @@ class TestSimple(unittest.TestCase, AssertStringMixin):
- view.template = '{{>inner_partial}}'
-
- actual = renderer.render(view)
-- self.assertString(actual, u'Again, Welcome!')
-+ self.assertString(actual, 'Again, Welcome!')
-
- view.template = '{{#looping}}{{>inner_partial}} {{/looping}}'
- actual = renderer.render(view)
-- self.assertString(actual, u"Again, Welcome! Again, Welcome! Again, Welcome! ")
-+ self.assertString(actual, "Again, Welcome! Again, Welcome! Again, Welcome! ")
-
- def test_non_existent_value_renders_blank(self):
- view = Simple()
-@@ -77,7 +77,7 @@ class TestSimple(unittest.TestCase, AssertStringMixin):
- view = TemplatePartial(renderer=renderer)
-
- actual = renderer.render(view)
-- self.assertString(actual, u"""Welcome
-+ self.assertString(actual, """Welcome
- -------
-
- ## Again, Welcome! ##""")
-diff --git a/pystache/tests/test_specloader.py b/pystache/tests/test_specloader.py
-index cacc0fc..dcdc55f 100644
---- a/pystache/tests/test_specloader.py
-+++ b/pystache/tests/test_specloader.py
-@@ -9,11 +9,11 @@ import os.path
- import sys
- import unittest
-
--import examples
--from examples.simple import Simple
--from examples.complex import Complex
--from examples.lambdas import Lambdas
--from examples.inverted import Inverted, InvertedLists
-+from . import examples
-+from .examples.simple import Simple
-+from .examples.complex import Complex
-+from .examples.lambdas import Lambdas
-+from .examples.inverted import Inverted, InvertedLists
- from pystache import Renderer
- from pystache import TemplateSpec
- from pystache.common import TemplateNotFoundError
-@@ -70,7 +70,7 @@ class ViewTestCase(unittest.TestCase, AssertStringMixin):
- renderer2 = Renderer(search_dirs=EXAMPLES_DIR)
-
- actual = renderer1.render(spec)
-- self.assertString(actual, u"Partial: ")
-+ self.assertString(actual, "Partial: ")
-
- actual = renderer2.render(spec)
- self.assertEqual(actual, "Partial: No tags...")
-@@ -79,7 +79,7 @@ class ViewTestCase(unittest.TestCase, AssertStringMixin):
- renderer = Renderer()
- actual = renderer.render(Simple())
-
-- self.assertString(actual, u"Hi pizza!")
-+ self.assertString(actual, "Hi pizza!")
-
- def test_non_callable_attributes(self):
- view = Simple()
-@@ -92,7 +92,7 @@ class ViewTestCase(unittest.TestCase, AssertStringMixin):
- def test_complex(self):
- renderer = Renderer()
- actual = renderer.render(Complex())
-- self.assertString(actual, u"""\
-+ self.assertString(actual, """\
- <h1>Colors</h1>
- <ul>
- <li><strong>red</strong></li>
-@@ -111,7 +111,7 @@ class ViewTestCase(unittest.TestCase, AssertStringMixin):
-
- renderer = Renderer()
- actual = renderer.render(view)
-- self.assertString(actual, u'nopqrstuvwxyz')
-+ self.assertString(actual, 'nopqrstuvwxyz')
-
- def test_higher_order_lambda(self):
- view = Lambdas()
-@@ -119,7 +119,7 @@ class ViewTestCase(unittest.TestCase, AssertStringMixin):
-
- renderer = Renderer()
- actual = renderer.render(view)
-- self.assertString(actual, u'abcdefghijklmnopqrstuvwxyz')
-+ self.assertString(actual, 'abcdefghijklmnopqrstuvwxyz')
-
- def test_partials_with_lambda(self):
- view = Lambdas()
-@@ -127,7 +127,7 @@ class ViewTestCase(unittest.TestCase, AssertStringMixin):
-
- renderer = Renderer(search_dirs=EXAMPLES_DIR)
- actual = renderer.render(view)
-- self.assertEqual(actual, u'nopqrstuvwxyz')
-+ self.assertEqual(actual, 'nopqrstuvwxyz')
-
- def test_hierarchical_partials_with_lambdas(self):
- view = Lambdas()
-@@ -135,12 +135,12 @@ class ViewTestCase(unittest.TestCase, AssertStringMixin):
-
- renderer = Renderer(search_dirs=EXAMPLES_DIR)
- actual = renderer.render(view)
-- self.assertString(actual, u'nopqrstuvwxyznopqrstuvwxyz')
-+ self.assertString(actual, 'nopqrstuvwxyznopqrstuvwxyz')
-
- def test_inverted(self):
- renderer = Renderer()
- actual = renderer.render(Inverted())
-- self.assertString(actual, u"""one, two, three, empty list""")
-+ self.assertString(actual, """one, two, three, empty list""")
-
- def test_accessing_properties_on_parent_object_from_child_objects(self):
- parent = Thing()
-@@ -152,12 +152,12 @@ class ViewTestCase(unittest.TestCase, AssertStringMixin):
- renderer = Renderer()
- actual = renderer.render(view, {'parent': parent})
-
-- self.assertString(actual, u'derp')
-+ self.assertString(actual, 'derp')
-
- def test_inverted_lists(self):
- renderer = Renderer()
- actual = renderer.render(InvertedLists())
-- self.assertString(actual, u"""one, two, three, empty list""")
-+ self.assertString(actual, """one, two, three, empty list""")
-
-
- def _make_specloader():
-@@ -176,7 +176,7 @@ def _make_specloader():
- """
- if encoding is None:
- encoding = 'ascii'
-- return unicode(s, encoding, 'strict')
-+ return str(s, encoding, 'strict')
-
- loader = Loader(file_encoding='ascii', to_unicode=to_unicode)
- return SpecLoader(loader=loader)
-@@ -222,7 +222,7 @@ class SpecLoaderTests(unittest.TestCase, AssertIsMixin, AssertStringMixin,
- custom.template = "abc"
-
- spec_loader = self._make_specloader()
-- self._assert_template(spec_loader, custom, u"abc")
-+ self._assert_template(spec_loader, custom, "abc")
-
- def test_load__template__type_unicode(self):
- """
-@@ -230,10 +230,10 @@ class SpecLoaderTests(unittest.TestCase, AssertIsMixin, AssertStringMixin,
-
- """
- custom = TemplateSpec()
-- custom.template = u"abc"
-+ custom.template = "abc"
-
- spec_loader = self._make_specloader()
-- self._assert_template(spec_loader, custom, u"abc")
-+ self._assert_template(spec_loader, custom, "abc")
-
- def test_load__template__unicode_non_ascii(self):
- """
-@@ -241,10 +241,10 @@ class SpecLoaderTests(unittest.TestCase, AssertIsMixin, AssertStringMixin,
-
- """
- custom = TemplateSpec()
-- custom.template = u"é"
-+ custom.template = "é"
-
- spec_loader = self._make_specloader()
-- self._assert_template(spec_loader, custom, u"é")
-+ self._assert_template(spec_loader, custom, "é")
-
- def test_load__template__with_template_encoding(self):
- """
-@@ -252,14 +252,14 @@ class SpecLoaderTests(unittest.TestCase, AssertIsMixin, AssertStringMixin,
-
- """
- custom = TemplateSpec()
-- custom.template = u'é'.encode('utf-8')
-+ custom.template = 'é'.encode('utf-8')
-
- spec_loader = self._make_specloader()
-
-- self.assertRaises(UnicodeDecodeError, self._assert_template, spec_loader, custom, u'é')
-+ self.assertRaises(UnicodeDecodeError, self._assert_template, spec_loader, custom, 'é')
-
- custom.template_encoding = 'utf-8'
-- self._assert_template(spec_loader, custom, u'é')
-+ self._assert_template(spec_loader, custom, 'é')
-
- # TODO: make this test complete.
- def test_load__template__correct_loader(self):
-@@ -279,10 +279,10 @@ class SpecLoaderTests(unittest.TestCase, AssertIsMixin, AssertStringMixin,
- self.encoding = None
-
- # Overrides the existing method.
-- def unicode(self, s, encoding=None):
-+ def str(self, s, encoding=None):
- self.s = s
- self.encoding = encoding
-- return u"foo"
-+ return "foo"
-
- loader = MockLoader()
- custom_loader = SpecLoader()
-@@ -293,7 +293,7 @@ class SpecLoaderTests(unittest.TestCase, AssertIsMixin, AssertStringMixin,
- view.template_encoding = "encoding-foo"
-
- # Check that our unicode() above was called.
-- self._assert_template(custom_loader, view, u'foo')
-+ self._assert_template(custom_loader, view, 'foo')
- self.assertEqual(loader.s, "template-foo")
- self.assertEqual(loader.encoding, "encoding-foo")
-
-@@ -410,7 +410,7 @@ class TemplateSpecTests(unittest.TestCase, AssertPathsMixin):
- loader = self._make_loader()
- actual = loader.load(custom)
-
-- self.assertEqual(type(actual), unicode)
-+ self.assertEqual(type(actual), str)
- self.assertEqual(actual, expected)
-
- def test_get_template(self):
-@@ -420,7 +420,7 @@ class TemplateSpecTests(unittest.TestCase, AssertPathsMixin):
- """
- view = SampleView()
-
-- self._assert_get_template(view, u"ascii: abc")
-+ self._assert_get_template(view, "ascii: abc")
-
- def test_get_template__template_encoding(self):
- """
-@@ -432,4 +432,4 @@ class TemplateSpecTests(unittest.TestCase, AssertPathsMixin):
- self.assertRaises(UnicodeDecodeError, self._assert_get_template, view, 'foo')
-
- view.template_encoding = 'utf-8'
-- self._assert_get_template(view, u"non-ascii: é")
-+ self._assert_get_template(view, "non-ascii: é")
-diff --git a/setup.cfg b/setup.cfg
-index 861a9f5..f6f1279 100644
---- a/setup.cfg
-+++ b/setup.cfg
-@@ -1,5 +1,71 @@
--[egg_info]
--tag_build =
--tag_date = 0
--tag_svn_revision = 0
-+[metadata]
-+name = pystache
-+version = attr: pystache.__version__
-+author = Chris Wanstrath
-+author_email = chris@ozmm.org
-+maintainer = Steve Arnold
-+maintainer_email = nerdboy@gentoo.org
-+description = Mustache for Python
-+url = https://github.com/sarnold/pystache
-+license = MIT
-+license_files = LICENSE
-+classifiers =
-+ Development Status :: 4 - Beta
-+ Intended Audience :: Developers
-+ License :: OSI Approved :: MIT License
-+ Programming Language :: Python :: 3
-+ Programming Language :: Python :: 3.6
-+ Programming Language :: Python :: 3.7
-+ Programming Language :: Python :: 3.8
-+ Programming Language :: Python :: 3.9
-
-+[options]
-+python_requires = >=3.6
-+zip_safe = True
-+include_package_data = True
-+packages = find:
-+
-+[options.package_data]
-+* = *.mustache, *.txt
-+
-+[options.entry_points]
-+console_scripts =
-+ pystache=pystache.commands.render:main
-+ pystache-test=pystache.commands.test:main
-+
-+[options.extras_require]
-+test =
-+ nose
-+
-+cov =
-+ coverage
-+
-+[bdist_wheel]
-+universal = 0
-+
-+[check-manifest]
-+ignore =
-+ .codeclimate.yml
-+ .gitattributes
-+ .coveragerc
-+ .gitignore
-+ .pep8speaks.yml
-+ codecov.yml
-+
-+[flake8]
-+exclude =
-+ .git,
-+ __pycache__,
-+ build,
-+ dist
-+
-+max-line-length = 110
-+
-+[nosetests]
-+traverse-namespace = 1
-+verbosity = 3
-+with-coverage = 1
-+with-doctest = 1
-+doctest-extension = rst
-+cover-package = pystache
-+cover-xml = 1
-diff --git a/setup.py b/setup.py
-index 0d99aae..f0b7d7f 100644
---- a/setup.py
-+++ b/setup.py
-@@ -28,7 +28,7 @@ it on the PyPI project page. If PyPI finds any issues, it will render it
- instead as plain-text, which we do not want.
-
- To check in advance that PyPI will accept and parse the reST file as HTML,
--you can use the rst2html program installed by the docutils package
-+you can use the rst2html.py program installed by the docutils package
- (http://docutils.sourceforge.net/). To install docutils:
-
- $ pip install docutils
-@@ -89,30 +89,7 @@ import os
- import shutil
- import sys
-
--
--py_version = sys.version_info
--
--# distutils does not seem to support the following setup() arguments.
--# It displays a UserWarning when setup() is passed those options:
--#
--# * entry_points
--# * install_requires
--#
--# distribute works with Python 2.3.5 and above:
--#
--# http://packages.python.org/distribute/setuptools.html#building-and-distributing-packages-with-distribute
--#
--if py_version < (2, 3, 5):
-- # TODO: this might not work yet.
-- import distutils as dist
-- from distutils import core
-- setup = core.setup
--else:
-- import setuptools as dist
-- setup = dist.setup
--
--
--VERSION = '0.5.4' # Also change in pystache/__init__.py.
-+from setuptools import setup
-
- FILE_ENCODING = 'utf-8'
-
-@@ -126,22 +103,6 @@ TEMP_EXTENSION = '.temp'
-
- PREP_COMMAND = 'prep'
-
--CLASSIFIERS = (
-- 'Development Status :: 4 - Beta',
-- 'License :: OSI Approved :: MIT License',
-- 'Programming Language :: Python',
-- 'Programming Language :: Python :: 2',
-- 'Programming Language :: Python :: 2.4',
-- 'Programming Language :: Python :: 2.5',
-- 'Programming Language :: Python :: 2.6',
-- 'Programming Language :: Python :: 2.7',
-- 'Programming Language :: Python :: 3',
-- 'Programming Language :: Python :: 3.1',
-- 'Programming Language :: Python :: 3.2',
-- 'Programming Language :: Python :: 3.3',
-- 'Programming Language :: Python :: Implementation :: PyPy',
--)
--
- # Comments in reST begin with two dots.
- RST_LONG_DESCRIPTION_INTRO = """\
- .. Do not edit this file. This file is auto-generated for PyPI by setup.py
-@@ -221,7 +182,7 @@ def convert_md_to_rst(md_path, rst_temp_path):
-
- """
- # Pandoc uses the UTF-8 character encoding for both input and output.
-- command = "pandoc --write=rst --output=%s %s" % (rst_temp_path, md_path)
-+ command = "pandoc -f markdown-smart --write=rst --output=%s %s" % (rst_temp_path, md_path)
- print("converting with pandoc: %s to %s\n-->%s" % (md_path, rst_temp_path,
- command))
-
-@@ -308,65 +269,9 @@ Run the following command and commit the changes--
- os.system('python setup.py sdist upload')
-
-
--# We use the package simplejson for older Python versions since Python
--# does not contain the module json before 2.6:
--#
--# http://docs.python.org/library/json.html
--#
--# Moreover, simplejson stopped officially support for Python 2.4 in version 2.1.0:
--#
--# https://github.com/simplejson/simplejson/blob/master/CHANGES.txt
--#
--requires = []
--if py_version < (2, 5):
-- requires.append('simplejson<2.1')
--elif py_version < (2, 6):
-- requires.append('simplejson')
--
--INSTALL_REQUIRES = requires
--
--# TODO: decide whether to use find_packages() instead. I'm not sure that
--# find_packages() is available with distutils, for example.
--PACKAGES = [
-- 'pystache',
-- 'pystache.commands',
-- # The following packages are only for testing.
-- 'pystache.tests',
-- 'pystache.tests.data',
-- 'pystache.tests.data.locator',
-- 'pystache.tests.examples',
--]
--
--
--# The purpose of this function is to follow the guidance suggested here:
--#
--# http://packages.python.org/distribute/python3.html#note-on-compatibility-with-setuptools
--#
--# The guidance is for better compatibility when using setuptools (e.g. with
--# earlier versions of Python 2) instead of Distribute, because of new
--# keyword arguments to setup() that setuptools may not recognize.
--def get_extra_args():
-- """
-- Return a dictionary of extra args to pass to setup().
--
-- """
-- extra = {}
-- # TODO: it might be more correct to check whether we are using
-- # Distribute instead of setuptools, since use_2to3 doesn't take
-- # effect when using Python 2, even when using Distribute.
-- if py_version >= (3, ):
-- # Causes 2to3 to be run during the build step.
-- extra['use_2to3'] = True
--
-- return extra
--
--
- def main(sys_argv):
-
- # TODO: use the logging module instead of printing.
-- # TODO: include the following in a verbose mode.
-- sys.stderr.write("pystache: using: version %s of %s\n" % (repr(dist.__version__), repr(dist)))
--
- command = sys_argv[-1]
-
- if command == 'publish':
-@@ -377,35 +282,10 @@ def main(sys_argv):
- sys.exit()
-
- long_description = read(RST_DESCRIPTION_PATH)
-- template_files = ['*.mustache', '*.txt']
-- extra_args = get_extra_args()
--
-- setup(name='pystache',
-- version=VERSION,
-- license='MIT',
-- description='Mustache for Python',
-- long_description=long_description,
-- author='Chris Wanstrath',
-- author_email='chris@ozmm.org',
-- maintainer='Chris Jerdonek',
-- maintainer_email='chris.jerdonek@gmail.com',
-- url='http://github.com/defunkt/pystache',
-- install_requires=INSTALL_REQUIRES,
-- packages=PACKAGES,
-- package_data = {
-- # Include template files so tests can be run.
-- 'pystache.tests.data': template_files,
-- 'pystache.tests.data.locator': template_files,
-- 'pystache.tests.examples': template_files,
-- },
-- entry_points = {
-- 'console_scripts': [
-- 'pystache=pystache.commands.render:main',
-- 'pystache-test=pystache.commands.test:main',
-- ],
-- },
-- classifiers = CLASSIFIERS,
-- **extra_args
-+
-+ setup(
-+ long_description=long_description,
-+ long_description_content_type='text/x-rst',
- )
-
-
-diff --git a/setup_description.rst b/setup_description.rst
-index 724c457..d7f1bc0 100644
---- a/setup_description.rst
-+++ b/setup_description.rst
-@@ -4,13 +4,17 @@
- Pystache
- ========
-
--.. figure:: http://defunkt.github.com/pystache/images/logo_phillips.png
-- :alt: mustachioed, monocled snake by David Phillips
-+|ci| |Conda| |Wheels| |Release| |Python|
-
--.. figure:: https://secure.travis-ci.org/defunkt/pystache.png
-- :alt: Travis CI current build status
-+|Latest release| |License| |Maintainability| |codecov|
-
--`Pystache <http://defunkt.github.com/pystache>`__ is a Python
-+This updated fork of Pystache is currently tested on Python 3.6+ and in
-+Conda, on Linux, Macos, and Windows (Python 2.7 support has been
-+removed).
-+
-+|image9|
-+
-+`Pystache <http://sarnold.github.com/pystache>`__ is a Python
- implementation of `Mustache <http://mustache.github.com/>`__. Mustache
- is a framework-agnostic, logic-free templating system inspired by
- `ctemplate <http://code.google.com/p/google-ctemplate/>`__ and
-@@ -23,62 +27,45 @@ page provides a good introduction to Mustache's syntax. For a more
- complete (and more current) description of Mustache's behavior, see the
- official `Mustache spec <https://github.com/mustache/spec>`__.
-
--Pystache is `semantically versioned <http://semver.org>`__ and can be
--found on `PyPI <http://pypi.python.org/pypi/pystache>`__. This version
--of Pystache passes all tests in `version
--1.1.2 <https://github.com/mustache/spec/tree/v1.1.2>`__ of the spec.
-+Pystache is `semantically versioned <http://semver.org>`__ and older
-+versions can still be found on
-+`PyPI <http://pypi.python.org/pypi/pystache>`__. This version of
-+Pystache now passes all tests in `version
-+1.1.3 <https://github.com/mustache/spec/tree/v1.1.3>`__ of the spec.
-
- Requirements
- ------------
-
- Pystache is tested with--
-
--- Python 2.4 (requires simplejson `version
-- 2.0.9 <http://pypi.python.org/pypi/simplejson/2.0.9>`__ or earlier)
--- Python 2.5 (requires
-- `simplejson <http://pypi.python.org/pypi/simplejson/>`__)
--- Python 2.6
--- Python 2.7
--- Python 3.1
--- Python 3.2
--- Python 3.3
--- `PyPy <http://pypy.org/>`__
-+- Python 3.6
-+- Python 3.7
-+- Python 3.8
-+- Python 3.9
-+- Conda (py36-py39)
-
- `Distribute <http://packages.python.org/distribute/>`__ (the setuptools
--fork) is recommended over
--`setuptools <http://pypi.python.org/pypi/setuptools>`__, and is required
--in some cases (e.g. for Python 3 support). If you use
--`pip <http://www.pip-installer.org/>`__, you probably already satisfy
--this requirement.
-+fork) is no longer required over
-+`setuptools <http://pypi.python.org/pypi/setuptools>`__, as the current
-+packaging is now PEP517-compliant.
-
- JSON support is needed only for the command-line interface and to run
--the spec tests. We require simplejson for earlier versions of Python
--since Python's `json <http://docs.python.org/library/json.html>`__
--module was added in Python 2.6.
--
--For Python 2.4 we require an earlier version of simplejson since
--simplejson stopped officially supporting Python 2.4 in simplejson
--version 2.1.0. Earlier versions of simplejson can be installed manually,
--as follows:
--
--::
--
-- pip install 'simplejson<2.1.0'
-+the spec tests; PyYAML can still be used (see the Develop section).
-
--Official support for Python 2.4 will end with Pystache version 0.6.0.
-+Official support for Python 2 will end with Pystache version 0.6.0.
-
- Install It
- ----------
-
- ::
-
-- pip install pystache
-+ pip install -U pystache -f https://github.com/sarnold/pystache/releases/
-
- And test it--
-
- ::
-
-- pystache-test
-+ pystache-test
-
- To install and test from source (e.g. from GitHub), see the Develop
- section.
-@@ -88,68 +75,68 @@ Use It
-
- ::
-
-- >>> import pystache
-- >>> print pystache.render('Hi {{person}}!', {'person': 'Mom'})
-- Hi Mom!
-+ >>> import pystache
-+ >>> print(pystache.render('Hi {{person}}!', {'person': 'Mom'}))
-+ Hi Mom!
-
- You can also create dedicated view classes to hold your view logic.
-
--Here's your view class (in .../examples/readme.py):
-+Here's your view class (in ../pystache/tests/examples/readme.py):
-
- ::
-
-- class SayHello(object):
-- def to(self):
-- return "Pizza"
-+ class SayHello(object):
-+ def to(self):
-+ return "Pizza"
-
- Instantiating like so:
-
- ::
-
-- >>> from pystache.tests.examples.readme import SayHello
-- >>> hello = SayHello()
-+ >>> from pystache.tests.examples.readme import SayHello
-+ >>> hello = SayHello()
-
--Then your template, say\_hello.mustache (by default in the same
--directory as your class definition):
-+Then your template, say_hello.mustache (by default in the same directory
-+as your class definition):
-
- ::
-
-- Hello, {{to}}!
-+ Hello, {{to}}!
-
- Pull it together:
-
- ::
-
-- >>> renderer = pystache.Renderer()
-- >>> print renderer.render(hello)
-- Hello, Pizza!
-+ >>> renderer = pystache.Renderer()
-+ >>> print(renderer.render(hello))
-+ Hello, Pizza!
-
- For greater control over rendering (e.g. to specify a custom template
- directory), use the ``Renderer`` class like above. One can pass
- attributes to the Renderer class constructor or set them on a Renderer
- instance. To customize template loading on a per-view basis, subclass
- ``TemplateSpec``. See the docstrings of the
--`Renderer <https://github.com/defunkt/pystache/blob/master/pystache/renderer.py>`__
-+`Renderer <https://github.com/sarnold/pystache/blob/master/pystache/renderer.py>`__
- class and
--`TemplateSpec <https://github.com/defunkt/pystache/blob/master/pystache/template_spec.py>`__
-+`TemplateSpec <https://github.com/sarnold/pystache/blob/master/pystache/template_spec.py>`__
- class for more information.
-
- You can also pre-parse a template:
-
- ::
-
-- >>> parsed = pystache.parse(u"Hey {{#who}}{{.}}!{{/who}}")
-- >>> print parsed
-- [u'Hey ', _SectionNode(key=u'who', index_begin=12, index_end=18, parsed=[_EscapeNode(key=u'.'), u'!'])]
-+ >>> parsed = pystache.parse(u"Hey {{#who}}{{.}}!{{/who}}")
-+ >>> print(parsed)
-+ ['Hey ', _SectionNode(key='who', index_begin=12, index_end=18, parsed=[_EscapeNode(key='.'), '!'])]
-
- And then:
-
- ::
-
-- >>> print renderer.render(parsed, {'who': 'Pops'})
-- Hey Pops!
-- >>> print renderer.render(parsed, {'who': 'you'})
-- Hey you!
-+ >>> print(renderer.render(parsed, {'who': 'Pops'}))
-+ Hey Pops!
-+ >>> print(renderer.render(parsed, {'who': 'you'}))
-+ Hey you!
-
- Python 3
- --------
-@@ -211,22 +198,24 @@ To test from a source distribution (without installing)--
-
- ::
-
-- python test_pystache.py
-+ python test_pystache.py
-
- To test Pystache with multiple versions of Python (with a single
--command!), you can use `tox <http://pypi.python.org/pypi/tox>`__:
-+command!) and different platforms, you can use
-+`tox <http://pypi.python.org/pypi/tox>`__:
-
- ::
-
-- pip install 'virtualenv<1.8' # Version 1.8 dropped support for Python 2.4.
-- pip install 'tox<1.4' # Version 1.4 dropped support for Python 2.4.
-- tox
-+ pip install tox
-+ tox -e setup
-
--If you do not have all Python versions listed in ``tox.ini``--
-+To run tests on multiple versions with coverage, run:
-
- ::
-
-- tox -e py26,py32 # for example
-+ tox -e py38-linux,py39-linux # for example
-+
-+(substitute your platform above, eg, macos or windows)
-
- The source distribution tests also include doctests and tests from the
- Mustache spec. To include tests from the Mustache spec in your test
-@@ -234,8 +223,8 @@ runs:
-
- ::
-
-- git submodule init
-- git submodule update
-+ git submodule init
-+ git submodule update
-
- The test harness parses the spec's (more human-readable) yaml files if
- `PyYAML <http://pypi.python.org/pypi/PyYAML>`__ is present. Otherwise,
-@@ -243,94 +232,113 @@ it parses the json files. To install PyYAML--
-
- ::
-
-- pip install pyyaml
-+ pip install pyyaml
-+
-+Once the submodule is available, you can run the full test set with:
-+
-+::
-+
-+ tox -e setup . ext/spec/specs
-
- To run a subset of the tests, you can use
- `nose <http://somethingaboutorange.com/mrl/projects/nose/0.11.1/testing.html>`__:
-
- ::
-
-- pip install nose
-- nosetests --tests pystache/tests/test_context.py:GetValueTests.test_dictionary__key_present
-+ pip install nose
-+ nosetests --tests pystache/tests/test_context.py:GetValueTests.test_dictionary__key_present
-
--Using Python 3 with Pystache from source
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+Mailing List (old)
-+------------------
-
--Pystache is written in Python 2 and must be converted to Python 3 prior
--to using it with Python 3. The installation process (and tox) do this
--automatically.
-+There is(was) a `mailing
-+list <http://librelist.com/browser/pystache/>`__. Note that there is a
-+bit of a delay between posting a message and seeing it appear in the
-+mailing list archive.
-
--To convert the code to Python 3 manually (while using Python 3)--
-+Credits
-+-------
-
- ::
-
-- python setup.py build
-+ >>> import pystache
-+ >>> context = { 'author': 'Chris Wanstrath', 'maintainer': 'Chris Jerdonek','refurbisher': 'Steve Arnold' }
-+ >>> print(pystache.render("Author: {{author}}\nMaintainer: {{maintainer}}\nRefurbisher: {{refurbisher}}", context))
-+ Author: Chris Wanstrath
-+ Maintainer: Chris Jerdonek
-+ Refurbisher: Steve Arnold
-
--This writes the converted code to a subdirectory called ``build``. By
--design, Python 3 builds
--`cannot <https://bitbucket.org/tarek/distribute/issue/292/allow-use_2to3-with-python-2>`__
--be created from Python 2.
-+Pystache logo by `David Phillips <http://davidphillips.us/>`__ is
-+licensed under a `Creative Commons Attribution-ShareAlike 3.0 Unported
-+License <http://creativecommons.org/licenses/by-sa/3.0/deed.en_US>`__.
-+|image10|
-
--To convert the code without using setup.py, you can use
--`2to3 <http://docs.python.org/library/2to3.html>`__ as follows (two
--steps)--
-+History
-+=======
-
--::
-+**Note:** Official support for Python 2.7 will end with Pystache version
-+0.6.0.
-
-- 2to3 --write --nobackups --no-diffs --doctests_only pystache
-- 2to3 --write --nobackups --no-diffs pystache
-+0.6.0 (2021-03-04)
-+------------------
-
--This converts the code (and doctests) in place.
-+- Bump spec versions to latest => v1.1.3
-+- Modernize python and CI tools, update docs/doctests
-+- Update unicode conversion test for py3-only
-+- Add pep8speaks cfg, cleanup warnings
-+- Remove superfluous setup test/unused imports
-+- Add conda recipe/CI build
-
--To ``import pystache`` from a source distribution while using Python 3,
--be sure that you are importing from a directory containing a converted
--version of the code (e.g. from the ``build`` directory after
--converting), and not from the original (unconverted) source directory.
--Otherwise, you will get a syntax error. You can help prevent this by not
--running the Python IDE from the project directory when importing
--Pystache while using Python 3.
-+.. _section-1:
-
--Mailing List
--------------
-+0.5.6 (2021-02-28)
-+------------------
-
--There is a `mailing list <http://librelist.com/browser/pystache/>`__.
--Note that there is a bit of a delay between posting a message and seeing
--it appear in the mailing list archive.
-+- Use correct wheel name in release workflow, limit wheels
-+- Add install check/test of downloaded wheel
-+- Update/add ci workflows and tox cfg, bump to next dev0 version
-
--Credits
---------
-+.. _section-2:
-
--::
-+0.5.5 (2020-12-16)
-+------------------
-
-- >>> context = { 'author': 'Chris Wanstrath', 'maintainer': 'Chris Jerdonek' }
-- >>> print pystache.render("Author: {{author}}\nMaintainer: {{maintainer}}", context)
-- Author: Chris Wanstrath
-- Maintainer: Chris Jerdonek
-+- fix document processing, update pandoc args and history
-+- add release.yml to CI, test env settings
-+- fix bogus commit message, update versions and tox cf
-+- add post-test steps for building pkgs with/without doc updates
-+- add CI build check, fix MANIFEST.in pruning
-
--Pystache logo by `David Phillips <http://davidphillips.us/>`__ is
--licensed under a `Creative Commons Attribution-ShareAlike 3.0 Unported
--License <http://creativecommons.org/licenses/by-sa/3.0/deed.en_US>`__.
--|image0|
-+.. _section-3:
-
--History
--=======
-+0.5.4-2 (2020-11-09)
-+--------------------
-
--**Note:** Official support for Python 2.4 will end with Pystache version
--0.6.0.
-+- Merge pull request #1 from sarnold/rebase-up
-+- Bugfix: test_specloader.py: fix test_find__with_directory on other
-+ OSs
-+- Bugfix: pystache/loader.py: remove stray windows line-endings
-+- fix crufty (and insecure) http urls
-+- Bugfix: modernize python versions (keep py27) and fix spec_test load
-+ cmd
-+
-+.. _section-4:
-
- 0.5.4 (2014-07-11)
- ------------------
-
- - Bugfix: made test with filenames OS agnostic (issue #162).
-
-+.. _section-5:
-+
- 0.5.3 (2012-11-03)
- ------------------
-
- - Added ability to customize string coercion (e.g. to have None render
- as ``''``) (issue #130).
--- Added Renderer.render\_name() to render a template by name (issue
-+- Added Renderer.render_name() to render a template by name (issue
- #122).
--- Added TemplateSpec.template\_path to specify an absolute path to a
-+- Added TemplateSpec.template_path to specify an absolute path to a
- template (issue #41).
- - Added option of raising errors on missing tags/partials:
- ``Renderer(missing_tags='strict')`` (issue #110).
-@@ -355,6 +363,8 @@ History
- - More robust handling of byte strings in Python 3.
- - Added Creative Commons license for David Phillips's logo.
-
-+.. _section-6:
-+
- 0.5.2 (2012-05-03)
- ------------------
-
-@@ -367,16 +377,20 @@ History
- context stack (issue #113).
- - Bugfix: lists of lambdas for sections were not rendered (issue #114).
-
-+.. _section-7:
-+
- 0.5.1 (2012-04-24)
- ------------------
-
- - Added support for Python 3.1 and 3.2.
- - Added tox support to test multiple Python versions.
- - Added test script entry point: pystache-test.
--- Added \_\_version\_\_ package attribute.
-+- Added \__version_\_ package attribute.
- - Test harness now supports both YAML and JSON forms of Mustache spec.
- - Test harness no longer requires nose.
-
-+.. _section-8:
-+
- 0.5.0 (2012-04-03)
- ------------------
-
-@@ -435,11 +449,15 @@ Bug fixes:
- - Passing ``**kwargs`` to ``Template()`` with no context no longer
- raises an exception.
-
-+.. _section-9:
-+
- 0.4.1 (2012-03-25)
- ------------------
-
- - Added support for Python 2.4. [wangtz, jvantuyl]
-
-+.. _section-10:
-+
- 0.4.0 (2011-01-12)
- ------------------
-
-@@ -447,19 +465,25 @@ Bug fixes:
- - Add support for inverted lists
- - Decoupled template loading
-
-+.. _section-11:
-+
- 0.3.1 (2010-05-07)
- ------------------
-
- - Fix package
-
-+.. _section-12:
-+
- 0.3.0 (2010-05-03)
- ------------------
-
--- View.template\_path can now hold a list of path
-+- View.template_path can now hold a list of path
- - Add {{& blah}} as an alias for {{{ blah }}}
- - Higher Order Sections
- - Inverted sections
-
-+.. _section-13:
-+
- 0.2.0 (2010-02-15)
- ------------------
-
-@@ -473,12 +497,16 @@ Bug fixes:
- [enaeseth]
- - Template file encoding awareness. [enaeseth]
-
-+.. _section-14:
-+
- 0.1.1 (2009-11-13)
- ------------------
-
- - Ensure we're dealing with strings, always
- - Tests can be run by executing the test file directly
-
-+.. _section-15:
-+
- 0.1.0 (2009-11-12)
- ------------------
-
-@@ -510,4 +538,23 @@ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
--.. |image0| image:: http://i.creativecommons.org/l/by-sa/3.0/88x31.png
-+.. |ci| image:: https://github.com/sarnold/pystache/actions/workflows/ci.yml/badge.svg
-+ :target: https://github.com/sarnold/pystache/actions/workflows/ci.yml
-+.. |Conda| image:: https://github.com/sarnold/pystache/actions/workflows/conda.yml/badge.svg
-+ :target: https://github.com/sarnold/pystache/actions/workflows/conda.yml
-+.. |Wheels| image:: https://github.com/sarnold/pystache/actions/workflows/wheels.yml/badge.svg
-+ :target: https://github.com/sarnold/pystache/actions/workflows/wheels.yml
-+.. |Release| image:: https://github.com/sarnold/pystache/actions/workflows/release.yml/badge.svg
-+ :target: https://github.com/sarnold/pystache/actions/workflows/release.yml
-+.. |Python| image:: https://img.shields.io/badge/python-3.6+-blue.svg
-+ :target: https://www.python.org/downloads/
-+.. |Latest release| image:: https://img.shields.io/github/v/release/sarnold/pystache?include_prereleases
-+ :target: https://github.com/sarnold/pystache/releases/latest
-+.. |License| image:: https://img.shields.io/github/license/sarnold/pystache
-+ :target: https://github.com/sarnold/pystache/blob/master/LICENSE
-+.. |Maintainability| image:: https://api.codeclimate.com/v1/badges/a8fa1bf4638bfc6581b6/maintainability
-+ :target: https://codeclimate.com/github/sarnold/pystache/maintainability
-+.. |codecov| image:: https://codecov.io/gh/sarnold/pystache/branch/master/graph/badge.svg?token=5PZNMZBI6K
-+ :target: https://codecov.io/gh/sarnold/pystache
-+.. |image9| image:: gh/images/logo_phillips_small.png
-+.. |image10| image:: http://i.creativecommons.org/l/by-sa/3.0/88x31.png
-diff --git a/tox.ini b/tox.ini
-index d1eaebf..66c4515 100644
---- a/tox.ini
-+++ b/tox.ini
-@@ -1,36 +1,110 @@
--# A tox configuration file to test across multiple Python versions.
--#
--# http://pypi.python.org/pypi/tox
--#
- [tox]
--# Tox 1.4 drops py24 and adds py33. In the current version, we want to
--# support 2.4, so we can't simultaneously support 3.3.
--envlist = py24,py25,py26,py27,py27-yaml,py27-noargs,py31,py32,pypy
-+envlist = py{36,37,38,39}-{linux,macos,windows}
-+skip_missing_interpreters = true
-+isolated_build = true
-+#skipsdist = true
-+
-+[gh-actions]
-+python =
-+ 3.6: py36
-+ 3.7: py37
-+ 3.8: py38
-+ 3.9: py39
-+
-+[gh-actions:env]
-+PLATFORM =
-+ ubuntu-18.04: linux
-+ macos-latest: macos
-+ windows-latest: windows
-
- [testenv]
-+passenv = CI PYTHON PYTHONIOENCODING
-+
-+deps =
-+ pip>=20.0.1
-+ nose
-+ coverage
-+
-+commands =
-+ nosetests -sx . {posargs}
-+
-+[testenv:bare]
- # Change the working directory so that we don't import the pystache located
- # in the original location.
-+deps =
-+ pip>=20.0.1
-+ -e .
-+
- changedir =
- {envbindir}
-+
- commands =
-- pystache-test {toxinidir}
-+ pystache-test
-+
-+[testenv:bench]
-+passenv = CI PYTHON PYTHONIOENCODING
-
--# Check that the spec tests work with PyYAML.
--[testenv:py27-yaml]
--basepython =
-- python2.7
- deps =
-- PyYAML
--changedir =
-- {envbindir}
-+ pip>=20.0.1
-+ # uncomment for comparison, posargs expects a number, eg, 10000
-+ #chevron
-+
-+commands_pre =
-+ pip install .
-+
- commands =
-- pystache-test {toxinidir}
-+ python pystache/tests/benchmark.py {posargs}
-+
-+[testenv:setup]
-+passenv = CI PYTHON PYTHONIOENCODING
-+
-+deps =
-+ pyyaml
-+ twine
-+
-+commands =
-+ python setup.py install
-+ twine check dist/*
-+ pystache-test {posargs}
-+
-+[testenv:deploy]
-+passenv = CI PYTHON PYTHONIOENCODING
-+allowlist_externals = bash
-+
-+deps =
-+ pip>=19.0.1
-+ wheel
-+ pep517
-+ twine
-+
-+commands =
-+ python -m pep517.build .
-+ twine check dist/*
-+
-+[testenv:check]
-+passenv = CI PYTHON PYTHONIOENCODING
-+skip_install = true
-+
-+allowlist_externals = bash
-+
-+deps =
-+ pip>=20.0.1
-
--# Check that pystache-test works from an install with no arguments.
--[testenv:py27-noargs]
--basepython =
-- python2.7
--changedir =
-- {envbindir}
- commands =
-+ bash -c 'export WHL_FILE=$(ls dist/*.whl); \
-+ python -m pip install $WHL_FILE'
- pystache-test
-+
-+[testenv:docs]
-+passenv = CI PYTHON PYTHONIOENCODING
-+allowlist_externals = bash
-+
-+deps =
-+ pip>=19.0.1
-+ wheel
-+ docutils
-+ # apt/emerge pandoc first
-+
-+commands =
-+ python setup.py prep
-+ bash -c 'python setup.py --long-description | rst2html.py -v --no-raw > out.html'
-diff --git a/travis.yml_disabled b/travis.yml_disabled
-new file mode 100644
-index 0000000..f0b4042
---- /dev/null
-+++ b/travis.yml_disabled
-@@ -0,0 +1,52 @@
-+dist: xenial
-+language: python
-+
-+# Travis CI has no plans to support Jython and no longer supports Python 2.5.
-+python:
-+ - "2.7"
-+ - "3.5"
-+ - "3.6"
-+ - "3.7"
-+ - "3.8"
-+ - "3.9-dev"
-+ - "nightly"
-+
-+matrix:
-+ fast_finish: true
-+ include:
-+ - os: osx
-+ # osx is goofy, ``python`` is always py2, images mutate fast
-+ language: shell
-+ before_install:
-+ - pip3 install --upgrade pip wheel
-+ install:
-+ - python3 setup.py install
-+ script:
-+ - pystache-test . ext/spec/specs
-+ - os: windows
-+ # windows is even goofier, install path is different for python/python3
-+ # but either way you get python3 and the cmd is always ``python`` o.O
-+ # (also versions mutuate like bacteria)
-+ language: shell
-+ before_install:
-+ - choco install python3 --params "/InstallDir:C:\\Python"
-+ - python -m pip install --upgrade pip wheel
-+ env: PATH="/c/Python:/c/Python/Scripts:$PATH"
-+ install:
-+ - python setup.py install
-+ script:
-+ - pystache-test . ext/spec/specs
-+ allow_failures:
-+ - python: "nightly"
-+
-+# command to install dependencies
-+install:
-+ - pip install --upgrade pip
-+ - pip install codecov
-+
-+script:
-+ - python setup.py install
-+ # Include the spec tests directory for Mustache spec tests and the
-+ # project directory for doctests.
-+ - pystache-test . ext/spec/specs
-+ #- tox
---
-2.33.0
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pystache_0.5.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pystache_0.5.4.bb
deleted file mode 100644
index 0ae5a19115..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pystache_0.5.4.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Python implementation of Mustache"
-HOMEPAGE = "https://github.com/defunkt/pystache"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=eb4417802c56384aac71b34505528a60"
-
-SRC_URI += "file://0001-Modernize-python-versions-remove-py2x-and-fix-tests-.patch"
-
-SRC_URI[md5sum] = "485885e67a0f6411d5252e69b20a35ca"
-SRC_URI[sha256sum] = "f7bbc265fb957b4d6c7c042b336563179444ab313fb93a719759111eabd3b85a"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-netserver \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pystemd_0.8.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pystemd_0.8.0.bb
index cdfb7d3b0c..0056a794f9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pystemd_0.8.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pystemd_0.8.0.bb
@@ -1,5 +1,5 @@
SUMMARY = "Python bindings for interacting with systemd over DBus"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=4fbd65380cdd255951079008b364516c"
SRC_URI[md5sum] = "f993739eca645749f18d4ccfd4a0fbf3"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-forked_1.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-forked_1.4.0.bb
index c6f352bc61..a751ad6e5a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-forked_1.4.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-forked_1.4.0.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=772fcdaca14b378878d05c7d857e6c3e"
SRC_URI[sha256sum] = "8b67587c8f98cbbadfdd804539ed5455b6ed03802203485dd2f53c1422d7440e"
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
DEPENDS += "python3-setuptools-scm-native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-helpers-namespace_2021.4.29.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-helpers-namespace_2021.4.29.bb
index 0ee1bd6866..024650e9b3 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-helpers-namespace_2021.4.29.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-helpers-namespace_2021.4.29.bb
@@ -6,17 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=440a4cdb311cd7ad181efb4cba06d562"
SRC_URI[sha256sum] = "183524e3db4e2a1fea92e0ca3662a624ba44c9f3568da15679d7535ba6838a6a"
-inherit pypi setuptools3
-
-# Workaround for network access issue during compile step
-# this needs to be fixed in the recipes buildsystem to move
-# this such that it can be accomplished during do_fetch task
-do_compile[network] = "1"
-
-DEPENDS += "\
- ${PYTHON_PN}-wheel-native \
- ${PYTHON_PN}-pip-native \
-"
+inherit pypi python_setuptools_build_meta
RDEPENDS:${PN} += " \
${PYTHON_PN}-pytest \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-html_3.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-html_3.1.1.bb
index cd0450f519..ce55554a01 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-html_3.1.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-html_3.1.1.bb
@@ -6,10 +6,9 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=5d425c8f3157dbf212db2ec53d9e5132"
SRC_URI[sha256sum] = "3ee1cf319c913d19fe53aeb0bc400e7b0bc2dbeb477553733db1dad12eb75ee3"
-
PYPI_PACKAGE = "pytest-html"
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
RDEPENDS:${PN} += " \
${PYTHON_PN}-pytest \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bcrypt/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-lazy-fixture/run-ptest
index b63c4de0d9..b63c4de0d9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-bcrypt/run-ptest
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-lazy-fixture/run-ptest
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-lazy-fixture_0.6.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-lazy-fixture_0.6.3.bb
new file mode 100644
index 0000000000..32b5677f1a
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-lazy-fixture_0.6.3.bb
@@ -0,0 +1,23 @@
+# Copyright (C) 2022 Wind River Systems
+
+SUMMARY = "Use your fixtures in @pytest.mark.parametrize."
+HOMEPAGE = "https://github.com/tvorog/pytest-lazy-fixture"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=aae6f2b7c9b3ced83e0b5bb42346d4dd"
+
+SRC_URI[sha256sum] = "0e7d0c7f74ba33e6e80905e9bfd81f9d15ef9a790de97993e34213deb5ad10ac"
+
+SRC_URI += "file://run-ptest \
+ "
+
+
+inherit ptest pypi setuptools3
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+
+RDEPENDS:${PN} += "python3-core python3-pytest"
+RDEPENDS:${PN}-ptest = " python3-unixadmin"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-metadata_1.11.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-metadata_2.0.1.bb
index 060eee3a5a..35e8b7568f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-metadata_1.11.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-metadata_2.0.1.bb
@@ -4,7 +4,7 @@ DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
LICENSE = "MPL-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=5d425c8f3157dbf212db2ec53d9e5132"
-SRC_URI[sha256sum] = "71b506d49d34e539cc3cfdb7ce2c5f072bea5c953320002c95968e0238f8ecf1"
+SRC_URI[sha256sum] = "5cdb6aeea8ba9109181cf9f149c8a3ae1430ff7e44506a8f866af8a98ca46301"
PYPI_PACKAGE = "pytest-metadata"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-runner_5.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-runner_5.3.1.bb
deleted file mode 100644
index 28b7053218..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-runner_5.3.1.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Invoke py.test as distutils command with dependency resolution"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=7a7126e068206290f3fe9f8d6c713ea6"
-
-SRC_URI[sha256sum] = "0fce5b8dc68760f353979d99fdd6b3ad46330b6b1837e2077a89ebcf204aac91"
-
-inherit pypi setuptools3
-
-DEPENDS += " \
- ${PYTHON_PN}-setuptools-scm-native"
-
-RDEPENDS:${PN} = "${PYTHON_PN}-py ${PYTHON_PN}-setuptools ${PYTHON_PN}-debugger ${PYTHON_PN}-json \
- ${PYTHON_PN}-io"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-subtests_0.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-subtests_0.6.0.bb
deleted file mode 100644
index 5e4847b8d9..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-subtests_0.6.0.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "unittest subTest() support and subtests fixture."
-DESCRIPTION = "Adds support for TestCase.subTest.\
-New subtests fixture, providing similar functionality for pure pytest tests."
-HOMEPAGE = "https://github.com/pytest-dev/pytest-subtests"
-BUGTRACKER = "https://github.com/pytest-dev/pytest-subtests/issues"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=242b4e17fa287dcf7aef372f6bc3dcb1"
-
-SRC_URI[sha256sum] = "3ebd306a8dcf75133f1742f288c82f36426ebcf8a132d4ee89782d20e84fc13a"
-
-inherit pypi setuptools3
-
-DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-pytest \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-xdist_2.5.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-xdist_2.5.0.bb
index a10ac8cc49..c3e69e3e0a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-xdist_2.5.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-xdist_2.5.0.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=772fcdaca14b378878d05c7d857e6c3e"
SRC_URI[sha256sum] = "4580deca3ff04ddb2ac53eba39d76cb5dd5edeac050cb6fbc768b0dd712b4edf"
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
DEPENDS += "python3-setuptools-scm-native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-python-vlc_3.0.12118.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-python-vlc_3.0.16120.bb
index 3e799cf622..a4d21a50e8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-python-vlc_3.0.12118.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-python-vlc_3.0.16120.bb
@@ -1,8 +1,8 @@
SUMMARY = "This module provides ctypes-based bindings for the native libvlc API of the VLC video player."
HOMEPAGE = "wiki.videolan.org/PythonBinding"
-LICENSE = "LGPL-2.0"
+LICENSE = "LGPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-SRC_URI[sha256sum] = "566f2f7c303f6800851cacc016df1c6eeec094ad63e0a49d87db9d698094f1fb"
+SRC_URI[sha256sum] = "92f98fee088f72bd6d063b3b3312d0bd29b37e7ad65ddeb3a7303320300c2807"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytz-deprecation-shim_0.1.0.post0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytz-deprecation-shim_0.1.0.post0.bb
index 76487c830f..d116c3bd4c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytz-deprecation-shim_0.1.0.post0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytz-deprecation-shim_0.1.0.post0.bb
@@ -8,9 +8,4 @@ SRC_URI[sha256sum] = "af097bae1b616dde5c5744441e2ddc69e74dfdcb0c263129610d85b874
PYPI_PACKAGE = "pytz_deprecation_shim"
PYPI_SRC_URI = "https://files.pythonhosted.org/packages/94/f0/909f94fea74759654390a3e1a9e4e185b6cd9aa810e533e3586f39da3097/${PYPI_PACKAGE}-${PV}.tar.gz"
-inherit pypi setuptools3
-
-do_compile:prepend() {
- echo "from setuptools import setup" > ${S}/setup.py
- echo "setup()" >> ${S}/setup.py
-}
+inherit pypi python_setuptools_build_meta
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytz/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytz/run-ptest
deleted file mode 100644
index b63c4de0d9..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytz/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-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/meta-openembedded/meta-python/recipes-devtools/python/python3-pytz_2021.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytz_2021.3.bb
deleted file mode 100644
index 119342a4bd..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytz_2021.3.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "World timezone definitions, modern and historical"
-HOMEPAGE = "http://pythonhosted.org/pytz"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=1a67fc46c1b596cce5d21209bbe75999"
-
-inherit pypi setuptools3 ptest
-
-SRC_URI[sha256sum] = "acad2d8b20a1af07d4e4c9d2e9285c5ed9104354062f275f3fcd88dcef4f1326"
-
-RDEPENDS:${PN}:class-target += "\
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-doctest \
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-pickle \
- ${PYTHON_PN}-pprint \
- ${PYTHON_PN}-threading \
-"
-
-BBCLASSEXTEND = "native nativesdk"
-
-SRC_URI += " \
- file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/pytz
- install -d ${D}${PTEST_PATH}/pytz/tests
- cp -rf ${S}/pytz/tests/* ${D}${PTEST_PATH}/pytz/tests/
- cp -f ${S}/README.rst ${D}${PTEST_PATH}/
-
-}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyudev_0.23.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyudev_0.23.2.bb
index 183bf7273c..4c4c959eba 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyudev_0.23.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyudev_0.23.2.bb
@@ -1,6 +1,6 @@
SUMMARY = "A libudev binding"
-LICENSE = "LGPLv2.1+"
+LICENSE = "LGPL-2.1-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343"
SRC_URI[sha256sum] = "32ae3585b320a51bc283e0a04000fd8a25599edb44541e2f5034f6afee5d15cc"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyzmq/club-rpath-out.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq/club-rpath-out.patch
index 61aeaca5fa..61aeaca5fa 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyzmq/club-rpath-out.patch
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq/club-rpath-out.patch
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_22.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_22.3.0.bb
index 87605c2b3e..e4762eb5f8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_22.3.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_22.3.0.bb
@@ -1,24 +1,20 @@
SUMMARY = "Pyzmq provides Zero message queue access for the Python language"
HOMEPAGE = "http://zeromq.org/bindings:python"
-LICENSE = "BSD-3-Clause & LGPL-3.0"
+LICENSE = "BSD-3-Clause & LGPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING.BSD;md5=11c65680f637c3df7f58bbc8d133e96e \
file://COPYING.LESSER;md5=12c592fa0bcfff3fb0977b066e9cb69e"
DEPENDS = "zeromq"
-FILESEXTRAPATHS:prepend := "${THISDIR}/python-pyzmq:"
-
SRC_URI += "file://club-rpath-out.patch"
SRC_URI[sha256sum] = "8eddc033e716f8c91c6a2112f0a8ebc5e00532b4a6ae1eb0ccc48e027f9c671c"
-inherit pypi pkgconfig setuptools3
+inherit pypi pkgconfig python_setuptools_build_meta
RDEPENDS:${PN} += " \
${PYTHON_PN}-multiprocessing \
${PYTHON_PN}-json \
"
-FILES:${PN}-dbg =+ "${PYTHON_SITEPACKAGES_DIR}/zmq/backend/cython/.debug"
-
do_compile:prepend() {
echo [global] > ${S}/setup.cfg
echo zmq_prefix = ${STAGING_DIR_HOST} >> ${S}/setup.cfg
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-qface_2.0.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-qface_2.0.6.bb
new file mode 100644
index 0000000000..63453517ec
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-qface_2.0.6.bb
@@ -0,0 +1,24 @@
+SUMMARY = "A generator framework based on a common modern IDL"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=eee61e10a40b0e3045ee5965bcd9a8b5"
+
+SRC_URI[sha256sum] = "87ce8ce7123ae57d91ac903c6c330a99273e7f4665a0ab88e6a17f9c98143a68"
+
+inherit pypi python_setuptools_build_meta
+
+DEPS = "\
+ python3-jinja2 \
+ python3-click \
+ python3-pyyaml \
+ python3-pytest \
+ python3-six \
+ python3-path \
+ python3-antlr4-runtime \
+ python3-watchdog \
+ python3-markupsafe \
+ python3-setuptools \
+"
+DEPENDS += "${DEPS}"
+RDEPENDS:${PN} += "${DEPS}"
+
+BBCLASSEXTEND = "nativesdk native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-redis_4.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-redis_4.2.0.bb
index 9af7383de3..d4fc98817d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-redis_4.1.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-redis_4.2.0.bb
@@ -4,7 +4,7 @@ HOMEPAGE = "http://github.com/andymccurdy/redis-py"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=51d9ad56299ab60ba7be65a621004f27"
-SRC_URI[sha256sum] = "07420a3fbedd8e012c31d4fadac943fb81568946da202c5a5bc237774e5280a0"
+SRC_URI[sha256sum] = "6758d01dec81af191b98a35cce3402675d115456584c39b500ab485a5e386bbb"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2021.11.10.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2022.3.2.bb
index dce232ba68..c71394cb38 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2021.11.10.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2022.3.2.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7b5751ddd6b643203c31ff873051d069"
inherit pypi setuptools3
-SRC_URI[sha256sum] = "f341ee2df0999bfdf7a95e448075effe0db212a59387de1a70690e4acb03d4c6"
+SRC_URI[sha256sum] = "79e5af1ff258bc0fe0bdd6f69bc4ae33935a898e3cbefbbccf22e88a27fa053b"
RDEPENDS:${PN} += " \
python3-stringold \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.27.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.27.1.bb
deleted file mode 100644
index af52b7caf5..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.27.1.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-DESCRIPTION = "Python HTTP for Humans."
-HOMEPAGE = "http://python-requests.org"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=34400b68072d710fecd0a2940a0d1658"
-
-SRC_URI[sha256sum] = "68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-email \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-ndg-httpsclient \
- ${PYTHON_PN}-netserver \
- ${PYTHON_PN}-pyasn1 \
- ${PYTHON_PN}-pyopenssl \
- ${PYTHON_PN}-pysocks \
- ${PYTHON_PN}-urllib3 \
- ${PYTHON_PN}-chardet \
- ${PYTHON_PN}-idna \
-"
-
-CVE_PRODUCT = "requests"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_4.1.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_5.0.bb
index a40d047d72..d66fd33e8d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_4.1.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_5.0.bb
@@ -13,7 +13,7 @@ inherit pypi setuptools3
PYPI_PACKAGE_EXT = "zip"
-SRC_URI[sha256sum] = "d2675cbe3e5a4c90be3ddb61be3b88cc0d6ff503c298ad8f8a78aad14e71e886"
+SRC_URI[sha256sum] = "bffecba8c43d4294936d921f0af4941079039edce88194769133719732c608bc"
RDEPENDS:${PN} += " \
${PYTHON_PN}-shell \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-rsa_4.8.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-rsa_4.8.bb
index d0a18f92e5..21b664ddd1 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-rsa_4.8.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-rsa_4.8.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=c403f6882d4f97a9cd927df987d55634"
SRC_URI[sha256sum] = "5c6bd9dc7a543b7fe4304a631f8a8a3b674e2bbfc49c2ae96200cdbe55df6b17"
-inherit pypi setuptools3 update-alternatives
+inherit pypi python_poetry_core update-alternatives
ALTERNATIVE:${PN} = "\
pyrsa-decrypt \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt_0.8.19.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt_0.8.20.bb
index f0a9e16159..c386932683 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt_0.8.19.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt_0.8.20.bb
@@ -5,7 +5,7 @@ HOMEPAGE="https://github.com/holgern/py-scrypt"
SRC_URI += "file://0001-py-scrypt-remove-the-hard-coded-include-paths.patch"
-SRC_URI[sha256sum] = "ad143035ae0cf5e97c4b399f4e4686adf442c5f0f06f9f198a0cc6c091335fb7"
+SRC_URI[sha256sum] = "0d226c1c6744fb2e308b391410669b1df5cfe82637ffcb5ed489bf82b2d2eb78"
inherit pypi ptest setuptools3 dos2unix
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sdnotify/0001-setup.py-switch-to-setuptools.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-sdnotify/0001-setup.py-switch-to-setuptools.patch
new file mode 100644
index 0000000000..cf7696aa63
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-sdnotify/0001-setup.py-switch-to-setuptools.patch
@@ -0,0 +1,31 @@
+From f662280b26eb1549890e88e8e9085f1937d7962d Mon Sep 17 00:00:00 2001
+From: Tim Orling <tim.orling@konsulko.com>
+Date: Mon, 28 Feb 2022 07:54:03 -0800
+Subject: [PATCH] setup.py: switch to setuptools
+
+In Python 3.10, 'distutils' is deprecated and is slated for removal in
+Python 3.12.
+
+Switch from distutils.core to setuptools. This also allows the 'wheel'
+binary archive format to be built with 'setup.py bdist_wheel'.
+
+Upstream-Status: Submitted [https://github.com/bb4242/sdnotify/pull/7]
+
+Signed-off-by: Tim Orling <tim.orling@konsulko.com>
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index 433222c..32b5bd6 100644
+--- a/setup.py
++++ b/setup.py
+@@ -1,4 +1,4 @@
+-from distutils.core import setup
++from setuptools import setup
+
+ VERSION='0.3.2'
+
+--
+2.30.2
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sdnotify_0.3.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sdnotify_0.3.2.bb
index 221a8c8717..dc1961ac30 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-sdnotify_0.3.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-sdnotify_0.3.2.bb
@@ -12,7 +12,8 @@ SECTION = "devel/python"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=cc572ccc4b18a4b7d13be5d01bc8213e"
-SRC_URI[md5sum] = "749ddca1c70be1697fecc443fb1fdb16"
SRC_URI[sha256sum] = "73977fc746b36cc41184dd43c3fe81323e7b8b06c2bb0826c4f59a20c56bb9f1"
+SRC_URI += "file://0001-setup.py-switch-to-setuptools.patch"
+
inherit setuptools3 pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-semantic-version_2.8.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-semantic-version_2.8.5.bb
deleted file mode 100644
index b8541ff570..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-semantic-version_2.8.5.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "A library implementing the 'SemVer' scheme."
-DESCRIPTION = "Semantic version comparison for Python (see http://semver.org/)"
-HOMEPAGE = "https://github.com/rbarrois/python-semanticversion"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=4fb31e3c1c7eeb8b5e8c07657cdd54e2"
-
-SRC_URI[sha256sum] = "d2cb2de0558762934679b9a104e82eca7af448c9f4974d1f3eeccff651df8a54"
-
-PYPI_PACKAGE = "semantic_version"
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.5.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.5.7.bb
index 9822b41b1d..1594fb5dd7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.5.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.5.7.bb
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=0c79f8d3c91fc847350efd28bfe0a341"
RDEPENDS:${PN} += "python3-urllib3"
-SRC_URI[sha256sum] = "141da032f0fa4c56f9af6b361fda57360af1789576285bd1944561f9c274f9c0"
+SRC_URI[sha256sum] = "aa52da941c56b5a76fd838f8e9e92a850bf893a9eb1e33ffce6c21431d07ee30"
PYPI_PACKAGE = "sentry-sdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-setuptools-rust-native_1.1.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-setuptools-rust-native_1.1.2.bb
deleted file mode 100644
index 34ff91241f..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-setuptools-rust-native_1.1.2.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "Setuptools Rust extension plugin"
-DESCRIPTION = "setuptools-rust is a plugin for setuptools to build Rust \
-Python extensions implemented with PyO3 or rust-cpython.\
-\
-Compile and distribute Python extensions written in Rust as easily as if they were written in C."
-HOMEPAGE = "https://github.com/PyO3/setuptools-rust"
-BUGTRACKER = "https://github.com/PyO3/setuptools-rust/issues"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=011cd92e702dd9e6b1a26157b6fd53f5"
-
-SRC_URI = "https://files.pythonhosted.org/packages/67/08/e1aa2c582c62ac76e4d60f8e454bd3bba933781a06a88b4e38797445822a/setuptools-rust-${PV}.tar.gz"
-SRC_URI[sha256sum] = "a0adb9b503c0ffc4e8fe80b7c617898cefa78049983aaaea7f747e153a3e65d1"
-
-inherit cargo pypi setuptools3 native
-
-DEPENDS += "python3-setuptools-scm-native python3-wheel-native"
-
-RDEPENDS:${PN}:class-native += " \
- python3-semantic-version-native \
- python3-setuptools-native \
- python3-setuptools-scm-native \
- python3-toml-native \
- python3-typing-extensions-native \
- python3-wheel-native \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-simpleeval_0.9.12.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-simpleeval_0.9.12.bb
index 8ad6acc875..343e5c03de 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-simpleeval_0.9.12.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-simpleeval_0.9.12.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENCE;md5=dc9277482effe59b734b004cbcc1fee7"
SRC_URI[sha256sum] = "3e0be507486d4e21cf9d08847c7e57dd61a1603950399985f7c5a0be7fd33e36"
-inherit pypi setuptools3 ptest
+inherit pypi python_setuptools_build_meta ptest
BBCLASSEXTEND = "native nativesdk"
@@ -21,10 +21,6 @@ RDEPENDS:${PN}-ptest += " \
${PYTHON_PN}-pytest \
"
-do_configure:prepend() {
- sed -i -e "/use_2to3=True,/d" ${S}/setup.py
-}
-
do_install_ptest() {
cp -f ${S}/test_simpleeval.py ${D}${PTEST_PATH}/
}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-slip-dbus/0001-setup.py-Use-setuptools-instead-of-distutils.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-slip-dbus/0001-setup.py-Use-setuptools-instead-of-distutils.patch
new file mode 100644
index 0000000000..1208769b2f
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-slip-dbus/0001-setup.py-Use-setuptools-instead-of-distutils.patch
@@ -0,0 +1,38 @@
+From 4309ce76351b1685d08b3ba55d4f62b3e53ef76b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 1 Mar 2022 19:06:35 -0800
+Subject: [PATCH] setup.py: Use setuptools instead of distutils
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ setup.py.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/setup.py.in
++++ b/setup.py.in
+@@ -2,20 +2,17 @@
+ # -*- coding: utf-8 -*-
+
+ import sys
+-from distutils.core import setup
++from setuptools import setup, find_packages
+
+ setup(name="slip", version="@VERSION@",
+ py_modules=["slip.__init__", "slip.util.__init__",
+ "slip.util.hookable", "slip.util.files",
+- "slip._wrappers.__init__", "slip._wrappers._glib"],
+- requires=["selinux"])
+-
+-setup(name="slip.dbus", version="@VERSION@",
+- py_modules=["slip.dbus.__init__", "slip.dbus.bus",
++ "slip._wrappers.__init__", "slip._wrappers._glib",
++ "slip.dbus.__init__", "slip.dbus.bus",
+ "slip.dbus.constants", "slip.dbus.introspection",
+ "slip.dbus.mainloop", "slip.dbus.polkit", "slip.dbus.proxies",
+ "slip.dbus.service"],
+- requires=["dbus", "decorator", "StringIO", "xml.etree.ElementTree"])
++ requires=["dbus", "decorator", "selinux", "StringIO", "xml.etree.ElementTree"])
+
+ if sys.version_info.major == 2:
+ setup(name="slip.gtk", version="@VERSION@",
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-slip-dbus/9b939c0b534c1b7958fa0a3c7aedf30bca910431.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-slip-dbus/9b939c0b534c1b7958fa0a3c7aedf30bca910431.patch
new file mode 100644
index 0000000000..b0e9d2215f
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-slip-dbus/9b939c0b534c1b7958fa0a3c7aedf30bca910431.patch
@@ -0,0 +1,76 @@
+From 9b939c0b534c1b7958fa0a3c7aedf30bca910431 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
+Date: Mon, 7 Jun 2021 23:23:47 +0200
+Subject: [PATCH] Python 3.10+ fix: Use collections.abc.Callable instead of
+ collections.Callable
+
+The deprecated aliases to Collections Abstract Base Classes were removed from
+the collections module in Python 3.10.
+https://docs.python.org/3.10/whatsnew/changelog.html#python-3-10-0-alpha-5
+https://bugs.python.org/issue37324
+---
+ slip/dbus/polkit.py | 6 +++---
+ slip/util/hookable.py | 6 +++---
+ 2 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/slip/dbus/polkit.py b/slip/dbus/polkit.py
+index 128e8ce..320676d 100644
+--- a/slip/dbus/polkit.py
++++ b/slip/dbus/polkit.py
+@@ -26,7 +26,7 @@
+
+ from __future__ import absolute_import
+
+-import collections
++import collections.abc
+ import dbus
+ from decorator import decorator
+ from functools import reduce
+@@ -103,14 +103,14 @@ class MyProxy(object):
+ def some_method(self, ...):
+ ..."""
+
+- assert(func is None or isinstance(func, collections.Callable))
++ assert(func is None or isinstance(func, collections.abc.Callable))
+
+ assert(
+ authfail_result in (None, AUTHFAIL_DONTCATCH) or
+ authfail_exception is None)
+ assert(
+ authfail_callback is None or
+- isinstance(authfail_callback, collections.Callable))
++ isinstance(authfail_callback, collections.abc.Callable))
+ assert(
+ authfail_exception is None or
+ issubclass(authfail_exception, Exception))
+diff --git a/slip/util/hookable.py b/slip/util/hookable.py
+index 89c7392..0cd9967 100644
+--- a/slip/util/hookable.py
++++ b/slip/util/hookable.py
+@@ -23,7 +23,7 @@
+ """This module contains variants of certain base types which call registered
+ hooks on changes."""
+
+-import collections
++import collections.abc
+ from six import with_metaclass
+
+ __all__ = ["Hookable", "HookableSet"]
+@@ -67,7 +67,7 @@ class _HookEntry(object):
+
+ def __init__(self, hook, args, kwargs, hookable=None):
+
+- assert(isinstance(hook, collections.Callable))
++ assert(isinstance(hook, collections.abc.Callable))
+ assert(isinstance(hookable, Hookable))
+
+ for n, x in enumerate(args):
+@@ -174,7 +174,7 @@ def add_hook_hookable(self, hook, *args, **kwargs):
+ self.__add_hook(hook, self, *args, **kwargs)
+
+ def __add_hook(self, hook, _hookable, *args, **kwargs):
+- assert isinstance(hook, collections.Callable)
++ assert isinstance(hook, collections.abc.Callable)
+ assert isinstance(_hookable, Hookable)
+ hookentry = _HookEntry(hook, args, kwargs, hookable=_hookable)
+ self.__hooks__.add(hookentry)
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-slip-dbus_0.6.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-slip-dbus_0.6.5.bb
index 00d83ab61b..ae4e6f72da 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-slip-dbus_0.6.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-slip-dbus_0.6.5.bb
@@ -10,16 +10,18 @@ there are no clients anymore on the message bus, as well as convenience \
functions and decorators for integrating a dbus service with PolicyKit."
SECTION = "devel/python"
-LICENSE = "GPLv2+"
+LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=5574c6965ae5f583e55880e397fbb018"
SRCNAME = "python-slip"
-SRC_URI = "https://github.com/nphilipp/${SRCNAME}/releases/download/${SRCNAME}-${PV}/${SRCNAME}-${PV}.tar.bz2"
-S = "${WORKDIR}/${SRCNAME}-${PV}"
-
-SRC_URI[md5sum] = "28ae5f93853466c44ec96706ba2a1eb4"
+SRC_URI = "https://github.com/nphilipp/${SRCNAME}/releases/download/${SRCNAME}-${PV}/${SRCNAME}-${PV}.tar.bz2 \
+ file://9b939c0b534c1b7958fa0a3c7aedf30bca910431.patch \
+ file://0001-setup.py-Use-setuptools-instead-of-distutils.patch \
+ "
SRC_URI[sha256sum] = "c726c086f0dd93a0ac7a0176f383a12af91b6657b78a301e3f5b25d9f8d4d10b"
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
do_compile:prepend() {
sed -e 's/@VERSION@/${PV}/g' ${S}/setup.py.in > ${S}/setup.py
}
@@ -32,3 +34,4 @@ RDEPENDS:${PN} += "\
CLEANBROKEN = "1"
inherit setuptools3
+PIP_INSTALL_PACKAGE = "slip"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-smbus_4.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-smbus_4.3.bb
index ecdff3adad..b305a128a2 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-smbus_4.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-smbus_4.3.bb
@@ -1,5 +1,5 @@
SUMMARY = "Set of i2c tools for linux - Python module"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://py-smbus/smbusmodule.c;beginline=1;endline=18;md5=46e424fb045901ab25e0f92c28c80055"
SRC_URI = "${KERNELORG_MIRROR}/software/utils/i2c-tools/i2c-tools-${PV}.tar.gz \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-smpplib_2.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-smpplib_2.2.1.bb
index 7401e039bf..be0bafd33f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-smpplib_2.2.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-smpplib_2.2.1.bb
@@ -1,6 +1,6 @@
SUMMARY = "SMPP library for python"
SECTION = "devel/python"
-LICENSE = "GPLv3.0"
+LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://README.md;md5=8b4e2ac8cf248f7b991784f88b630852"
PYPI_PACKAGE = "smpplib"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-snappy_0.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-snappy_0.6.1.bb
index f8e6281a18..8a30f7cb78 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-snappy_0.6.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-snappy_0.6.1.bb
@@ -4,7 +4,7 @@ DEPENDS += "snappy"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=b3090152f53ee19f6a7b64b1a36384fb"
-SRC_URI[sha256sum] = "168a98d3f597b633cfeeae7fe1c78a8dfd81f018b866cf7ce9e4c56086af891a"
+SRC_URI[sha256sum] = "b6a107ab06206acc5359d4c5632bd9b22d448702a79b3169b0c62e0fb808bb2a"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.5.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.5.2.bb
index ebbb5c047a..6611743bf8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.5.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.5.2.bb
@@ -5,11 +5,11 @@ SECTION = "devel/python"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=42d0a9e728978f0eeb759c3be91536b8"
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
PYPI_PACKAGE = "python-socketio"
-SRC_URI[sha256sum] = "ac8e64d59a15d1c31a4fe8434f4ff16d0f640c824ba517dce7ca99e95f0cd36a"
+SRC_URI[sha256sum] = "6213f7dfbb87e554472d11151f96bae9059854aa88e4a1e0fa6e97cca1c3fcf4"
PACKAGECONFIG ?= "asyncio_client client"
PACKAGECONFIG[asyncio_client] = ",,,${PYTHON_PN}-aiohttp ${PYTHON_PN}-websockets"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-soupsieve_2.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-soupsieve_2.3.1.bb
index f4cf93daba..7cb76b426f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-soupsieve_2.3.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-soupsieve_2.3.1.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.md;md5=33c3a77def9b3ad83e01c65bdcc1af67"
SRC_URI[sha256sum] = "b8d49b1cd4f037c7082a9683dfa1801aa2597fb11c3a1155b7a5b94829b4f1f9"
-inherit pypi setuptools3 ptest
+inherit pypi python_setuptools_build_meta ptest
SRC_URI += " \
file://run-ptest \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_1.4.31.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_1.4.32.bb
index 510bb7d9e4..93a49df53a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_1.4.31.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_1.4.32.bb
@@ -4,7 +4,7 @@ HOMEPAGE = "http://www.sqlalchemy.org/"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=f4001d1ca15b69d096fa1b4fd1bdce79"
-SRC_URI[sha256sum] = "582b59d1e5780a447aada22b461e50b404a9dc05768da1d87368ad8190468418"
+SRC_URI[sha256sum] = "6fdd2dc5931daab778c2b65b03df6ae68376e028a3098eb624d0909d999885bc"
PYPI_PACKAGE = "SQLAlchemy"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-systemd_234.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-systemd_234.bb
index cbc9f44bc7..10614fe374 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-systemd_234.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-systemd_234.bb
@@ -1,6 +1,6 @@
SUMMARY = "Python interface for libsystemd"
HOMEPAGE = "https://github.com/systemd/python-systemd"
-LICENSE = "LGPLv2.1+"
+LICENSE = "LGPL-2.1-or-later"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4fbd65380cdd255951079008b364516c"
PYPI_PACKAGE = "systemd-python"
@@ -15,6 +15,9 @@ SRC_URI[sha256sum] = "fd0e44bf70eadae45aadc292cb0a7eb5b0b6372cd1b391228047d33895
# allow for common patches for python- and python3-systemd
FILESEXTRAPATHS:prepend := "${THISDIR}/python-systemd:"
-SRC_URI += "file://endian.patch"
+SRC_URI += " \
+ file://endian.patch \
+ file://0002-setup.py-switch-from-distutils-to-setuptools.patch \
+"
SRC_URI:append:libc-musl = " file://0001-Provide-implementation-of-strndupa-for-musl.patch"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-term_2.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-term_2.3.bb
index 723f1db512..6b62eb02ce 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-term_2.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-term_2.3.bb
@@ -1,6 +1,6 @@
SUMMARY = "An enhanced version of the tty module"
SECTION = "devel/python"
-LICENSE = "Python-2"
+LICENSE = "Python-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=d90e2d280a4836c607520383d1639be1"
SRC_URI[md5sum] = "ab0c1bce381b1109fe4390c56aa06237"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-termcolor/0001-setup.py-Use-setuptools-instead-of-distutils.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-termcolor/0001-setup.py-Use-setuptools-instead-of-distutils.patch
new file mode 100644
index 0000000000..a55a6a914b
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-termcolor/0001-setup.py-Use-setuptools-instead-of-distutils.patch
@@ -0,0 +1,27 @@
+From e30308284c721210e2ba50d8b3d159cedf5eada8 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 28 Feb 2022 14:44:42 -0800
+Subject: [PATCH] setup.py: Use setuptools instead of distutils
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index c4fe4ed..dad1d29 100755
+--- a/setup.py
++++ b/setup.py
+@@ -23,7 +23,7 @@
+ # Author: Konstantin Lepa <konstantin.lepa@gmail.com>
+
+ import os
+-from distutils.core import setup
++from setuptools import setup
+
+ prjdir = os.path.dirname(__file__)
+
+--
+2.35.1
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-termcolor_1.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-termcolor_1.1.0.bb
index 17df7f983d..15bab622a6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-termcolor_1.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-termcolor_1.1.0.bb
@@ -6,7 +6,8 @@ LIC_FILES_CHKSUM = "file://COPYING.txt;md5=809e8749b63567978acfbd81d9f6a27d"
inherit pypi setuptools3
-SRC_URI[md5sum] = "043e89644f8909d462fbbfa511c768df"
+SRC_URI += "file://0001-setup.py-Use-setuptools-instead-of-distutils.patch"
+
SRC_URI[sha256sum] = "1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b"
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.62.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.63.1.bb
index 148431d0ad..0fcd4d4575 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.62.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.63.1.bb
@@ -5,9 +5,9 @@ SECTION = "devel/python"
LICENSE = "MIT & MPL-2.0"
LIC_FILES_CHKSUM = "file://LICENCE;md5=1672e2674934fd93a31c09cf17f34100"
-SRC_URI[sha256sum] = "d359de7217506c9851b7869f3708d8ee53ed70a1b8edbba4dbcb47442592920d"
+SRC_URI[sha256sum] = "4230a49119a416c88cc47d0d2d32d5d90f1a282d5e497d49801950704e49863d"
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.1.1.bb
index bfed02d6f5..8f80426e6c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.1.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.1.1.bb
@@ -13,4 +13,4 @@ RDEPENDS:${PN} = "\
${PYTHON_PN}-decorator \
"
-inherit setuptools3 pypi
+inherit pypi python_setuptools_build_meta
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-transitions_0.8.10.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-transitions_0.8.11.bb
index 46292987b1..14189424a2 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-transitions_0.8.10.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-transitions_0.8.11.bb
@@ -4,6 +4,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=baac7be1f4c17620df74188e23da6d47"
inherit pypi setuptools3
-SRC_URI[sha256sum] = "b0385975a842e885c1a55c719d2f90164471665794d39d51f9eb3f11e1d9c8ac"
+SRC_URI[sha256sum] = "7b20d32906ea4d60ee6f6c1f5dc9c9f178802425c5b155213eb0f25c277f04e4"
RDEPENDS:${PN} += "python3-six python3-logging"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-twine_3.7.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-twine_3.8.0.bb
index bcc881e44f..4296ab2b33 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-twine_3.7.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-twine_3.8.0.bb
@@ -3,9 +3,9 @@ HOMEPAGE = "https://twine.readthedocs.io/"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a3d1106b253a8d50dd82a4202a045b4c"
-SRC_URI[sha256sum] = "28460a3db6b4532bde6a5db6755cf2dce6c5020bada8a641bb2c5c7a9b1f35b8"
+SRC_URI[sha256sum] = "8efa52658e0ae770686a13b675569328f1fba9837e5de1867bfe5f46a9aefe19"
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
DEPENDS += "\
${PYTHON_PN}-setuptools-scm-native \
@@ -15,9 +15,4 @@ RDEPENDS:${PN} += " \
${PYTHON_PN}-importlib-metadata \
"
-do_compile:prepend() {
- echo "from setuptools import setup" > ${S}/setup.py
- echo "setup()" >> ${S}/setup.py
-}
-
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_22.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_22.2.0.bb
index 8fd7801c35..f4575c9c2e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_22.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_22.2.0.bb
@@ -7,11 +7,11 @@ HOMEPAGE = "http://www.twistedmatrix.com"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=0f8d67f84b6e178c92d471011b2245fc"
-SRC_URI[sha256sum] = "b7971ec9805b0f80e1dcb1a3721d7bfad636d5f909de687430ce373979d67b61"
+SRC_URI[sha256sum] = "57f32b1f6838facb8c004c89467840367ad38e9e535f8252091345dba500b4f2"
PYPI_PACKAGE = "Twisted"
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
do_install:append() {
# remove some useless files before packaging
@@ -78,10 +78,8 @@ RDEPENDS:${PN}-web += "${PN}-core ${PN}-protocols"
RDEPENDS:${PN}-words += "${PN}-core"
RDEPENDS:${PN}-flow += "${PN}-core"
RDEPENDS:${PN}-pair += "${PN}-core"
-RDEPENDS:${PN}-dbg = "${PN}"
-ALLOW_EMPTY:${PN} = "1"
-FILES:${PN} = ""
+FILES:${PN} = "${PYTHON_SITEPACKAGES_DIR}/${PYPI_PACKAGE}-${PV}.dist-info/*"
FILES:${PN}-test = " \
${libdir}/${PYTHON_DIR}/site-packages/twisted/test \
@@ -244,22 +242,10 @@ ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_pair.py* \
${libdir}/${PYTHON_DIR}/site-packages/twisted/pair \
"
-FILES:${PN}-dbg += " \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/*/.debug \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/*/*/.debug \
-"
-
FILES:${PN}-doc += " \
${libdir}/${PYTHON_DIR}/site-packages/twisted/python/_pydoctortemplates/ \
"
-RDEPENDS:${PN}-src = "${PN}"
-FILES:${PN}-src = " \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/*.py \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/*/*.py \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/*/*/*.py \
-"
-
FILES:${PN}-core:append = " \
${libdir}/${PYTHON_DIR}/site-packages/twisted/__pycache__ \
${libdir}/${PYTHON_DIR}/site-packages/twisted/python/__pycache__/*pyc \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-twofish/0002-setup.py-switch-to-setuptools.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-twofish/0002-setup.py-switch-to-setuptools.patch
new file mode 100644
index 0000000000..99e5c6c517
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-twofish/0002-setup.py-switch-to-setuptools.patch
@@ -0,0 +1,26 @@
+From fe10781bd15ed7a5c384dbf121f78f129995aa8f Mon Sep 17 00:00:00 2001
+From: Tim Orling <tim.orling@konsulko.com>
+Date: Sun, 27 Feb 2022 11:02:36 -0800
+Subject: [PATCH] setup.py: switch to setuptools
+
+Upstream-Status: Submitted
+[https://github.com/keybase/python-twofish/pull/9]
+
+Signed-off-by: Tim Orling <tim.orling@konsulko.com>
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index fcc9546..bfc3273 100644
+--- a/setup.py
++++ b/setup.py
+@@ -8,7 +8,7 @@ Copyright (c) 2013 Keybase
+ setup.py - build and package info
+ """
+
+-from distutils.core import setup, Extension
++from setuptools import setup, Extension
+
+ twofish_module = Extension('_twofish',
+ sources=['twofish-0.3/twofish.c', 'twofish.c'],
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-twofish_0.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-twofish_0.3.0.bb
index 94fb71090e..f45772d507 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-twofish_0.3.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-twofish_0.3.0.bb
@@ -5,9 +5,11 @@ HOMEPAGE = "http://github.com/keybase/python-twofish"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=33a63abf6d7567b1689d8ce69f00e43b"
-SRC_URI += "file://0001-Fix-missing-return-statements-in-module-stubs.patch"
+SRC_URI += " \
+ file://0001-Fix-missing-return-statements-in-module-stubs.patch \
+ file://0002-setup.py-switch-to-setuptools.patch \
+"
-SRC_URI[md5sum] = "d7d22f16dc4ffa0e3ae2200654033abe"
SRC_URI[sha256sum] = "b09d8bb50d33b23ff34cafb1f9209f858f752935c6a5c901efb92a41acb830fa"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-txaio_21.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-txaio_22.2.1.bb
index 8b55b3641c..e2102695ec 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-txaio_21.2.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-txaio_22.2.1.bb
@@ -3,7 +3,7 @@ DESCRIPTION = "Compatibility API between asyncio/Twisted/Trollius"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=97c0bda20ad1d845c6369c0e47a1cd98"
-SRC_URI[sha256sum] = "7d6f89745680233f1c4db9ddb748df5e88d2a7a37962be174c0fd04c8dba1dc8"
+SRC_URI[sha256sum] = "2e4582b70f04b2345908254684a984206c0d9b50e3074a24a4c55aba21d24d01"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-typed-ast_1.4.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-typed-ast_1.5.2.bb
index c482251b8f..55cd78ce8f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-typed-ast_1.4.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-typed-ast_1.5.2.bb
@@ -7,6 +7,6 @@ PYPI_PACKAGE = "typed_ast"
inherit pypi setuptools3
-SRC_URI[sha256sum] = "fb1bbeac803adea29cedd70781399c99138358c26d05fcbd23c13016b7f5ec65"
+SRC_URI[sha256sum] = "525a2d4088e70a9f75b08b3f87a51acc9cde640e19cc523c7e41aa355564ae27"
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_2.13.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_2.13.3.bb
index 21ca439505..e9fce61452 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_2.13.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_2.13.3.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=f0e423eea5c91e7aa21bdb70184b3e53"
SRC_URI[sha256sum] = "00edaa8da3a133674796cf5ea87d9f4b4c367d77476e185e80251cc13dfbb8c4"
-inherit pypi setuptools3 ptest
+inherit pypi python_setuptools_build_meta ptest
SRC_URI += " \
file://run-ptest \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-typing-extensions_3.10.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-typing-extensions_3.10.0.0.bb
deleted file mode 100644
index a8e632487d..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-typing-extensions_3.10.0.0.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-HOMEPAGE = "https://github.com/python/typing"
-LICENSE = "PSF"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=64fc2b30b67d0a8423c250e0386ed72f"
-
-# The name on PyPi is slightly different.
-PYPI_PACKAGE = "typing_extensions"
-
-SRC_URI[sha256sum] = "50b6f157849174217d0656f99dc82fe932884fb250826c18350e159ec6cdf342"
-
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_4.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_4.1.bb
index 29a69f8b8f..1c910920e0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_4.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_4.1.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=57e0bd61643d81d05683cdce65b11d10"
SRC_URI[sha256sum] = "0f28015ac68a5c067210400a9197fc5d36ba9bc3f8eaf1da3cbd59acdfed9e09"
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
RDEPENDS:${PN} += "\
${PYTHON_PN}-pytz-deprecation-shim \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.26.8.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.26.8.bb
deleted file mode 100644
index c2a51b9148..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.26.8.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Python HTTP library with thread-safe connection pooling, file post support, sanity friendly, and more"
-HOMEPAGE = "https://github.com/shazow/urllib3"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=c2823cb995439c984fd62a973d79815c"
-
-SRC_URI[sha256sum] = "0e7c33d9a63e7ddfcb86780aac87befc2fbddf46c58dbb487e0855f7ceec283c"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-certifi \
- ${PYTHON_PN}-cryptography \
- ${PYTHON_PN}-email \
- ${PYTHON_PN}-idna \
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-pyopenssl \
- ${PYTHON_PN}-threading \
-"
-
-CVE_PRODUCT = "urllib3"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-versiontools_1.9.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-versiontools_1.9.1.bb
index cf0fa30a32..ea40d5f6bb 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-versiontools_1.9.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-versiontools_1.9.1.bb
@@ -1,7 +1,7 @@
SUMMARY = "Smart replacement for plain tuple used in __version__"
SECTION = "devel/python"
HOMEPAGE = "https://launchpad.net/versiontools"
-LICENSE = "LGPLv3"
+LICENSE = "LGPL-3.0-only"
LIC_FILES_CHKSUM = "file://setup.py;beginline=3;endline=20;md5=02193721a38fd8a05a4ddeb7df8e294d"
SRC_URI[md5sum] = "602b7db8eea30dd29a1d451997adf251"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-waitress_2.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-waitress_2.1.1.bb
index 490dcee6c4..b7f8099790 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-waitress_2.0.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-waitress_2.1.1.bb
@@ -6,6 +6,10 @@ SECTION = "devel/python"
LICENSE = "ZPL-2.1"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=78ccb3640dc841e1baecb3e27a6966b2"
-SRC_URI[sha256sum] = "69e1f242c7f80273490d3403c3976f3ac3b26e289856936d1f620ed48f321897"
+RDEPENDS:${PN} += " \
+ python3-logging \
+"
-inherit setuptools3 pypi
+SRC_URI[sha256sum] = "e2e60576cf14a1539da79f7b7ee1e79a71e64f366a0b47db54a15e971f57bb16"
+
+inherit python_setuptools_build_meta pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-watchdog_2.1.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-watchdog_2.1.7.bb
index 2bb110049f..7e91295fb4 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-watchdog_2.1.6.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-watchdog_2.1.7.bb
@@ -4,7 +4,7 @@ DEPENDS = "${PYTHON_PN}-argh"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-SRC_URI[sha256sum] = "a36e75df6c767cbf46f61a91c70b3ba71811dfa0aca4a324d9407a06a8b7a2e7"
+SRC_URI[sha256sum] = "3fd47815353be9c44eebc94cc28fe26b2b0c5bd889dafc4a5a7cbdf924143480"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-websocket-client_1.2.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-websocket-client_1.3.1.bb
index f85657a221..166dd0355c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-websocket-client_1.2.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-websocket-client_1.3.1.bb
@@ -5,9 +5,9 @@ This provide the low level APIs for WebSocket. All APIs \
are the synchronous functions."
HOMEPAGE = "https://github.com/websocket-client/websocket-client"
LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e401d789b93b47e65e852f16f2907aab"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b969e9612325987c823fc0737063ebc8"
-SRC_URI[sha256sum] = "1315816c0acc508997eb3ae03b9d3ff619c9d12d544c9a9b553704b1cc4f6af5"
+SRC_URI[sha256sum] = "6278a75065395418283f887de7c3beafb3aa68dada5cacbe4b214e8d26da499b"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_10.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_10.2.bb
index 6dd29a9ff6..c8179df5b1 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_10.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_10.2.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=78c2cc91e172ca96d6f8e4a76c739ec6"
inherit pypi setuptools3
-SRC_URI[sha256sum] = "181d2b25de5a437b36aefedaf006ecb6fa3aa1328ec0236cdde15f32f9d3ff6d"
+SRC_URI[sha256sum] = "8351c3c86b08156337b0e4ece0e3c5ec3e01fcd14e8950996832a23c99416098"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-wrapt_1.13.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-wrapt_1.14.0.bb
index 05ee4c6356..9dcab8101f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-wrapt_1.13.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-wrapt_1.14.0.bb
@@ -4,7 +4,7 @@ LICENSE = "BSD-2-Clause"
SECTION = "devel/python"
LIC_FILES_CHKSUM = "file://LICENSE;md5=fdfc019b57affbe1d7a32e3d34e83db4"
-SRC_URI[sha256sum] = "1fea9cd438686e6682271d36f3481a9f3636195578bab9ca3382e2f5f01fc185"
+SRC_URI[sha256sum] = "8323a43bd9c91f62bb7d4be74cc9ff10090e7ef820e27bfe8815c57e68261311"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-xlrd_2.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-xlrd_2.0.1.bb
index bd6853e747..da0dc26715 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-xlrd_2.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-xlrd_2.0.1.bb
@@ -17,6 +17,8 @@ SRCREV = "b8d573e11ec149da695d695c81a156232b89a949"
S = "${WORKDIR}/git"
inherit ptest setuptools3
+PIP_INSTALL_PACKAGE = "xlrd"
+PIP_INSTALL_DIST_PATH = "${S}/dist"
RDEPENDS:${PN} += "${PYTHON_PN}-compression ${PYTHON_PN}-io ${PYTHON_PN}-pprint ${PYTHON_PN}-shell"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_3.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_3.0.3.bb
index 04f25532a6..0f8dd35e0f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_3.0.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_3.0.3.bb
@@ -2,7 +2,7 @@ SUMMARY = "Python 2 and 3 compatibility library"
HOMEPAGE = "https://xlsxwriter.readthedocs.io"
SECTION = "devel/python"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e5c795ec8cf90514a6d844b1d3cc3224"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2b9a26d1a52d2c66df334bbdad23896a"
inherit pypi setuptools3
@@ -16,6 +16,6 @@ RDEPENDS:${PN} += " \
python3-io \
"
-SRC_URI[sha256sum] = "53005f03e8eb58f061ebf41d5767c7495ee0772c2396fe26b7e0ca22fa9c2570"
+SRC_URI[sha256sum] = "e89f4a1d2fa2c9ea15cde77de95cd3fd8b0345d0efb3964623f395c8c4988b7f"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-xmlrunner_1.7.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-xmlrunner_1.7.7.bb
index 7e7b5235ee..e81e4dabee 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-xmlrunner_1.7.7.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-xmlrunner_1.7.7.bb
@@ -1,6 +1,6 @@
SUMMARY = "unittest-based test runner with Ant/JUnit like XML reporting"
HOMEPAGE = "https://github.com/pycontribs/xmlrunner"
-LICENSE = "LGPL-3.0"
+LICENSE = "LGPL-3.0-only"
LIC_FILES_CHKSUM = "file://PKG-INFO;md5=fa964f202b6ae067ed5828fe43c77c1a"
SRC_URI[md5sum] = "7b0b152ed2d278516aedbc0cac22dfb3"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-xmodem_0.4.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-xmodem_0.4.6.bb
index 9d722b84f6..6df392e2d6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-xmodem_0.4.6.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-xmodem_0.4.6.bb
@@ -7,8 +7,13 @@ SRC_URI[sha256sum] = "089737298f5738eabc43f2519efdc80b402693768f16383f7013b9e6f8
inherit pypi setuptools3
+do_install:append() {
+ install -d ${D}${docdir}/${PN}
+ mv ${D}/usr/doc/* ${D}${docdir}/${PN}/
+ rmdir ${D}/usr/doc
+}
+
RDEPENDS:${PN} += " \
${PYTHON_PN}-logging \
"
-
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-xstatic-font-awesome_4.7.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-xstatic-font-awesome_4.7.0.0.bb
index b45e96d387..ccd1cd787d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-xstatic-font-awesome_4.7.0.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-xstatic-font-awesome_4.7.0.0.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Font Awesome icons packaged for setuptools (easy_install) / pip."
HOMEPAGE = "https://pypi.python.org/pypi/XStatic-Font-Awesome"
SECTION = "devel/python"
-LICENSE = "Apache-2"
+LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://PKG-INFO;md5=313d021898694cd2b0ea6508bdfe51a2"
PYPI_PACKAGE = "XStatic-Font-Awesome"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-xxhash_2.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-xxhash_3.0.0.bb
index 01343abc85..ca8ed3b01e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-xxhash_2.0.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-xxhash_3.0.0.bb
@@ -3,7 +3,7 @@ SECTION = "devel/python"
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3a9dab7f159514231249aa3e108ab26b"
-SRC_URI[sha256sum] = "b7bead8cf6210eadf9cecf356e17af794f57c0939a3d420a00d87ea652f87b49"
+SRC_URI[sha256sum] = "30b2d97aaf11fb122023f6b44ebb97c6955e9e00d7461a96415ca030b5ceb9c7"
SRC_URI += " \
file://run-ptest \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-yamlloader_1.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-yamlloader_1.1.0.bb
index a5510d5dc7..0deb1b7dd4 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-yamlloader_1.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-yamlloader_1.1.0.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=6831ef36faa29329bce2420c5356f97e"
SRC_URI[sha256sum] = "8a297c7a197683ba02e5e2b882ffd6c6180d01bdefb534b69cd3962df020bfe6"
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
RDEPENDS:${PN}:class-target += "\
${PYTHON_PN}-pyyaml \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.38.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.38.1.bb
index c49782e426..bc06618c1e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.38.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.38.1.bb
@@ -1,6 +1,6 @@
SUMMARY = "Pure Python Multicast DNS Service Discovery Library (Bonjour/Avahi compatible)"
HOMEPAGE = "https://github.com/jstasiak/python-zeroconf"
-LICENSE = "LGPL-2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=3bb705b228ea4a14ea2728215b780d80"
SRC_URI[sha256sum] = "10c501b25d8881b656e56c34674d98fe6bc752240a572e74f918bc849c93ba9c"
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.4.0.bb b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.4.3.bb
index 85f80b8c05..bd57604f26 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.4.0.bb
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.4.3.bb
@@ -1,15 +1,11 @@
DESCRIPTION = "A python module for system storage configuration"
HOMEPAGE = "http://fedoraproject.org/wiki/blivet"
-LICENSE = "LGPLv2+"
+LICENSE = "LGPL-2.0-or-later"
SECTION = "devel/python"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-S = "${WORKDIR}/git"
-B = "${S}"
-
-SRCREV = "f7d9027e4fdad11187980e73726cd75a2dc962c2"
-SRC_URI = "git://github.com/storaged-project/blivet.git;branch=3.4-release;protocol=https \
+SRC_URI += "\
file://0002-run_program-support-timeout.patch \
file://0003-support-infinit-timeout.patch \
file://0004-fix-new.roots-object-is-not-iterable.patch \
@@ -21,14 +17,12 @@ SRC_URI = "git://github.com/storaged-project/blivet.git;branch=3.4-release;proto
file://0010-invoking-mkfs-with-infinite-timeout.patch \
file://0011-invoking-dd-with-infinite-timeout.patch \
"
+SRC_URI[sha256sum] = "1b05b77f3ee35d82c7a577a168c9ba0204d3e9a87eb1975e5f9af47700eeff48"
-UPSTREAM_CHECK_GITTAGREGEX = "blivet-(?P<pver>\d+(\.\d+)+)$"
+inherit pypi features_check systemd setuptools3_legacy
-inherit features_check
REQUIRED_DISTRO_FEATURES = "systemd"
-inherit setuptools3 python3native
-
RDEPENDS:${PN} += "python3-pykickstart python3-pyudev \
parted python3-pyparted multipath-tools \
lsof cryptsetup libblockdev \
@@ -39,7 +33,5 @@ FILES:${PN} += " \
${datadir}/dbus-1/system-services \
"
-inherit systemd
-
SYSTEMD_AUTO_ENABLE = "disable"
SYSTEMD_SERVICE:${PN} = "blivet.service"
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui/0001-Use-setuptools-instead-of-distutils-in-setup.py.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui/0001-Use-setuptools-instead-of-distutils-in-setup.py.patch
new file mode 100644
index 0000000000..c88912bfa0
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui/0001-Use-setuptools-instead-of-distutils-in-setup.py.patch
@@ -0,0 +1,30 @@
+From 54014061be2fed20d6c35aba9719ea70a9fea9ea Mon Sep 17 00:00:00 2001
+From: Vojtech Trefny <vtrefny@redhat.com>
+Date: Wed, 1 Sep 2021 08:59:19 +0200
+Subject: [PATCH] Use setuptools instead of distutils in setup.py
+
+The distutils module is deprecated and will be removed in Python
+3.12.
+
+Upstream-Status: Backport [https://github.com/kraj/blivet-gui/commit/54014061be2fed20d6c35aba9719ea70a9fea9ea]
+---
+ setup.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index aa8ef57..77849a1 100644
+--- a/setup.py
++++ b/setup.py
+@@ -1,7 +1,7 @@
+ from __future__ import print_function
+
+-from distutils.core import setup
+-from distutils.command.sdist import sdist
++from setuptools import setup
++from setuptools.command.sdist import sdist
+ import glob
+ import sys
+
+--
+2.35.1
+
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.2.1.bb b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.3.0.bb
index 632b313a86..c26ae1fe98 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.2.1.bb
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.3.0.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "GUI tool for storage configuration using blivet library"
HOMEPAGE = "https://github.com/rhinstaller/blivet-gui"
-LICENSE = "GPLv2+"
+LICENSE = "GPL-2.0-or-later"
SECTION = "devel/python"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
@@ -8,13 +8,17 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
S = "${WORKDIR}/git"
B = "${S}"
-SRCREV = "adb6bd69fb3cfa709265db66ddcee04c0b5e070f"
-SRC_URI = "git://github.com/storaged-project/blivet-gui.git;branch=master;protocol=https"
+SRCREV = "42512ee48494cee71febf04078d9774f0146a085"
+SRC_URI = "git://github.com/storaged-project/blivet-gui.git;branch=master;protocol=https \
+ file://0001-Use-setuptools-instead-of-distutils-in-setup.py.patch \
+ "
inherit features_check
REQUIRED_DISTRO_FEATURES = "x11 systemd"
-inherit setuptools3 python3native
+inherit setuptools3_legacy python3native
+
+PIP_INSTALL_PACKAGE = "blivet_gui"
RDEPENDS:${PN} = "python3-pygobject python3 \
python3-blivet gtk+3 \
diff --git a/meta-openembedded/meta-python/recipes-extended/python-cson/python3-cson_git.bb b/meta-openembedded/meta-python/recipes-extended/python-cson/python3-cson_git.bb
index 5d696b30f7..c4fcc61ec0 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-cson/python3-cson_git.bb
+++ b/meta-openembedded/meta-python/recipes-extended/python-cson/python3-cson_git.bb
@@ -17,5 +17,7 @@ DEPENDS:append:class-native = " python-native "
inherit setuptools3
+PIP_INSTALL_PACKAGE = "python_cson"
+
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh/0001-setup.py-switch-from-distutils-to-setuptools.patch b/meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh/0001-setup.py-switch-from-distutils-to-setuptools.patch
new file mode 100644
index 0000000000..2eb6be5a18
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh/0001-setup.py-switch-from-distutils-to-setuptools.patch
@@ -0,0 +1,31 @@
+From 034ac41561409ffc7836683331b6b94a641436e4 Mon Sep 17 00:00:00 2001
+From: Tim Orling <tim.orling@konsulko.com>
+Date: Mon, 28 Feb 2022 09:41:02 -0800
+Subject: [PATCH] setup.py: switch from distutils to setuptools
+
+In Python 3.10 'distutils' is deprecated with removal slated for Python
+3.12. Switch from 'distutils.core' to 'setuptools'.
+
+This also allows for a 'wheel' binary archive format to be built with
+'setup.py bdist_wheel'.
+
+Upstream-Status: Backport [cf9eafdd165347f86bb4a2534c41fd805db52322]
+
+Signed-off-by: Tim Orling <tim.orling@konsulko.com>
+
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index 9c12180..3ba5195 100644
+--- a/setup.py
++++ b/setup.py
+@@ -1,6 +1,6 @@
+ #!/usr/bin/python3
+
+-from distutils.core import setup
++from setuptools import setup
+
+ setup(name='python-meh', version='0.50.1',
+ description='Python module for handling exceptions',
diff --git a/meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.50.1.bb b/meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.50.1.bb
index bf0df021a4..1d9af438da 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.50.1.bb
+++ b/meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.50.1.bb
@@ -1,16 +1,17 @@
SUMMARY = "A python library for handling exceptions"
DESCRIPTION = "The python-meh package is a python library for handling, saving, and reporting \
exceptions."
-HOMEPAGE = "http://git.fedorahosted.org/git/?p=python-meh.git"
-LICENSE = "GPLv2+"
+HOMEPAGE = "https://github.com/rhinstaller/python-meh"
+LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-inherit setuptools3
+inherit setuptools3_legacy
S = "${WORKDIR}/git"
-SRC_URI = "git://github.com/rhinstaller/python-meh.git;protocol=https;branch=rhel9-branch"
+SRC_URI = "git://github.com/rhinstaller/python-meh.git;protocol=https;branch=rhel9-branch \
+ file://0001-setup.py-switch-from-distutils-to-setuptools.patch \
+ "
SRCREV = "c321ce22950aff76611a3c6beffa02b5ea3adbed"
-FILES:${PN} += "${datadir}/*"
-
+FILES:${PN} += "${datadir}/python-meh"
diff --git a/meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.34.bb b/meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.34.bb
index 65fc88e77b..6bf9ada581 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.34.bb
+++ b/meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.34.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "A python library for manipulating kickstart files"
HOMEPAGE = "http://fedoraproject.org/wiki/pykickstart"
-LICENSE = "GPLv2+"
+LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
@@ -23,3 +23,5 @@ SRCREV = "bfd836cfdd8439d984595aca015811ed5c6be733"
UPSTREAM_CHECK_GITTAGREGEX = "r(?P<pver>\d+(\.\d+)+(-\d+)*)"
inherit setuptools3
+PIP_INSTALL_PACKAGE = "pykickstart"
+PIP_INSTALL_DIST_PATH = "${S}/dist"
diff --git a/meta-openembedded/meta-python/recipes-extended/python-pyparted/python3-pyparted_3.11.7.bb b/meta-openembedded/meta-python/recipes-extended/python-pyparted/python3-pyparted_3.11.7.bb
index 66cd27d447..2cdf82365a 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-pyparted/python3-pyparted_3.11.7.bb
+++ b/meta-openembedded/meta-python/recipes-extended/python-pyparted/python3-pyparted_3.11.7.bb
@@ -3,7 +3,7 @@ an interface to libparted, the GNU parted library for disk partitioning and \
filesystem manipulation."
SUMMARY = "Python bindings for libparted"
HOMEPAGE = "https://github.com/rhinstaller/pyparted"
-LICENSE = "GPL-2.0+"
+LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "\
file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b \
file://src/_pedmodule.c;beginline=10;endline=22;md5=9e53304db812b80d0939e11bb69dcab2 \
diff --git a/meta-openembedded/meta-python/recipes-extended/python3-portalocker/python3-portalocker_2.3.2.bb b/meta-openembedded/meta-python/recipes-extended/python3-portalocker/python3-portalocker_2.3.2.bb
index bf9304cdd1..2d23017c88 100644
--- a/meta-openembedded/meta-python/recipes-extended/python3-portalocker/python3-portalocker_2.3.2.bb
+++ b/meta-openembedded/meta-python/recipes-extended/python3-portalocker/python3-portalocker_2.3.2.bb
@@ -1,6 +1,6 @@
SUMMARY = "Cross-platform locking library"
DESCRIPTION = "Portalocker is a library to provide an easy API to file locking"
-LICENSE = "PSF"
+LICENSE = "PSF-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=f9273424c73af966635d66eb53487e14"
diff --git a/meta-openembedded/meta-python/recipes-extended/python3-pydot/python3-pydot_1.4.2.bb b/meta-openembedded/meta-python/recipes-extended/python3-pydot/python3-pydot_1.4.2.bb
new file mode 100644
index 0000000000..fde1029c74
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-extended/python3-pydot/python3-pydot_1.4.2.bb
@@ -0,0 +1,11 @@
+SUMMARY = "pydot is is an interface to Graphviz."
+HOMEPAGE = "https://github.com/pydot/pydot"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3f6fa041dfcc7ff7747cfceaa34a3180"
+
+SRC_URI[sha256sum] = "248081a39bcb56784deb018977e428605c1c758f10897a339fce1dd728ff007d"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "graphviz python3-pyparsing"
diff --git a/meta-openembedded/meta-python/recipes-extended/pywbem/python3-pywbem_1.3.0.bb b/meta-openembedded/meta-python/recipes-extended/pywbem/python3-pywbem_1.3.0.bb
index 26758427a2..676c654b52 100644
--- a/meta-openembedded/meta-python/recipes-extended/pywbem/python3-pywbem_1.3.0.bb
+++ b/meta-openembedded/meta-python/recipes-extended/pywbem/python3-pywbem_1.3.0.bb
@@ -13,7 +13,7 @@ at http://www.dmtf.org/standards/wbem. \
It also provides a Python provider interface, and is the fastest and easiest \
way to write providers on the planet."
HOMEPAGE = "http://pywbem.github.io"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=fbc093901857fcd118f065f900982c24"
SRC_URI[sha256sum] = "5df0af28f81891a3914a12f3a30b11b1981f7b30e09c5a42c011797e7fce9b6a"
diff --git a/meta-openembedded/meta-python/recipes-extended/pywbemtools/python3-pywbemtools_0.9.1.bb b/meta-openembedded/meta-python/recipes-extended/pywbemtools/python3-pywbemtools_1.0.0.bb
index c51f860fd5..3a9f0ad6fd 100644
--- a/meta-openembedded/meta-python/recipes-extended/pywbemtools/python3-pywbemtools_0.9.1.bb
+++ b/meta-openembedded/meta-python/recipes-extended/pywbemtools/python3-pywbemtools_1.0.0.bb
@@ -4,7 +4,7 @@ HOMEPAGE = "https://pywbemtools.readthedocs.io/en/stable/"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e23fadd6ceef8c618fc1c65191d846fa"
-SRC_URI[sha256sum] = "cbe2fe67620e73a81807940a75aeed8570205e2213d6f8de4db15fbc06fe8804"
+SRC_URI[sha256sum] = "0af7e067e0c0ba32cc19c2c2dc67875c591b806c4b49480ebe46e37bfb399684"
inherit pypi setuptools3