From bbbb55d3ac81aff8f953c49da56fcb07dd8364ea Mon Sep 17 00:00:00 2001 From: Robert Obryk Date: Sat, 3 Dec 2022 05:24:23 +0100 Subject: [PATCH] python310Packages.tabula-py: build a self-contained package and fix missing pkg_resources (#202554) --- .../python-modules/tabula-py/default.nix | 13 ++++- .../tabula-py/java-interpreter-path.patch | 54 +++++++++++++++++++ 2 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 pkgs/development/python-modules/tabula-py/java-interpreter-path.patch diff --git a/pkgs/development/python-modules/tabula-py/default.nix b/pkgs/development/python-modules/tabula-py/default.nix index 71873965f862..f03c54e72de3 100644 --- a/pkgs/development/python-modules/tabula-py/default.nix +++ b/pkgs/development/python-modules/tabula-py/default.nix @@ -2,12 +2,13 @@ , buildPythonPackage , distro , fetchFromGitHub -, jdk +, jre , numpy , pandas , pytestCheckHook , pythonOlder , setuptools-scm +, setuptools }: buildPythonPackage rec { @@ -24,6 +25,14 @@ buildPythonPackage rec { hash = "sha256-Dfi6LzrLDz9VVDmbeK1dEaWuQosD4tvAH13Q4Mp3smA="; }; + patches = [ + ./java-interpreter-path.patch + ]; + + postPatch = '' + sed -i 's|@JAVA@|${jre}/bin/java|g' $(find -name '*.py') + ''; + SETUPTOOLS_SCM_PRETEND_VERSION = version; nativeBuildInputs = [ @@ -34,10 +43,10 @@ buildPythonPackage rec { distro numpy pandas + setuptools ]; checkInputs = [ - jdk pytestCheckHook ]; diff --git a/pkgs/development/python-modules/tabula-py/java-interpreter-path.patch b/pkgs/development/python-modules/tabula-py/java-interpreter-path.patch new file mode 100644 index 000000000000..fcd03628794a --- /dev/null +++ b/pkgs/development/python-modules/tabula-py/java-interpreter-path.patch @@ -0,0 +1,54 @@ +diff -ru origsource/tabula/io.py source/tabula/io.py +--- origsource/tabula/io.py 2022-11-23 17:19:35.419837514 +0100 ++++ source/tabula/io.py 2022-11-23 17:22:08.204194807 +0100 +@@ -79,7 +79,7 @@ + ) + ) + +- args = ["java"] + java_options + ["-jar", _jar_path()] + options.build_option_list() ++ args = ["@JAVA@"] + java_options + ["-jar", _jar_path()] + options.build_option_list() + if path: + args.append(path) + +diff -ru origsource/tabula/util.py source/tabula/util.py +--- origsource/tabula/util.py 2022-11-23 17:19:35.422837521 +0100 ++++ source/tabula/util.py 2022-11-23 17:21:41.514132392 +0100 +@@ -26,7 +26,7 @@ + + try: + res = subprocess.check_output( +- ["java", "-version"], stderr=subprocess.STDOUT ++ ["@JAVA@", "-version"], stderr=subprocess.STDOUT + ).decode() + + except FileNotFoundError: +diff -ru origsource/tests/test_read_pdf_table.py source/tests/test_read_pdf_table.py +--- origsource/tests/test_read_pdf_table.py 2022-11-23 17:19:35.422837521 +0100 ++++ source/tests/test_read_pdf_table.py 2022-11-23 17:21:22.008086776 +0100 +@@ -281,7 +281,7 @@ + + tabula.read_pdf(self.pdf_path, encoding="utf-8") + +- target_args = ["java"] ++ target_args = ["@JAVA@"] + if platform.system() == "Darwin": + target_args += ["-Djava.awt.headless=true"] + target_args += [ +@@ -355,7 +355,7 @@ + + tabula.read_pdf(self.pdf_path, encoding="utf-8", silent=False) + +- target_args = ["java"] ++ target_args = ["@JAVA@"] + if platform.system() == "Darwin": + target_args += ["-Djava.awt.headless=true"] + target_args += [ +@@ -382,7 +382,7 @@ + + tabula.read_pdf(self.pdf_path, encoding="utf-8", silent=True) + +- target_args = ["java"] ++ target_args = ["@JAVA@"] + if platform.system() == "Darwin": + target_args += ["-Djava.awt.headless=true"] + target_args += [