Je souhaite générer une image caryotype avec le module biopython Bio/Graphics/BasicChromosome.py. Voici mon codepython3 renderPM (?) Filehandle pb (via biopython)
import sys
import pprint # debug
from Bio.Graphics import BasicChromosome
diagram = BasicChromosome.Organism()
diagram.output_format = "pdf"
# Ok, it works
# diagram.draw("toto.pdf", "test")
# this one fail.
with open("toto.pdf", 'w') as o_out:
diagram.draw(o_out, "test")
Ce script génère un diagramme vide, dans le document pdf avec seulement le titre "test". Au moins, il devrait, et en fait, il le fait avec python2.
Avec python3, il échoue avec l'erreur suivante:
Traceback (most recent call last):
File "test_emptyKaryo.py", line 16, in <module>
diagram.draw(o_out, "test")
File "/usr/lib/python3/dist-packages/Bio/Graphics/BasicChromosome.py", line 161, in draw
return _write(cur_drawing, output_file, self.output_format)
File "/usr/lib/python3/dist-packages/Bio/Graphics/__init__.py", line 82, in _write
return drawmethod.drawToFile(drawing, output_file)
File "/usr/lib/python3/dist-packages/reportlab/graphics/renderPDF.py", line 298, in drawToFile
c.save()
File "/usr/lib/python3/dist-packages/reportlab/pdfgen/canvas.py", line 1237, in save
self._doc.SaveToFile(self._filename, self)
File "/usr/lib/python3/dist-packages/reportlab/pdfbase/pdfdoc.py", line 222, in SaveToFile
f.write(data)
TypeError: write() argument must be str, not bytes
Il semble que filehandle ne sont pas pris en charge plus. Je ne pense pas que ce soit une erreur biopython. Quelqu'un peut-il me donner un indice pour le faire fonctionner?
Si je change le format de sortie en png, le pdf n'est plus impliqué, donc je pense qu'il vient de renderPM.py.