summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2020-04-30 12:48:01 +0200
committerMichał Górny <mgorny@gentoo.org>2020-04-30 13:06:03 +0200
commit2c9b1b95cbd96a043d376521e5a245791db11a13 (patch)
treed9d1362cbc4282d3570e640bf4652546e90a5af8 /dev-python/csv23
parentdev-python/csv23: Switch to GitHub tarball (diff)
downloadgentoo-2c9b1b95cbd96a043d376521e5a245791db11a13.tar.gz
gentoo-2c9b1b95cbd96a043d376521e5a245791db11a13.tar.bz2
gentoo-2c9b1b95cbd96a043d376521e5a245791db11a13.zip
dev-python/csv23: Fix pypy3 compat
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'dev-python/csv23')
-rw-r--r--dev-python/csv23/csv23-0.3.ebuild6
-rw-r--r--dev-python/csv23/files/csv23-0.3-pypy3.patch44
2 files changed, 49 insertions, 1 deletions
diff --git a/dev-python/csv23/csv23-0.3.ebuild b/dev-python/csv23/csv23-0.3.ebuild
index 4bb3e2569a87..82aab4ad6287 100644
--- a/dev-python/csv23/csv23-0.3.ebuild
+++ b/dev-python/csv23/csv23-0.3.ebuild
@@ -3,7 +3,7 @@
EAPI=7
-PYTHON_COMPAT=( python{2_7,3_{6,7,8}} )
+PYTHON_COMPAT=( python{2_7,3_{6,7,8}} pypy3 )
inherit distutils-r1
DESCRIPTION="Python 2/3 unicode CSV compatibility layer"
@@ -24,6 +24,10 @@ BDEPEND="
distutils_enable_tests pytest
+PATCHES=(
+ "${FILESDIR}"/${P}-pypy3.patch
+)
+
src_prepare() {
sed -i -e '/--cov/d' setup.cfg || die
distutils-r1_src_prepare
diff --git a/dev-python/csv23/files/csv23-0.3-pypy3.patch b/dev-python/csv23/files/csv23-0.3-pypy3.patch
new file mode 100644
index 000000000000..2e1e3b217c28
--- /dev/null
+++ b/dev-python/csv23/files/csv23-0.3-pypy3.patch
@@ -0,0 +1,44 @@
+From cb9a4519b81daccbb54ea767829d888a6b97855a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Thu, 30 Apr 2020 11:54:31 +0200
+Subject: [PATCH] fix hashlib usage compatibility with pypy3
+
+PyPy3's hashlib fails when passed a memoryview object (i.e.
+BytesIO.getbuffer()). Convert it to bytes instead in order to fix
+compatibility. While this isn't necessary for CPython, it should not
+cause any issues.
+
+Also enabling testing with pypy3. I had to switch to the newer Ubuntu
+version as well in order to avoid more bugs in old PyPy versions.
+
+PyPy3 bug: https://foss.heptapod.net/pypy/pypy/issues/3217
+---
+ .travis.yml | 2 ++
+ csv23/shortcuts.py | 2 +-
+ tox.ini | 2 +-
+ 3 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/csv23/shortcuts.py b/csv23/shortcuts.py
+index 6eeb248..7bdb013 100644
+--- a/csv23/shortcuts.py
++++ b/csv23/shortcuts.py
+@@ -206,7 +206,7 @@ def write_csv(file, rows, header=None, dialect=DIALECT, encoding=ENCODING,
+ buf = f.buffer
+ for rows in iterslices(rows, 1000):
+ writer.writerows(rows)
+- hashsum.update(buf.getbuffer())
++ hashsum.update(bytes(buf.getbuffer()))
+ # NOTE: f.truncate(0) would prepend zero-bytes
+ f.seek(0)
+ f.truncate()
+diff --git a/tox.ini b/tox.ini
+index 2a234b3..89a4432 100644
+--- a/tox.ini
++++ b/tox.ini
+@@ -1,5 +1,5 @@
+ [tox]
+-envlist = py{27,35,36,37,38}
++envlist = py{27,35,36,37,38},pypy3
+ skip_missing_interpreters = true
+
+ [testenv]