diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-h2/python3-h2_4.0.0.bb b/meta-openembedded/meta-python/recipes-connectivity/python-h2/python3-h2_4.1.0.bb
similarity index 68%
rename from meta-openembedded/meta-python/recipes-connectivity/python-h2/python3-h2_4.0.0.bb
rename to meta-openembedded/meta-python/recipes-connectivity/python-h2/python3-h2_4.1.0.bb
index 8c488fe..c2d5884 100644
--- a/meta-openembedded/meta-python/recipes-connectivity/python-h2/python3-h2_4.0.0.bb
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-h2/python3-h2_4.1.0.bb
@@ -4,8 +4,7 @@
 
 LIC_FILES_CHKSUM = "file://LICENSE;md5=aa3b9b4395563dd427be5f022ec321c1"
 
-SRC_URI[md5sum] = "d086f6a9746a5f4eeb63bb3d0a482e1f"
-SRC_URI[sha256sum] = "bb7ac7099dd67a857ed52c815a6192b6b1f5ba6b516237fc24a085341340593d"
+SRC_URI[sha256sum] = "a83aca08fbe7aacb79fec788c9c0bac936343560ed9ec18b82a13a12c28d2abb"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-thrift/python3-thrift_0.13.0.bb b/meta-openembedded/meta-python/recipes-connectivity/python-thrift/python3-thrift_0.15.0.bb
similarity index 65%
rename from meta-openembedded/meta-python/recipes-connectivity/python-thrift/python3-thrift_0.13.0.bb
rename to meta-openembedded/meta-python/recipes-connectivity/python-thrift/python3-thrift_0.15.0.bb
index d62ba66..78cbba6 100644
--- a/meta-openembedded/meta-python/recipes-connectivity/python-thrift/python3-thrift_0.13.0.bb
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-thrift/python3-thrift_0.15.0.bb
@@ -1,9 +1,8 @@
 SUMMARY = "Python bindings for the Apache Thrift RPC system"
 LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=e95cd2f17c70d3180a2b361332319fe0"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=7145f7cdd263359b62d342a02f005515"
 
-SRC_URI[md5sum] = "c3bc8d9a910d2c9ce26f2ad1f7c96762"
-SRC_URI[sha256sum] = "9af1c86bf73433afc6010ed376a6c6aca2b54099cc0d61895f640870a9ae7d89"
+SRC_URI[sha256sum] = "87c8205a71cf8bbb111cb99b1f7495070fbc9cabb671669568854210da5b3e29"
 
 inherit pypi setuptools3
 
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 550b026..f0159f8 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
@@ -279,6 +279,7 @@
     python3-pocketsphinx \
     python3-polyline \
     python3-portalocker \
+    python3-posix-ipc \
     python3-prctl \
     python3-precise-runner \
     python3-pretend \
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
new file mode 100644
index 0000000..2b88023
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/gyp/gyp/0001-Fix-for-Python-3.10-compatibility.patch
@@ -0,0 +1,25 @@
+From bfe579283e5fcab60172818bfe4e6e1d40c2bed0 Mon Sep 17 00:00:00 2001
+From: Kurt Kiefer <kurt.kiefer@arthrex.com>
+Date: Mon, 18 Oct 2021 11:21:14 -0700
+Subject: [PATCH] Fix for Python 3.10 compatibility
+
+The collections.abc module replaces collections for Python 3.10
+
+Signed-off-by: Kurt Kiefer <kurt.kiefer@arthrex.com>
+---
+ pylib/gyp/common.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+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
+@@ -494,7 +494,7 @@ def uniquer(seq, idfun=None):
+ 
+ 
+ # Based on http://code.activestate.com/recipes/576694/.
+-class OrderedSet(collections.MutableSet):
++class OrderedSet(collections.abc.MutableSet):
+   def __init__(self, iterable=None):
+     self.end = end = []
+     end += [None, end, end]         # sentinel node for doubly linked list
diff --git a/meta-openembedded/meta-python/recipes-devtools/gyp/gyp_git.bb b/meta-openembedded/meta-python/recipes-devtools/gyp/gyp_git.bb
index d668d1c..73329ce 100644
--- a/meta-openembedded/meta-python/recipes-devtools/gyp/gyp_git.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/gyp/gyp_git.bb
@@ -4,7 +4,9 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=ab828cb8ce4c62ee82945a11247b6bbd"
 SECTION = "devel"
 
-SRC_URI = "git://chromium.googlesource.com/external/gyp;protocol=https"
+SRC_URI = "git://chromium.googlesource.com/external/gyp;protocol=https \
+           file://0001-Fix-for-Python-3.10-compatibility.patch \
+           "
 SRCREV = "caa60026e223fc501e8b337fd5086ece4028b1c6"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-absl_0.13.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-absl_0.15.0.bb
similarity index 67%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-absl_0.13.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-absl_0.15.0.bb
index 2ebd358..f25201d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-absl_0.13.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-absl_0.15.0.bb
@@ -4,8 +4,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
 
-SRC_URI[md5sum] = "afb3ffb4b59d53575e8eb073c3a52803"
-SRC_URI[sha256sum] = "6953272383486044699fd0e9f00aad167a27e08ce19aae66c6c4b10e7e767793"
+SRC_URI[sha256sum] = "72d782fbeafba66ba3e525d46bccac949b9a174dbf66233e50ece09ee688dc81"
 
 PYPI_PACKAGE = "absl-py"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohue_2.6.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohue_2.6.3.bb
similarity index 76%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-aiohue_2.6.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-aiohue_2.6.3.bb
index c79a922..e9cbde8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohue_2.6.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohue_2.6.3.bb
@@ -4,7 +4,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=dab31a1d28183826937f4b152143a33f"
 
-SRC_URI[sha256sum] = "1374f7fc50bac46375e18ce7d511515265ce83c9180f312e60a36d63055f0104"
+SRC_URI[sha256sum] = "ce9c240ca3eb1394c56503b403589f4d0ee7f93445a578b78da8b7879a65c863"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.6.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.7.4.bb
similarity index 81%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.6.5.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.7.4.bb
index e1f29ca..17e9e53 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.6.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.7.4.bb
@@ -4,7 +4,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "a21fedebb3fb8f6bbbba51a11114f08c78709377051384c9c5ead5705ee93a51"
+SRC_URI[sha256sum] = "9d33f3ff1488c4bfab1e1a6dfebbf085e8a8e1a3e047a43ad29ad1f67f012a1d"
 
 PYPI_PACKAGE = "alembic"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-anyjson/0001-setup.py-Do-not-use-2to3.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-anyjson/0001-setup.py-Do-not-use-2to3.patch
new file mode 100644
index 0000000..2b9e6e5
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-anyjson/0001-setup.py-Do-not-use-2to3.patch
@@ -0,0 +1,29 @@
+From 4fb61d7c621599b0db9c2c45f4243f07936c5953 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 13 Oct 2021 08:20:00 -0700
+Subject: [PATCH] setup.py: Do not use 2to3
+
+This helps compiling with setuptools 0.58+
+and it seems to compile fine with python3
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ setup.py | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 9fe4902..f2098e1 100644
+--- a/setup.py
++++ b/setup.py
+@@ -2,8 +2,6 @@ import os
+ import sys
+ 
+ extra = {}
+-if sys.version_info >= (3, 0):
+-    extra.update(use_2to3=True)
+ 
+ try:
+     from setuptools import setup, find_packages
+-- 
+2.33.0
+
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
index 07cc998..2b8abb8 100644
--- 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
@@ -8,6 +8,7 @@
 inherit pypi setuptools3 ptest
 
 SRC_URI += " \
+	file://0001-setup.py-Do-not-use-2to3.patch \
 	file://run-ptest \
 "
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.7.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.8.2.bb
similarity index 89%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.7.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.8.2.bb
index 4ed051d..f465ba9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.7.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.8.2.bb
@@ -4,7 +4,7 @@
 LICENSE = "LGPL-2.1"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=a70cf540abf41acb644ac3b621b2fad1"
 
-SRC_URI[sha256sum] = "f3083366b7bb8b3a72c0e12841ab07f14b0d7ff5cc1c89676b84d8f5832e4b61"
+SRC_URI[sha256sum] = "304e99c129794f2cfda584a12b71fde85205da950e2f330f4be09150525ae949"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-behave_1.2.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-behave_1.2.6.bb
index 04e24a6..89bf29f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-behave_1.2.6.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-behave_1.2.6.bb
@@ -3,10 +3,13 @@
 LICENSE = "BSD-2-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=d950439e8ea6ed233e4288f5e1a49c06"
 
-SRC_URI[md5sum] = "3f05c859a1c45f5ed33e925817ad887d"
-SRC_URI[sha256sum] = "b9662327aa53294c1351b0a9c369093ccec1d21026f050c3bd9b3e5cccf81a86"
+PV .= "+git${SRCREV}"
+SRCREV = "9520119376046aeff73804b5f1ea05d87a63f370"
+SRC_URI += "git://github.com/behave/behave;branch=master"
 
-inherit pypi setuptools3
+S = "${WORKDIR}/git"
+
+inherit setuptools3
 
 RDEPENDS:${PN} += " \
     ${PYTHON_PN}-parse-type \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cachetools_4.2.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cachetools_4.2.4.bb
similarity index 88%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-cachetools_4.2.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-cachetools_4.2.4.bb
index 58994d7..1040dc7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cachetools_4.2.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cachetools_4.2.4.bb
@@ -27,6 +27,6 @@
 	cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
 }
 
-SRC_URI[sha256sum] = "61b5ed1e22a0924aed1d23b478f37e8d52549ff8a961de2909c69bf950020cff"
+SRC_URI[sha256sum] = "89ea6f1b638d5a73a4f9226be57ac5e4f399d22770b92355f92dcb0f7f001693"
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_36.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_36.4.0.bb
similarity index 74%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_36.2.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_36.4.0.bb
index 632175c..ec7d4b8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_36.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_36.4.0.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=d9aa4ec07de78abae21c490c9ffe61bd"
 
-SRC_URI[sha256sum] = "31bcdd56cbb5e26decab42f0624c8cead9b94991f6ee922512b0acd6ae7d6da2"
+SRC_URI[sha256sum] = "8de959fe61bd1d5c30e91aded237f4273c13fafe5fee4d1d78a15a84c8fd9691"
 
 PYPI_PACKAGE = "cantools"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.4.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.4.2.bb
similarity index 87%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.4.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.4.2.bb
index 9f0242d..d3f6cd8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.4.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.4.2.bb
@@ -4,7 +4,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
 
-SRC_URI[sha256sum] = "a8bf432f6cb595f50aeb8fed2a4aa3b3f7caa7f135fb57e4378eaa39242feac9"
+SRC_URI[sha256sum] = "e283e70b55a049ff364cc5e648fde587e4d9b0e87e4b2664c69e639135e6b3b8"
 
 inherit pypi setuptools3 ptest
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-certifi_2021.5.30.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-certifi_2021.10.8.bb
similarity index 85%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-certifi_2021.5.30.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-certifi_2021.10.8.bb
index ef2c66b..4c376da 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-certifi_2021.5.30.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-certifi_2021.10.8.bb
@@ -7,7 +7,7 @@
 LICENSE = "ISC"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=67da0714c3f9471067b729eca6c9fbe8"
 
-SRC_URI[sha256sum] = "2bbf76fd432960138b3ef6dda3dde0544f27cbf8546c458e60baf371917ba9ee"
+SRC_URI[sha256sum] = "78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.14.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.15.0.bb
similarity index 83%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.14.6.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.15.0.bb
index 529d896..c36f23b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.14.6.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.15.0.bb
@@ -4,7 +4,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=5677e2fdbf7cdda61d6dd2b57df547bf"
 DEPENDS += "libffi ${PYTHON_PN}-pycparser"
 
-SRC_URI[sha256sum] = "c9a875ce9d7fe32887784274dd533c57909b7b1dcadcc128a2ac21331a9765dd"
+SRC_URI[sha256sum] = "920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-click_8.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-click_8.0.3.bb
similarity index 91%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-click_8.0.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-click_8.0.3.bb
index c8b9a42..c31d065 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-click_8.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-click_8.0.3.bb
@@ -8,7 +8,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=1fa98232fd645608937a0fdc82e999b8"
 
-SRC_URI[sha256sum] = "8c04c11192119b1ef78ea049e0a6f0463e4c48ef00a30160c704337586f3ad7a"
+SRC_URI[sha256sum] = "410e932b050f5eed773c4cda94de75971c89cdb3155a72a0831139a79e5ecb5b"
 
 inherit pypi setuptools3 ptest
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-colorlog_6.4.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-colorlog_6.5.0.bb
similarity index 75%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-colorlog_6.4.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-colorlog_6.5.0.bb
index 59a0e94..bd90083 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-colorlog_6.4.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-colorlog_6.5.0.bb
@@ -7,4 +7,4 @@
 
 PYPI_PACKAGE = "colorlog"
 
-SRC_URI[sha256sum] = "af99440154a01f27c09256760ea3477982bf782721feaa345904e806879df4d8"
+SRC_URI[sha256sum] = "cf62a8e389d5660d0d22be17937b25b9abef9497ddc940197d1773aa1f604339"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-configargparse_1.5.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-configargparse_1.5.3.bb
similarity index 85%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-configargparse_1.5.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-configargparse_1.5.3.bb
index e4b6797..7d21375 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-configargparse_1.5.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-configargparse_1.5.3.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=da746463714cc35999ed9a42339f2943"
 
-SRC_URI[sha256sum] = "c39540eb4843883d526beeed912dc80c92481b0c13c9787c91e614a624de3666"
+SRC_URI[sha256sum] = "1b0b3cbf664ab59dada57123c81eff3d9737e0d11d8cf79e3d6eb10823f1739f"
 
 PYPI_PACKAGE = "ConfigArgParse"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_5.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_6.0.2.bb
similarity index 71%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_5.5.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_6.0.2.bb
index c780a63..67b3a5e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_5.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_6.0.2.bb
@@ -3,7 +3,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2ee41112a44fe7014dce33e26468ba93"
 
-SRC_URI[sha256sum] = "ebe78fe9a0e874362175b02371bdfbee64d8edc42a044253ddf4ee7d3c15212c"
+SRC_URI[sha256sum] = "6807947a09510dc31fa86f43595bf3a14017cd60bf633cc746d52141bfa6b149"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_3.4.8.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_35.0.0.bb
similarity index 81%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_3.4.8.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_35.0.0.bb
index 2fb48f3..474eb82 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_3.4.8.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_35.0.0.bb
@@ -4,7 +4,7 @@
 LICENSE = "Apache-2.0 | BSD"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=8c3617db4fb6fae01f1d253ab91511e4"
 
-SRC_URI[sha256sum] = "4c84410257993d3de058b44b777a49e1da2ae35ebea2970a360c7e3aa0f580f2"
+SRC_URI[sha256sum] = "978ad96822c0e007a0a3d8187eb0eafbd9eb1d67b50cfac70277175e74957bfc"
 
 PYPI_PACKAGE = "cryptography_vectors"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cvxopt_1.2.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cvxopt_1.2.7.bb
similarity index 90%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-cvxopt_1.2.6.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-cvxopt_1.2.7.bb
index cc017dd..3f35149 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cvxopt_1.2.6.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cvxopt_1.2.7.bb
@@ -5,7 +5,7 @@
 
 SRC_URI = "git://github.com/cvxopt/cvxopt;protocol=https"
 
-SRCREV = "60fdb838e0bb2d8f32ba51129552c83b55acd2a7"
+SRCREV = "d5a21cf1da62e4269176384b1ff62edac5579f94"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-dateparser_1.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-dateparser_1.1.0.bb
similarity index 79%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-dateparser_1.0.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-dateparser_1.1.0.bb
index 3d6995a..5b661a0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-dateparser_1.0.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-dateparser_1.1.0.bb
@@ -3,8 +3,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3d3ed25571191e7aa3f55d0a6efe0051"
 
-SRC_URI[md5sum] = "24a06a429597239004d47e6b93991aaf"
-SRC_URI[sha256sum] = "159cc4e01a593706a15cd4e269a0b3345edf3aef8bf9278a57dac8adf5bf1e4a"
+SRC_URI[sha256sum] = "faa2b97f51f3b5ff1ba2f17be90de2b733fb6191f89b4058787473e8202f3044"
 
 PYPI_PACKAGE = "dateparser"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_2.2.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_2.3.2.bb
similarity index 83%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_2.2.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_2.3.2.bb
index 1801fc2..4c94d93 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_2.2.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_2.3.2.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=5dbb7fb7d72da3921202dd7b995d3ecf"
 
-SRC_URI[sha256sum] = "60139b91ef9646e27381fd62b8c38f1fc8ebc78dc4bc231c08c51240062e58e6"
+SRC_URI[sha256sum] = "392f32a5efdf15c14f3f56ef8422364f8b0a74a12f51a66d9c903c172fe3594b"
 
 PYPI_PACKAGE = "elementpath"
 inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-eventlet_0.30.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-eventlet_0.32.0.bb
similarity index 67%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-eventlet_0.30.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-eventlet_0.32.0.bb
index 80869a2..3848150 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-eventlet_0.30.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-eventlet_0.32.0.bb
@@ -4,8 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=56472ad6de4caf50e05332a34b66e778"
 
-SRC_URI[md5sum] = "ebf5794e3f7a9f1778fb4f2a58eb7614"
-SRC_URI[sha256sum] = "1811b122d9a45eb5bafba092d36911bca825f835cb648a862bbf984030acff9d"
+SRC_URI[sha256sum] = "2f0bb8ed0dc0ab21d683975d5d8ab3c054d588ce61def9faf7a465ee363e839b"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.0.2.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.0.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.0.2.bb
index f1c0461..e3f1df3 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.0.2.bb
@@ -6,7 +6,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=ffeffa59c90c9c4a033c7574f8f3fb75"
 
-SRC_URI[sha256sum] = "1c4c257b1892aec1398784c63791cbaa43062f1f7aeb555c4da961b20ee68f55"
+SRC_URI[sha256sum] = "7b2fb8e934ddd50731893bdcdb00fc8c0315916f9fcd50d22c7cc1a95ab634e2"
 
 PYPI_PACKAGE = "Flask"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gmpy2_2.0.8.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gmpy2_2.1.0rc1.bb
similarity index 78%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-gmpy2_2.0.8.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-gmpy2_2.1.0rc1.bb
index 976f57a..d3150d6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-gmpy2_2.0.8.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-gmpy2_2.1.0rc1.bb
@@ -7,8 +7,7 @@
 DEPENDS += "gmp mpfr libmpc"
 
 PYPI_PACKAGE = "gmpy2"
-PYPI_PACKAGE_EXT = "zip"
-SRC_URI[sha256sum] = "dd233e3288b90f21b0bb384bcc7a7e73557bb112ccf0032ad52aa614eb373d3f"
+SRC_URI[sha256sum] = "86cb6d8e5837560c32c706d48d6ed25676be6b3c79e6aa5d245965b9e99231b9"
 
 inherit pypi setuptools3 python3native
 BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gmqtt_0.6.10.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gmqtt_0.6.11.bb
similarity index 81%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-gmqtt_0.6.10.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-gmqtt_0.6.11.bb
index eee47fe..0e6670b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-gmqtt_0.6.10.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-gmqtt_0.6.11.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=903f1792621a3b35ee546da75d139177"
 
-SRC_URI[sha256sum] = "7ab7a226ab13d75f7bc34a1422da73658ce4cac86708bf55f92daf7c5f44165a"
+SRC_URI[sha256sum] = "0be6d57841538abc3ae0a41131c6d53314e0705b74876a6f94bc903df1209fb6"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_1.31.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.1.1.bb
similarity index 87%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_1.31.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.1.1.bb
index fe0aebb..34489af 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_1.31.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.1.1.bb
@@ -6,7 +6,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "108cf94336aed7e614eafc53933ef02adf63b9f0fd87e8f8212acaa09eaca456"
+SRC_URI[sha256sum] = "646d9399c3c478fe475cfe523e84572ab31a340814ea977fb2774eca5a6549a2"
 
 RDEPENDS:${PN} += "\
     ${PYTHON_PN}-asyncio \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.19.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.27.0.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.19.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.27.0.bb
index 564058e..41ab48c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.19.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.27.0.bb
@@ -4,7 +4,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
 
-SRC_URI[sha256sum] = "c89b345615188fbd525f52d59013156ad3bfd1023af27041f2dec3d7877ba112"
+SRC_URI[sha256sum] = "659e9955f0f1e02fcce5dec85622eb5af1807572ef0f09c49d68d8426da670e7"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_1.34.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.3.0.bb
similarity index 87%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_1.34.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.3.0.bb
index 92ad248..9d192c1 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_1.34.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.3.0.bb
@@ -6,7 +6,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "f1094088bae046fb06f3d1a3d7df14717e8d959e9105b79c57725bd4e17597a2"
+SRC_URI[sha256sum] = "2800f6dfad29c6ced5faf9ca0c38ea8ba1ebe2559b10c029bd021e3de3301627"
 
 RDEPENDS:${PN} += "\
     ${PYTHON_PN}-asyncio \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-greenlet_1.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-greenlet_1.1.2.bb
similarity index 78%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-greenlet_1.1.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-greenlet_1.1.2.bb
index 9d014ec..07c1436 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-greenlet_1.1.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-greenlet_1.1.2.bb
@@ -4,6 +4,6 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=e95668d68e4329085c7ab3535e6a7aee \
                     file://LICENSE.PSF;md5=c106931d9429eda0492617f037b8f69a"
 
-SRC_URI[sha256sum] = "c0f22774cd8294078bdf7392ac73cf00bfa1e5e0ed644bd064fdabc5f2a2f481"
+SRC_URI[sha256sum] = "e30f5ea4ae2346e62cedde8794a56858a67b878dd79f7df76a0767e356b1744a"
 
 inherit pypi distutils3 setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.40.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.41.0.bb
similarity index 85%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.40.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.41.0.bb
index f86bf00..55b8890 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.40.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.41.0.bb
@@ -11,7 +11,7 @@
 
 SRC_URI += "file://0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch"
 
-SRC_URI[sha256sum] = "d440f2bc089ff628618c536904d5bc39d0b44f7afdda4c4c1ecd15fcf385bfba"
+SRC_URI[sha256sum] = "3891b1df82369acbc8451d4952cd20755f49a82398dce62437511ad17b47290e"
 
 RDEPENDS:${PN} = "${PYTHON_PN}-grpcio"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.40.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.41.0.bb
similarity index 93%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.40.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.41.0.bb
index 1cfb967..fb6f1a3 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.40.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.41.0.bb
@@ -12,7 +12,7 @@
                                 file://mips_bigendian.patch \
                                 file://0001-absl-always-use-asm-sgidefs.h.patch \
 "
-SRC_URI[sha256sum] = "3d172158fe886a2604db1b6e17c2de2ab465fe0fe36aba2ec810ca8441cefe3a"
+SRC_URI[sha256sum] = "15c04d695833c739dbb25c88eaf6abd9a461ec0dbd32f44bc8769335a495cf5a"
 
 RDEPENDS:${PN} = "${PYTHON_PN}-protobuf \
                   ${PYTHON_PN}-setuptools \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.5.0.bb
similarity index 90%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.4.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.5.0.bb
index 89000b7..aad2f91 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.4.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.5.0.bb
@@ -4,7 +4,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=113251d71fb0384712c719b567261c5c"
 
-SRC_URI[sha256sum] = "ee1c683d91ab010d5e85cb61e8f9e7ee0d8eab545bf3dd50a9618f1d0e8f615e"
+SRC_URI[sha256sum] = "77c7be4001ac7d3ed80477de5b6942501d782de1bbe4886597bdfec2a7ab821f"
 
 SRC_URI:append = " \
            file://0001-setup_build.py-avoid-absolute-path.patch \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-haversine_2.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-haversine_2.5.1.bb
similarity index 74%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-haversine_2.4.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-haversine_2.5.1.bb
index 9eda659..1ed67d3 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-haversine_2.4.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-haversine_2.5.1.bb
@@ -2,7 +2,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
 
-SRC_URI[sha256sum] = "6dcdee48b854b7bd0a121a04a2cb775dc7d9e2354f1e22d29ff62110189305b0"
+SRC_URI[sha256sum] = "357e41dfddc4a0f2b1c941d92a590cac840f7ce4b3da14b45b68d968b3ad7cc7"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-httplib2_0.19.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-httplib2_0.20.1.bb
similarity index 82%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-httplib2_0.19.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-httplib2_0.20.1.bb
index 3f244ec..8a0b6c9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-httplib2_0.19.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-httplib2_0.20.1.bb
@@ -4,7 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=56e5e931172b6164b62dc7c4aba6c8cf"
 
-SRC_URI[sha256sum] = "0b12617eeca7433d4c396a100eaecfa4b08ee99aa881e6df6e257a7aad5d533d"
+SRC_URI[sha256sum] = "0efbcb8bfbfbc11578130d87d8afcc65c2274c6eb446e59fc674e4d7c972d327"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-humanize_3.11.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-humanize_3.12.0.bb
similarity index 81%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-humanize_3.11.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-humanize_3.12.0.bb
index aacda65..1aecc5a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-humanize_3.11.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-humanize_3.12.0.bb
@@ -5,7 +5,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENCE;md5=4ecc42519e84f6f3e23529464df7bd1d"
 
-SRC_URI[sha256sum] = "4160cdc63fcd0daac27d2e1e218a31bb396fc3fe5712d153675d89432a03778f"
+SRC_URI[sha256sum] = "5ec1a66e230a3e31fb3f184aab9436ea13d4e37c168e0ffc345ae5bb57e58be6"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-idna_3.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-idna_3.3.bb
similarity index 82%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-idna_3.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-idna_3.3.bb
index 22f6402..a0e6b79 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-idna_3.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-idna_3.3.bb
@@ -3,7 +3,7 @@
 LICENSE = "BSD-3-Clause & Python-2.0 & Unicode"
 LIC_FILES_CHKSUM = "file://LICENSE.md;md5=239668a7c6066d9e0c5382e9c8c6c0e1"
 
-SRC_URI[sha256sum] = "467fbad99067910785144ce333826c71fb0e63a425657295239737f7ecd125f3"
+SRC_URI[sha256sum] = "9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_7.27.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_7.28.0.bb
similarity index 88%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_7.27.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_7.28.0.bb
index 3c64b82..c5d05a8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_7.27.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_7.28.0.bb
@@ -6,7 +6,7 @@
 
 PYPI_PACKAGE = "ipython"
 
-SRC_URI[sha256sum] = "58b55ebfdfa260dad10d509702dc2857cb25ad82609506b070cf2d7b7df5af13"
+SRC_URI[sha256sum] = "2097be5c814d1b974aea57673176a924c4c8c9583890e7a5f082f547b9975b11"
 
 RDEPENDS:${PN} = "\
     ${PYTHON_PN}-setuptools \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-iso3166_1.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-iso3166_2.0.2.bb
similarity index 77%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-iso3166_1.0.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-iso3166_2.0.2.bb
index 8ff3059..bc05f06 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-iso3166_1.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-iso3166_2.0.2.bb
@@ -3,8 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5e2f4edc7e7408a82e4a1d05f229b695"
 
-SRC_URI[md5sum] = "53c313c7ae8721e40ddd5e7a01bbcb7e"
-SRC_URI[sha256sum] = "b1e58dbcf50fbb2c9c418ec7a6057f0cdb30b8f822ac852f72e71ba769dae8c5"
+SRC_URI[sha256sum] = "04d02cfcfc18a6f8a9a4edb4d0a55e2e4fc575626c29d702f750de415e88d372"
 
 inherit pypi setuptools3 ptest
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-jdatetime_3.6.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-jdatetime_3.6.2.bb
deleted file mode 100644
index cadddc4..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-jdatetime_3.6.2.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-DESCRIPTION = "Jalali implementation of Python's datetime module"
-HOMEPAGE = "https://github.com/slashmili/python-jalali"
-LICENSE = "Python-2.0"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=fc0a323542d2fbe0ad822fa0b1a0a96f"
-
-SRC_URI[md5sum] = "3c9ee1bc7de48ff4d9c773046b2eb081"
-SRC_URI[sha256sum] = "a589e35f0dab89283c1a3de9d70ed6cf657932aaed8e8ce1b0e5801aaab1da67"
-
-PYPI_PACKAGE = "jdatetime"
-
-inherit pypi setuptools3
-
-CLEANBROKEN = "1"
-
-RDEPENDS:${PN} += " \
-        ${PYTHON_PN}-modules \
-"
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-jdatetime_3.6.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-jdatetime_3.6.4.bb
new file mode 100644
index 0000000..ad1ca42
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-jdatetime_3.6.4.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "Jalali implementation of Python's datetime module"
+HOMEPAGE = "https://github.com/slashmili/python-jalali"
+LICENSE = "Python-2.0"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=f6890b2f685363312aff7f520831cdef"
+
+SRC_URI[sha256sum] = "39d0be41076b3a3850c3bfa90817e7ed459edc0e9cadce37dc7229b11f121c7e"
+
+PYPI_PACKAGE = "jdatetime"
+
+inherit pypi setuptools3
+
+CLEANBROKEN = "1"
+
+RDEPENDS:${PN} += " \
+        ${PYTHON_PN}-modules \
+"
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-joblib_1.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-joblib_1.0.1.bb
deleted file mode 100644
index e325ad8..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-joblib_1.0.1.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Joblib is a set of tools to provide lightweight pipelining in Python."
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=32b289008fb813a27c9025f02b59d03d"
-
-inherit setuptools3 pypi
-
-SRC_URI[md5sum] = "9914b330916395c0a1feca54949867a3"
-SRC_URI[sha256sum] = "9c17567692206d2f3fb9ecf5e991084254fe631665c450b443761c4186a613f7"
-
-RDEPENDS:${PN} += " \
-    python3-asyncio \
-    python3-distutils \
-    python3-json \
-    python3-multiprocessing \
-    python3-pprint \
-    python3-pydoc \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-joblib_1.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-joblib_1.1.0.bb
new file mode 100644
index 0000000..e69cfef
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-joblib_1.1.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Joblib is a set of tools to provide lightweight pipelining in Python."
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2e481820abf0a70a18011a30153df066"
+
+inherit setuptools3 pypi
+
+SRC_URI[sha256sum] = "4158fcecd13733f8be669be0683b96ebdbbd38d23559f54dca7205aea1bf1e35"
+
+RDEPENDS:${PN} += " \
+    python3-asyncio \
+    python3-distutils \
+    python3-json \
+    python3-multiprocessing \
+    python3-pprint \
+    python3-pydoc \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-jsmin_2.2.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-jsmin_3.0.0.bb
similarity index 75%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-jsmin_2.2.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-jsmin_3.0.0.bb
index 1a0578e..733c963 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-jsmin_2.2.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-jsmin_3.0.0.bb
@@ -5,8 +5,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3a3301ce2ad647e172f4a1016c67324d"
 
 inherit setuptools3 pypi ptest
-SRC_URI[md5sum] = "00e7a3179a4591aab2ee707b3214e2fd"
-SRC_URI[sha256sum] = "b6df99b2cd1c75d9d342e4335b535789b8da9107ec748212706ef7bbe5c2553b"
+SRC_URI[sha256sum] = "88fc1bd6033a47c5911dbcada7d279c7a8b7ad0841909590f6a742c20c4d2e08"
 
 BBCLASSEXTEND = "native nativesdk"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonrpcserver_4.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonrpcserver_5.0.3.bb
similarity index 70%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-jsonrpcserver_4.2.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-jsonrpcserver_5.0.3.bb
index 492ed65..c250030 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonrpcserver_4.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonrpcserver_5.0.3.bb
@@ -1,9 +1,9 @@
 SUMMARY = "Library to process JSON-RPC requests"
 HOMEPAGE = "https://github.com/bcb/jsonrpcserver"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c89120516900f96f4c60d35fdc4c3f15"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=61b63ea9d36f6fb63ddaaaac8265304f"
 
-SRC_URI[sha256sum] = "0c9e5b9445621138521e912016ae39b3badadd2607140dcbb0c8062934ab4854"
+SRC_URI[sha256sum] = "0cc514559596fa380bf188e31b0cdf3d9e6d9cc162fdca8a49ed511b291a9ae1"
 
 inherit pypi setuptools3
 
@@ -19,4 +19,3 @@
 "
 
 BBCLASSEXTEND = "native nativesdk"
-
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 d046489..a4ec626 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
@@ -56,7 +56,7 @@
     python3-cython-native \
 "
 
-RDEPENDS_${PN} = " \
+RDEPENDS:${PN} = " \
     gstreamer1.0 \
     gstreamer1.0-python \
     libsdl2 \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto/0001-setup.py-address-openssl-3.x-build-issue.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto/0001-setup.py-address-openssl-3.x-build-issue.patch
new file mode 100644
index 0000000..c67e508
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto/0001-setup.py-address-openssl-3.x-build-issue.patch
@@ -0,0 +1,28 @@
+From 0d824e5c2ab13e761ffaeabdccf9513d5b8f280d Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Fri, 8 Oct 2021 11:18:35 +0200
+Subject: [PATCH] setup.py: address openssl 3.x build issue
+
+swig throws:
+| /home/alex/development/poky/build-metaoe/tmp/work/x86_64-linux/python3-m2crypto-native/0.38.0-r0/recipe-sysroot-native/usr/include/openssl/macros.h:155: Error: CPP #error ""OPENSSL_API_COMPAT expresses an impossible API compatibility level"". Use the -cpperraswarn option to continue swig processing.
+
+I'm not sure why; upstream should take a look.
+
+Upstream-Status: Inappropriate [workaround]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ setup.py | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/setup.py b/setup.py
+index 2c65404..74704bc 100644
+--- a/setup.py
++++ b/setup.py
+@@ -192,6 +192,7 @@ class _M2CryptoBuildExt(build_ext.build_ext):
+ 
+         self.swig_opts.append('-includeall')
+         self.swig_opts.append('-modern')
++        self.swig_opts.append('-cpperraswarn')
+         self.swig_opts.append('-builtin')
+ 
+         # These two lines are a workaround for
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto_0.38.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto_0.38.0.bb
index e1ee99b..51a0dd6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto_0.38.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto_0.38.0.bb
@@ -7,8 +7,9 @@
 FILESEXTRAPATHS:prepend := "${THISDIR}/python-m2crypto:"
 
 SRC_URI += "file://0001-setup.py-link-in-sysroot-not-in-host-directories.patch \
-            file://cross-compile-platform.patch \
-            file://avoid-host-contamination.patch \
+           file://cross-compile-platform.patch \
+           file://avoid-host-contamination.patch \
+           file://0001-setup.py-address-openssl-3.x-build-issue.patch \
            "
 SRC_URI[sha256sum] = "99f2260a30901c949a8dc6d5f82cd5312ffb8abc92e76633baf231bbbcb2decb"
 
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.6.1.bb
index f1190c3..513a5a9 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.6.1.bb
@@ -1,7 +1,7 @@
 DESCRIPTION = "McCabe checker, plugin for flake8"
 HOMEPAGE = "https://github.com/PyCQA/mccabe"
 SECTION = "devel/python"
-LICENSE = "Apache-2.0"
+LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=a489dc62bacbdad3335c0f160a974f0f"
 
 SRC_URI[md5sum] = "723df2f7b1737b8887475bac4c763e1e"
@@ -10,8 +10,3 @@
 inherit pypi setuptools3
 
 DEPENDS += "${PYTHON_PN}-pytest-runner-native"
-
-RDEPENDS:${PN} += "${PYTHON_PN}-prettytable \
-            ${PYTHON_PN}-cmd2 \
-            ${PYTHON_PN}-pyparsing \
-           "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict_5.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict_5.2.0.bb
similarity index 72%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-multidict_5.1.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-multidict_5.2.0.bb
index 3ec271a..05b18fa 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict_5.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict_5.2.0.bb
@@ -2,9 +2,9 @@
 HOMEPAGE = "https://github.com/aio-libs/multidict/"
 
 LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e74c98abe0de8f798ca609137f9cef4a"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=84c63e2bcd84e619d249af5181e2147f"
 
-SRC_URI[sha256sum] = "25b4e5f22d3a37ddf3effc0710ba692cfc792c2b9edfb9c05aefe823256e84d5"
+SRC_URI[sha256sum] = "0dd1c93edb444b33ba2274b66f63def8a327d607c6c790772f448a53b6ea59ce"
 
 inherit pypi setuptools3 ptest
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-nmap_1.5.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-nmap_1.5.1.bb
similarity index 75%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-nmap_1.5.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-nmap_1.5.1.bb
index a3523b7..ed0e980 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-nmap_1.5.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-nmap_1.5.1.bb
@@ -8,8 +8,7 @@
 
 PYPI_PACKAGE = "python3-nmap"
 
-SRC_URI[md5sum] = "3a43dd0f56ade8c76c7c6f994604212d"
-SRC_URI[sha256sum] = "b52744e0c9944c567733b8deb60d6363e17233ee40466edfb1b09a5780576f9a"
+SRC_URI[sha256sum] = "0e6667153a84938bdc0e95a64cd86397b4c46724c422873ea8f1d007d248926a"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-openpyxl_3.0.8.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-openpyxl_3.0.9.bb
similarity index 88%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-openpyxl_3.0.8.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-openpyxl_3.0.9.bb
index 3d1f46e..4dfd449 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-openpyxl_3.0.8.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-openpyxl_3.0.9.bb
@@ -9,7 +9,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "4f2770348c029ce9433316ced8f91ed37d2a605e654f8bfdc93a3524561a8ce2"
+SRC_URI[sha256sum] = "40f568b9829bf9e446acfffce30250ac1fa39035124d55fc024025c41481c90f"
 
 RDEPENDS:${PN} += "\
 	${PYTHON_PN}-compression \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-paho-mqtt_1.5.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-paho-mqtt_1.6.1.bb
similarity index 67%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-paho-mqtt_1.5.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-paho-mqtt_1.6.1.bb
index 2d4e55a..81a6d0a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-paho-mqtt_1.5.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-paho-mqtt_1.6.1.bb
@@ -1,15 +1,13 @@
 SUMMARY = "MQTT version 3.1/3.1.1 client library"
 LICENSE = "EPL-1.0 | EDL-1.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=eb48c6ee2cb9f5b8b9fe75e6f817bdfc \
-                    file://epl-v10;md5=8d383c379e91d20ba18a52c3e7d3a979 \
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=8e5f264c6988aec56808a3a11e77b913 \
                     file://edl-v10;md5=c09f121939f063aeb5235972be8c722c \
 "
 SRCNAME = "paho-mqtt"
 
 inherit pypi setuptools3
 
-SRC_URI[md5sum] = "32f93c0ed92c7439f7a715ed258fd35d"
-SRC_URI[sha256sum] = "9feb068e822be7b3a116324e01fb6028eb1d66412bf98595ae72698965cb1cae"
+SRC_URI[sha256sum] = "2a8291c81623aec00372b5a85558a372c747cbca8e9934dfe218638b8eefc26f"
 
 DEPENDS += "${PYTHON_PN}-pytest-runner-native"
 
@@ -20,7 +18,7 @@
 
 PACKAGES =+ "${PN}-examples"
 
-RDEPENDS:${PN}-examples += "${PN}"
+RDEPENDS:${PN}-examples += "${PN} ${PYTHON_PN}-core"
 
 FILES:${PN}-examples = "${datadir}/${BPN}/examples"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_1.3.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_1.3.4.bb
similarity index 89%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_1.3.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_1.3.4.bb
index 6e557ed..cde4318 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_1.3.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_1.3.4.bb
@@ -6,7 +6,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3f23c5c092b74d245d48eeef72bc3fd2"
 
-SRC_URI[sha256sum] = "272c8cb14aa9793eada6b1ebe81994616e647b5892a370c7135efb2924b701df"
+SRC_URI[sha256sum] = "a2aa18d3f0b7d538e21932f637fbfe8518d085238b429e4790a35e1e44a96ffc"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.7.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.8.0.bb
similarity index 74%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.7.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.8.0.bb
index ece55f1..1942a1d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.7.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.8.0.bb
@@ -3,8 +3,7 @@
 LICENSE = "LGPL-2.1"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=fd0120fc2e9f841c73ac707a30389af5"
 
-SRC_URI[md5sum] = "44136d79da4cd7619e368018ad022619"
-SRC_URI[sha256sum] = "7f36f4ba2c0d81d219f4595e35f70d56cc94f9ac40a6acdf51d6ca210ce65035"
+SRC_URI[sha256sum] = "e673b10ee0f1c80d46182d3af7751d033d9b573dd7054d2d0aa46be186c3c1d2"
 
 PYPI_PACKAGE = "paramiko"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-parse-type_0.5.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-parse-type_0.5.2.bb
index 39812a1..7eebbfb 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-parse-type_0.5.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-parse-type_0.5.2.bb
@@ -19,6 +19,11 @@
 	${PYTHON_PN}-pytest \
 "
 
+do_configure:prepend() {
+	sed -i -e "/python_version >= 3.0/d" ${S}/setup.py
+	sed -i -e "/use_2to3/d" ${S}/setup.py
+}
+
 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/python3-portion_2.1.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-portion_2.2.0.bb
similarity index 76%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-portion_2.1.6.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-portion_2.2.0.bb
index a1076f9..e712c8f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-portion_2.1.6.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-portion_2.2.0.bb
@@ -7,6 +7,6 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "725b65da806fb79df05c0b6383b01631c510f371d9bc0ece93a996b4260ba085"
+SRC_URI[sha256sum] = "b6bfb08a7834787aca076da1200b735d97beef61b60a462b05213e7354a099cf"
 
 BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-posix-ipc_1.0.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-posix-ipc_1.0.5.bb
new file mode 100644
index 0000000..2377bd5
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-posix-ipc_1.0.5.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "POSIX IPC primitives (semaphores, shared memory and message queues) for Python"
+HOMEPAGE = "http://semanchuk.com/philip/posix_ipc/"
+SECTION = "devel/python"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=dc089fb2f37e90799a54c19a20c9880f"
+
+PYPI_PACKAGE = "posix_ipc"
+
+# Archived version so we need to overwrite what the pypi class will derive
+PYPI_SRC_URI = "https://pypi.python.org/packages/source/p/${PYPI_PACKAGE}/${PYPI_PACKAGE}-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "8c9443859492ecf3aae9182aa6b5c78c"
+SRC_URI[sha256sum] = "6cddb1ce2cf4aae383f2a0079c26c69bee257fe2720f372201ef047f8ceb8b97"
+
+inherit setuptools3 pypi
+
+# DEPENDS_default: python-pip
+
+DEPENDS += " \
+        ${PYTHON_PN}-pip \
+        "
+
+# RDEPENDS:default:
+RDEPENDS:${PN} += " \
+        "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-prettytable_2.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-prettytable_2.2.1.bb
similarity index 84%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-prettytable_2.1.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-prettytable_2.2.1.bb
index 58a48e9..b9050cc 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-prettytable_2.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-prettytable_2.2.1.bb
@@ -3,7 +3,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://COPYING;md5=c9a6829fcd174d9535b46211917c7671"
 
-SRC_URI[sha256sum] = "5882ed9092b391bb8f6e91f59bcdbd748924ff556bb7c634089d5519be87baa0"
+SRC_URI[sha256sum] = "6d465005573a5c058d4ca343449a5b28c21252b86afcdfa168cdc6a440f0b24c"
 
 do_install:append() {
     perm_files=`find "${D}${PYTHON_SITEPACKAGES_DIR}/" -name "*.txt" -o -name "PKG-INFO"`
@@ -28,6 +28,9 @@
 	${PYTHON_PN}-math \
 	${PYTHON_PN}-html \
 	${PYTHON_PN}-wcwidth \
+	${PYTHON_PN}-json \
+	${PYTHON_PN}-compression \
+	${PYTHON_PN}-importlib-metadata \
 "
 
 RDEPENDS:${PN}-ptest += " \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.19.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.21.bb
similarity index 83%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.19.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.21.bb
index 5d80905..e0d379d0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.19.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.21.bb
@@ -3,7 +3,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=b2cde7da89f0c1f3e49bf968d00d554f"
 
-SRC_URI[sha256sum] = "08360ee3a3148bdb5163621709ee322ec34fc4375099afa4bbf751e9b7b7fa4f"
+SRC_URI[sha256sum] = "27f13ff4e4850fe8f860b77414c7880f67c6158076a7b099062cc8570f1562e5"
 
 inherit pypi setuptools3
 
@@ -19,6 +19,7 @@
     ${PYTHON_PN}-shell \
     ${PYTHON_PN}-image \
     ${PYTHON_PN}-asyncio \
+    ${PYTHON_PN}-xml \
 "
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.17.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.18.1.bb
similarity index 91%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.17.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.18.1.bb
index b43529c..8ecb3ab 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.17.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.18.1.bb
@@ -7,7 +7,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "72804ea5eaa9c22a090d2803813e280fb273b62d5ae497aaf3553d141c4fdd7b"
+SRC_URI[sha256sum] = "1c9bb40503751087300dd12ce2e90899d68628977905c76effc48e66d089391e"
 
 # 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-pulsectl_21.9.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pulsectl_21.10.5.bb
similarity index 84%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pulsectl_21.9.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pulsectl_21.10.5.bb
index 5871ee2..0b867b8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pulsectl_21.9.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pulsectl_21.10.5.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://COPYING;md5=f1d10048469ff90123263eb5e214061d"
 
-SRC_URI[sha256sum] = "8eef4dbfc97d984e63fd609a3f690d005173ec5342be88d10f67dd507affdf32"
+SRC_URI[sha256sum] = "b347983fb78baab168f4dc4804ab2c59ca5b813bf62f8146dfb5fcb6ab6c8ba2"
 
 RDEPENDS:${PN} += " \
 	libpulse \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyatspi_2.34.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyatspi_2.38.1.bb
similarity index 92%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pyatspi_2.34.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pyatspi_2.38.1.bb
index 1368b92..8ae9ac9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyatspi_2.34.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyatspi_2.38.1.bb
@@ -7,8 +7,9 @@
                     file://COPYING.GPL;md5=751419260aa954499f7abaabaa882bbe"
 DEPENDS = "python3-dbus-native glib-2.0 dbus-glib libxml2 atk gtk+ python3-pygobject"
 
-SRC_URI = "git://github.com/GNOME/pyatspi2.git;protocol=https;branch=mainline"
-SRCREV = "cc99d68db66174f4499b9b325bc788393b972edd"
+SRC_URI = "git://github.com/GNOME/pyatspi2.git;protocol=https;branch=master"
+SRCREV = "6d5f47ee8e8a36140b52bf52fe954a131a0aa5dd"
+
 S = "${WORKDIR}/git" 
 
 # Same restriction as gtk+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11-json_0.2.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11-json_0.2.11.bb
similarity index 83%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11-json_0.2.6.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11-json_0.2.11.bb
index c56c70a..8384471 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11-json_0.2.6.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11-json_0.2.11.bb
@@ -2,7 +2,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=0e25ff0ec476d06d366439e1120cce98"
 
-SRCREV = "d1d00888bc0eb7c50dde6cff1a5eb4586e620b65"
+SRCREV = "0fbbe3bbb27bd07a5ec7d71cbb1f17eaf4d37702"
 SRC_URI = "git://github.com/pybind/pybind11_json"
 
 DEPENDS += "nlohmann-json python3-pybind11"
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 e8d1441..cc659ea 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
@@ -11,8 +11,13 @@
 SRC_URI[sha256sum] = "c8f04d2e78951eaa9de486b4d49381704e8943d0a6e6e58f55fcd7b8582e90de"
 
 PYPI_PACKAGE = "PyBluez"
+
 inherit pypi setuptools3
 
+do_configure:prepend() {
+   sed -i -e "/use_2to3=True,/d" ${S}/setup.py
+}
+
 RDEPENDS:${PN} += "\
     bluez5 \
     ${PYTHON_PN}-fcntl \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_9.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_9.3.1.bb
similarity index 83%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_9.2.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_9.3.1.bb
index 1fd76ed..77b032a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_9.2.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_9.3.1.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=b1dbd4e85f47b389bdadee9c694669f5"
 
-SRC_URI[sha256sum] = "883d6e836ff5f1068a8bd00364a15b4c9854293086495e9fd9cacd9b4d54c0bf"
+SRC_URI[sha256sum] = "a1d6807ae0fc455aaeecd2def87c31bb86679a2920cacfa7910db9c9db5085d4"
 
 PYPI_PACKAGE = "PyChromecast"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pycodestyle_2.7.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pycodestyle_2.8.0.bb
similarity index 76%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pycodestyle_2.7.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pycodestyle_2.8.0.bb
index 611abca..31720e2 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pycodestyle_2.7.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pycodestyle_2.8.0.bb
@@ -4,7 +4,7 @@
 SECTION = "devel/python"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=a8546d0e77f416fb05a26acd89c8b3bd"
 
-SRC_URI[sha256sum] = "c389c1d06bf7904078ca03399a4816f974a1d590090fecea0c63ec26ebaf1cef"
+SRC_URI[sha256sum] = "eddd5847ef438ea1c7870ca7eb78a9d47ce0cdb4851a5523949f2601d0cbbe7f"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyflakes_2.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyflakes_2.3.1.bb
deleted file mode 100644
index 607879c..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyflakes_2.3.1.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "passive checker of Python programs"
-HOMEPAGE = "https://github.com/dreamhost/cliff"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=690c2d09203dc9e07c4083fc45ea981f"
-
-SRC_URI[sha256sum] = "f5bc8ecabc05bb9d291eb5203d6810b49040f6ff446a756326104746cc00c1db"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
-    ${PYTHON_PN}-prettytable \
-    ${PYTHON_PN}-cmd2 \
-    ${PYTHON_PN}-pyparsing"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyflakes_2.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyflakes_2.4.0.bb
new file mode 100644
index 0000000..827ff0b
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyflakes_2.4.0.bb
@@ -0,0 +1,10 @@
+SUMMARY = "passive checker of Python programs"
+HOMEPAGE = "https://github.com/PyCQA/pyflakes"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=690c2d09203dc9e07c4083fc45ea981f"
+
+SRC_URI[sha256sum] = "05a85c2872edf37a4ed30b0cce2f6093e1d0581f8c19d7393122da7e25b2b24c"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyinotify_0.9.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyinotify_0.9.6.bb
index 8c6550a..8dd5e15 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyinotify_0.9.6.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyinotify_0.9.6.bb
@@ -4,7 +4,9 @@
 
 RDEPENDS:${PN} += "\
     ${PYTHON_PN}-ctypes \
+    ${PYTHON_PN}-fcntl \
     ${PYTHON_PN}-io \
+    ${PYTHON_PN}-logging \
     ${PYTHON_PN}-misc \
     ${PYTHON_PN}-shell \
     ${PYTHON_PN}-smtpd \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyjwt_2.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyjwt_2.3.0.bb
similarity index 83%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pyjwt_2.1.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pyjwt_2.3.0.bb
index aae1474..19ba307 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyjwt_2.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyjwt_2.3.0.bb
@@ -5,7 +5,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=68626705a7b513ca8d5f44a3e200ed0c"
 
-SRC_URI[sha256sum] = "fba44e7898bbca160a2b2b501f492824fc8382485d3a6f11ba5d0c1937ce6130"
+SRC_URI[sha256sum] = "b888b4d56f06f6dcd777210c334e69c737be74755d3e5e9ee3fe67dc18a0ee41"
 
 PYPI_PACKAGE = "PyJWT"
 inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyopenssl_20.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyopenssl_21.0.0.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pyopenssl_20.0.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pyopenssl_21.0.0.bb
index eda9381..a7e0ae4 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyopenssl_20.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyopenssl_21.0.0.bb
@@ -5,7 +5,7 @@
 
 DEPENDS += "openssl ${PYTHON_PN}-cryptography"
 
-SRC_URI[sha256sum] = "4c231c759543ba02560fcd2480c48dcec4dae34c9da7d3747c508227e0624b51"
+SRC_URI[sha256sum] = "5e2d8c5e46d0d865ae933bef5230090bdaf5506281e9eec60fa250ee80600cb3"
 
 PYPI_PACKAGE = "pyOpenSSL"
 inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyperf_2.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyperf_2.3.0.bb
similarity index 89%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pyperf_2.2.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pyperf_2.3.0.bb
index 89d22ee..5172b0a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyperf_2.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyperf_2.3.0.bb
@@ -13,7 +13,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://COPYING;md5=78bc2e6e87c8c61272937b879e6dc2f8"
 
-SRC_URI[sha256sum] = "498bb4d1fe21350c2b7c1aa8bb3eae9c9979358d0b66327954bc66839fcba8b6"
+SRC_URI[sha256sum] = "8a85dd42e067131d5b26b71472336da7f7f4b87ff9c97350d89f5ff0de9adedc"
 
 DEPENDS += "${PYTHON_PN}-six-native"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.1.1.bb
similarity index 77%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.0.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.1.1.bb
index bba94f8..9769cd6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.0.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.1.1.bb
@@ -12,6 +12,11 @@
 
 PYPI_PACKAGE = "PyScaffold"
 
-SRC_URI[sha256sum] = "cfa719c2d97392ec3cd5f44d95ec0d40df2dd483d5ee05ea029896cfd7c04af8"
+SRC_URI[sha256sum] = "8972252fda90d1020a93f1e99db370c002d18f52ff2fca9c3cc2a0aee74d07ad"
 
 BBCLASSEXTEND = "native nativesdk"
+
+RDEPENDS:${PN} += " \
+	python3-email \
+	python3-compression \
+"
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
new file mode 100644
index 0000000..d268cc5
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pystache/0001-Modernize-python-versions-remove-py2x-and-fix-tests-.patch
@@ -0,0 +1,4150 @@
+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
index bbf4fbb..0ae5a19 100644
--- 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
@@ -3,6 +3,8 @@
 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"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.15.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.16.0.bb
similarity index 78%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.15.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.16.0.bb
index 1c7df2c..1dfeab6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.15.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.16.0.bb
@@ -3,7 +3,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
 
-SRC_URI[sha256sum] = "2564ceb9612bbd560d19ca4b41347b54e7835c2f792c504f698e05395ed63f6f"
+SRC_URI[sha256sum] = "7496c5977ce88c34379df64a66459fe395cd05543f0a2f837016e7144391fcfb"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-timeout_1.4.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-timeout_2.0.1.bb
similarity index 67%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-timeout_1.4.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-timeout_2.0.1.bb
index 3fb8bdf..a790a65 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-timeout_1.4.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-timeout_2.0.1.bb
@@ -5,8 +5,7 @@
 
 PYPI_PACKAGE = "pytest-timeout"
 
-SRC_URI[md5sum] = "552cc293447b00f7a294ce7a1fb3839f"
-SRC_URI[sha256sum] = "20b3113cf6e4e80ce2d403b6fb56e9e1b871b510259206d40ff8d609f48bda76"
+SRC_URI[sha256sum] = "a5ec4eceddb8ea726911848593d668594107e797621e97f93a1d1dbc6fbb9080"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytz_2021.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytz_2021.3.bb
similarity index 83%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pytz_2021.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pytz_2021.3.bb
index dc51966..119342a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytz_2021.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytz_2021.3.bb
@@ -5,8 +5,7 @@
 
 inherit pypi setuptools3 ptest
 
-SRC_URI[md5sum] = "8c849bdf95414fe708a84473e42d4406"
-SRC_URI[sha256sum] = "83a4a90894bf38e243cf052c8b58f381bfe9a7a483f6a9cab140bc7f702ac4da"
+SRC_URI[sha256sum] = "acad2d8b20a1af07d4e4c9d2e9285c5ed9104354062f275f3fcd88dcef4f1326"
 
 RDEPENDS:${PN}:class-target += "\
     ${PYTHON_PN}-datetime \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2021.8.28.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2021.10.8.bb
similarity index 79%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2021.8.28.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2021.10.8.bb
index e375b5b..e797897 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2021.8.28.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2021.10.8.bb
@@ -5,7 +5,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "f585cbbeecb35f35609edccb95efd95a3e35824cd7752b586503f7e6087303f1"
+SRC_URI[sha256sum] = "26895d7c9bbda5c52b3635ce5991caa90fbb1ddfac9c9ff1c7ce505e2282fb2a"
 
 RDEPENDS:${PN} += " \
 	python3-stringold \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_4.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_4.1.2.bb
similarity index 89%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_4.1.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_4.1.2.bb
index d715f35..0c3de5d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_4.1.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_4.1.2.bb
@@ -13,7 +13,7 @@
 
 PYPI_PACKAGE_EXT = "zip"
 
-SRC_URI[sha256sum] = "663f84c177b2fa9b3b782939e31637a057a33f3a4b29067812f1259b7f4bad35"
+SRC_URI[sha256sum] = "7ea2454b847cfcb211e2906743c5c4a868ab096ab4ce1547ab102d91fb224443"
 
 RDEPENDS:${PN} += " \
     ${PYTHON_PN}-shell \
@@ -26,4 +26,5 @@
     ${PYTHON_PN}-ctypes \
     ${PYTHON_PN}-logging \
     ${PYTHON_PN}-numbers \
+    ${PYTHON_PN}-profile \
 "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.4.3.bb
similarity index 82%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.3.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.4.3.bb
index a7810ff..c5614a3 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.3.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.4.3.bb
@@ -7,7 +7,7 @@
 
 RDEPENDS:${PN} += "python3-urllib3"
 
-SRC_URI[sha256sum] = "ebe99144fa9618d4b0e7617e7929b75acd905d258c3c779edcd34c0adfffe26c"
+SRC_URI[sha256sum] = "b9844751e40710e84a457c5bc29b21c383ccb2b63d76eeaad72f7f1c808c8828"
 
 PYPI_PACKAGE = "sentry-sdk"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-simpleeval_0.9.10.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-simpleeval_0.9.10.bb
index 9708fc6..36512cb 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-simpleeval_0.9.10.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-simpleeval_0.9.10.bb
@@ -17,7 +17,9 @@
 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-socketio_5.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.4.1.bb
similarity index 88%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.4.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.4.1.bb
index cd2c436..bf8ce4c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.4.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.4.1.bb
@@ -9,7 +9,7 @@
 
 PYPI_PACKAGE = "python-socketio"
 
-SRC_URI[sha256sum] = "ca807c9e1f168e96dea412d64dd834fb47c470d27fd83da0504aa4b248ba2544"
+SRC_URI[sha256sum] = "ef4e273ddfebb421144a228cbab1e7e27ffe8d372514fa561e57d590ea6627b0"
 
 PACKAGECONFIG ?= "asyncio_client client"
 PACKAGECONFIG[asyncio_client] = ",,,${PYTHON_PN}-aiohttp ${PYTHON_PN}-websockets"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_1.4.23.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_1.4.26.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_1.4.23.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_1.4.26.bb
index 4bfaf65..e000156 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_1.4.23.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_1.4.26.bb
@@ -4,7 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3359ed561ac16aaa25b6c6eff84df595"
 
-SRC_URI[sha256sum] = "76ff246881f528089bf19385131b966197bb494653990396d2ce138e2a447583"
+SRC_URI[sha256sum] = "6bc7f9d7d90ef55e8c6db1308a8619cd8f40e24a34f759119b95e7284dca351a"
 
 PYPI_PACKAGE = "SQLAlchemy"
 inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-stevedore_3.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-stevedore_3.5.0.bb
similarity index 80%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-stevedore_3.4.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-stevedore_3.5.0.bb
index e2f4304..8d345e6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-stevedore_3.4.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-stevedore_3.5.0.bb
@@ -3,7 +3,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
 
-SRC_URI[sha256sum] = "59b58edb7f57b11897f150475e7bc0c39c5381f0b8e3fa9f5c20ce6c89ec4aa1"
+SRC_URI[sha256sum] = "f40253887d8712eaa2bb0ea3830374416736dc8ec0e22f5a65092c1174c44335"
 
 DEPENDS += "${PYTHON_PN}-pbr-native"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sympy_1.8.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sympy_1.8.bb
deleted file mode 100644
index e274857..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-sympy_1.8.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-# This recipe is adapted from one in meta-jupyter:
-# https://github.com/Xilinx/meta-jupyter/blob/master/recipes-python/python3-sympy_1.1.bb
-
-SUMMARY = "Computer algebra system (CAS) in Python"
-HOMEPAGE = "https://pypi.org/project/sympy/"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=2245824980a408ef1749391dfba32b3b"
-
-SRC_URI[sha256sum] = "1ca588a9f6ce6a323c5592f9635159c2093572826668a1022c75c75bdf0297cb"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "python3-mpmath"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sympy_1.9.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sympy_1.9.bb
new file mode 100644
index 0000000..9201869
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-sympy_1.9.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Computer algebra system (CAS) in Python"
+HOMEPAGE = "https://pypi.org/project/sympy/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=42976c55ba05d15b32a7b4757dee5e64"
+
+SRC_URI[sha256sum] = "c7a880e229df96759f955d4f3970d4cabce79f60f5b18830c08b90ce77cd5fdc"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-mpmath"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.1.1.bb
similarity index 80%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.1.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.1.1.bb
index 120604a..bfed02d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.1.1.bb
@@ -6,7 +6,7 @@
 
 PYPI_PACKAGE = "traitlets"
 
-SRC_URI[sha256sum] = "bd382d7ea181fbbcce157c133db9a829ce06edffe097bcf3ab945b435452b46d"
+SRC_URI[sha256sum] = "059f456c5a7c1c82b98c2e8c799f39c9b8128f6d0d46941ee118daace9eb70c7"
 
 RDEPENDS:${PN} = "\
     ${PYTHON_PN}-ipython-genutils \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-transitions_0.8.9.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-transitions_0.8.10.bb
similarity index 74%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-transitions_0.8.9.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-transitions_0.8.10.bb
index 178dfad..4629298 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-transitions_0.8.9.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-transitions_0.8.10.bb
@@ -4,6 +4,6 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "fc2ec6d6b6f986cd7e28e119eeb9ba1c9cc51ab4fbbdb7f2dedad01983fd2de0"
+SRC_URI[sha256sum] = "b0385975a842e885c1a55c719d2f90164471665794d39d51f9eb3f11e1d9c8ac"
 
 RDEPENDS:${PN} += "python3-six python3-logging"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-twitter_3.10.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-twitter_4.1.0.bb
similarity index 80%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-twitter_3.10.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-twitter_4.1.0.bb
index bb034a4..ac1dab8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-twitter_3.10.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-twitter_4.1.0.bb
@@ -4,7 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489"
 
-SRC_URI[sha256sum] = "76e6954b806ca470dda877f57db8792fff06a0beba0ed43efc3805771e39f06a"
+SRC_URI[sha256sum] = "88e2938de5ac7043c9ba8b8358996fbc5806059d63c96269d22527a40ca7d511"
 
 PYPI_PACKAGE = "tweepy"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_2.12.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_2.13.0.bb
similarity index 87%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_2.12.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_2.13.0.bb
index 6b33c17..564f98e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_2.12.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_2.13.0.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=f0e423eea5c91e7aa21bdb70184b3e53"
 
-SRC_URI[sha256sum] = "c2af8b9bdd7657f4bd27b45336e7930171aead796711bc4cfc99b4731bb9d051"
+SRC_URI[sha256sum] = "04e38f92eb59410c9375d3be23df65e0a7643f2e8bcbd421423d808d2f9e99df"
 
 inherit pypi setuptools3 ptest
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_4.0.1.bb
similarity index 72%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_3.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_4.0.1.bb
index a9d372e..f8339bb 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_3.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_4.0.1.bb
@@ -3,6 +3,6 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=57e0bd61643d81d05683cdce65b11d10"
 
-SRC_URI[sha256sum] = "f4e6e36db50499e0d92f79b67361041f048e2609d166e93456b50746dc4aef12"
+SRC_URI[sha256sum] = "8560aabba61b5d2a5e1697bb781f682e6eaa3ce386cee85a09a458cc0003f836"
 
 inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ujson_4.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ujson_4.2.0.bb
similarity index 89%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-ujson_4.1.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-ujson_4.2.0.bb
index d8e83c5..3dbfe44 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ujson_4.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ujson_4.2.0.bb
@@ -4,7 +4,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=10fa10456417c0252bcb8a498e498ffe"
 
-SRC_URI[sha256sum] = "22b63ec4409f0d2f2c4c9d5aa331997e02470b7a15a3233f3cc32f2f9b92d58c"
+SRC_URI[sha256sum] = "fffe509f556861c7343c6cba57ed05fe7bcf4b48a934a5b946ccb45428cf8883"
 
 inherit pypi ptest setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-uritemplate_3.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-uritemplate_4.1.1.bb
similarity index 82%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-uritemplate_3.0.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-uritemplate_4.1.1.bb
index 0d63803..eaf8bda 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-uritemplate_3.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-uritemplate_4.1.1.bb
@@ -6,8 +6,7 @@
 LICENSE = "Apache-2.0 | BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=0f6d769bdcfacac3c1a1ffa568937fe0"
 
-SRC_URI[md5sum] = "869fb44fbd56713490db7272eb36c8ae"
-SRC_URI[sha256sum] = "5af8ad10cec94f215e3f48112de2022e1d5a37ed427fbd88652fa908f2ab7cae"
+SRC_URI[sha256sum] = "4346edfc5c3b79f694bccd6d6099a322bbeb628dbf2cd86eea55a456ce5124f0"
 
 inherit pypi setuptools3 ptest
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.26.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.26.7.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.26.6.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.26.7.bb
index 5a2a628..7269674 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.26.6.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-urllib3_1.26.7.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=c2823cb995439c984fd62a973d79815c"
 
-SRC_URI[sha256sum] = "f57b4c16c62fa2760b7e3d97c35b255512fb6b59a259730f36ba32ce9f8e342f"
+SRC_URI[sha256sum] = "4987c65554f7a2dbf30c18fd48778ef124af6fab771a377103da0585e2336ece"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-watchdog_2.1.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-watchdog_2.1.6.bb
similarity index 80%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-watchdog_2.1.5.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-watchdog_2.1.6.bb
index 55b966a..2bb1100 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-watchdog_2.1.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-watchdog_2.1.6.bb
@@ -4,7 +4,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
 
-SRC_URI[sha256sum] = "5563b005907613430ef3d4aaac9c78600dd5704e84764cb6deda4b3d72807f09"
+SRC_URI[sha256sum] = "a36e75df6c767cbf46f61a91c70b3ba71811dfa0aca4a324d9407a06a8b7a2e7"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_9.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_10.0.bb
similarity index 78%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_9.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_10.0.bb
index a44c2d8..004d3be 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_9.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_10.0.bb
@@ -6,7 +6,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "276d2339ebf0df4f45df453923ebd2270b87900eda5dfd4a6b0cfa15f82111c3"
+SRC_URI[sha256sum] = "c4fc9a1d242317892590abe5b61a9127f1a61740477bfb121743f290b8054002"
 
 BBCLASSEXTEND = "native nativesdk"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-werkzeug_2.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-werkzeug_2.0.2.bb
similarity index 90%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-werkzeug_2.0.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-werkzeug_2.0.2.bb
index 57db204..4c221cc 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-werkzeug_2.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-werkzeug_2.0.2.bb
@@ -12,7 +12,7 @@
 
 PYPI_PACKAGE = "Werkzeug"
 
-SRC_URI[sha256sum] = "1de1db30d010ff1af14a009224ec49ab2329ad2cde454c8a708130642d579c42"
+SRC_URI[sha256sum] = "aa2bb6fc8dee8d6c504c0ac1e7f5f7dc5810a9903e793b6f715a9f015bdadb9a"
 
 inherit pypi setuptools3
 
@@ -35,4 +35,5 @@
     ${PYTHON_PN}-threading \
     ${PYTHON_PN}-unixadmin \
     ${PYTHON_PN}-misc \
+    ${PYTHON_PN}-profile \
 "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-wrapt_1.12.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-wrapt_1.13.2.bb
similarity index 73%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-wrapt_1.12.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-wrapt_1.13.2.bb
index 22457d9..b1710fc 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-wrapt_1.12.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-wrapt_1.13.2.bb
@@ -4,8 +4,7 @@
 SECTION = "devel/python"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=fdfc019b57affbe1d7a32e3d34e83db4"
 
-SRC_URI[md5sum] = "6d56ed0de4336462a73350341462f45e"
-SRC_URI[sha256sum] = "b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7"
+SRC_URI[sha256sum] = "dca56cc5963a5fd7c2aa8607017753f534ee514e09103a6c55d2db70b50e7447"
 
 inherit pypi setuptools3 
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_1.4.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_3.0.1.bb
similarity index 82%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_1.4.5.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_3.0.1.bb
index ffd3072..aeb27ce 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_1.4.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_3.0.1.bb
@@ -16,6 +16,6 @@
 	python3-io \
 "
 
-SRC_URI[sha256sum] = "0956747859567ec01907e561a7d8413de18a7aae36860f979f9da52b9d58bc19"
+SRC_URI[sha256sum] = "3f39bf581c55f3ad1438bc170d7f4c4649cee8b6b7a80d21f79508118eeea52a"
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-xmlschema_1.6.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-xmlschema_1.8.0.bb
similarity index 84%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-xmlschema_1.6.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-xmlschema_1.8.0.bb
index 217e77e..d720dd3 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-xmlschema_1.6.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-xmlschema_1.8.0.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=47489cb18c469474afeb259ed1d4832f"
 
-SRC_URI[sha256sum] = "31ddf77a44e4b121de212beeb2cc039e2e8b7a7a4f1678c9b29be1f5341aec52"
+SRC_URI[sha256sum] = "fa4e22a708f08d15f605c9191e2500149ba1a848fff7fa4904c2f2c57dc1087f"
 
 PYPI_PACKAGE = "xmlschema"
 inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-yappi/python310.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-yappi/python310.patch
new file mode 100644
index 0000000..6dd58ae
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-yappi/python310.patch
@@ -0,0 +1,51 @@
+From d40bc0e8230dd35e05222f5761e3d7f7a75fd46e Mon Sep 17 00:00:00 2001
+From: Alexander Shadchin <shadchin@yandex-team.ru>
+Date: Tue, 1 Jun 2021 02:31:12 +0300
+Subject: [PATCH] Adapt to Python 3.10 beta 1
+
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ yappi/_yappi.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/yappi/_yappi.c b/yappi/_yappi.c
+index 1721280..343130d 100644
+--- a/yappi/_yappi.c
++++ b/yappi/_yappi.c
+@@ -1258,7 +1258,11 @@ _resume_greenlet_ctx(_ctx *ctx)
+ static _ctx *
+ _bootstrap_thread(PyThreadState *ts)
+ {
++#if PY_VERSION_HEX < 0x030a00b1
+     ts->use_tracing = 1;
++#else
++    ts->cframe->use_tracing = 1;
++#endif
+     ts->c_profilefunc = _yapp_callback;
+     return NULL;
+ }
+@@ -1289,7 +1293,11 @@ _profile_thread(PyThreadState *ts)
+         ctx = (_ctx *)it->val;
+     }
+     
++#if PY_VERSION_HEX < 0x030a00b1
+     ts->use_tracing = 1;
++#else
++    ts->cframe->use_tracing = 1;
++#endif
+     ts->c_profilefunc = _yapp_callback;
+     ctx->id = ctx_id;
+     ctx->tid = ts->thread_id;
+@@ -1306,7 +1314,11 @@ _profile_thread(PyThreadState *ts)
+ static _ctx*
+ _unprofile_thread(PyThreadState *ts)
+ {
++#if PY_VERSION_HEX < 0x030a00b1
+     ts->use_tracing = 0;
++#else
++    ts->cframe->use_tracing = 0;
++#endif
+     ts->c_profilefunc = NULL;
+ 
+     return NULL; //dummy return for enum_threads() func. prototype
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-yappi_1.3.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-yappi_1.3.2.bb
index 94988a7..7cfc84e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-yappi_1.3.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-yappi_1.3.2.bb
@@ -9,6 +9,7 @@
 SRC_URI += " \
     file://run-ptest \
     file://0001-Fix-imports-for-ptests.patch \
+    file://python310.patch \
 "
 
 inherit pypi setuptools3 ptest
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-yarl/0001-Drop-tests-for-semicolon-as-a-separator.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-yarl/0001-Drop-tests-for-semicolon-as-a-separator.patch
deleted file mode 100644
index 1a9d5d0..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-yarl/0001-Drop-tests-for-semicolon-as-a-separator.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 47eabc562a8883d757e3cff487c6c6e98def5a21 Mon Sep 17 00:00:00 2001
-From: Andrew Svetlov <andrew.svetlov@gmail.com>
-Date: Fri, 28 May 2021 12:42:17 +0300
-Subject: [PATCH] Drop tests for semicolon as a separator
-
-yarl 1.6.3 ptests check the use of semicolons as separators in URLs,
-which are no longer valid by default in newer versions of Python. This
-patch is in python3-yarl master, but there is no release with it yet, so
-backport it until there is a new release.
-
-For more info, see: 
-https://bugs.python.org/issue42967
-https://github.com/aio-libs/yarl/issues/563
-
-Upstream-Status: Backport
-(https://github.com/aio-libs/yarl/commit/47eabc562a8883d757e3cff487c6c6e98def5a21)
-
-Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
-
----
- tests/test_url_query.py | 11 -----------
- 1 file changed, 11 deletions(-)
-
-diff --git a/tests/test_url_query.py b/tests/test_url_query.py
-index d2ca640..07f858b 100644
---- a/tests/test_url_query.py
-+++ b/tests/test_url_query.py
-@@ -60,14 +60,3 @@ def test_ampersand_as_value():
-     u = URL("http://127.0.0.1/?a=1%26b=2")
-     assert len(u.query) == 1
-     assert u.query["a"] == "1&b=2"
--
--
--def test_semicolon_as_separator():
--    u = URL("http://127.0.0.1/?a=1;b=2")
--    assert len(u.query) == 2
--
--
--def test_semicolon_as_value():
--    u = URL("http://127.0.0.1/?a=1%3Bb=2")
--    assert len(u.query) == 1
--    assert u.query["a"] == "1;b=2"
--- 
-2.31.1
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-yarl_1.6.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-yarl_1.7.0.bb
similarity index 62%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-yarl_1.6.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-yarl_1.7.0.bb
index 7bab771..acb4b4a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-yarl_1.6.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-yarl_1.7.0.bb
@@ -1,14 +1,11 @@
 SUMMARY = "The module provides handy URL class for url parsing and changing"
 HOMEPAGE = "https://github.com/aio-libs/yarl/"
 LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b334fc90d45983db318f54fd5bf6c90b"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e581798a7b985311f29fa3e163ea27ae"
 
-SRC_URI[sha256sum] = "8a9066529240171b68893d60dca86a763eae2139dd42f42106b03cf4b426bf10"
+SRC_URI[sha256sum] = "8e7ebaf62e19c2feb097ffb7c94deb0f0c9fab52590784c8cd679d30ab009162"
 
-SRC_URI += " \
-    file://run-ptest \
-    file://0001-Drop-tests-for-semicolon-as-a-separator.patch \
-"
+SRC_URI += "file://run-ptest"
 
 PYPI_PACKAGE = "yarl"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.36.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.36.9.bb
similarity index 79%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.36.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.36.9.bb
index 5f6f0a2..8258ddd 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.36.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.36.9.bb
@@ -3,7 +3,7 @@
 LICENSE = "LGPL-2.1"
 LIC_FILES_CHKSUM = "file://COPYING;md5=3bb705b228ea4a14ea2728215b780d80"
 
-SRC_URI[sha256sum] = "549f685a318c06d5345ed6533f54f33b206816b564ed7f7876e7b9522e77bf29"
+SRC_URI[sha256sum] = "023ebc58b765537edcb0395367b732e5271e2659760b1d5c6119aaacaeb7b390"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-extended/python-pyephem/python3-pyephem_4.0.0.2.bb b/meta-openembedded/meta-python/recipes-extended/python-pyephem/python3-pyephem_4.1.bb
similarity index 77%
rename from meta-openembedded/meta-python/recipes-extended/python-pyephem/python3-pyephem_4.0.0.2.bb
rename to meta-openembedded/meta-python/recipes-extended/python-pyephem/python3-pyephem_4.1.bb
index ce2a802..add4458 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-pyephem/python3-pyephem_4.0.0.2.bb
+++ b/meta-openembedded/meta-python/recipes-extended/python-pyephem/python3-pyephem_4.1.bb
@@ -4,7 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=9c930b395b435b00bb13ec83b0c99f40"
 
-SRC_URI[sha256sum] = "d03de73ebf6a91681d597eb5b5d43bcf6f0c67e292bba2f9a974734b4f15757e"
+SRC_URI[sha256sum] = "c076794a511a34b5b91871c1cf6374dbc323ec69fca3f50eb718f20b171259d6"
 
 PYPI_PACKAGE = "ephem"
 
diff --git a/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0001-support-authentication-for-kickstart.patch b/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0001-support-authentication-for-kickstart.patch
index 0e64ce4..5f95d74 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0001-support-authentication-for-kickstart.patch
+++ b/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0001-support-authentication-for-kickstart.patch
@@ -1,7 +1,7 @@
-From f05f5fc363e2510f6943532f3e14a6423f6a2cf1 Mon Sep 17 00:00:00 2001
+From 3540ddcc7448dc784b65c74424c8a25132cb8534 Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Tue, 31 Jul 2018 17:24:47 +0800
-Subject: [PATCH 1/4] support authentication for kickstart
+Subject: [PATCH] support authentication for kickstart
 
 While download kickstart file from web server,
 we support basic/digest authentication.
@@ -12,6 +12,7 @@
 Upstream-Status: inappropriate [oe specific]
 
 Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
 ---
  pykickstart/errors.py | 17 +++++++++++++++++
  pykickstart/load.py   | 34 ++++++++++++++++++++++++++++------
@@ -19,7 +20,7 @@
  3 files changed, 47 insertions(+), 8 deletions(-)
 
 diff --git a/pykickstart/errors.py b/pykickstart/errors.py
-index bf08ac5..aada7aa 100644
+index 8294f59a..3d20bf82 100644
 --- a/pykickstart/errors.py
 +++ b/pykickstart/errors.py
 @@ -32,6 +32,9 @@ This module exports several exception classes:
@@ -51,10 +52,10 @@
 +    def __str__(self):
 +        return self.value
 diff --git a/pykickstart/load.py b/pykickstart/load.py
-index fb935f2..41a2e9e 100644
+index 30e2fcfa..b984876d 100644
 --- a/pykickstart/load.py
 +++ b/pykickstart/load.py
-@@ -18,10 +18,13 @@
+@@ -18,9 +18,12 @@
  # with the express permission of Red Hat, Inc.
  #
  import requests
@@ -62,14 +63,13 @@
 +from requests.auth import HTTPBasicAuth
 +
  import shutil
- import six
  
 -from pykickstart.errors import KickstartError
 +from pykickstart.errors import KickstartError, KickstartAuthError
  from pykickstart.i18n import _
  from requests.exceptions import SSLError, RequestException
  
-@@ -29,7 +32,7 @@ _is_url = lambda location: '://' in location  # RFC 3986
+@@ -28,7 +31,7 @@ _is_url = lambda location: '://' in location  # RFC 3986
  
  SSL_VERIFY = True
  
@@ -78,7 +78,7 @@
      '''Load a destination URL or file into a string.
      Type of input is inferred automatically.
  
-@@ -40,7 +43,7 @@ def load_to_str(location):
+@@ -39,7 +42,7 @@ def load_to_str(location):
      Raises: KickstartError on error reading'''
  
      if _is_url(location):
@@ -87,7 +87,7 @@
      else:
          return _load_file(location)
  
-@@ -70,11 +73,30 @@ def load_to_file(location, destination):
+@@ -69,11 +72,30 @@ def load_to_file(location, destination):
          _copy_file(location, destination)
          return destination
  
@@ -122,10 +122,10 @@
          raise KickstartError(_('Error securely accessing URL "%s"') % location + ': {e}'.format(e=str(e)))
      except RequestException as e:
 diff --git a/pykickstart/parser.py b/pykickstart/parser.py
-index d8880eb..22d14cb 100644
+index b23e54f1..e10f06b5 100644
 --- a/pykickstart/parser.py
 +++ b/pykickstart/parser.py
-@@ -801,7 +801,7 @@ class KickstartParser(object):
+@@ -796,7 +796,7 @@ class KickstartParser(object):
          i = PutBackIterator(s.splitlines(True) + [""])
          self._stateMachine(i)
  
@@ -134,7 +134,7 @@
          """Process a kickstart file, given by the filename f."""
          if reset:
              self._reset()
-@@ -822,7 +822,7 @@ class KickstartParser(object):
+@@ -817,7 +817,7 @@ class KickstartParser(object):
          self.currentdir[self._includeDepth] = cd
  
          try:
@@ -143,6 +143,3 @@
          except KickstartError as e:
              raise KickstartError(_("Unable to open input kickstart file: %s") % str(e), lineno=0)
  
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0004-load.py-retry-to-invoke-request-with-timeout.patch b/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0004-load.py-retry-to-invoke-request-with-timeout.patch
index 6ed15ab..bf5a197 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0004-load.py-retry-to-invoke-request-with-timeout.patch
+++ b/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0004-load.py-retry-to-invoke-request-with-timeout.patch
@@ -1,7 +1,7 @@
-From ffe06c6dd812b604d6482e4353d5564fad78bc90 Mon Sep 17 00:00:00 2001
+From 737e9a7c11233183f48ce6c83d38b504c8ffed12 Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Mon, 30 Jul 2018 15:52:21 +0800
-Subject: [PATCH 4/4] load.py: retry to invoke request with timeout
+Subject: [PATCH] load.py: retry to invoke request with timeout
 
 While networkless, use request to fetch kickstart file from
 network, it failed and wait 300s to break, we should retry
@@ -11,23 +11,23 @@
 Upstream-Status: inappropriate [oe specific]
 
 Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
 ---
  pykickstart/load.py | 31 +++++++++++++++++++++++++++++++
  1 file changed, 31 insertions(+)
 
 diff --git a/pykickstart/load.py b/pykickstart/load.py
-index ad3bad1..a5cbbc5 100644
+index f75fe5d3..a8f3ed1d 100644
 --- a/pykickstart/load.py
 +++ b/pykickstart/load.py
-@@ -21,6 +21,7 @@ import requests
+@@ -21,12 +21,16 @@ import requests
  from requests.auth import HTTPDigestAuth
  from requests.auth import HTTPBasicAuth
  
 +import time
  import shutil
- import six
  
-@@ -28,6 +29,9 @@ from pykickstart.errors import KickstartError, KickstartAuthError
+ from pykickstart.errors import KickstartError, KickstartAuthError
  from pykickstart.i18n import _
  from requests.exceptions import SSLError, RequestException
  
@@ -37,7 +37,7 @@
  _is_url = lambda location: '://' in location  # RFC 3986
  
  SSL_VERIFY = False
-@@ -73,6 +77,29 @@ def load_to_file(location, destination):
+@@ -72,6 +76,29 @@ def load_to_file(location, destination):
          _copy_file(location, destination)
          return destination
  
@@ -67,7 +67,7 @@
  def _get_auth(location, user=None, passwd=None):
  
      auth = None
-@@ -94,6 +121,10 @@ def _get_auth(location, user=None, passwd=None):
+@@ -93,6 +120,10 @@ def _get_auth(location, user=None, passwd=None):
  
  def _load_url(location, user=None, passwd=None):
      '''Load a location (URL or filename) and return contents as string'''
@@ -78,6 +78,3 @@
      auth = _get_auth(location, user=user, passwd=passwd)
      try:
          request = requests.get(location, verify=SSL_VERIFY, auth=auth)
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.32.bb b/meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.34.bb
similarity index 94%
rename from meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.32.bb
rename to meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.34.bb
index 829ada4..65fc88e 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.32.bb
+++ b/meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.34.bb
@@ -18,7 +18,7 @@
            file://0003-comment-out-sections-shutdown-and-environment-in-gen.patch \
            file://0004-load.py-retry-to-invoke-request-with-timeout.patch \
            "
-SRCREV = "c56a5fbdd4079b187b21787f072ccc83dc09c28c"
+SRCREV = "bfd836cfdd8439d984595aca015811ed5c6be733"
 
 UPSTREAM_CHECK_GITTAGREGEX = "r(?P<pver>\d+(\.\d+)+(-\d+)*)"
 
