@@ -2889,13 +2889,13 @@ def __init__(self, filename=None, stream=None, filetype=None, rect=None, width=0
28892889 filename = filename.name
28902890 else:
28912891 raise TypeError(f"bad filename: {type(filename)=} {filename=}.")
2892-
2892+
28932893 if stream is not None:
2894- if type (stream) in (bytes, memoryview):
2894+ if isinstance (stream, (bytes, memoryview) ):
28952895 self.stream = stream
2896- elif type (stream) is bytearray:
2896+ elif isinstance (stream, bytearray) :
28972897 self.stream = bytes(stream)
2898- elif type (stream) is io.BytesIO:
2898+ elif isinstance (stream, io.BytesIO) :
28992899 self.stream = stream.getvalue()
29002900 else:
29012901 raise TypeError(f"bad stream: {type(stream)=}.")
@@ -2919,11 +2919,9 @@ def __init__(self, filename=None, stream=None, filetype=None, rect=None, width=0
29192919 elif not os.path.isfile(filename):
29202920 msg = f"'{filename}' is no file"
29212921 raise FileDataError(msg)
2922-
2923- if from_file and os.path.getsize(filename) == 0:
2924- raise EmptyFileError(f'Cannot open empty file: {filename=}.')
2925- if type(stream) in (bytes, memoryview) and len(self.stream) == 0:
2926- raise EmptyFileError(f'Cannot open empty stream.')
2922+ elif os.path.getsize(filename) == 0:
2923+ raise EmptyFileError(f'Cannot open empty file: {filename=}.')
2924+
29272925 w = width
29282926 h = height
29292927 r = JM_rect_from_py(rect)
@@ -2933,12 +2931,14 @@ def __init__(self, filename=None, stream=None, filetype=None, rect=None, width=0
29332931
29342932 if stream: # stream given, **MUST** be bytes!
29352933 assert isinstance(stream, (bytes, memoryview))
2934+ if len(stream) == 0:
2935+ raise EmptyFileError('Cannot open empty stream.')
29362936 c = stream
29372937 #len = (size_t) PyBytes_Size(stream);
29382938
29392939 if mupdf_cppyy:
2940- buffer_ = mupdf.fz_new_buffer_from_copied_data( c)
2941- data = mupdf.fz_open_buffer( buffer_)
2940+ buffer_ = mupdf.fz_new_buffer_from_copied_data(c)
2941+ data = mupdf.fz_open_buffer(buffer_)
29422942 else:
29432943 # Pass raw bytes data to mupdf.fz_open_memory(). This assumes
29442944 # that the bytes string will not be modified; i think the
0 commit comments