diff --git a/pkgs/development/python-modules/biopython/close_parser_on_time.patch b/pkgs/development/python-modules/biopython/close_parser_on_time.patch new file mode 100644 index 000000000000..05d22e22ed9e --- /dev/null +++ b/pkgs/development/python-modules/biopython/close_parser_on_time.patch @@ -0,0 +1,18 @@ +diff --git a/Bio/SeqIO/SeqXmlIO.py b/Bio/SeqIO/SeqXmlIO.py +index 8fe75ebb728..6758317d05f 100644 +--- a/Bio/SeqIO/SeqXmlIO.py ++++ b/Bio/SeqIO/SeqXmlIO.py +@@ -498,11 +498,12 @@ def iterate(self, handle): + if not text: + break + parser.feed(text) ++ # Closing the parser ensures that all XML data fed into it are processed ++ parser.close() + # We have reached the end of the XML file; + # send out the remaining records + yield from records + records.clear() +- parser.close() + + + class SeqXmlWriter(SequenceWriter): diff --git a/pkgs/development/python-modules/biopython/default.nix b/pkgs/development/python-modules/biopython/default.nix index 2ec814f56aef..051f66845dec 100644 --- a/pkgs/development/python-modules/biopython/default.nix +++ b/pkgs/development/python-modules/biopython/default.nix @@ -1,9 +1,10 @@ -{ lib -, buildPythonPackage -, fetchPypi -, pythonOlder -, setuptools -, numpy +{ + lib, + buildPythonPackage, + fetchPypi, + pythonOlder, + setuptools, + numpy, }: buildPythonPackage rec { @@ -18,15 +19,17 @@ buildPythonPackage rec { hash = "sha256-eOa/t43mMDQDev01/nfLbgqeW2Jwa+z3in2SKxbtg/c="; }; - nativeBuildInputs = [ - setuptools + patches = [ + # cherry-picked from https://github.com/biopython/biopython/commit/3f9bda7ef44f533dadbaa0de29ac21929bc0b2f1 + # fixes SeqXMLIO parser to process all data. remove on next update + ./close_parser_on_time.patch ]; - propagatedBuildInputs = [ numpy ]; + build-system = [ setuptools ]; - pythonImportsCheck = [ - "Bio" - ]; + dependencies = [ numpy ]; + + pythonImportsCheck = [ "Bio" ]; checkPhase = '' runHook preCheck