Coverage report: 79%

Files Functions Classes

coverage.py v7.11.2, created at 2025-11-12 12:02 +0000

File function statements missing excluded branches partial coverage
pyWebLayout/__init__.py (no function) 1 0 1 0 0 100%
pyWebLayout/abstract/__init__.py (no function) 5 0 1 0 0 100%
pyWebLayout/abstract/block.py Block.__init__ 2 0 1 0 0 100%
pyWebLayout/abstract/block.py Block.block_type 1 0 1 0 0 100%
pyWebLayout/abstract/block.py Paragraph.__init__ 3 0 1 0 0 100%
pyWebLayout/abstract/block.py Paragraph.create_and_add_to 5 5 1 0 0 0%
pyWebLayout/abstract/block.py Paragraph.add_word 1 0 1 0 0 100%
pyWebLayout/abstract/block.py Paragraph.create_word 1 1 1 0 0 0%
pyWebLayout/abstract/block.py Paragraph.add_span 1 1 1 0 0 0%
pyWebLayout/abstract/block.py Paragraph.create_span 1 1 1 0 0 0%
pyWebLayout/abstract/block.py Paragraph.words 1 0 1 0 0 100%
pyWebLayout/abstract/block.py Paragraph.words_iter 2 0 1 2 0 100%
pyWebLayout/abstract/block.py Paragraph.spans 2 2 1 2 0 0%
pyWebLayout/abstract/block.py Paragraph.word_count 1 0 1 0 0 100%
pyWebLayout/abstract/block.py Paragraph.__len__ 1 0 0 0 0 100%
pyWebLayout/abstract/block.py Heading.__init__ 3 0 1 0 0 100%
pyWebLayout/abstract/block.py Heading.create_and_add_to 5 5 1 0 0 0%
pyWebLayout/abstract/block.py Heading.level 1 0 1 0 0 100%
pyWebLayout/abstract/block.py Heading.level 1 0 1 0 0 100%
pyWebLayout/abstract/block.py Quote.__init__ 2 0 1 0 0 100%
pyWebLayout/abstract/block.py Quote.create_and_add_to 5 5 1 0 0 0%
pyWebLayout/abstract/block.py Quote.style 1 1 1 0 0 0%
pyWebLayout/abstract/block.py Quote.style 1 1 1 0 0 0%
pyWebLayout/abstract/block.py CodeBlock.__init__ 3 0 1 0 0 100%
pyWebLayout/abstract/block.py CodeBlock.create_and_add_to 5 5 1 2 0 0%
pyWebLayout/abstract/block.py CodeBlock.language 1 0 1 0 0 100%
pyWebLayout/abstract/block.py CodeBlock.language 1 0 1 0 0 100%
pyWebLayout/abstract/block.py CodeBlock.add_line 1 0 1 0 0 100%
pyWebLayout/abstract/block.py CodeBlock.lines 2 0 1 2 0 100%
pyWebLayout/abstract/block.py CodeBlock.line_count 1 0 1 0 0 100%
pyWebLayout/abstract/block.py HList.__init__ 4 0 1 0 0 100%
pyWebLayout/abstract/block.py HList.create_and_add_to 5 5 1 0 0 0%
pyWebLayout/abstract/block.py HList.style 1 0 1 0 0 100%
pyWebLayout/abstract/block.py HList.style 1 0 1 0 0 100%
pyWebLayout/abstract/block.py HList.default_style 1 1 1 0 0 0%
pyWebLayout/abstract/block.py HList.default_style 1 1 1 0 0 0%
pyWebLayout/abstract/block.py HList.add_item 2 0 1 0 0 100%
pyWebLayout/abstract/block.py HList.create_item 1 1 1 0 0 0%
pyWebLayout/abstract/block.py HList.items 2 0 1 2 0 100%
pyWebLayout/abstract/block.py HList.item_count 1 0 1 0 0 100%
pyWebLayout/abstract/block.py ListItem.__init__ 3 0 1 0 0 100%
pyWebLayout/abstract/block.py ListItem.create_and_add_to 5 5 1 0 0 0%
pyWebLayout/abstract/block.py ListItem.term 1 0 1 0 0 100%
pyWebLayout/abstract/block.py ListItem.term 1 0 1 0 0 100%
pyWebLayout/abstract/block.py ListItem.style 1 1 1 0 0 0%
pyWebLayout/abstract/block.py ListItem.style 1 1 1 0 0 0%
pyWebLayout/abstract/block.py TableCell.__init__ 5 0 1 0 0 100%
pyWebLayout/abstract/block.py TableCell.create_and_add_to 5 5 1 0 0 0%
pyWebLayout/abstract/block.py TableCell.is_header 1 0 1 0 0 100%
pyWebLayout/abstract/block.py TableCell.is_header 1 1 1 0 0 0%
pyWebLayout/abstract/block.py TableCell.colspan 1 0 1 0 0 100%
pyWebLayout/abstract/block.py TableCell.colspan 1 1 1 0 0 0%
pyWebLayout/abstract/block.py TableCell.rowspan 1 0 1 0 0 100%
pyWebLayout/abstract/block.py TableCell.rowspan 1 1 1 0 0 0%
pyWebLayout/abstract/block.py TableCell.style 1 1 1 0 0 0%
pyWebLayout/abstract/block.py TableCell.style 1 1 1 0 0 0%
pyWebLayout/abstract/block.py TableRow.__init__ 3 0 1 0 0 100%
pyWebLayout/abstract/block.py TableRow.create_and_add_to 5 5 1 0 0 0%
pyWebLayout/abstract/block.py TableRow.style 1 1 1 0 0 0%
pyWebLayout/abstract/block.py TableRow.style 1 1 1 0 0 0%
pyWebLayout/abstract/block.py TableRow.add_cell 2 0 1 0 0 100%
pyWebLayout/abstract/block.py TableRow.create_cell 1 1 1 0 0 0%
pyWebLayout/abstract/block.py TableRow.cells 2 0 1 2 0 100%
pyWebLayout/abstract/block.py TableRow.cell_count 1 0 1 0 0 100%
pyWebLayout/abstract/block.py Table.__init__ 6 0 1 0 0 100%
pyWebLayout/abstract/block.py Table.create_and_add_to 5 5 1 0 0 0%
pyWebLayout/abstract/block.py Table.caption 1 0 1 0 0 100%
pyWebLayout/abstract/block.py Table.caption 1 0 1 0 0 100%
pyWebLayout/abstract/block.py Table.style 1 1 1 0 0 0%
pyWebLayout/abstract/block.py Table.style 1 1 1 0 0 0%
pyWebLayout/abstract/block.py Table.add_row 6 0 1 4 0 100%
pyWebLayout/abstract/block.py Table.create_row 1 1 1 0 0 0%
pyWebLayout/abstract/block.py Table.header_rows 2 0 1 2 0 100%
pyWebLayout/abstract/block.py Table.body_rows 2 0 1 2 0 100%
pyWebLayout/abstract/block.py Table.footer_rows 2 0 1 2 0 100%
pyWebLayout/abstract/block.py Table.all_rows 6 0 1 6 0 100%
pyWebLayout/abstract/block.py Table.row_count 1 0 1 0 0 100%
pyWebLayout/abstract/block.py Image.__init__ 5 0 1 0 0 100%
pyWebLayout/abstract/block.py Image.create_and_add_to 5 5 1 2 0 0%
pyWebLayout/abstract/block.py Image.source 1 0 1 0 0 100%
pyWebLayout/abstract/block.py Image.source 1 0 1 0 0 100%
pyWebLayout/abstract/block.py Image.alt_text 1 0 1 0 0 100%
pyWebLayout/abstract/block.py Image.alt_text 1 0 1 0 0 100%
pyWebLayout/abstract/block.py Image.width 1 0 1 0 0 100%
pyWebLayout/abstract/block.py Image.width 1 0 1 0 0 100%
pyWebLayout/abstract/block.py Image.height 1 0 1 0 0 100%
pyWebLayout/abstract/block.py Image.height 1 0 1 0 0 100%
pyWebLayout/abstract/block.py Image.get_dimensions 1 0 1 0 0 100%
pyWebLayout/abstract/block.py Image.get_aspect_ratio 3 0 1 2 0 100%
pyWebLayout/abstract/block.py Image.calculate_scaled_dimensions 10 2 1 6 1 81%
pyWebLayout/abstract/block.py Image._is_url 2 0 1 0 0 100%
pyWebLayout/abstract/block.py Image._download_to_temp 16 4 1 0 0 75%
pyWebLayout/abstract/block.py Image.load_image_data 21 4 1 8 1 83%
pyWebLayout/abstract/block.py Image.get_image_info 21 2 1 12 3 85%
pyWebLayout/abstract/block.py LinkedImage.__init__ 7 0 1 0 0 100%
pyWebLayout/abstract/block.py LinkedImage.location 1 0 1 0 0 100%
pyWebLayout/abstract/block.py LinkedImage.link_type 1 0 1 0 0 100%
pyWebLayout/abstract/block.py LinkedImage.link_callback 1 1 1 0 0 0%
pyWebLayout/abstract/block.py LinkedImage.params 1 1 1 0 0 0%
pyWebLayout/abstract/block.py LinkedImage.link_title 1 1 1 0 0 0%
pyWebLayout/abstract/block.py LinkedImage.execute_link 7 1 1 4 1 82%
pyWebLayout/abstract/block.py HorizontalRule.__init__ 1 0 1 0 0 100%
pyWebLayout/abstract/block.py HorizontalRule.create_and_add_to 5 5 1 2 0 0%
pyWebLayout/abstract/block.py PageBreak.__init__ 1 0 1 0 0 100%
pyWebLayout/abstract/block.py PageBreak.create_and_add_to 5 5 1 2 0 0%
pyWebLayout/abstract/block.py (no function) 211 0 17 0 0 100%
pyWebLayout/abstract/document.py Document.__init__ 19 3 1 6 1 76%
pyWebLayout/abstract/document.py Document.blocks 1 0 1 0 0 100%
pyWebLayout/abstract/document.py Document.default_style 1 1 1 0 0 0%
pyWebLayout/abstract/document.py Document.default_style 1 1 1 0 0 0%
pyWebLayout/abstract/document.py Document.add_block 1 0 1 0 0 100%
pyWebLayout/abstract/document.py Document.create_paragraph 5 5 1 2 0 0%
pyWebLayout/abstract/document.py Document.create_heading 5 5 1 2 0 0%
pyWebLayout/abstract/document.py Document.create_chapter 3 3 1 2 0 0%
pyWebLayout/abstract/document.py Document.add_anchor 1 0 1 0 0 100%
pyWebLayout/abstract/document.py Document.get_anchor 1 0 1 0 0 100%
pyWebLayout/abstract/document.py Document.add_resource 1 0 1 0 0 100%
pyWebLayout/abstract/document.py Document.get_resource 1 0 1 0 0 100%
pyWebLayout/abstract/document.py Document.add_stylesheet 1 0 1 0 0 100%
pyWebLayout/abstract/document.py Document.add_script 1 0 1 0 0 100%
pyWebLayout/abstract/document.py Document.get_title 1 0 1 0 0 100%
pyWebLayout/abstract/document.py Document.set_title 1 0 1 0 0 100%
pyWebLayout/abstract/document.py Document.title 1 0 1 0 0 100%
pyWebLayout/abstract/document.py Document.title 1 1 1 0 0 0%
pyWebLayout/abstract/document.py Document.find_blocks_by_type 4 0 1 0 0 100%
pyWebLayout/abstract/document.py Document.find_blocks_by_type._find_recursive 7 2 0 8 2 73%
pyWebLayout/abstract/document.py Document.find_headings 2 0 1 0 0 100%
pyWebLayout/abstract/document.py Document.generate_table_of_contents 10 0 1 4 0 100%
pyWebLayout/abstract/document.py Document.get_or_create_style 2 0 1 0 0 100%
pyWebLayout/abstract/document.py Document.get_font_for_style 1 0 1 0 0 100%
pyWebLayout/abstract/document.py Document.update_rendering_context 1 1 1 0 0 0%
pyWebLayout/abstract/document.py Document.get_style_registry 1 0 1 0 0 100%
pyWebLayout/abstract/document.py Document.get_concrete_style_registry 1 1 1 0 0 0%
pyWebLayout/abstract/document.py Chapter.__init__ 6 0 1 0 0 100%
pyWebLayout/abstract/document.py Chapter.title 1 0 1 0 0 100%
pyWebLayout/abstract/document.py Chapter.title 1 0 1 0 0 100%
pyWebLayout/abstract/document.py Chapter.level 1 0 1 0 0 100%
pyWebLayout/abstract/document.py Chapter.blocks 1 0 1 0 0 100%
pyWebLayout/abstract/document.py Chapter.style 1 1 1 0 0 0%
pyWebLayout/abstract/document.py Chapter.style 1 1 1 0 0 0%
pyWebLayout/abstract/document.py Chapter.add_block 1 0 1 0 0 100%
pyWebLayout/abstract/document.py Chapter.create_paragraph 5 5 1 2 0 0%
pyWebLayout/abstract/document.py Chapter.create_heading 5 5 1 2 0 0%
pyWebLayout/abstract/document.py Book.__init__ 4 0 1 2 0 100%
pyWebLayout/abstract/document.py Book.chapters 1 0 1 0 0 100%
pyWebLayout/abstract/document.py Book.add_chapter 1 0 1 0 0 100%
pyWebLayout/abstract/document.py Book.create_chapter 5 0 1 2 1 86%
pyWebLayout/abstract/document.py Book.get_author 1 0 1 0 0 100%
pyWebLayout/abstract/document.py Book.set_author 1 0 1 0 0 100%
pyWebLayout/abstract/document.py Book.generate_table_of_contents 5 0 1 4 0 100%
pyWebLayout/abstract/document.py (no function) 78 0 4 0 0 100%
pyWebLayout/abstract/functional.py Link.__init__ 6 0 1 0 0 100%
pyWebLayout/abstract/functional.py Link.location 1 0 1 0 0 100%
pyWebLayout/abstract/functional.py Link.link_type 1 0 1 0 0 100%
pyWebLayout/abstract/functional.py Link.params 1 0 1 0 0 100%
pyWebLayout/abstract/functional.py Link.title 1 0 1 0 0 100%
pyWebLayout/abstract/functional.py Link.html_id 1 1 1 0 0 0%
pyWebLayout/abstract/functional.py Link.execute 3 0 1 2 0 100%
pyWebLayout/abstract/functional.py Button.__init__ 5 0 1 0 0 100%
pyWebLayout/abstract/functional.py Button.label 1 0 1 0 0 100%
pyWebLayout/abstract/functional.py Button.label 1 0 1 0 0 100%
pyWebLayout/abstract/functional.py Button.enabled 1 0 1 0 0 100%
pyWebLayout/abstract/functional.py Button.enabled 1 0 1 0 0 100%
pyWebLayout/abstract/functional.py Button.params 1 0 1 0 0 100%
pyWebLayout/abstract/functional.py Button.html_id 1 1 1 0 0 0%
pyWebLayout/abstract/functional.py Button.execute 3 0 1 2 0 100%
pyWebLayout/abstract/functional.py Form.__init__ 5 0 1 0 0 100%
pyWebLayout/abstract/functional.py Form.form_id 1 0 1 0 0 100%
pyWebLayout/abstract/functional.py Form.action 1 0 1 0 0 100%
pyWebLayout/abstract/functional.py Form.html_id 1 1 1 0 0 0%
pyWebLayout/abstract/functional.py Form.add_field 2 0 1 0 0 100%
pyWebLayout/abstract/functional.py Form.get_field 1 0 1 0 0 100%
pyWebLayout/abstract/functional.py Form.get_values 1 0 1 0 0 100%
pyWebLayout/abstract/functional.py Form.execute 4 0 1 2 0 100%
pyWebLayout/abstract/functional.py FormField.__init__ 7 0 1 0 0 100%
pyWebLayout/abstract/functional.py FormField.name 1 0 1 0 0 100%
pyWebLayout/abstract/functional.py FormField.field_type 1 0 1 0 0 100%
pyWebLayout/abstract/functional.py FormField.label 1 0 1 0 0 100%
pyWebLayout/abstract/functional.py FormField.value 1 0 1 0 0 100%
pyWebLayout/abstract/functional.py FormField.value 1 0 1 0 0 100%
pyWebLayout/abstract/functional.py FormField.required 1 0 1 0 0 100%
pyWebLayout/abstract/functional.py FormField.options 1 0 1 0 0 100%
pyWebLayout/abstract/functional.py FormField.form 1 0 1 0 0 100%
pyWebLayout/abstract/functional.py FormField.form 1 0 1 0 0 100%
pyWebLayout/abstract/functional.py (no function) 84 0 6 0 0 100%
pyWebLayout/abstract/inline.py Word.__init__ 8 0 1 2 0 100%
pyWebLayout/abstract/inline.py Word.create_and_add_to 32 0 1 22 0 100%
pyWebLayout/abstract/inline.py Word.add_concete 1 0 0 0 0 100%
pyWebLayout/abstract/inline.py Word.text 1 0 1 0 0 100%
pyWebLayout/abstract/inline.py Word.style 1 0 1 0 0 100%
pyWebLayout/abstract/inline.py Word.background 1 0 1 0 0 100%
pyWebLayout/abstract/inline.py Word.previous 1 0 1 0 0 100%
pyWebLayout/abstract/inline.py Word.next 1 0 1 0 0 100%
pyWebLayout/abstract/inline.py Word.add_next 1 0 1 0 0 100%
pyWebLayout/abstract/inline.py Word.possible_hyphenation 2 0 1 0 0 100%
pyWebLayout/abstract/inline.py FormattedSpan.__init__ 3 0 1 0 0 100%
pyWebLayout/abstract/inline.py FormattedSpan.create_and_add_to 11 0 1 8 0 100%
pyWebLayout/abstract/inline.py FormattedSpan.style 1 0 1 0 0 100%
pyWebLayout/abstract/inline.py FormattedSpan.background 1 0 1 0 0 100%
pyWebLayout/abstract/inline.py FormattedSpan.words 1 0 1 0 0 100%
pyWebLayout/abstract/inline.py FormattedSpan.add_word 6 0 1 2 0 100%
pyWebLayout/abstract/inline.py LinkedWord.__init__ 6 0 1 0 0 100%
pyWebLayout/abstract/inline.py LinkedWord.location 1 0 1 0 0 100%
pyWebLayout/abstract/inline.py LinkedWord.link_type 1 0 1 0 0 100%
pyWebLayout/abstract/inline.py LinkedWord.link_callback 1 0 1 0 0 100%
pyWebLayout/abstract/inline.py LinkedWord.params 1 0 1 0 0 100%
pyWebLayout/abstract/inline.py LinkedWord.link_title 1 0 1 0 0 100%
pyWebLayout/abstract/inline.py LinkedWord.execute_link 6 1 1 4 1 80%
pyWebLayout/abstract/inline.py LineBreak.__init__ 3 0 1 0 0 100%
pyWebLayout/abstract/inline.py LineBreak.block_type 1 0 1 0 0 100%
pyWebLayout/abstract/inline.py LineBreak.create_and_add_to 9 0 1 6 0 100%
pyWebLayout/abstract/inline.py (no function) 55 0 4 0 0 100%
pyWebLayout/abstract/interactive_image.py InteractiveImage.__init__ 4 0 1 0 0 100%
pyWebLayout/abstract/interactive_image.py InteractiveImage.interact 4 0 1 4 0 100%
pyWebLayout/abstract/interactive_image.py InteractiveImage.in_object 3 0 1 0 0 100%
pyWebLayout/abstract/interactive_image.py InteractiveImage.create_and_add_to 10 4 1 8 3 50%
pyWebLayout/abstract/interactive_image.py InteractiveImage.set_rendered_bounds 2 0 1 0 0 100%
pyWebLayout/abstract/interactive_image.py (no function) 11 0 2 0 0 100%
pyWebLayout/concrete/__init__.py (no function) 7 0 1 0 0 100%
pyWebLayout/concrete/box.py Box.__init__ 9 0 0 2 0 100%
pyWebLayout/concrete/box.py Box.in_shape 1 0 0 0 0 100%
pyWebLayout/concrete/box.py (no function) 9 0 1 0 0 100%
pyWebLayout/concrete/dynamic_page.py DynamicPage.__init__ 9 0 1 0 0 100%
pyWebLayout/concrete/dynamic_page.py DynamicPage.constraints 1 0 1 0 0 100%
pyWebLayout/concrete/dynamic_page.py DynamicPage.measure 30 10 1 20 4 68%
pyWebLayout/concrete/dynamic_page.py DynamicPage.get_min_width 23 7 1 18 5 61%
pyWebLayout/concrete/dynamic_page.py DynamicPage.get_preferred_width 29 8 1 22 6 65%
pyWebLayout/concrete/dynamic_page.py DynamicPage.measure_content_height 13 6 1 8 1 48%
pyWebLayout/concrete/dynamic_page.py DynamicPage.layout 7 0 1 0 0 100%
pyWebLayout/concrete/dynamic_page.py DynamicPage.render 7 1 1 6 2 77%
pyWebLayout/concrete/dynamic_page.py DynamicPage.render_partial 15 10 1 10 1 24%
pyWebLayout/concrete/dynamic_page.py DynamicPage.has_more_content 2 0 1 0 0 100%
pyWebLayout/concrete/dynamic_page.py DynamicPage.reset_pagination 1 0 1 0 0 100%
pyWebLayout/concrete/dynamic_page.py DynamicPage.invalidate_caches 6 0 1 0 0 100%
pyWebLayout/concrete/dynamic_page.py DynamicPage.add_child 3 0 1 0 0 100%
pyWebLayout/concrete/dynamic_page.py DynamicPage.clear_children 3 0 1 0 0 100%
pyWebLayout/concrete/dynamic_page.py (no function) 29 0 3 0 0 100%
pyWebLayout/concrete/functional.py LinkText.__init__ 17 1 1 10 2 89%
pyWebLayout/concrete/functional.py LinkText.link 1 0 1 0 0 100%
pyWebLayout/concrete/functional.py LinkText.set_hovered 2 0 1 0 0 100%
pyWebLayout/concrete/functional.py LinkText.set_pressed 2 2 1 0 0 0%
pyWebLayout/concrete/functional.py LinkText._mark_page_dirty 2 1 1 2 1 50%
pyWebLayout/concrete/functional.py LinkText.render 12 5 1 6 3 56%
pyWebLayout/concrete/functional.py ButtonText.__init__ 10 0 1 0 0 100%
pyWebLayout/concrete/functional.py ButtonText.button 1 0 1 0 0 100%
pyWebLayout/concrete/functional.py ButtonText.size 1 0 1 0 0 100%
pyWebLayout/concrete/functional.py ButtonText.set_pressed 2 0 1 0 0 100%
pyWebLayout/concrete/functional.py ButtonText.set_hovered 2 0 1 0 0 100%
pyWebLayout/concrete/functional.py ButtonText.set_page 1 1 1 0 0 0%
pyWebLayout/concrete/functional.py ButtonText._mark_page_dirty 2 1 1 2 1 50%
pyWebLayout/concrete/functional.py ButtonText.render 27 6 1 6 2 76%
pyWebLayout/concrete/functional.py ButtonText.in_object 3 0 1 0 0 100%
pyWebLayout/concrete/functional.py FormFieldText.__init__ 8 0 1 0 0 100%
pyWebLayout/concrete/functional.py FormFieldText.field 1 0 1 0 0 100%
pyWebLayout/concrete/functional.py FormFieldText.size 1 0 1 0 0 100%
pyWebLayout/concrete/functional.py FormFieldText.set_focused 1 0 1 0 0 100%
pyWebLayout/concrete/functional.py FormFieldText.render 17 0 1 4 0 100%
pyWebLayout/concrete/functional.py FormFieldText.handle_click 5 0 1 2 0 100%
pyWebLayout/concrete/functional.py FormFieldText.in_object 3 0 1 0 0 100%
pyWebLayout/concrete/functional.py create_link_text 1 0 1 0 0 100%
pyWebLayout/concrete/functional.py create_button_text 1 0 1 0 0 100%
pyWebLayout/concrete/functional.py create_form_field_text 1 0 1 0 0 100%
pyWebLayout/concrete/functional.py (no function) 41 0 3 0 0 100%
pyWebLayout/concrete/image.py RenderableImage.__init__ 15 0 1 4 0 100%
pyWebLayout/concrete/image.py RenderableImage.origin 1 0 1 0 0 100%
pyWebLayout/concrete/image.py RenderableImage.size 1 0 1 0 0 100%
pyWebLayout/concrete/image.py RenderableImage.width 1 0 1 0 0 100%
pyWebLayout/concrete/image.py RenderableImage.set_origin 1 0 1 0 0 100%
pyWebLayout/concrete/image.py RenderableImage._load_image 23 5 1 8 1 81%
pyWebLayout/concrete/image.py RenderableImage.render 18 0 1 10 0 100%
pyWebLayout/concrete/image.py RenderableImage._resize_image 15 1 1 4 1 89%
pyWebLayout/concrete/image.py RenderableImage._draw_error_placeholder 35 2 1 10 2 91%
pyWebLayout/concrete/image.py RenderableImage.in_object 3 0 1 0 0 100%
pyWebLayout/concrete/image.py (no function) 21 0 1 0 0 100%
pyWebLayout/concrete/interaction_handler.py InteractionHandler.__init__ 2 2 1 0 0 0%
pyWebLayout/concrete/interaction_handler.py InteractionHandler.set_pressed_state 5 5 1 4 0 0%
pyWebLayout/concrete/interaction_handler.py InteractionHandler.set_hovered_state 5 5 1 4 0 0%
pyWebLayout/concrete/interaction_handler.py InteractionHandler.render_current_state 1 1 1 0 0 0%
pyWebLayout/concrete/interaction_handler.py InteractionHandler.execute_with_feedback 11 11 1 4 0 0%
pyWebLayout/concrete/interaction_handler.py InteractionHandler.execute_async_with_feedback 7 7 1 0 0 0%
pyWebLayout/concrete/interaction_handler.py InteractionHandler.execute_async_with_feedback.execute_callback 5 5 0 2 0 0%
pyWebLayout/concrete/interaction_handler.py InteractionStateManager.__init__ 3 3 1 0 0 0%
pyWebLayout/concrete/interaction_handler.py InteractionStateManager.update_hover 17 17 1 12 0 0%
pyWebLayout/concrete/interaction_handler.py InteractionStateManager.handle_mouse_down 9 9 1 4 0 0%
pyWebLayout/concrete/interaction_handler.py InteractionStateManager.handle_mouse_up 9 9 1 6 0 0%
pyWebLayout/concrete/interaction_handler.py InteractionStateManager.reset 6 6 1 4 0 0%
pyWebLayout/concrete/interaction_handler.py (no function) 19 19 3 0 0 0%
pyWebLayout/concrete/page.py Page.__init__ 9 0 1 0 0 100%
pyWebLayout/concrete/page.py Page.free_space 1 0 1 0 0 100%
pyWebLayout/concrete/page.py Page.can_fit_line 5 0 1 2 0 100%
pyWebLayout/concrete/page.py Page.size 1 0 1 0 0 100%
pyWebLayout/concrete/page.py Page.canvas_size 2 0 1 0 0 100%
pyWebLayout/concrete/page.py Page.content_size 2 0 1 0 0 100%
pyWebLayout/concrete/page.py Page.border_size 1 0 1 0 0 100%
pyWebLayout/concrete/page.py Page.available_width 1 0 1 0 0 100%
pyWebLayout/concrete/page.py Page.style 1 0 1 0 0 100%
pyWebLayout/concrete/page.py Page.callbacks 1 0 1 0 0 100%
pyWebLayout/concrete/page.py Page.is_dirty 1 1 1 0 0 0%
pyWebLayout/concrete/page.py Page.mark_dirty 1 1 1 0 0 0%
pyWebLayout/concrete/page.py Page.mark_clean 1 1 1 0 0 0%
pyWebLayout/concrete/page.py Page.draw 4 0 1 2 0 100%
pyWebLayout/concrete/page.py Page.add_child 4 0 1 0 0 100%
pyWebLayout/concrete/page.py Page.remove_child 6 0 1 0 0 100%
pyWebLayout/concrete/page.py Page.clear_children 5 0 1 0 0 100%
pyWebLayout/concrete/page.py Page.children 1 0 1 0 0 100%
pyWebLayout/concrete/page.py Page._get_child_property 18 18 1 20 0 0%
pyWebLayout/concrete/page.py Page._get_child_height 7 7 1 4 0 0%
pyWebLayout/concrete/page.py Page.render_children 7 1 1 8 2 80%
pyWebLayout/concrete/page.py Page.render 5 0 1 0 0 100%
pyWebLayout/concrete/page.py Page._create_canvas 7 0 1 2 0 100%
pyWebLayout/concrete/page.py Page._get_child_position 3 3 1 0 0 0%
pyWebLayout/concrete/page.py Page.query_point 11 1 1 8 1 89%
pyWebLayout/concrete/page.py Page._point_in_child 10 10 1 4 0 0%
pyWebLayout/concrete/page.py Page._get_child_size 9 9 1 4 0 0%
pyWebLayout/concrete/page.py Page._make_query_result 12 1 1 6 1 89%
pyWebLayout/concrete/page.py Page.query_range 19 1 1 14 4 85%
pyWebLayout/concrete/page.py Page.in_object 1 0 1 0 0 100%
pyWebLayout/concrete/page.py (no function) 48 0 1 0 0 100%
pyWebLayout/concrete/table.py TableCellRenderer.__init__ 7 0 1 0 0 100%
pyWebLayout/concrete/table.py TableCellRenderer.render 13 0 1 2 0 100%
pyWebLayout/concrete/table.py TableCellRenderer._render_cell_content 64 16 1 32 10 71%
pyWebLayout/concrete/table.py TableCellRenderer._render_image_in_cell 47 47 1 22 0 0%
pyWebLayout/concrete/table.py TableRowRenderer.__init__ 10 0 1 0 0 100%
pyWebLayout/concrete/table.py TableRowRenderer.render 14 0 1 6 1 95%
pyWebLayout/concrete/table.py TableRenderer.__init__ 10 0 1 0 0 100%
pyWebLayout/concrete/table.py TableRenderer._calculate_dimensions 12 1 1 4 1 88%
pyWebLayout/concrete/table.py TableRenderer._calculate_row_height_for_section 36 5 1 18 5 81%
pyWebLayout/concrete/table.py TableRenderer._estimate_wrapped_lines 24 5 1 10 3 76%
pyWebLayout/concrete/table.py TableRenderer.render 17 0 1 8 0 100%
pyWebLayout/concrete/table.py TableRenderer._render_caption 10 2 1 0 0 80%
pyWebLayout/concrete/table.py TableRenderer.height 1 0 1 0 0 100%
pyWebLayout/concrete/table.py TableRenderer.width 1 0 1 0 0 100%
pyWebLayout/concrete/table.py (no function) 37 0 5 0 0 100%
pyWebLayout/concrete/text.py AlignmentHandler.calculate_spacing_and_position 0 0 1 0 0 100%
pyWebLayout/concrete/text.py LeftAlignmentHandler.calculate_spacing_and_position 14 1 1 8 1 91%
pyWebLayout/concrete/text.py CenterRightAlignmentHandler.__init__ 1 0 0 0 0 100%
pyWebLayout/concrete/text.py CenterRightAlignmentHandler.calculate_spacing_and_position 18 0 1 10 0 100%
pyWebLayout/concrete/text.py JustifyAlignmentHandler.__init__ 1 0 0 0 0 100%
pyWebLayout/concrete/text.py JustifyAlignmentHandler.calculate_spacing_and_position 14 3 1 6 2 75%
pyWebLayout/concrete/text.py Text.__init__ 8 0 1 0 0 100%
pyWebLayout/concrete/text.py Text._calculate_dimensions 5 0 1 0 0 100%
pyWebLayout/concrete/text.py Text.from_word 1 0 0 0 0 100%
pyWebLayout/concrete/text.py Text.text 1 0 1 0 0 100%
pyWebLayout/concrete/text.py Text.style 1 0 1 0 0 100%
pyWebLayout/concrete/text.py Text.origin 1 0 1 0 0 100%
pyWebLayout/concrete/text.py Text.line 1 0 1 0 0 100%
pyWebLayout/concrete/text.py Text.line 1 0 1 0 0 100%
pyWebLayout/concrete/text.py Text.width 1 0 1 0 0 100%
pyWebLayout/concrete/text.py Text.size 3 0 1 0 0 100%
pyWebLayout/concrete/text.py Text.set_origin 1 0 1 0 0 100%
pyWebLayout/concrete/text.py Text.add_line 1 0 1 0 0 100%
pyWebLayout/concrete/text.py Text.in_object 4 0 1 0 0 100%
pyWebLayout/concrete/text.py Text._apply_decoration 14 6 1 8 1 59%
pyWebLayout/concrete/text.py Text.render 4 1 1 2 1 67%
pyWebLayout/concrete/text.py Line.__init__ 17 0 1 0 0 100%
pyWebLayout/concrete/text.py Line._create_alignment_handler 5 0 1 4 0 100%
pyWebLayout/concrete/text.py Line.text_objects 1 0 1 0 0 100%
pyWebLayout/concrete/text.py Line.set_next 1 1 1 0 0 0%
pyWebLayout/concrete/text.py Line.add_word 75 9 1 28 5 86%
pyWebLayout/concrete/text.py Line.render 17 0 1 8 0 100%
pyWebLayout/concrete/text.py Line.query_point 16 1 1 8 1 92%
pyWebLayout/concrete/text.py (no function) 56 0 6 0 0 100%
pyWebLayout/core/__init__.py (no function) 2 0 1 0 0 100%
pyWebLayout/core/base.py Renderable.render 0 0 1 0 0 100%
pyWebLayout/core/base.py Renderable.origin 1 0 0 0 0 100%
pyWebLayout/core/base.py Interactable.__init__ 1 0 1 0 0 100%
pyWebLayout/core/base.py Interactable.interact 3 1 1 2 1 60%
pyWebLayout/core/base.py Layoutable.layout 0 0 1 0 0 100%
pyWebLayout/core/base.py Queriable.in_object 3 0 1 0 0 100%
pyWebLayout/core/base.py Hierarchical.__init__ 2 0 0 0 0 100%
pyWebLayout/core/base.py Hierarchical.parent 1 0 1 0 0 100%
pyWebLayout/core/base.py Hierarchical.parent 1 0 1 0 0 100%
pyWebLayout/core/base.py Geometric.__init__ 3 0 0 0 0 100%
pyWebLayout/core/base.py Geometric.origin 1 0 1 0 0 100%
pyWebLayout/core/base.py Geometric.origin 1 1 1 0 0 0%
pyWebLayout/core/base.py Geometric.size 1 0 1 0 0 100%
pyWebLayout/core/base.py Geometric.size 1 1 1 0 0 0%
pyWebLayout/core/base.py Geometric.set_origin 1 1 1 0 0 0%
pyWebLayout/core/base.py Styleable.__init__ 2 0 0 0 0 100%
pyWebLayout/core/base.py Styleable.style 1 0 1 0 0 100%
pyWebLayout/core/base.py Styleable.style 1 1 1 0 0 0%
pyWebLayout/core/base.py FontRegistry.__init__ 2 0 0 0 0 100%
pyWebLayout/core/base.py FontRegistry.get_or_create_font 18 0 1 10 0 100%
pyWebLayout/core/base.py MetadataContainer.__init__ 2 0 0 0 0 100%
pyWebLayout/core/base.py MetadataContainer.set_metadata 1 0 1 0 0 100%
pyWebLayout/core/base.py MetadataContainer.get_metadata 1 0 1 0 0 100%
pyWebLayout/core/base.py BlockContainer.__init__ 2 0 0 0 0 100%
pyWebLayout/core/base.py BlockContainer.blocks 1 0 1 0 0 100%
pyWebLayout/core/base.py BlockContainer.add_block 3 0 1 2 1 80%
pyWebLayout/core/base.py BlockContainer.create_paragraph 6 6 1 2 0 0%
pyWebLayout/core/base.py BlockContainer.create_heading 8 8 1 4 0 0%
pyWebLayout/core/base.py ContainerAware._validate_container 2 2 1 2 0 0%
pyWebLayout/core/base.py ContainerAware._inherit_style 7 7 1 6 0 0%
pyWebLayout/core/base.py (no function) 57 1 10 2 1 97%
pyWebLayout/core/callback_registry.py CallbackRegistry.__init__ 4 0 1 0 0 100%
pyWebLayout/core/callback_registry.py CallbackRegistry.register 13 0 1 4 0 100%
pyWebLayout/core/callback_registry.py CallbackRegistry.get_by_id 1 0 1 0 0 100%
pyWebLayout/core/callback_registry.py CallbackRegistry.get_by_type 1 0 1 0 0 100%
pyWebLayout/core/callback_registry.py CallbackRegistry.get_all_ids 1 0 1 0 0 100%
pyWebLayout/core/callback_registry.py CallbackRegistry.get_all_types 1 0 1 0 0 100%
pyWebLayout/core/callback_registry.py CallbackRegistry.set_callback 5 0 1 2 0 100%
pyWebLayout/core/callback_registry.py CallbackRegistry.set_callbacks_by_type 4 0 1 2 0 100%
pyWebLayout/core/callback_registry.py CallbackRegistry.unregister 11 3 1 4 2 67%
pyWebLayout/core/callback_registry.py CallbackRegistry.clear 4 0 1 0 0 100%
pyWebLayout/core/callback_registry.py CallbackRegistry.count 1 0 1 0 0 100%
pyWebLayout/core/callback_registry.py CallbackRegistry.count_by_type 1 0 1 0 0 100%
pyWebLayout/core/callback_registry.py CallbackRegistry._get_type_name 8 1 1 6 1 86%
pyWebLayout/core/callback_registry.py CallbackRegistry.__len__ 1 0 1 0 0 100%
pyWebLayout/core/callback_registry.py CallbackRegistry.__contains__ 1 0 1 0 0 100%
pyWebLayout/core/callback_registry.py CallbackRegistry.__repr__ 0 0 3 0 0 100%
pyWebLayout/core/callback_registry.py (no function) 18 0 3 0 0 100%
pyWebLayout/core/highlight.py Highlight.__post_init__ 2 0 1 2 0 100%
pyWebLayout/core/highlight.py Highlight.to_dict 1 0 1 0 0 100%
pyWebLayout/core/highlight.py Highlight.from_dict 1 0 1 0 0 100%
pyWebLayout/core/highlight.py HighlightManager.__init__ 5 0 1 0 0 100%
pyWebLayout/core/highlight.py HighlightManager.add_highlight 2 0 1 0 0 100%
pyWebLayout/core/highlight.py HighlightManager.remove_highlight 5 0 1 2 0 100%
pyWebLayout/core/highlight.py HighlightManager.get_highlight 1 0 1 0 0 100%
pyWebLayout/core/highlight.py HighlightManager.list_highlights 1 0 1 0 0 100%
pyWebLayout/core/highlight.py HighlightManager.clear_all 2 0 1 0 0 100%
pyWebLayout/core/highlight.py HighlightManager.get_highlights_for_page 8 0 1 6 0 100%
pyWebLayout/core/highlight.py HighlightManager._get_filepath 1 0 1 0 0 100%
pyWebLayout/core/highlight.py HighlightManager._save_highlights 7 2 1 0 0 71%
pyWebLayout/core/highlight.py HighlightManager._load_highlights 10 3 1 2 0 75%
pyWebLayout/core/highlight.py create_highlight_from_query_result 8 0 1 2 0 100%
pyWebLayout/core/highlight.py (no function) 41 0 4 0 0 100%
pyWebLayout/core/query.py QueryResult.to_dict 1 0 1 0 0 100%
pyWebLayout/core/query.py SelectionRange.text 1 0 1 0 0 100%
pyWebLayout/core/query.py SelectionRange.bounds_list 1 0 1 0 0 100%
pyWebLayout/core/query.py SelectionRange.to_dict 1 0 1 0 0 100%
pyWebLayout/core/query.py (no function) 29 1 3 2 1 94%
pyWebLayout/io/__init__.py (no function) 0 0 1 0 0 100%
pyWebLayout/io/readers/__init__.py (no function) 2 0 1 0 0 100%
pyWebLayout/io/readers/epub_reader.py default_eink_processor 5 5 1 2 0 0%
pyWebLayout/io/readers/epub_reader.py EPUBReader.__init__ 10 0 1 0 0 100%
pyWebLayout/io/readers/epub_reader.py EPUBReader.read 12 0 1 0 0 100%
pyWebLayout/io/readers/epub_reader.py EPUBReader._extract_epub 16 5 1 10 3 54%
pyWebLayout/io/readers/epub_reader.py EPUBReader._parse_package_document 15 1 1 10 4 80%
pyWebLayout/io/readers/epub_reader.py EPUBReader._parse_metadata 31 2 1 28 2 93%
pyWebLayout/io/readers/epub_reader.py EPUBReader._parse_manifest 11 1 1 6 2 82%
pyWebLayout/io/readers/epub_reader.py EPUBReader._parse_spine 10 1 1 8 3 78%
pyWebLayout/io/readers/epub_reader.py EPUBReader._parse_toc 16 9 1 14 3 33%
pyWebLayout/io/readers/epub_reader.py EPUBReader._parse_nav_points 13 1 1 4 1 88%
pyWebLayout/io/readers/epub_reader.py EPUBReader._create_book 16 0 1 16 2 94%
pyWebLayout/io/readers/epub_reader.py EPUBReader._add_cover_chapter 33 31 1 8 1 7%
pyWebLayout/io/readers/epub_reader.py EPUBReader._process_chapter_images 23 8 1 10 2 64%
pyWebLayout/io/readers/epub_reader.py EPUBReader._process_content_images 2 0 1 2 0 100%
pyWebLayout/io/readers/epub_reader.py EPUBReader._add_chapters 36 11 1 10 2 72%
pyWebLayout/io/readers/epub_reader.py EPUBReader._add_chapters.add_to_toc_map 7 1 0 6 2 77%
pyWebLayout/io/readers/epub_reader.py read_epub 2 0 1 0 0 100%
pyWebLayout/io/readers/epub_reader.py (no function) 28 0 2 0 0 100%
pyWebLayout/io/readers/html_extraction.py StyleContext.with_font 1 0 1 0 0 100%
pyWebLayout/io/readers/html_extraction.py StyleContext.with_background 1 0 1 0 0 100%
pyWebLayout/io/readers/html_extraction.py StyleContext.with_css_classes 1 0 1 0 0 100%
pyWebLayout/io/readers/html_extraction.py StyleContext.with_css_styles 1 0 1 0 0 100%
pyWebLayout/io/readers/html_extraction.py StyleContext.with_attributes 1 0 1 0 0 100%
pyWebLayout/io/readers/html_extraction.py StyleContext.push_element 1 0 1 0 0 100%
pyWebLayout/io/readers/html_extraction.py create_base_context 5 0 1 4 0 100%
pyWebLayout/io/readers/html_extraction.py apply_element_styling 18 0 1 4 0 100%
pyWebLayout/io/readers/html_extraction.py parse_inline_styles 6 0 1 4 0 100%
pyWebLayout/io/readers/html_extraction.py apply_element_font_styles 75 13 1 48 7 82%
pyWebLayout/io/readers/html_extraction.py apply_background_styles 5 1 1 4 1 78%
pyWebLayout/io/readers/html_extraction.py extract_text_content 47 6 1 40 5 78%
pyWebLayout/io/readers/html_extraction.py process_element 3 0 1 0 0 100%
pyWebLayout/io/readers/html_extraction.py paragraph_handler 33 1 1 24 4 91%
pyWebLayout/io/readers/html_extraction.py div_handler 10 0 1 8 0 100%
pyWebLayout/io/readers/html_extraction.py heading_handler 7 0 1 2 0 100%
pyWebLayout/io/readers/html_extraction.py blockquote_handler 11 2 1 10 2 71%
pyWebLayout/io/readers/html_extraction.py preformatted_handler 6 0 1 2 0 100%
pyWebLayout/io/readers/html_extraction.py code_handler 3 1 1 2 1 60%
pyWebLayout/io/readers/html_extraction.py unordered_list_handler 8 0 1 6 1 93%
pyWebLayout/io/readers/html_extraction.py ordered_list_handler 8 0 1 6 1 93%
pyWebLayout/io/readers/html_extraction.py list_item_handler 20 2 1 18 3 82%
pyWebLayout/io/readers/html_extraction.py table_handler 21 1 1 16 4 86%
pyWebLayout/io/readers/html_extraction.py table_row_handler 8 0 1 6 1 93%
pyWebLayout/io/readers/html_extraction.py table_cell_handler 22 0 1 18 2 95%
pyWebLayout/io/readers/html_extraction.py table_header_cell_handler 22 1 1 18 3 90%
pyWebLayout/io/readers/html_extraction.py horizontal_rule_handler 1 0 1 0 0 100%
pyWebLayout/io/readers/html_extraction.py line_break_handler 1 0 1 0 0 100%
pyWebLayout/io/readers/html_extraction.py image_handler 16 2 1 6 0 91%
pyWebLayout/io/readers/html_extraction.py ignore_handler 1 0 1 0 0 100%
pyWebLayout/io/readers/html_extraction.py generic_handler 1 0 1 0 0 100%
pyWebLayout/io/readers/html_extraction.py parse_html_string 13 0 1 8 0 100%
pyWebLayout/io/readers/html_extraction.py (no function) 47 0 2 0 0 100%
pyWebLayout/layout/__init__.py (no function) 0 0 1 0 0 100%
pyWebLayout/layout/document_layouter.py paragraph_layouter 73 11 1 40 7 81%
pyWebLayout/layout/document_layouter.py paragraph_layouter.create_new_line 11 1 1 6 1 88%
pyWebLayout/layout/document_layouter.py pagebreak_layouter 1 1 1 0 0 0%
pyWebLayout/layout/document_layouter.py image_layouter 17 1 1 8 1 92%
pyWebLayout/layout/document_layouter.py table_layouter 14 0 1 2 0 100%
pyWebLayout/layout/document_layouter.py button_layouter 14 14 1 4 0 0%
pyWebLayout/layout/document_layouter.py form_field_layouter 14 2 1 4 2 78%
pyWebLayout/layout/document_layouter.py form_layouter 11 2 1 8 2 79%
pyWebLayout/layout/document_layouter.py DocumentLayouter.__init__ 7 0 1 2 0 100%
pyWebLayout/layout/document_layouter.py DocumentLayouter.layout_paragraph 1 0 1 0 0 100%
pyWebLayout/layout/document_layouter.py DocumentLayouter.layout_image 1 0 1 0 0 100%
pyWebLayout/layout/document_layouter.py DocumentLayouter.layout_table 1 0 1 0 0 100%
pyWebLayout/layout/document_layouter.py DocumentLayouter.layout_button 1 1 1 0 0 0%
pyWebLayout/layout/document_layouter.py DocumentLayouter.layout_form 1 0 1 0 0 100%
pyWebLayout/layout/document_layouter.py DocumentLayouter.layout_document 22 9 1 22 2 57%
pyWebLayout/layout/document_layouter.py (no function) 27 0 1 0 0 100%
pyWebLayout/layout/ereader_layout.py RenderingPosition.to_dict 1 0 1 0 0 100%
pyWebLayout/layout/ereader_layout.py RenderingPosition.from_dict 1 0 1 0 0 100%
pyWebLayout/layout/ereader_layout.py RenderingPosition.copy 1 0 1 0 0 100%
pyWebLayout/layout/ereader_layout.py RenderingPosition.__eq__ 3 0 1 2 0 100%
pyWebLayout/layout/ereader_layout.py RenderingPosition.__hash__ 1 0 1 0 0 100%
pyWebLayout/layout/ereader_layout.py ChapterInfo.__init__ 4 0 0 0 0 100%
pyWebLayout/layout/ereader_layout.py ChapterNavigator.__init__ 3 0 0 0 0 100%
pyWebLayout/layout/ereader_layout.py ChapterNavigator._build_chapter_map 13 0 1 8 0 100%
pyWebLayout/layout/ereader_layout.py ChapterNavigator._extract_heading_text 5 0 1 4 1 89%
pyWebLayout/layout/ereader_layout.py ChapterNavigator.get_table_of_contents 1 0 1 0 0 100%
pyWebLayout/layout/ereader_layout.py ChapterNavigator.get_chapter_position 4 0 1 4 0 100%
pyWebLayout/layout/ereader_layout.py ChapterNavigator.get_current_chapter 9 1 1 8 1 88%
pyWebLayout/layout/ereader_layout.py FontFamilyOverride.__init__ 1 1 1 0 0 0%
pyWebLayout/layout/ereader_layout.py FontFamilyOverride.override_font 6 6 1 4 0 0%
pyWebLayout/layout/ereader_layout.py FontScaler.scale_font 7 1 1 4 1 82%
pyWebLayout/layout/ereader_layout.py FontScaler.scale_word_spacing 4 0 1 2 0 100%
pyWebLayout/layout/ereader_layout.py BidirectionalLayouter.__init__ 6 0 0 0 0 100%
pyWebLayout/layout/ereader_layout.py BidirectionalLayouter.render_page_forward 17 1 1 10 1 93%
pyWebLayout/layout/ereader_layout.py BidirectionalLayouter.render_page_backward 36 13 1 20 4 59%
pyWebLayout/layout/ereader_layout.py BidirectionalLayouter._scale_block_fonts 13 1 1 10 2 87%
pyWebLayout/layout/ereader_layout.py BidirectionalLayouter._layout_block_on_page 13 3 1 10 3 74%
pyWebLayout/layout/ereader_layout.py BidirectionalLayouter._layout_paragraph_on_page 17 2 1 8 2 84%
pyWebLayout/layout/ereader_layout.py BidirectionalLayouter._layout_heading_on_page 1 0 1 0 0 100%
pyWebLayout/layout/ereader_layout.py BidirectionalLayouter._layout_table_on_page 5 0 1 0 0 100%
pyWebLayout/layout/ereader_layout.py BidirectionalLayouter._layout_list_on_page 4 0 1 0 0 100%
pyWebLayout/layout/ereader_layout.py BidirectionalLayouter._layout_image_on_page 7 0 1 2 0 100%
pyWebLayout/layout/ereader_layout.py BidirectionalLayouter._estimate_page_start 5 0 1 0 0 100%
pyWebLayout/layout/ereader_layout.py BidirectionalLayouter._adjust_start_estimate 14 1 1 6 1 90%
pyWebLayout/layout/ereader_layout.py BidirectionalLayouter._position_compare 7 0 1 6 0 100%
pyWebLayout/layout/ereader_layout.py _add_page_methods 7 5 1 4 2 36%
pyWebLayout/layout/ereader_layout.py _add_page_methods.can_fit_line 2 2 1 0 0 0%
pyWebLayout/layout/ereader_layout.py _add_page_methods.available_width 1 1 1 0 0 0%
pyWebLayout/layout/ereader_layout.py (no function) 60 0 7 0 0 100%
pyWebLayout/layout/ereader_manager.py BookmarkManager.__init__ 7 0 1 0 0 100%
pyWebLayout/layout/ereader_manager.py BookmarkManager._load_bookmarks 8 0 1 2 0 100%
pyWebLayout/layout/ereader_manager.py BookmarkManager._save_bookmarks 6 2 1 0 0 67%
pyWebLayout/layout/ereader_manager.py BookmarkManager.add_bookmark 2 0 1 0 0 100%
pyWebLayout/layout/ereader_manager.py BookmarkManager.remove_bookmark 5 0 1 2 0 100%
pyWebLayout/layout/ereader_manager.py BookmarkManager.get_bookmark 1 0 1 0 0 100%
pyWebLayout/layout/ereader_manager.py BookmarkManager.list_bookmarks 1 0 1 0 0 100%
pyWebLayout/layout/ereader_manager.py BookmarkManager.save_reading_position 5 2 1 0 0 60%
pyWebLayout/layout/ereader_manager.py BookmarkManager.load_reading_position 8 0 1 2 0 100%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager.__init__ 21 0 1 4 0 100%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager.set_position_changed_callback 1 0 1 0 0 100%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager.set_chapter_changed_callback 1 0 1 0 0 100%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager._detect_cover 6 0 1 4 0 100%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager._render_cover_page 13 3 1 4 2 71%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager._notify_position_changed 6 0 1 4 0 100%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager.get_current_page 4 0 1 2 0 100%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager.next_page 14 1 1 6 1 90%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager.previous_page 20 2 1 10 2 87%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager._is_at_beginning 2 0 1 0 0 100%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager.jump_to_position 4 0 1 0 0 100%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager.jump_to_chapter 4 0 1 2 0 100%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager.jump_to_chapter_index 4 0 1 2 0 100%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager._add_to_history 4 1 1 4 1 75%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager._get_from_history 8 1 1 6 1 86%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager._clear_history 1 0 1 0 0 100%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager.set_font_scale 4 0 1 2 0 100%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager.get_font_scale 1 0 1 0 0 100%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager.set_font_family 3 3 1 0 0 0%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager.get_font_family 1 0 1 0 0 100%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager.increase_line_spacing 5 5 1 0 0 0%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager.decrease_line_spacing 5 5 1 0 0 0%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager.increase_inter_block_spacing 5 5 1 0 0 0%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager.decrease_inter_block_spacing 5 5 1 0 0 0%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager.increase_word_spacing 5 5 1 0 0 0%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager.decrease_word_spacing 5 5 1 0 0 0%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager.get_table_of_contents 1 0 1 0 0 100%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager.get_current_chapter 1 0 1 0 0 100%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager.add_bookmark 5 2 1 0 0 60%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager.remove_bookmark 1 0 1 0 0 100%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager.jump_to_bookmark 4 0 1 2 0 100%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager.list_bookmarks 1 0 1 0 0 100%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager.get_reading_progress 5 0 1 2 0 100%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager.has_cover 1 0 1 0 0 100%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager.is_on_cover 1 0 1 0 0 100%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager.jump_to_cover 5 1 1 2 1 71%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager.get_position_info 3 0 1 0 0 100%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager.get_cache_stats 1 0 1 0 0 100%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager.shutdown 2 0 1 0 0 100%
pyWebLayout/layout/ereader_manager.py EreaderLayoutManager.__del__ 1 0 1 0 0 100%
pyWebLayout/layout/ereader_manager.py create_ereader_manager 1 0 1 0 0 100%
pyWebLayout/layout/ereader_manager.py (no function) 64 0 3 0 0 100%
pyWebLayout/layout/page_buffer.py _render_page_worker 8 8 1 2 0 0%
pyWebLayout/layout/page_buffer.py PageBuffer.__init__ 13 0 1 0 0 100%
pyWebLayout/layout/page_buffer.py PageBuffer.initialize 6 0 1 2 1 88%
pyWebLayout/layout/page_buffer.py PageBuffer.get_page 9 0 1 4 0 100%
pyWebLayout/layout/page_buffer.py PageBuffer.cache_page 10 0 1 6 1 94%
pyWebLayout/layout/page_buffer.py PageBuffer.start_background_rendering 7 1 1 6 2 77%
pyWebLayout/layout/page_buffer.py PageBuffer._queue_forward_renders 11 0 1 6 0 100%
pyWebLayout/layout/page_buffer.py PageBuffer._queue_backward_renders 11 0 1 6 1 94%
pyWebLayout/layout/page_buffer.py PageBuffer.check_completed_renders 16 4 1 8 1 79%
pyWebLayout/layout/page_buffer.py PageBuffer.invalidate_all 8 0 1 2 0 100%
pyWebLayout/layout/page_buffer.py PageBuffer.set_font_scale 3 0 1 2 1 80%
pyWebLayout/layout/page_buffer.py PageBuffer.set_font_family 3 3 1 2 0 0%
pyWebLayout/layout/page_buffer.py PageBuffer.get_cache_stats 1 0 1 0 0 100%
pyWebLayout/layout/page_buffer.py PageBuffer.shutdown 7 0 1 4 0 100%
pyWebLayout/layout/page_buffer.py PageBuffer.__del__ 1 0 1 0 0 100%
pyWebLayout/layout/page_buffer.py BufferedPageRenderer.__init__ 10 0 1 0 0 100%
pyWebLayout/layout/page_buffer.py BufferedPageRenderer.render_page 14 0 1 6 0 100%
pyWebLayout/layout/page_buffer.py BufferedPageRenderer.render_page_backward 14 6 1 6 2 50%
pyWebLayout/layout/page_buffer.py BufferedPageRenderer.set_font_family 5 5 1 2 0 0%
pyWebLayout/layout/page_buffer.py BufferedPageRenderer.get_font_family 1 0 1 0 0 100%
pyWebLayout/layout/page_buffer.py BufferedPageRenderer.get_cache_stats 1 0 1 0 0 100%
pyWebLayout/layout/page_buffer.py BufferedPageRenderer.shutdown 1 0 1 0 0 100%
pyWebLayout/layout/page_buffer.py (no function) 35 0 3 0 0 100%
pyWebLayout/layout/table_optimizer.py optimize_table_layout 39 5 1 12 2 86%
pyWebLayout/layout/table_optimizer.py layout_cell_content 25 2 1 10 3 86%
pyWebLayout/layout/table_optimizer.py get_column_count 5 0 1 2 0 100%
pyWebLayout/layout/table_optimizer.py sample_table_rows 5 0 1 2 0 100%
pyWebLayout/layout/table_optimizer.py extract_html_column_widths 14 3 1 12 2 65%
pyWebLayout/layout/table_optimizer.py parse_html_width 16 3 1 8 1 83%
pyWebLayout/layout/table_optimizer.py distribute_column_widths 34 1 1 22 1 96%
pyWebLayout/layout/table_optimizer.py calculate_table_overhead 3 0 1 0 0 100%
pyWebLayout/layout/table_optimizer.py (no function) 10 0 1 0 0 100%
pyWebLayout/style/__init__.py (no function) 6 0 1 0 0 100%
pyWebLayout/style/abstract_style.py FontSize.from_value 11 11 1 4 0 0%
pyWebLayout/style/abstract_style.py AbstractStyle.__post_init__ 5 4 1 2 1 29%
pyWebLayout/style/abstract_style.py AbstractStyle.__hash__ 2 0 1 0 0 100%
pyWebLayout/style/abstract_style.py AbstractStyle.merge_with 5 5 1 0 0 0%
pyWebLayout/style/abstract_style.py AbstractStyle.with_modifications 3 0 1 0 0 100%
pyWebLayout/style/abstract_style.py AbstractStyleRegistry.__init__ 4 0 1 0 0 100%
pyWebLayout/style/abstract_style.py AbstractStyleRegistry._create_default_style 5 0 1 0 0 100%
pyWebLayout/style/abstract_style.py AbstractStyleRegistry.default_style 1 0 1 0 0 100%
pyWebLayout/style/abstract_style.py AbstractStyleRegistry._generate_style_id 3 0 1 0 0 100%
pyWebLayout/style/abstract_style.py AbstractStyleRegistry.get_style_id 1 0 1 0 0 100%
pyWebLayout/style/abstract_style.py AbstractStyleRegistry.register_style 8 1 1 4 2 75%
pyWebLayout/style/abstract_style.py AbstractStyleRegistry.get_or_create_style 10 1 1 6 1 88%
pyWebLayout/style/abstract_style.py AbstractStyleRegistry.get_style_by_id 1 0 1 0 0 100%
pyWebLayout/style/abstract_style.py AbstractStyleRegistry.create_derived_style 5 1 1 2 1 71%
pyWebLayout/style/abstract_style.py AbstractStyleRegistry.resolve_effective_style 7 3 1 4 2 55%
pyWebLayout/style/abstract_style.py AbstractStyleRegistry.get_all_styles 1 1 1 0 0 0%
pyWebLayout/style/abstract_style.py AbstractStyleRegistry.get_style_count 1 0 1 0 0 100%
pyWebLayout/style/abstract_style.py (no function) 57 0 5 0 0 100%
pyWebLayout/style/alignment.py Alignment.__str__ 1 1 1 0 0 0%
pyWebLayout/style/alignment.py (no function) 10 0 2 0 0 100%
pyWebLayout/style/concrete_style.py ConcreteStyle.create_font 1 0 1 0 0 100%
pyWebLayout/style/concrete_style.py StyleResolver.__init__ 4 0 1 0 0 100%
pyWebLayout/style/concrete_style.py StyleResolver.resolve_style 26 0 1 10 0 100%
pyWebLayout/style/concrete_style.py StyleResolver._resolve_font_path 7 5 1 6 1 23%
pyWebLayout/style/concrete_style.py StyleResolver._resolve_font_size 13 4 1 6 1 74%
pyWebLayout/style/concrete_style.py StyleResolver._resolve_color 27 11 1 16 5 58%
pyWebLayout/style/concrete_style.py StyleResolver._resolve_background_color 12 10 1 10 1 14%
pyWebLayout/style/concrete_style.py StyleResolver._resolve_line_height 10 8 1 6 1 19%
pyWebLayout/style/concrete_style.py StyleResolver._resolve_letter_spacing 16 14 1 8 1 12%
pyWebLayout/style/concrete_style.py StyleResolver._resolve_word_spacing 16 7 1 8 2 62%
pyWebLayout/style/concrete_style.py StyleResolver.update_context 4 4 1 0 0 0%
pyWebLayout/style/concrete_style.py StyleResolver.clear_cache 1 1 1 0 0 0%
pyWebLayout/style/concrete_style.py StyleResolver.get_cache_size 1 0 1 0 0 100%
pyWebLayout/style/concrete_style.py ConcreteStyleRegistry.__init__ 2 0 1 0 0 100%
pyWebLayout/style/concrete_style.py ConcreteStyleRegistry.get_concrete_style 1 0 1 0 0 100%
pyWebLayout/style/concrete_style.py ConcreteStyleRegistry.get_font 6 0 1 2 0 100%
pyWebLayout/style/concrete_style.py ConcreteStyleRegistry.clear_caches 2 2 1 0 0 0%
pyWebLayout/style/concrete_style.py ConcreteStyleRegistry.get_cache_stats 1 0 1 0 0 100%
pyWebLayout/style/concrete_style.py (no function) 57 0 5 0 0 100%
pyWebLayout/style/fonts.py get_bundled_fonts_dir 11 11 1 4 0 0%
pyWebLayout/style/fonts.py get_bundled_font_path 25 25 1 16 0 0%
pyWebLayout/style/fonts.py Font.__init__ 10 0 1 0 0 100%
pyWebLayout/style/fonts.py Font.from_family 2 2 1 0 0 0%
pyWebLayout/style/fonts.py Font._get_bundled_font_path 16 3 1 4 1 80%
pyWebLayout/style/fonts.py Font._load_font 25 2 1 8 1 91%
pyWebLayout/style/fonts.py Font.font 1 0 1 0 0 100%
pyWebLayout/style/fonts.py Font.font_size 1 0 1 0 0 100%
pyWebLayout/style/fonts.py Font.colour 1 0 1 0 0 100%
pyWebLayout/style/fonts.py Font.color 1 0 1 0 0 100%
pyWebLayout/style/fonts.py Font.background 1 0 1 0 0 100%
pyWebLayout/style/fonts.py Font.weight 1 0 1 0 0 100%
pyWebLayout/style/fonts.py Font.style 1 0 1 0 0 100%
pyWebLayout/style/fonts.py Font.decoration 1 0 1 0 0 100%
pyWebLayout/style/fonts.py Font.min_hyphenation_width 1 0 1 0 0 100%
pyWebLayout/style/fonts.py Font._with_modified 3 0 1 0 0 100%
pyWebLayout/style/fonts.py Font.with_size 1 0 1 0 0 100%
pyWebLayout/style/fonts.py Font.with_colour 1 0 1 0 0 100%
pyWebLayout/style/fonts.py Font.with_weight 1 0 1 0 0 100%
pyWebLayout/style/fonts.py Font.with_style 1 0 1 0 0 100%
pyWebLayout/style/fonts.py Font.with_decoration 1 0 1 0 0 100%
pyWebLayout/style/fonts.py (no function) 55 0 2 0 0 100%
pyWebLayout/style/page_style.py PageStyle.padding_top 1 0 0 0 0 100%
pyWebLayout/style/page_style.py PageStyle.padding_right 1 0 0 0 0 100%
pyWebLayout/style/page_style.py PageStyle.padding_bottom 1 0 0 0 0 100%
pyWebLayout/style/page_style.py PageStyle.padding_left 1 0 0 0 0 100%
pyWebLayout/style/page_style.py PageStyle.total_horizontal_padding 1 0 1 0 0 100%
pyWebLayout/style/page_style.py PageStyle.total_vertical_padding 1 0 1 0 0 100%
pyWebLayout/style/page_style.py PageStyle.total_border_width 1 0 1 0 0 100%
pyWebLayout/style/page_style.py (no function) 26 0 1 0 0 100%
Total   5148 911 746 1596 234 79%

No items found using the specified filter.