Coverage report: 100.00%

Files Functions Classes

coverage.py v7.13.1, created at 2026-01-07 00:07 +0000

File function   statements missing excluded   coverage
controller / converter_controller.py ConverterController.__init__   7 0 0   100.00%
controller / converter_controller.py ConverterController.run   5 0 0   100.00%
controller / converter_controller.py ConverterController.run.run_once   16 0 0   100.00%
controller / converter_controller.py ConverterController._get_files_to_process   9 0 0   100.00%
controller / converter_controller.py ConverterController._process_files   12 0 0   100.00%
controller / converter_controller.py ConverterController._process_single_file   18 0 0   100.00%
controller / converter_controller.py ConverterController._process_single_file.progress_callback   5 0 0   100.00%
controller / converter_controller.py ConverterController._save_merged_output   6 0 0   100.00%
controller / converter_controller.py ConverterController._get_compatible_files   2 0 0   100.00%
controller / converter_controller.py ConverterController._update_breadcrumb_state   7 0 0   100.00%
controller / converter_controller.py ConverterController._update_breadcrumb_state.label_for_state   11 0 0   100.00%
controller / converter_controller.py ConverterController._handle_source_input   19 0 0   100.00%
controller / converter_controller.py ConverterController._handle_format_selection   7 0 0   100.00%
controller / converter_controller.py ConverterController._handle_merge_mode_selection   13 0 0   100.00%
controller / converter_controller.py ConverterController._handle_files_selection   16 0 0   100.00%
controller / converter_controller.py ConverterController._handle_processing   18 0 0   100.00%
controller / converter_controller.py ConverterController._handle_complete   5 0 0   100.00%
controller / converter_controller.py ConverterController._handle_error   12 0 0   100.00%
controller / converter_controller.py (no function)   32 0 0   100.00%
controller / path_protocol.py PathLike.suffix   1 0 0   100.00%
controller / path_protocol.py PathLike.stem   1 0 0   100.00%
controller / path_protocol.py PathLike.name   1 0 0   100.00%
controller / path_protocol.py PathLike.exists   1 0 0   100.00%
controller / path_protocol.py PathLike.is_dir   1 0 0   100.00%
controller / path_protocol.py PathLike.iterdir   1 0 0   100.00%
controller / path_protocol.py PathLike.with_suffix   1 0 0   100.00%
controller / path_protocol.py PathLike.with_name   1 0 0   100.00%
controller / path_protocol.py PathLike.stat   1 0 0   100.00%
controller / path_protocol.py PathLike.__truediv__   1 0 0   100.00%
controller / path_protocol.py (no function)   6 0 0   100.00%
controller / workflow / state_machine.py WorkflowState.display_name   1 0 0   100.00%
controller / workflow / state_machine.py ConversionWorkflow.__init__   4 0 0   100.00%
controller / workflow / state_machine.py ConversionWorkflow.next   6 0 0   100.00%
controller / workflow / state_machine.py ConversionWorkflow.back   4 0 0   100.00%
controller / workflow / state_machine.py ConversionWorkflow.can_go_back   1 0 0   100.00%
controller / workflow / state_machine.py ConversionWorkflow.reset   5 0 0   100.00%
controller / workflow / state_machine.py ConversionWorkflow.get_state   1 0 0   100.00%
controller / workflow / state_machine.py ConversionWorkflow.get_history   1 0 0   100.00%
controller / workflow / state_machine.py (no function)   42 0 0   100.00%
domain / adapters / file_factories.py file_from_path   3 0 0   100.00%
domain / adapters / file_factories.py (no function)   3 0 0   100.00%
domain / converters / epub_converter.py EPubConverter.__init__   3 0 0   100.00%
domain / converters / epub_converter.py EPubConverter._load_items   2 0 0   100.00%
domain / converters / epub_converter.py EPubConverter._extract_from_item   2 0 0   100.00%
domain / converters / epub_converter.py (no function)   9 0 0   100.00%
domain / converters / epub_reader.py EbookLibReader.open   1 0 0   100.00%
domain / converters / epub_reader.py (no function)   3 0 0   100.00%
domain / converters / pdf_converter.py PDFConverter.__init__   2 0 0   100.00%
domain / converters / pdf_converter.py PDFConverter._load_items   2 0 0   100.00%
domain / converters / pdf_converter.py PDFConverter._extract_from_item   6 0 0   100.00%
domain / converters / pdf_converter.py (no function)   11 0 0   100.00%
domain / converters / pdf_reader.py PyMuPDFReader.open   1 0 0   100.00%
domain / converters / pdf_reader.py (no function)   3 0 0   100.00%
domain / converters / reader_protocols.py _PDFReader.open   0 0 1   100.00%
domain / converters / reader_protocols.py _EPubReader.open   0 0 1   100.00%
domain / converters / reader_protocols.py (no function)   3 0 2   100.00%
domain / core / base_converter.py BaseConverter.__init__   1 0 0   100.00%
domain / core / base_converter.py BaseConverter.extract_content   3 0 0   100.00%
domain / core / base_converter.py BaseConverter.extract_content_per_item   2 0 0   100.00%
domain / core / base_converter.py BaseConverter._extract_from_items   7 0 0   100.00%
domain / core / base_converter.py BaseConverter._call_progress_callback   6 0 0   100.00%
domain / core / base_converter.py BaseConverter._load_items   0 0 1   100.00%
domain / core / base_converter.py BaseConverter._extract_from_item   0 0 1   100.00%
domain / core / base_converter.py (no function)   16 0 0   100.00%
domain / core / output_handler.py OutputHandler.save   0 0 1   100.00%
domain / core / output_handler.py OutputHandler.save_multiple   0 0 1   100.00%
domain / core / output_handler.py (no function)   8 0 0   100.00%
domain / model / file.py File.format_file_size   8 0 0   100.00%
domain / model / file.py File.formatted_size   1 0 0   100.00%
domain / model / file.py File.to_dict   1 0 0   100.00%
domain / model / file.py (no function)   11 0 0   100.00%
domain / outputs / json_handler.py JSONHandler.save   5 0 0   100.00%
domain / outputs / json_handler.py JSONHandler.save_multiple   10 0 0   100.00%
domain / outputs / json_handler.py (no function)   7 0 0   100.00%
domain / outputs / markdown_handler.py MarkdownHandler.save   4 0 0   100.00%
domain / outputs / markdown_handler.py MarkdownHandler.save_multiple   9 0 0   100.00%
domain / outputs / markdown_handler.py (no function)   6 0 0   100.00%
domain / outputs / plain_text_handler.py PlainTextHandler.save   3 0 0   100.00%
domain / outputs / plain_text_handler.py PlainTextHandler.save_multiple   8 0 0   100.00%
domain / outputs / plain_text_handler.py (no function)   6 0 0   100.00%
main.py main   3 0 0   100.00%
main.py (no function)   13 0 2   100.00%
view / interface.py ActionResult.value   1 0 0   100.00%
view / interface.py ActionResult.proceed   1 0 0   100.00%
view / interface.py ActionResult.terminate   1 0 0   100.00%
view / interface.py ActionResult.back   1 0 0   100.00%
view / interface.py ActionResult.error   1 0 0   100.00%
view / interface.py UIInterface.keyboard_reader   0 0 2   100.00%
view / interface.py UIInterface.input_center   0 0 1   100.00%
view / interface.py UIInterface.draw_header   0 0 1   100.00%
view / interface.py UIInterface.select_files   0 0 9   100.00%
view / interface.py UIInterface.get_path_input   0 0 1   100.00%
view / interface.py UIInterface.select_output_format   0 0 1   100.00%
view / interface.py UIInterface.select_merge_mode   0 0 1   100.00%
view / interface.py UIInterface.prompt_merged_filename   0 0 1   100.00%
view / interface.py UIInterface.get_progress_bar   0 0 1   100.00%
view / interface.py UIInterface.ask_again   0 0 1   100.00%
view / interface.py UIInterface.show_error   0 0 1   100.00%
view / interface.py UIInterface.show_conversion_summary   0 0 11   100.00%
view / interface.py (no function)   27 0 35   100.00%
view / keyboard.py read_char   22 0 0   100.00%
view / keyboard.py (no function)   19 0 0   100.00%
view / merge_mode.py MergeMode.display_name   1 0 0   100.00%
view / merge_mode.py MergeMode.display_hint   1 0 0   100.00%
view / merge_mode.py (no function)   9 0 0   100.00%
view / output_format.py OutputFormat.extension   1 0 0   100.00%
view / output_format.py OutputFormat.display_name   1 0 0   100.00%
view / output_format.py OutputFormat.display_hint   1 0 0   100.00%
view / output_format.py (no function)   11 0 0   100.00%
view / ui.py _StyledTimeMixin.__init__   4 0 0   100.00%
view / ui.py _StyledTimeMixin.render   4 0 0   100.00%
view / ui.py _StyledTimeMixin._format_time   6 0 0   100.00%
view / ui.py StyledTimeElapsedColumn.__init__   1 0 0   100.00%
view / ui.py StyledTimeElapsedColumn.render   13 0 0   100.00%
view / ui.py StyledPercentageColumn.__init__   2 0 0   100.00%
view / ui.py StyledPercentageColumn.render   6 0 0   100.00%
view / ui.py StyledDescriptionColumn.__init__   2 0 0   100.00%
view / ui.py StyledDescriptionColumn.render   8 0 0   100.00%
view / ui.py RetroCLI.__init__   6 0 0   100.00%
view / ui.py RetroCLI.keyboard_reader   1 0 0   100.00%
view / ui.py RetroCLI.panel_width   1 0 0   100.00%
view / ui.py RetroCLI._create_panel   7 0 0   100.00%
view / ui.py RetroCLI._create_hint_panel   1 0 0   100.00%
view / ui.py RetroCLI._create_selection_table   3 0 0   100.00%
view / ui.py RetroCLI._render_radio_row   8 0 0   100.00%
view / ui.py RetroCLI._radio_select   20 0 0   100.00%
view / ui.py RetroCLI.print_center   2 0 0   100.00%
view / ui.py RetroCLI.input_center   12 0 0   100.00%
view / ui.py RetroCLI.clear_and_show_header   3 0 0   100.00%
view / ui.py RetroCLI.draw_breadcrumb   8 0 0   100.00%
view / ui.py RetroCLI.draw_header   6 0 0   100.00%
view / ui.py RetroCLI.select_files   40 0 0   100.00%
view / ui.py RetroCLI.get_path_input   5 0 0   100.00%
view / ui.py RetroCLI.select_output_format   1 0 0   100.00%
view / ui.py RetroCLI.select_merge_mode   1 0 0   100.00%
view / ui.py RetroCLI.prompt_merged_filename   5 0 0   100.00%
view / ui.py RetroCLI.get_progress_bar   4 0 0   100.00%
view / ui.py RetroCLI.get_progress_bar._progress_ctx   6 0 0   100.00%
view / ui.py RetroCLI.show_error   4 0 0   100.00%
view / ui.py RetroCLI.show_conversion_summary   10 0 0   100.00%
view / ui.py RetroCLI.ask_again   8 0 0   100.00%
view / ui.py (no function)   59 0 0   100.00%
Total     858 0 76   100.00%

No items found using the specified filter.