Bug 1702273
| Summary: | python-matplotlib FTBFS on s390x | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Miro Hrončok <mhroncok> | ||||||
| Component: | python-matplotlib | Assignee: | Thomas Spura <tomspur> | ||||||
| Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||
| Severity: | unspecified | Docs Contact: | |||||||
| Priority: | unspecified | ||||||||
| Version: | rawhide | CC: | cstratak, dominik, gwync, hannsj_uhl, jonathan.underwood, paulo.cesar.pereira.de.andrade, python-sig, quantum.analyst, thibault.north, tomspur | ||||||
| Target Milestone: | --- | ||||||||
| Target Release: | --- | ||||||||
| Hardware: | s390x | ||||||||
| OS: | Unspecified | ||||||||
| Whiteboard: | |||||||||
| Fixed In Version: | python-matplotlib-3.0.3-1.fc31 | Doc Type: | If docs needed, set a value | ||||||
| Doc Text: | Story Points: | --- | |||||||
| Clone Of: | Environment: | ||||||||
| Last Closed: | 2019-06-03 15:27:20 UTC | Type: | Bug | ||||||
| Regression: | --- | Mount Type: | --- | ||||||
| Documentation: | --- | CRM: | |||||||
| Verified Versions: | Category: | --- | |||||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||||
| Embargoed: | |||||||||
| Bug Depends On: | 1706450 | ||||||||
| Bug Blocks: | 467765, 1700317, 1686977, 1699123, 1732841 | ||||||||
| Attachments: |
|
||||||||
_______________ test_save_animation_smoketest[pillow-movie.gif] ________________
[gw0] linux -- Python 3.7.3 /usr/bin/python3
tmpdir = local('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_save_animation_smoketest_3')
writer = 'pillow', output = 'movie.gif'
@pytest.mark.parametrize('writer, output', WRITER_OUTPUT)
def test_save_animation_smoketest(tmpdir, writer, output):
if writer == 'pillow':
pytest.importorskip("PIL")
try:
# for ImageMagick the rcparams must be patched to account for
# 'convert' being a built in MS tool, not the imagemagick
# tool.
writer._init_from_registry()
except AttributeError:
pass
if not animation.writers.is_available(writer):
pytest.skip("writer '%s' not available on this system" % writer)
fig, ax = plt.subplots()
line, = ax.plot([], [])
ax.set_xlim(0, 10)
ax.set_ylim(-1, 1)
dpi = None
codec = None
if writer == 'ffmpeg':
# Issue #8253
fig.set_size_inches((10.85, 9.21))
dpi = 100.
codec = 'h264'
def init():
line.set_data([], [])
return line,
def animate(i):
x = np.linspace(0, 10, 100)
y = np.sin(x + i)
line.set_data(x, y)
return line,
# Use temporary directory for the file-based writers, which produce a file
# per frame with known names.
with tmpdir.as_cwd():
anim = animation.FuncAnimation(fig, animate, init_func=init, frames=5)
try:
anim.save(output, fps=30, writer=writer, bitrate=500, dpi=dpi,
> codec=codec)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/tests/test_animation.py:177:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/animation.py:1174: in save
writer.grab_frame(**savefig_kwargs)
/usr/lib64/python3.7/contextlib.py:119: in __exit__
next(self.gen)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/animation.py:232: in saving
self.finish()
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/animation.py:583: in finish
duration=int(1000 / self.fps))
/usr/lib64/python3.7/site-packages/PIL/Image.py:2007: in save
save_handler(self, fp, filename)
/usr/lib64/python3.7/site-packages/PIL/GifImagePlugin.py:490: in _save_all
_save(im, fp, filename, save_all=True)
/usr/lib64/python3.7/site-packages/PIL/GifImagePlugin.py:501: in _save
if not save_all or not _write_multiple_frames(im, fp, palette):
/usr/lib64/python3.7/site-packages/PIL/GifImagePlugin.py:485: in _write_multiple_frames
_write_frame_data(fp, im_frame, offset, frame_data['encoderinfo'])
/usr/lib64/python3.7/site-packages/PIL/GifImagePlugin.py:774: in _write_frame_data
RAWMODE[im_frame.mode])])
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
im = <PIL.Image.Image image mode=P size=640x480 at 0x3FFABEE2518>
fp = <_io.BufferedRandom name='movie.gif'>
tile = [('gif', (0, 0, 640, 480), 0, 'P')], bufsize = 65536
def _save(im, fp, tile, bufsize=0):
"""Helper to save image based on tile list
:param im: Image object.
:param fp: File object.
:param tile: Tile list.
:param bufsize: Optional buffer size
"""
im.load()
if not hasattr(im, "encoderconfig"):
im.encoderconfig = ()
tile.sort(key=_tilesort)
# FIXME: make MAXBLOCK a configuration parameter
# It would be great if we could have the encoder specify what it needs
# But, it would need at least the image size in most cases. RawEncode is
# a tricky case.
bufsize = max(MAXBLOCK, bufsize, im.size[0] * 4) # see RawEncode.c
if fp == sys.stdout:
fp.flush()
return
try:
fh = fp.fileno()
fp.flush()
except (AttributeError, io.UnsupportedOperation):
# compress to Python file-compatible object
for e, b, o, a in tile:
e = Image._getencoder(im.mode, e, a, im.encoderconfig)
if o > 0:
fp.seek(o)
e.setimage(im.im, b)
if e.pushes_fd:
e.setfd(fp)
l, s = e.encode_to_pyfd()
else:
while True:
l, s, d = e.encode(bufsize)
fp.write(d)
if s:
break
if s < 0:
raise IOError("encoder error %d when writing image file" % s)
e.cleanup()
else:
# slight speedup: compress to real file object
for e, b, o, a in tile:
e = Image._getencoder(im.mode, e, a, im.encoderconfig)
if o > 0:
fp.seek(o)
> e.setimage(im.im, b)
E SystemError: tile cannot extend outside image
/usr/lib64/python3.7/site-packages/PIL/ImageFile.py:515: SystemError
________________________________ test_jpeg_dpi _________________________________
[gw1] linux -- Python 3.7.3 /usr/bin/python3
@pytest.mark.backend('Agg')
def test_jpeg_dpi():
Image = pytest.importorskip("PIL.Image")
# Check that dpi is set correctly in jpg files.
plt.plot([0, 1, 2], [0, 1, 0])
buf = io.BytesIO()
> plt.savefig(buf, format="jpg", dpi=200)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/tests/test_agg.py:239:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/pyplot.py:689: in savefig
res = fig.savefig(*args, **kwargs)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/figure.py:2094: in savefig
self.canvas.print_figure(fname, **kwargs)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/backend_bases.py:2075: in print_figure
**kwargs)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/backends/backend_agg.py:578: in print_jpg
return background.save(filename_or_obj, format='jpeg', **options)
/usr/lib64/python3.7/site-packages/PIL/Image.py:2007: in save
save_handler(self, fp, filename)
/usr/lib64/python3.7/site-packages/PIL/JpegImagePlugin.py:765: in _save
ImageFile._save(im, fp, [("jpeg", (0, 0)+im.size, 0, rawmode)], bufsize)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
im = <PIL.Image.Image image mode=RGB size=1600x1200 at 0x3FFA017EAC8>
fp = <_io.BytesIO object at 0x3ff9c0d4c50>
tile = [('jpeg', (0, 0, 1600, 1200), 0, 'RGB')], bufsize = 65536
def _save(im, fp, tile, bufsize=0):
"""Helper to save image based on tile list
:param im: Image object.
:param fp: File object.
:param tile: Tile list.
:param bufsize: Optional buffer size
"""
im.load()
if not hasattr(im, "encoderconfig"):
im.encoderconfig = ()
tile.sort(key=_tilesort)
# FIXME: make MAXBLOCK a configuration parameter
# It would be great if we could have the encoder specify what it needs
# But, it would need at least the image size in most cases. RawEncode is
# a tricky case.
bufsize = max(MAXBLOCK, bufsize, im.size[0] * 4) # see RawEncode.c
if fp == sys.stdout:
fp.flush()
return
try:
fh = fp.fileno()
fp.flush()
except (AttributeError, io.UnsupportedOperation):
# compress to Python file-compatible object
for e, b, o, a in tile:
e = Image._getencoder(im.mode, e, a, im.encoderconfig)
if o > 0:
fp.seek(o)
> e.setimage(im.im, b)
E SystemError: tile cannot extend outside image
/usr/lib64/python3.7/site-packages/PIL/ImageFile.py:496: SystemError
________________ test_save_animation_smoketest[pillow-output15] ________________
[gw1] linux -- Python 3.7.3 /usr/bin/python3
tmpdir = local('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_save_animation_smoketest_7')
writer = 'pillow', output = PosixPath('movie.gif')
@pytest.mark.parametrize('writer, output', WRITER_OUTPUT)
def test_save_animation_smoketest(tmpdir, writer, output):
if writer == 'pillow':
pytest.importorskip("PIL")
try:
# for ImageMagick the rcparams must be patched to account for
# 'convert' being a built in MS tool, not the imagemagick
# tool.
writer._init_from_registry()
except AttributeError:
pass
if not animation.writers.is_available(writer):
pytest.skip("writer '%s' not available on this system" % writer)
fig, ax = plt.subplots()
line, = ax.plot([], [])
ax.set_xlim(0, 10)
ax.set_ylim(-1, 1)
dpi = None
codec = None
if writer == 'ffmpeg':
# Issue #8253
fig.set_size_inches((10.85, 9.21))
dpi = 100.
codec = 'h264'
def init():
line.set_data([], [])
return line,
def animate(i):
x = np.linspace(0, 10, 100)
y = np.sin(x + i)
line.set_data(x, y)
return line,
# Use temporary directory for the file-based writers, which produce a file
# per frame with known names.
with tmpdir.as_cwd():
anim = animation.FuncAnimation(fig, animate, init_func=init, frames=5)
try:
anim.save(output, fps=30, writer=writer, bitrate=500, dpi=dpi,
> codec=codec)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/tests/test_animation.py:177:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/animation.py:1174: in save
writer.grab_frame(**savefig_kwargs)
/usr/lib64/python3.7/contextlib.py:119: in __exit__
next(self.gen)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/animation.py:232: in saving
self.finish()
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/animation.py:583: in finish
duration=int(1000 / self.fps))
/usr/lib64/python3.7/site-packages/PIL/Image.py:2007: in save
save_handler(self, fp, filename)
/usr/lib64/python3.7/site-packages/PIL/GifImagePlugin.py:490: in _save_all
_save(im, fp, filename, save_all=True)
/usr/lib64/python3.7/site-packages/PIL/GifImagePlugin.py:501: in _save
if not save_all or not _write_multiple_frames(im, fp, palette):
/usr/lib64/python3.7/site-packages/PIL/GifImagePlugin.py:485: in _write_multiple_frames
_write_frame_data(fp, im_frame, offset, frame_data['encoderinfo'])
/usr/lib64/python3.7/site-packages/PIL/GifImagePlugin.py:774: in _write_frame_data
RAWMODE[im_frame.mode])])
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
im = <PIL.Image.Image image mode=P size=640x480 at 0x3FF94AFF828>
fp = <_io.BufferedRandom name='movie.gif'>
tile = [('gif', (0, 0, 640, 480), 0, 'P')], bufsize = 65536
def _save(im, fp, tile, bufsize=0):
"""Helper to save image based on tile list
:param im: Image object.
:param fp: File object.
:param tile: Tile list.
:param bufsize: Optional buffer size
"""
im.load()
if not hasattr(im, "encoderconfig"):
im.encoderconfig = ()
tile.sort(key=_tilesort)
# FIXME: make MAXBLOCK a configuration parameter
# It would be great if we could have the encoder specify what it needs
# But, it would need at least the image size in most cases. RawEncode is
# a tricky case.
bufsize = max(MAXBLOCK, bufsize, im.size[0] * 4) # see RawEncode.c
if fp == sys.stdout:
fp.flush()
return
try:
fh = fp.fileno()
fp.flush()
except (AttributeError, io.UnsupportedOperation):
# compress to Python file-compatible object
for e, b, o, a in tile:
e = Image._getencoder(im.mode, e, a, im.encoderconfig)
if o > 0:
fp.seek(o)
e.setimage(im.im, b)
if e.pushes_fd:
e.setfd(fp)
l, s = e.encode_to_pyfd()
else:
while True:
l, s, d = e.encode(bufsize)
fp.write(d)
if s:
break
if s < 0:
raise IOError("encoder error %d when writing image file" % s)
e.cleanup()
else:
# slight speedup: compress to real file object
for e, b, o, a in tile:
e = Image._getencoder(im.mode, e, a, im.encoderconfig)
if o > 0:
fp.seek(o)
> e.setimage(im.im, b)
E SystemError: tile cannot extend outside image
/usr/lib64/python3.7/site-packages/PIL/ImageFile.py:515: SystemError
_____________________________ test_imshow_pil[pdf] _____________________________
[gw0] linux -- Python 3.7.3 /usr/bin/python3
ext = 'pdf'
@pytest.mark.parametrize("ext", extensions)
def wrapper(ext):
fig_test = plt.figure("test")
fig_ref = plt.figure("reference")
> func(fig_test, fig_ref)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/testing/decorators.py:439:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/tests/test_image.py:111: in test_imshow_pil
'baseline_images', 'test_image', 'uint16.tif'))
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/pyplot.py:2152: in imread
return matplotlib.image.imread(fname, format)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/image.py:1352: in imread
return pil_to_array(image)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/image.py:1450: in pil_to_array
raw = pilImage.tobytes('raw', pilImage.mode)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <PIL.TiffImagePlugin.TiffImageFile image mode=I;16 size=64x64 at 0x3FFAB781F98>
encoder_name = 'raw', args = ('I;16',)
e = <ImagingEncoder object at 0x3ffabb01a48>, bufsize = 65536, data = []
def tobytes(self, encoder_name="raw", *args):
"""
Return image as a bytes object.
.. warning::
This method returns the raw image data from the internal
storage. For compressed image data (e.g. PNG, JPEG) use
:meth:`~.save`, with a BytesIO parameter for in-memory
data.
:param encoder_name: What encoder to use. The default is to
use the standard "raw" encoder.
:param args: Extra arguments to the encoder.
:rtype: A bytes object.
"""
# may pass tuple instead of argument list
if len(args) == 1 and isinstance(args[0], tuple):
args = args[0]
if encoder_name == "raw" and args == ():
args = self.mode
self.load()
# unpack data
e = _getencoder(self.mode, encoder_name, args)
e.setimage(self.im)
bufsize = max(65536, self.size[0] * 4) # see RawEncode.c
data = []
while True:
> l, s, d = e.encode(bufsize)
E MemoryError
/usr/lib64/python3.7/site-packages/PIL/Image.py:756: MemoryError
____________________________ test_imread_pil_uint16 ____________________________
[gw0] linux -- Python 3.7.3 /usr/bin/python3
def test_imread_pil_uint16():
pytest.importorskip("PIL")
img = plt.imread(os.path.join(os.path.dirname(__file__),
> 'baseline_images', 'test_image', 'uint16.tif'))
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/tests/test_image.py:119:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/pyplot.py:2152: in imread
return matplotlib.image.imread(fname, format)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/image.py:1352: in imread
return pil_to_array(image)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/image.py:1450: in pil_to_array
raw = pilImage.tobytes('raw', pilImage.mode)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <PIL.TiffImagePlugin.TiffImageFile image mode=I;16 size=64x64 at 0x3FFAB4DFB70>
encoder_name = 'raw', args = ('I;16',)
e = <ImagingEncoder object at 0x3ffabb019c0>, bufsize = 65536, data = []
def tobytes(self, encoder_name="raw", *args):
"""
Return image as a bytes object.
.. warning::
This method returns the raw image data from the internal
storage. For compressed image data (e.g. PNG, JPEG) use
:meth:`~.save`, with a BytesIO parameter for in-memory
data.
:param encoder_name: What encoder to use. The default is to
use the standard "raw" encoder.
:param args: Extra arguments to the encoder.
:rtype: A bytes object.
"""
# may pass tuple instead of argument list
if len(args) == 1 and isinstance(args[0], tuple):
args = args[0]
if encoder_name == "raw" and args == ():
args = self.mode
self.load()
# unpack data
e = _getencoder(self.mode, encoder_name, args)
e.setimage(self.im)
bufsize = max(65536, self.size[0] * 4) # see RawEncode.c
data = []
while True:
> l, s, d = e.encode(bufsize)
E MemoryError
/usr/lib64/python3.7/site-packages/PIL/Image.py:756: MemoryError
_____________________________ test_imshow_pil[png] _____________________________
[gw1] linux -- Python 3.7.3 /usr/bin/python3
ext = 'png'
@pytest.mark.parametrize("ext", extensions)
def wrapper(ext):
fig_test = plt.figure("test")
fig_ref = plt.figure("reference")
> func(fig_test, fig_ref)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/testing/decorators.py:439:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/tests/test_image.py:111: in test_imshow_pil
'baseline_images', 'test_image', 'uint16.tif'))
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/pyplot.py:2152: in imread
return matplotlib.image.imread(fname, format)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/image.py:1352: in imread
return pil_to_array(image)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/image.py:1450: in pil_to_array
raw = pilImage.tobytes('raw', pilImage.mode)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <PIL.TiffImagePlugin.TiffImageFile image mode=I;16 size=64x64 at 0x3FF949DDA20>
encoder_name = 'raw', args = ('I;16',)
e = <ImagingEncoder object at 0x3ff94d3b690>, bufsize = 65536, data = []
def tobytes(self, encoder_name="raw", *args):
"""
Return image as a bytes object.
.. warning::
This method returns the raw image data from the internal
storage. For compressed image data (e.g. PNG, JPEG) use
:meth:`~.save`, with a BytesIO parameter for in-memory
data.
:param encoder_name: What encoder to use. The default is to
use the standard "raw" encoder.
:param args: Extra arguments to the encoder.
:rtype: A bytes object.
"""
# may pass tuple instead of argument list
if len(args) == 1 and isinstance(args[0], tuple):
args = args[0]
if encoder_name == "raw" and args == ():
args = self.mode
self.load()
# unpack data
e = _getencoder(self.mode, encoder_name, args)
e.setimage(self.im)
bufsize = max(65536, self.size[0] * 4) # see RawEncode.c
data = []
while True:
> l, s, d = e.encode(bufsize)
E MemoryError
/usr/lib64/python3.7/site-packages/PIL/Image.py:756: MemoryError
_______________________________ test_jpeg_alpha ________________________________
[gw0] linux -- Python 3.7.3 /usr/bin/python3
def test_jpeg_alpha():
Image = pytest.importorskip('PIL.Image')
plt.figure(figsize=(1, 1), dpi=300)
# Create an image that is all black, with a gradient from 0-1 in
# the alpha channel from left to right.
im = np.zeros((300, 300, 4), dtype=float)
im[..., 3] = np.linspace(0.0, 1.0, 300)
plt.figimage(im)
buff = io.BytesIO()
with rc_context({'savefig.facecolor': 'red'}):
> plt.savefig(buff, transparent=True, format='jpg', dpi=300)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/tests/test_image.py:528:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/pyplot.py:689: in savefig
res = fig.savefig(*args, **kwargs)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/figure.py:2094: in savefig
self.canvas.print_figure(fname, **kwargs)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/backend_bases.py:2075: in print_figure
**kwargs)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/backends/backend_agg.py:578: in print_jpg
return background.save(filename_or_obj, format='jpeg', **options)
/usr/lib64/python3.7/site-packages/PIL/Image.py:2007: in save
save_handler(self, fp, filename)
/usr/lib64/python3.7/site-packages/PIL/JpegImagePlugin.py:765: in _save
ImageFile._save(im, fp, [("jpeg", (0, 0)+im.size, 0, rawmode)], bufsize)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
im = <PIL.Image.Image image mode=RGB size=300x300 at 0x3FFAAF10710>
fp = <_io.BytesIO object at 0x3ffabba8f68>
tile = [('jpeg', (0, 0, 300, 300), 0, 'RGB')], bufsize = 65536
def _save(im, fp, tile, bufsize=0):
"""Helper to save image based on tile list
:param im: Image object.
:param fp: File object.
:param tile: Tile list.
:param bufsize: Optional buffer size
"""
im.load()
if not hasattr(im, "encoderconfig"):
im.encoderconfig = ()
tile.sort(key=_tilesort)
# FIXME: make MAXBLOCK a configuration parameter
# It would be great if we could have the encoder specify what it needs
# But, it would need at least the image size in most cases. RawEncode is
# a tricky case.
bufsize = max(MAXBLOCK, bufsize, im.size[0] * 4) # see RawEncode.c
if fp == sys.stdout:
fp.flush()
return
try:
fh = fp.fileno()
fp.flush()
except (AttributeError, io.UnsupportedOperation):
# compress to Python file-compatible object
for e, b, o, a in tile:
e = Image._getencoder(im.mode, e, a, im.encoderconfig)
if o > 0:
fp.seek(o)
> e.setimage(im.im, b)
E SystemError: tile cannot extend outside image
/usr/lib64/python3.7/site-packages/PIL/ImageFile.py:496: SystemError
_____________________________ test_imshow_pil[svg] _____________________________
[gw1] linux -- Python 3.7.3 /usr/bin/python3
ext = 'svg'
@pytest.mark.parametrize("ext", extensions)
def wrapper(ext):
fig_test = plt.figure("test")
fig_ref = plt.figure("reference")
> func(fig_test, fig_ref)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/testing/decorators.py:439:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/tests/test_image.py:111: in test_imshow_pil
'baseline_images', 'test_image', 'uint16.tif'))
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/pyplot.py:2152: in imread
return matplotlib.image.imread(fname, format)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/image.py:1352: in imread
return pil_to_array(image)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/image.py:1450: in pil_to_array
raw = pilImage.tobytes('raw', pilImage.mode)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <PIL.TiffImagePlugin.TiffImageFile image mode=I;16 size=64x64 at 0x3FF9AE3D7F0>
encoder_name = 'raw', args = ('I;16',)
e = <ImagingEncoder object at 0x3ff9afd8a48>, bufsize = 65536, data = []
def tobytes(self, encoder_name="raw", *args):
"""
Return image as a bytes object.
.. warning::
This method returns the raw image data from the internal
storage. For compressed image data (e.g. PNG, JPEG) use
:meth:`~.save`, with a BytesIO parameter for in-memory
data.
:param encoder_name: What encoder to use. The default is to
use the standard "raw" encoder.
:param args: Extra arguments to the encoder.
:rtype: A bytes object.
"""
# may pass tuple instead of argument list
if len(args) == 1 and isinstance(args[0], tuple):
args = args[0]
if encoder_name == "raw" and args == ():
args = self.mode
self.load()
# unpack data
e = _getencoder(self.mode, encoder_name, args)
e.setimage(self.im)
bufsize = max(65536, self.size[0] * 4) # see RawEncode.c
data = []
while True:
> l, s, d = e.encode(bufsize)
E MemoryError
/usr/lib64/python3.7/site-packages/PIL/Image.py:756: MemoryError
______________________________ test_imread_fspath ______________________________
[gw1] linux -- Python 3.7.3 /usr/bin/python3
@pytest.mark.skipif(sys.version_info < (3, 6), reason="requires Python 3.6+")
def test_imread_fspath():
pytest.importorskip("PIL")
from pathlib import Path
img = plt.imread(
> Path(__file__).parent / 'baseline_images/test_image/uint16.tif')
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/tests/test_image.py:129:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/pyplot.py:2152: in imread
return matplotlib.image.imread(fname, format)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/image.py:1352: in imread
return pil_to_array(image)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/image.py:1450: in pil_to_array
raw = pilImage.tobytes('raw', pilImage.mode)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <PIL.TiffImagePlugin.TiffImageFile image mode=I;16 size=64x64 at 0x3FF9ADD7080>
encoder_name = 'raw', args = ('I;16',)
e = <ImagingEncoder object at 0x3ff9afd8c68>, bufsize = 65536, data = []
def tobytes(self, encoder_name="raw", *args):
"""
Return image as a bytes object.
.. warning::
This method returns the raw image data from the internal
storage. For compressed image data (e.g. PNG, JPEG) use
:meth:`~.save`, with a BytesIO parameter for in-memory
data.
:param encoder_name: What encoder to use. The default is to
use the standard "raw" encoder.
:param args: Extra arguments to the encoder.
:rtype: A bytes object.
"""
# may pass tuple instead of argument list
if len(args) == 1 and isinstance(args[0], tuple):
args = args[0]
if encoder_name == "raw" and args == ():
args = self.mode
self.load()
# unpack data
e = _getencoder(self.mode, encoder_name, args)
e.setimage(self.im)
bufsize = max(65536, self.size[0] * 4) # see RawEncode.c
data = []
while True:
> l, s, d = e.encode(bufsize)
E MemoryError
/usr/lib64/python3.7/site-packages/PIL/Image.py:756: MemoryError
_________________________________ test_jpeg_2d _________________________________
[gw1] linux -- Python 3.7.3 /usr/bin/python3
def test_jpeg_2d():
Image = pytest.importorskip('PIL.Image')
# smoke test that mode-L pillow images work.
imd = np.ones((10, 10), dtype='uint8')
for i in range(10):
imd[i, :] = np.linspace(0.0, 1.0, 10) * 255
im = Image.new('L', (10, 10))
im.putdata(imd.flatten())
fig, ax = plt.subplots()
> ax.imshow(im)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/tests/test_image.py:512:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/__init__.py:1798: in inner
return func(ax, *args, **kwargs)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/axes/_axes.py:5494: in imshow
im.set_data(X)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.image.AxesImage object at 0x3ff94e81cf8>
A = <PIL.Image.Image image mode=L size=10x10 at 0x3FFA02640B8>
def set_data(self, A):
"""
Set the image array.
Note that this function does *not* update the normalization used.
Parameters
----------
A : array-like
"""
self._A = cbook.safe_masked_invalid(A, copy=True)
if (self._A.dtype != np.uint8 and
not np.can_cast(self._A.dtype, float, "same_kind")):
> raise TypeError("Image data cannot be converted to float")
E TypeError: Image data cannot be converted to float
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/image.py:634: TypeError
Created attachment 1557590 [details]
root.log from Koji
Note: This is after https://src.fedoraproject.org/rpms/python-matplotlib/pull-request/17 is applied to make the test run. |
Created attachment 1557589 [details] build.log from Koji python2-matplotlib doesn't pass %check on s390x. Logs attached.