diff --git a/src/tscut/coarse.py b/src/tscut/coarse.py index 01d1612..b4e5f98 100644 --- a/src/tscut/coarse.py +++ b/src/tscut/coarse.py @@ -20,8 +20,8 @@ def do_coarse_processing(ffmpeg_path:str, ffprobe_path:str, mkvmerge_path:str, try: internal_mkv = open(internal_mkv_name, 'wb+') - except OSError: - raise TemporaryFileError(f"Impossible to create {internal_mkv_name}") + except OSError as e: + raise TemporaryFileError(f"Impossible to create {internal_mkv_name}") from e # Extract internal part of MKV extract_mkv_part(mkvmerge_path=mkvmerge_path, input_file=input_file, output_file=internal_mkv, diff --git a/src/tscut/cutting.py b/src/tscut/cutting.py index 24a1df2..d7f5e61 100644 --- a/src/tscut/cutting.py +++ b/src/tscut/cutting.py @@ -210,23 +210,24 @@ def cut_recording(media: PreparedMedia, options: ProcessingOptions, try: internal_mkv = open(internal_mkv_name, 'wb+') - except OSError: - raise TemporaryFileError(f"Impossible to create file: {internal_mkv_name}") + except OSError as e: + raise TemporaryFileError(f"Impossible to create file: {internal_mkv_name}") from e try: internal_novideo_mkv = open(internal_novideo_mkv_name, 'wb+') - except OSError: - raise TemporaryFileError(f"Impossible to create file: {internal_novideo_mkv_name}") + except OSError as e: + raise TemporaryFileError(f"Impossible to create file: \ + {internal_novideo_mkv_name}") from e try: internal_h264 = open(internal_h264_name, 'wb+') - except OSError: - raise TemporaryFileError(f"Impossible to create file: {internal_h264_name}") + except OSError as e: + raise TemporaryFileError(f"Impossible to create file: {internal_h264_name}") from e try: internal_h264_ts = open(internal_h264_ts_name, 'w+', encoding='utf8') - except OSError: - raise TemporaryFileError(f"Impossible to create file: {internal_h264_ts_name}") + except OSError as e: + raise TemporaryFileError(f"Impossible to create file: {internal_h264_ts_name}") from e # logger.info('Merge header, middle and trailer subpart into: %s' % internal_mkv_name) # Extract internal part of MKV @@ -297,8 +298,8 @@ def cut_recording(media: PreparedMedia, options: ProcessingOptions, if nb_mkv_parts > 0: try: full_h264 = open(f'{media.basename}-full.h264', 'wb+') - except OSError: - raise TemporaryFileError("Impossible to create file full H264 stream.") + except OSError as e: + raise TemporaryFileError("Impossible to create file full H264 stream.") from e logger.info('Merging all H264 tracks') concatenate_h264_parts(h264parts=h264parts, output=full_h264) @@ -306,8 +307,9 @@ def cut_recording(media: PreparedMedia, options: ProcessingOptions, try: full_h264_ts = open(f'{media.basename}-ts.txt', 'w+', encoding='utf8') - except OSError: - raise TemporaryFileError("Impossible to create file containing all video timestamps.") + except OSError as e: + raise TemporaryFileError("Impossible to create file containing all video timestamps.")\ + from e logger.info('Merging H264 timestamps') concatenate_h264_ts_parts(h264_ts_parts=h264_ts, output=full_h264_ts) @@ -329,8 +331,8 @@ def cut_recording(media: PreparedMedia, options: ProcessingOptions, if nb_mkv_parts >=1 : try: final_novideo = open(final_novideo_name, 'rb') - except OSError: - raise TemporaryFileError(f"Impossible to open file: {final_novideo_name}") + except OSError as e: + raise TemporaryFileError(f"Impossible to open file: {final_novideo_name}") from e temporaries.add(final_novideo) diff --git a/src/tscut/pipeline.py b/src/tscut/pipeline.py index b512874..9fbdbd8 100644 --- a/src/tscut/pipeline.py +++ b/src/tscut/pipeline.py @@ -51,8 +51,8 @@ def process_recording(options: ProcessingOptions, temporaries: TemporaryFiles) - try: input_file = open(options.input_file, mode='rb') logger.debug("Type of input file: %s", type(input_file)) - except OSError: - raise InvalidMediaError(f"Impossible to open {options.input_file}") + except OSError as e: + raise InvalidMediaError(f"Impossible to open {options.input_file}") from e format_of_file = get_format(options.tools_paths['ffprobe'], input_file) @@ -90,23 +90,23 @@ def process_recording(options: ProcessingOptions, temporaries: TemporaryFiles) - logger.info("Converting MP4 to MKV.") try: mkv = open(mkvfilename, 'wb+') - except OSError: - raise TemporaryFileError(f"Impossible to create: {mkvfilename}") + except OSError as e: + raise TemporaryFileError(f"Impossible to create: {mkvfilename}") from e ffmpeg_convert(options.tools_paths['ffmpeg'], options.tools_paths['ffprobe'], mp4, 'mp4', mkv, 'matroska', duration) if nb_parts > 0: temporaries.add(mkv) - except OSError: - raise TemporaryFileError(f"Impossible to create: {mp4filename}") + except OSError as e: + raise TemporaryFileError(f"Impossible to create: {mp4filename}") from e elif final_format_of_file == SupportedFormat.MP4: logger.info("Converting MP4 to MKV") try: mkv = open(mkvfilename, 'wb+') - except OSError: - raise TemporaryFileError(f"Impossible to create: {mkvfilename}") + except OSError as e: + raise TemporaryFileError(f"Impossible to create: {mkvfilename}") from e ffmpeg_convert(options.tools_paths['ffmpeg'], options.tools_paths['ffprobe'], input_file, 'mp4', mkv, 'matroska', duration) if nb_parts > 0: @@ -229,12 +229,12 @@ def process_recording(options: ProcessingOptions, temporaries: TemporaryFiles) - for idx_name, sub_name, _, _ in list_of_subtitles: try: idx = open(idx_name,'rb') - except OSError: - raise TemporaryFileError(f"Impossible to open {idx_name}") + except OSError as e: + raise TemporaryFileError(f"Impossible to open {idx_name}") from e try: sub = open(sub_name,'rb') - except OSError: - raise TemporaryFileError(f"Impossible to open {sub_name}") + except OSError as e: + raise TemporaryFileError(f"Impossible to open {sub_name}") from e temporaries.add(idx) temporaries.add(sub)