summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Bakke <marius@gnu.org>2022-01-18 17:37:21 +0100
committerMarius Bakke <marius@gnu.org>2022-01-18 19:35:55 +0100
commit883227dde104f00f711bb085918b91e7fd2bf30f (patch)
treecb562e2f3bc074d4f0a134b357e4056e27e98fc9
parent81b7bf40b28094d34aa53518a97e3d67e29a61ed (diff)
gnu: python-pydot: Update to 1.4.2.
* gnu/packages/graphviz.scm (python-pydot): Update to 1.4.2. [source](patches): Remove. * gnu/packages/patches/python-pydot-regression-test.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly.
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/graphviz.scm8
-rw-r--r--gnu/packages/patches/python-pydot-regression-test.patch79
3 files changed, 3 insertions, 85 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index f4efe8e8f4..a928ef3311 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1711,7 +1711,6 @@ dist_patch_DATA = \
%D%/packages/patches/python-pycrypto-time-clock.patch \
%D%/packages/patches/python-pyan3-fix-absolute-path-bug.patch \
%D%/packages/patches/python-pyan3-fix-positional-arguments.patch \
- %D%/packages/patches/python-pydot-regression-test.patch \
%D%/packages/patches/python2-pygobject-2-deprecation.patch \
%D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch \
%D%/packages/patches/python-pytest-asyncio-python-3.8.patch \
diff --git a/gnu/packages/graphviz.scm b/gnu/packages/graphviz.scm
index 70b1c8cb97..dfbb28a8a9 100644
--- a/gnu/packages/graphviz.scm
+++ b/gnu/packages/graphviz.scm
@@ -370,15 +370,14 @@ can be used either as a standalone application, or as a Python library.")
(define-public python-pydot
(package
(name "python-pydot")
- (version "1.4.1")
+ (version "1.4.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pydot" version))
(sha256
(base32
- "00az4cbf8bv447lkk9xi6pjm7gcc7ia33y4pm71fwfwis56rv76l"))
- (patches (search-patches "python-pydot-regression-test.patch"))))
+ "0z80zwldf7ffkwrpm28hixsiqp3053j7g281xd6phmnbkfiq3014"))))
(build-system python-build-system)
(arguments
'(#:phases
@@ -389,8 +388,7 @@ can be used either as a standalone application, or as a Python library.")
(when tests?
(add-installed-pythonpath inputs outputs)
(with-directory-excursion "test"
- (invoke "python" "pydot_unittest.py")))
- #t)))))
+ (invoke "python" "pydot_unittest.py"))))))))
(native-inputs
;; For tests.
(list graphviz python-chardet))
diff --git a/gnu/packages/patches/python-pydot-regression-test.patch b/gnu/packages/patches/python-pydot-regression-test.patch
deleted file mode 100644
index d2f0f5996e..0000000000
--- a/gnu/packages/patches/python-pydot-regression-test.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-This patch is taken from the upstream repository
-https://github.com/pydot/pydot/commit/a10ced4d132361027a545a471af4541dea8c5cf5.patch
-It should be included in the 1.4.2 release.
-
-
-From a10ced4d132361027a545a471af4541dea8c5cf5 Mon Sep 17 00:00:00 2001
-From: Peter Nowee <peter@peternowee.com>
-Date: Wed, 26 Jun 2019 15:43:38 +0800
-Subject: [PATCH] Fix multi.dot Graphviz regression test
-
-Commit d6602ad of 2018-12-01 fixed the regression test broken by commit
-2d55978 of 2016-07-01. This revealed that `test/graphs/multi.dot` was
-failing.
-
-`multi.dot` was introduced in commit 2b3f088 of 2010-11-07 together
-with many of the other tests still here today. It has not been touched
-since. It is a DOT-file containing two digraphs. The regression test
-compares the JPEG images rendered from the DOT-file by pydot with those
-rendered by Graphviz's dot directly.
-
-Commit 66734d2 of 2016-07-01 is the actual cause of the failure. It
-changed one of the render methods of the regression test,
-`_render_with_pydot`, from calculating a single hash for all the JPEG
-images to calculating separate hashes for each JPEG image and then
-concatenating those hashes in one long string. The other render method,
-`_render_with_graphviz`, still calculates a single hash over all data.
-For DOT-files that generate only one image the end result is the same,
-but because `multi.dot` has two graphs, it produces two images and this
-leads to comparing a string of two hashes with one single hash.
-
-I do not think the change in generating the hash was intentional, for
-the following reasons:
-- Commit 66734d2 states that its purpose was to adapt the test to an
- API change in pydot. It does not mention a deliberate choice to
- change the testing method.
-- There was no effort to change `_render_with_graphviz` to also produce
- multiple hashes.
-- Except for easier debugging in case of a failing test with multiple
- images (AFAICT, only `multi.dot`), I do not see much added benefit in
- checking a concatenation of the hashes of all images vs. checking one
- hash of all images together: In both cases the test will fail if one
- or more images is rendered differently.
-- Given that there were many commits authored that same hour, including
- commit 2d55978 which broke the regression tests, I suspect the author
- did not run the tests for each individual commit, but only at the end
- of that batch, and was therefore also not alerted of this change by
- the test suite.
-
-Assuming that the change was not intended, this commit will now revert
-`_render_with_pydot` to the old behavior of calculating a single hash
-from all JPEG image data.
-
-Tested with Debian 9.9, Graphviz 2.38.0-17, Python 2.7.13-2 and 3.5.3-1.
-
-Fixes https://github.com/pydot/pydot/issues/204.
----
- test/pydot_unittest.py | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/test/pydot_unittest.py b/test/pydot_unittest.py
-index 881ee16..64aa856 100644
---- a/test/pydot_unittest.py
-+++ b/test/pydot_unittest.py
-@@ -194,11 +194,11 @@ def _render_with_graphviz(self, filename, encoding):
-
- def _render_with_pydot(self, filename, encoding):
- c = pydot.graph_from_dot_file(filename, encoding=encoding)
-- sha = ''
-+ jpe_data = bytearray()
- for g in c:
-- jpe_data = g.create(prog=TEST_PROGRAM, format='jpe', encoding=encoding)
-- sha += sha256(jpe_data).hexdigest()
-- return sha
-+ jpe_data.extend(g.create(prog=TEST_PROGRAM, format='jpe',
-+ encoding=encoding))
-+ return sha256(jpe_data).hexdigest()
-
- def test_my_regression_tests(self):
- path = os.path.join(test_dir, TESTS_DIR_1)