[arch-commits] Commit in python-rapidjson/trunk (PKGBUILD python-3.8.patch)
Evangelos Foutras
foutrelis at archlinux.org
Wed Nov 6 16:19:35 UTC 2019
Date: Wednesday, November 6, 2019 @ 16:19:34
Author: foutrelis
Revision: 524406
Add upstream fix for Python 3.8 compatibility
Added:
python-rapidjson/trunk/python-3.8.patch
Modified:
python-rapidjson/trunk/PKGBUILD
------------------+
PKGBUILD | 7 +++++--
python-3.8.patch | 35 +++++++++++++++++++++++++++++++++++
2 files changed, 40 insertions(+), 2 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2019-11-06 15:50:01 UTC (rev 524405)
+++ PKGBUILD 2019-11-06 16:19:34 UTC (rev 524406)
@@ -10,8 +10,10 @@
depends=('python')
makedepends=('python-setuptools' 'rapidjson')
checkdepends=('python-pytest-runner' 'python-pytest-benchmark' 'python-pytz')
-source=("https://pypi.io/packages/source/p/python-rapidjson/python-rapidjson-$pkgver.tar.gz")
-sha512sums=('7d843cfe46a269c88a8f4c05ad6b3dc86d60fa3ceb24ac39639d95bbc8ed2bdba18f0467dd222c39416e48054b2ad70ae2b8219eb441a5571b872f28ba4872d7')
+source=("https://pypi.io/packages/source/p/python-rapidjson/python-rapidjson-$pkgver.tar.gz"
+ python-3.8.patch)
+sha512sums=('7d843cfe46a269c88a8f4c05ad6b3dc86d60fa3ceb24ac39639d95bbc8ed2bdba18f0467dd222c39416e48054b2ad70ae2b8219eb441a5571b872f28ba4872d7'
+ '39850c03e7b87d3c081e4af9ff7b0bb7d06791c818acb97828341564407737bcaa935f3e42c042d5d3cfc65e827965540416bd1735de1a652a0c4b5ee8f39930')
prepare() {
#rm -r python-rapidjson-$pkgver/rapidjson
@@ -18,6 +20,7 @@
#sed -i 's/if not os.path.isdir/if os.path.isdir/' python-rapidjson-$pkgver/setup.py
# Shared rapidjson fails tests.
+ patch -Np1 -d python-rapidjson-$pkgver <python-3.8.patch
cp -a python-rapidjson-$pkgver{,-py2}
}
Added: python-3.8.patch
===================================================================
--- python-3.8.patch (rev 0)
+++ python-3.8.patch 2019-11-06 16:19:34 UTC (rev 524406)
@@ -0,0 +1,35 @@
+From aa16ff9daec2153f47c3c6977bde31df221bb097 Mon Sep 17 00:00:00 2001
+From: Lele Gaifax <lele at metapensiero.it>
+Date: Sat, 2 Nov 2019 14:31:16 +0100
+Subject: [PATCH] Use repr() instead of str() to obtain string representation
+ of PyLong instances
+
+In Python 3.8 they removed several __str__() implementations (see commit
+https://github.com/python/cpython/commit/96aeaec64738b730c719562125070a52ed570210), so
+under that version calling str() on an IntEnum instance gives something like
+"<EnumName.attr: 123>", not the literal integer value as before, so the right thing, that
+seems to work also on Python 3.7, is to use repr() instead.
+
+This fixes issue #125.
+---
+ rapidjson.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/rapidjson.cpp b/rapidjson.cpp
+index e649e52..32f527b 100644
+--- a/rapidjson.cpp
++++ b/rapidjson.cpp
+@@ -2267,11 +2267,11 @@ dumps_internal(
+ writer->Uint64(ui);
+ }
+ } else {
+- // Mimic stdlib json: subclasses of int may override __str__, but we still
++ // Mimic stdlib json: subclasses of int may override __repr__, but we still
+ // want to encode them as integers in JSON; one example within the standard
+ // library is IntEnum
+
+- PyObject* intStrObj = PyLong_Type.tp_str(object);
++ PyObject* intStrObj = PyLong_Type.tp_repr(object);
+ if (intStrObj == NULL)
+ return false;
+
More information about the arch-commits
mailing list