Skip to content

Commit

Permalink
Fix issue with TrainingInfo.load on PyPy
Browse files Browse the repository at this point in the history
  • Loading branch information
althonos committed Nov 2, 2024
1 parent 65ba43e commit 3cc40e8
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 5 deletions.
2 changes: 1 addition & 1 deletion src/pyrodigal/lib.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -3943,7 +3943,7 @@ cdef class TrainingInfo:
contents = fp.read(sizeof(_training))
if len(contents) != sizeof(_training):
raise EOFError(f"Expected {sizeof(_training)} bytes, only read {len(contents)}")
memcpy(&tinf.tinf, PyBytes_AsString(contents), sizeof(_training))
memcpy(tinf.tinf, PyBytes_AsString(contents), sizeof(_training))

return tinf

Expand Down
9 changes: 5 additions & 4 deletions src/pyrodigal/tests/test_training_info.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import abc
import gzip
import os
import io
import sys
import tempfile
import textwrap
Expand All @@ -27,10 +28,10 @@ def assertTrainingInfoEqual(self, t1, t2):

def test_roundtrip(self):
tinf = METAGENOMIC_BINS[0].training_info
with tempfile.NamedTemporaryFile("wb+") as f:
tinf.dump(f)
f.seek(0)
tinf2 = TrainingInfo.load(f)
f = io.BytesIO()
tinf.dump(f)
f.seek(0)
tinf2 = TrainingInfo.load(f)
self.assertTrainingInfoEqual(tinf, tinf2)

def test_load_error(self):
Expand Down

0 comments on commit 3cc40e8

Please sign in to comment.