pythonPackages.termplotlib: fix build

1. New tests are failing with gnuplot 5.4.2
2. Propagate gnuplot and numpy
This commit is contained in:
Rasmus Précenth 2021-11-19 21:33:47 +01:00 committed by tomberek
parent 42133e8451
commit 8afc4e5436
2 changed files with 47 additions and 5 deletions

View File

@ -1,4 +1,5 @@
{ lib
, substituteAll
, buildPythonPackage
, fetchFromGitHub
, pytestCheckHook
@ -19,13 +20,28 @@ buildPythonPackage rec {
};
format = "pyproject";
checkInputs = [ pytestCheckHook numpy exdown gnuplot ];
checkInputs = [
pytestCheckHook
exdown
];
pythonImportsCheck = [ "termplotlib" ];
# there seems to be a newline in the very front of the output
# which causes the test to fail, since it apparently doesn't
# strip whitespace. might be a gnuplot choice? sigh...
disabledTests = [ "test_plot_lim" ];
propagatedBuildInputs = [ numpy ];
patches = [
(substituteAll {
src = ./gnuplot-subprocess.patch;
gnuplot = "${gnuplot.out}/bin/gnuplot";
})
];
# The current gnuplot version renders slightly different test
# graphs, with emphasis on slightly. The plots are still correct.
# Tests pass on gnuplot 5.4.1, but fail on 5.4.2.
disabledTests = [
"test_plot"
"test_nolabel"
];
meta = with lib; {
description = "matplotlib for your terminal";

View File

@ -0,0 +1,26 @@
diff --git a/src/termplotlib/helpers.py b/src/termplotlib/helpers.py
index 4b67fd0..38a2242 100644
--- a/src/termplotlib/helpers.py
+++ b/src/termplotlib/helpers.py
@@ -32,7 +32,7 @@ def is_unicode_standard_output():
def get_gnuplot_version():
- out = subprocess.check_output(["gnuplot", "--version"]).decode()
+ out = subprocess.check_output(["@gnuplot@", "--version"]).decode()
m = re.match("gnuplot (\\d).(\\d) patchlevel (\\d)\n", out)
if m is None:
raise RuntimeError("Couldn't get gnuplot version")
diff --git a/src/termplotlib/plot.py b/src/termplotlib/plot.py
index 0f46b87..1418fd1 100644
--- a/src/termplotlib/plot.py
+++ b/src/termplotlib/plot.py
@@ -17,7 +17,7 @@ def plot(
ticks_scale: int = 0,
):
p = subprocess.Popen(
- ["gnuplot"],
+ ["@gnuplot@"],
stdout=subprocess.PIPE,
stdin=subprocess.PIPE,
stderr=subprocess.PIPE,