The lean application framework for Python. Build sophisticated user interfaces with a simple Python API. Run your apps in the terminal and a web browser.
2240 matches across 12 categories. Click a row to expand file-level details.
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | tests/test_collapsible.py | 26 | async def test_compose_default_collapsible(): |
| LOW | tests/test_collapsible.py | 39 | async def test_compose_empty_collapsible(): |
| LOW | tests/test_collapsible.py | 51 | async def test_compose_nested_collapsible(): |
| LOW | tests/test_collapsible.py | 66 | async def test_compose_expanded_collapsible(): |
| LOW | tests/test_collapsible.py | 79 | async def test_collapsible_collapsed_contents_display_false(): |
| LOW | tests/test_collapsible.py | 91 | async def test_collapsible_expanded_contents_display_true(): |
| LOW | tests/test_collapsible.py | 172 | async def test_expand_via_watcher_message(): |
| LOW | tests/test_collapsible.py | 216 | async def test_collapse_via_watcher_message(): |
| LOW | tests/test_collapsible.py | 238 | async def test_collapsible_title_reactive_change(): |
| LOW | tests/test_tabs.py | 36 | async def test_compose_tabs_from_strings(): |
| LOW | tests/test_tabs.py | 50 | async def test_compose_tabs_from_tabs(): |
| LOW | tests/test_tabs.py | 115 | async def test_add_tab_before_badly(): |
| LOW | tests/test_tabs.py | 194 | async def test_add_tab_before_and_after(): |
| LOW | tests/test_tabs.py | 250 | async def test_remove_tabs_reversed(): |
| LOW | tests/test_tabs.py | 300 | async def test_change_active_from_code(): |
| LOW | tests/test_tabs.py | 323 | async def test_navigate_tabs_with_keyboard(): |
| LOW | tests/test_tabs.py | 353 | async def test_navigate_empty_tabs_with_keyboard(): |
| LOW | tests/test_tabs.py | 375 | async def test_navigate_tabs_with_mouse(): |
| LOW | tests/test_tabs.py | 426 | async def test_change_tab_with_code_messages(): |
| LOW | tests/test_tabs.py | 437 | async def test_remove_tabs_messages(): |
| LOW | tests/test_tabs.py | 454 | async def test_reverse_remove_tabs_messages(): |
| LOW | tests/test_tabs.py | 468 | async def test_keyboard_navigation_messages(): |
| LOW | tests/test_tabs.py | 482 | async def test_mouse_navigation_messages(): |
| LOW | tests/test_tabs.py | 496 | async def test_disabled_tab_is_not_activated_by_clicking_underline(): |
| LOW | tests/test_resolve.py | 64 | async def test_resolve_fraction_unit(): |
| LOW | tests/test_resolve.py | 127 | async def test_resolve_fraction_unit_stress_test(): |
| LOW | tests/test_screen_modes.py | 146 | async def test_screen_stack_preserved(ModesApp: Type[App]): |
| LOW | tests/test_screen_modes.py | 171 | async def test_multiple_mode_callbacks(): |
| LOW | tests/test_data_table.py | 251 | async def test_add_row_duplicate_key(): |
| LOW | tests/test_data_table.py | 261 | async def test_add_row_too_many_values(): |
| LOW | tests/test_data_table.py | 271 | async def test_add_column_duplicate_key(): |
| LOW | tests/test_data_table.py | 280 | async def test_add_column_with_width(): |
| LOW | tests/test_data_table.py | 445 | async def test_get_cell_returns_value_at_cell(): |
| LOW | tests/test_data_table.py | 454 | async def test_get_cell_invalid_row_key(): |
| LOW | tests/test_data_table.py | 464 | async def test_get_cell_invalid_column_key(): |
| LOW | tests/test_data_table.py | 474 | async def test_get_cell_coordinate_returns_coordinate(): |
| LOW | tests/test_data_table.py | 686 | async def test_update_cell_cell_exists(): |
| LOW | tests/test_data_table.py | 696 | async def test_update_cell_cell_doesnt_exist(): |
| LOW | tests/test_data_table.py | 706 | async def test_update_cell_invalid_column_key(): |
| LOW | tests/test_data_table.py | 67 | async def test_datatable_message_emission(): |
| LOW | tests/test_data_table.py | 172 | async def test_empty_table_interactions(): |
| LOW | tests/test_data_table.py | 182 | async def test_cursor_movement_with_home_pagedown_etc(show_header): |
| LOW | tests/test_data_table.py | 221 | async def test_add_rows_user_defined_keys(): |
| LOW | tests/test_data_table.py | 303 | async def test_add_columns_with_tuples(): |
| LOW | tests/test_data_table.py | 322 | async def test_add_columns_user_defined_keys(): |
| LOW | tests/test_data_table.py | 344 | async def test_remove_row_and_update(): |
| LOW | tests/test_data_table.py | 371 | async def test_remove_column_and_update(): |
| LOW | tests/test_data_table.py | 426 | async def test_initial_column_widths() -> None: |
| LOW | tests/test_data_table.py | 492 | async def test_get_cell_coordinate_invalid_row_key(): |
| LOW | tests/test_data_table.py | 503 | async def test_get_cell_coordinate_invalid_column_key(): |
| LOW | tests/test_data_table.py | 514 | async def test_get_cell_at_returns_value_at_cell(): |
| LOW | tests/test_data_table.py | 523 | async def test_get_cell_at_exception(): |
| LOW | tests/test_data_table.py | 549 | async def test_get_row_invalid_row_key(): |
| LOW | tests/test_data_table.py | 576 | async def test_get_row_at_invalid_index(index): |
| LOW | tests/test_data_table.py | 587 | async def test_get_row_index_returns_index(): |
| LOW | tests/test_data_table.py | 602 | async def test_get_row_index_invalid_row_key(): |
| LOW | tests/test_data_table.py | 627 | async def test_get_column_invalid_key(): |
| LOW | tests/test_data_table.py | 650 | async def test_get_column_at_invalid_index(index): |
| LOW | tests/test_data_table.py | 658 | async def test_get_column_index_returns_index(): |
| LOW | tests/test_data_table.py | 673 | async def test_get_column_index_invalid_column_key(): |
| 1212 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | tests/test_collapsible.py | 0 | test default settings of collapsible with 1 widget in contents. |
| HIGH | tests/test_collapsible.py | 0 | test default settings of collapsible with 1 widget in contents. |
| HIGH | tests/test_collapsible.py | 0 | test default settings of collapsible with 1 widget in contents. |
| HIGH | tests/test_modal.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | tests/snapshot_tests/test_snapshots.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | tests/snapshot_tests/test_snapshots.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | tests/snapshot_tests/snapshot_apps/log_write_lines.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | tests/snapshot_tests/snapshot_apps/text_selection.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | docs/examples/guide/screens/modal03.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | docs/examples/guide/screens/modal02.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | docs/examples/guide/screens/modal01.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | docs/examples/guide/styles/border_title.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | docs/examples/guide/styles/border01.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | docs/examples/guide/styles/dimensions04.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | docs/examples/guide/styles/dimensions01.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | docs/examples/guide/styles/outline01.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | docs/examples/guide/styles/padding02.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | docs/examples/guide/styles/dimensions02.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | docs/examples/guide/styles/margin01.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | docs/examples/guide/styles/padding01.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | docs/examples/guide/styles/dimensions03.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | docs/examples/guide/styles/box_sizing01.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | docs/examples/styles/scrollbar_size.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | docs/examples/styles/scrollbars2.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | docs/examples/styles/scrollbar_gutter.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | docs/examples/styles/scrollbar_corner_color.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | docs/examples/styles/overflow.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | docs/examples/styles/margin.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | docs/examples/styles/outline_vs_border.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | docs/examples/styles/text_style.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | docs/examples/styles/outline.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | docs/examples/styles/scrollbars.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | docs/examples/styles/scrollbar_visibility.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | docs/examples/styles/padding.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | docs/examples/styles/text_style_all.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | docs/examples/styles/scrollbar_size2.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | docs/examples/widgets/log.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | examples/sidebar.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | src/textual/demo/widgets.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | tests/test_widget_child_moving.py | 0 | regression test for https://github.com/textualize/textual/issues/1743 |
| HIGH | tests/test_widget_child_moving.py | 0 | regression test for https://github.com/textualize/textual/issues/1743 |
| HIGH | tests/test_widget_child_moving.py | 0 | regression test for https://github.com/textualize/textual/issues/1743 |
| HIGH | tests/test_widget_child_moving.py | 0 | regression test for https://github.com/textualize/textual/issues/1743 |
| HIGH | tests/test_screens.py | 0 | setting app.auto_focus = `none` means it is not taken into consideration. |
| HIGH | tests/test_screens.py | 0 | setting app.auto_focus = `none` means it is not taken into consideration. |
| HIGH | tests/test_screens.py | 0 | setting app.auto_focus = `none` means it is not taken into consideration. |
| HIGH | tests/test_xterm_parser.py | 0 | scrolling the mouse with and without modifiers held down. we don't currently capture modifier keys in scroll events. |
| HIGH | tests/test_xterm_parser.py | 0 | scrolling the mouse with and without modifiers held down. we don't currently capture modifier keys in scroll events. |
| HIGH | tests/test_xterm_parser.py | 0 | scrolling the mouse with and without modifiers held down. we don't currently capture modifier keys in scroll events. |
| HIGH | tests/snapshot_tests/test_snapshots.py | 0 | \ def hello(name): print("hello" + name) def goodbye(name): print("goodbye" + name) |
| HIGH | tests/snapshot_tests/test_snapshots.py | 0 | \ def hello(name): print("hello" + name) def goodbye(name): print("goodbye" + name) |
| HIGH | tests/snapshot_tests/test_snapshots.py | 0 | \ def hello(name): print("hello" + name) def goodbye(name): print("goodbye" + name) |
| HIGH | docs/examples/widgets/text_area_selection.py | 0 | \ def hello(name): print("hello" + name) def goodbye(name): print("goodbye" + name) |
| HIGH | docs/examples/widgets/text_area_example.py | 0 | \ def hello(name): print("hello" + name) def goodbye(name): print("goodbye" + name) |
| HIGH | tests/snapshot_tests/test_snapshots.py | 0 | screen { align: center middle; } #code-container { width: 20; height: 10; } |
| HIGH | tests/snapshot_tests/test_snapshots.py | 0 | screen { align: center middle; } #code-container { width: 20; height: 10; } |
| HIGH | tests/snapshot_tests/test_snapshots.py | 0 | screen { align: center middle; } #code-container { width: 20; height: 10; } |
| HIGH | tests/snapshot_tests/test_snapshots.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | tests/text_area/test_selection_bindings.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| HIGH | tests/text_area/test_edit_via_bindings.py | 0 | i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. |
| 76 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | src/textual/screen.py | 634 | Get the widget at a given coordinate. Args: x: X Coordinate. y: Y Coordinate. |
| HIGH | src/textual/screen.py | 649 | Get the widget, and its region directly under the mouse, and the first widget, region pair with a hover style. |
| HIGH | src/textual/screen.py | 741 | Get the screen region of a Widget. Args: widget: A Widget within the composition. Returns: |
| HIGH | src/textual/_path.py | 22 | Normalize the supplied CSSPathType into a list of paths. Args: css_path: Value to be normalized. Raise |
| HIGH | src/textual/pilot.py | 109 | Simulate a [`MouseDown`][textual.events.MouseDown] event at a specified position. The final position for the ev |
| HIGH | src/textual/pilot.py | 155 | Simulate a [`MouseUp`][textual.events.MouseUp] event at a specified position. The final position for the event |
| HIGH | src/textual/pilot.py | 202 | Simulate clicking with the mouse at a specified position. The final position to be clicked is computed based on |
| HIGH | src/textual/pilot.py | 260 | Simulate double clicking with the mouse at a specified position. Alias for `pilot.click(..., times=2)`. |
| HIGH | src/textual/pilot.py | 309 | Simulate triple clicking with the mouse at a specified position. Alias for `pilot.click(..., times=3)`. |
| HIGH | src/textual/pilot.py | 354 | Simulate hovering with the mouse cursor at a specified position. The final position to be hovered is computed b |
| HIGH | src/textual/pilot.py | 394 | Simulate a series of mouse events to be fired at a given position. The final position for the events is compute |
| HIGH | src/textual/pilot.py | 474 | Wait for the current screen and its children to have processed all pending events. Args: timeout: A |
| HIGH | src/textual/_import_app.py | 36 | Import an app from a path or import name. Args: import_name: A name to import, such as `foo.bar`, or a path |
| HIGH | src/textual/color.py | 515 | Parse a string containing a named color or CSS-style color. Colors may be parsed from the following formats: |
| HIGH | src/textual/widget.py | 697 | Get a common ancestors to both widgets. Raises: ValueError: If there is no common ancestor and `def |
| HIGH | src/textual/widget.py | 1094 | Return the first child (immediate descendent) of this node with the given ID. Args: id: The ID of t |
| HIGH | src/textual/widget.py | 1131 | Return the first descendant widget with the given ID. Performs a depth-first search rooted at this widget. |
| HIGH | src/textual/widget.py | 1155 | Get the first immediate child of a given type. Only returns exact matches, and so will not match subclasses of |
| HIGH | src/textual/widget.py | 1178 | Get a *Rich* style for a component. Args: names: Names of components. partial: Return a |
| HIGH | src/textual/widget.py | 1376 | Attempt to locate the point where the caller wants to mount something. Args: spot: The spot to find |
| HIGH | src/textual/widget.py | 1430 | Mount widgets below this widget (making this widget a container). Args: *widgets: The widget(s) to |
| HIGH | src/textual/widget.py | 1520 | Mount widgets from an iterable. Args: widgets: An iterable of widgets. before: Optional |
| HIGH | src/textual/widget.py | 1553 | Mount widgets from the result of a compose method. Example: ```python def on_key(self, even |
| HIGH | src/textual/_binary_encode.py | 149 | Recursively encode data. Args: datum: Data suitable for encoding. Raises: Type |
| HIGH | src/textual/_binary_encode.py | 170 | Load an encoded data structure from bytes. Args: encoded: Encoded data in bytes. Raises: Decod |
| HIGH | src/textual/_binary_encode.py | 211 | Get a number of bytes of encode data. Args: size: Number of bytes to retrieve. Raises: |
| HIGH | src/textual/_immutable_sequence_view.py | 53 | Return the index of the given item. Args: item: The item to find in the sequence. start |
| HIGH | src/textual/_duration.py | 19 | Args: duration: A string of the form `"2s"` or `"300ms"`, representing 2 seconds and 300 millis |
| HIGH | src/textual/actions.py | 27 | Parses an action string. Args: action: String containing action. Raises: ActionError: If the a |
| HIGH | src/textual/markup.py | 298 | Convert markup to Content. Args: markup: String containing markup. style: Optional base style. |
| HIGH | src/textual/markup.py | 328 | Internal function to convert markup to Content. Args: markup: String containing markup. style: Opti |
| HIGH | src/textual/_parser.py | 66 | Feed data to be parsed. Args: data: Data to parser. Raises: ParseError: If the |
| HIGH | src/textual/_compositor.py | 830 | Get the widget under a given coordinate. Args: x: X Coordinate. y: Y Coordinate. |
| HIGH | src/textual/_compositor.py | 974 | Get information regarding the relative position of a widget in the Compositor. Args: widget: The Wi |
| HIGH | src/textual/_event_broker.py | 18 | Extract action from meta dict. Args: event_name: Event to check from. meta: Meta information (store |
| HIGH | src/textual/content.py | 237 | Construct content from Text or str. If the argument is already Content, then return it unmodified. This |
| HIGH | src/textual/_segment_tools.py | 38 | Given a character index, return the cell position of that character within an Iterable of Segments. This is the sum |
| HIGH | src/textual/geometry.py | 1219 | Unpack padding specified in CSS style. Args: pad: An integer, or tuple of 1, 2, or 4 integers. |
| HIGH | src/textual/app.py | 1251 | Get the screen stack for the given mode, or the current mode if no mode is specified. Args: mode: N |
| HIGH | src/textual/app.py | 1794 | Run a callable from another thread, and return the result. Like asyncio apps in general, Textual apps are not t |
| HIGH | src/textual/app.py | 2433 | Get the first child (immediate descendant) of this DOMNode with the given ID. Args: id: The ID of t |
| HIGH | src/textual/app.py | 2466 | Get the first descendant widget with the given ID. Performs a breadth-first search rooted at the current screen |
| HIGH | src/textual/app.py | 2491 | Get a child of a give type. Args: expect_type: The type of the expected child. Raises: |
| HIGH | src/textual/app.py | 2531 | Mount the given widgets relative to the app's screen. Args: *widgets: The widget(s) to mount. |
| HIGH | src/textual/app.py | 2561 | Mount widgets from an iterable. Args: widgets: An iterable of widgets. before: Optional |
| HIGH | src/textual/app.py | 2631 | Switch to a given mode. Args: mode: The mode to switch to. Returns: An optiona |
| HIGH | src/textual/app.py | 2764 | Get an installed screen. Example: ```python my_screen = self.get_screen("settings", MyS |
| HIGH | src/textual/app.py | 2798 | Get an installed screen and an AwaitMount object. If the screen isn't running, it will be registered before it |
| HIGH | src/textual/app.py | 2903 | Push a new [screen](/guide/screens) on the screen stack, making it the current screen. Args: screen |
| HIGH | src/textual/app.py | 3037 | Install a screen. Installing a screen prevents Textual from destroying it when it is no longer on the screen st |
| HIGH | src/textual/app.py | 4173 | Parse an action. Args: action: An action string. default_namespace: Namespace to user w |
| HIGH | src/textual/visual.py | 76 | Get a visual instance from an object. If the object does not support the Visual protocol and is a Rich renderable, |
| HIGH | src/textual/binding.py | 379 | Get a list of bindings for a given key. Args: key: Key to look up. Raises: NoB |
| HIGH | src/textual/_dispatch_key.py | 13 | Dispatch a key event to method. This function will call the method named 'key_<event.key>' on a node if it exists. |
| HIGH | src/textual/dom.py | 602 | Get a "component" styles object (must be defined in COMPONENT_CLASSES classvar). Args: names: Names |
| HIGH | src/textual/dom.py | 1467 | Get a widget from this widget's children that matches a selector or widget type. Args: selector: A |
| HIGH | src/textual/dom.py | 1553 | Get a widget from this widget's children that matches a selector or widget type, or `None` if there is no match. |
| HIGH | src/textual/dom.py | 1590 | Get a widget from this widget's children that matches a selector or widget type. !!! Note This meth |
| HIGH | src/textual/dom.py | 1670 | Get an ancestor which matches a query. Args: selector: A TCSS selector. expect_type: Ex |
| HIGH | src/textual/dom.py | 1910 | Check whether an action is enabled. Implement this method to add logic for [dynamic actions](/guide/actions#dyn |
| 57 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | tools/widget_documentation.py | 7 | |
| LOW | tests/test_command.py | 1 | |
| LOW | tests/test_collapsible.py | 1 | |
| LOW | tests/test_tabs.py | 1 | |
| LOW | tests/test_data_table.py | 1 | |
| LOW | tests/test_layout_resolve.py | 1 | |
| LOW | tests/test_unmount.py | 1 | |
| LOW | tests/test_features.py | 1 | |
| LOW | tests/test_validation.py | 1 | |
| LOW | tests/test_box_model.py | 1 | |
| LOW | tests/test_reactive.py | 1 | |
| LOW | tests/test_modal.py | 1 | |
| LOW | tests/test_actions.py | 1 | |
| LOW | tests/test_styles_cache.py | 1 | |
| LOW | tests/test_widget_navigation.py | 1 | |
| LOW | tests/test_on.py | 1 | |
| LOW | tests/test_widget_child_moving.py | 1 | |
| LOW | tests/test_content_switcher.py | 1 | |
| LOW | tests/test_binding_inheritance.py | 12 | |
| LOW | tests/test_widget.py | 629 | |
| LOW | tests/test_content.py | 1 | |
| LOW | tests/test_dynamic_bindings.py | 1 | |
| LOW | tests/test_tabbed_content.py | 1 | |
| LOW | tests/test_path.py | 1 | |
| LOW | tests/test_animator.py | 1 | |
| LOW | tests/test_screens.py | 1 | |
| LOW | tests/test_markdown.py | 3 | |
| LOW | tests/test_cache.py | 1 | |
| LOW | tests/test_cache.py | 1 | |
| LOW | tests/test_keymap.py | 1 | |
| LOW | tests/test_markup.py | 1 | |
| LOW | tests/tree/test_tree_cursor.py | 1 | |
| LOW | tests/tree/test_tree_messages.py | 1 | |
| LOW | tests/tree/test_tree_availability.py | 1 | |
| LOW | tests/tree/test_tree_clearing.py | 1 | |
| LOW | tests/tree/test_directory_tree.py | 1 | |
| LOW | tests/tree/test_tree_expand_etc.py | 1 | |
| LOW | tests/snapshot_tests/test_snapshots.py | 1 | |
| LOW | tests/snapshot_tests/test_snapshots.py | 13 | |
| LOW | tests/snapshot_tests/snapshot_apps/scroll_page.py | 1 | |
| LOW | tests/snapshot_tests/snapshot_apps/recompose.py | 1 | |
| LOW | …/snapshot_tests/snapshot_apps/directory_tree_reload.py | 3 | |
| LOW | …_tests/snapshot_apps/pretty_grid_gutter_interaction.py | 3 | |
| LOW | …apshot_tests/snapshot_apps/auto_grid_default_height.py | 1 | |
| LOW | tests/snapshot_tests/snapshot_apps/dynamic_bindings.py | 1 | |
| LOW | tests/snapshot_tests/snapshot_apps/mount_style_fix.py | 1 | |
| LOW | …t_tests/snapshot_apps/option_list_multiline_options.py | 1 | |
| LOW | tests/snapshot_tests/snapshot_apps/option_list.py | 1 | |
| LOW | …sts/snapshot_tests/snapshot_apps/recompose_on_mount.py | 1 | |
| LOW | …ts/snapshot_tests/snapshot_apps/nested_auto_heights.py | 3 | |
| LOW | …/snapshot_tests/snapshot_apps/data_table_add_column.py | 3 | |
| LOW | tests/snapshot_tests/snapshot_apps/text_selection.py | 6 | |
| LOW | tests/snapshot_tests/snapshot_apps/log_write.py | 3 | |
| LOW | tests/css/test_parse.py | 1 | |
| LOW | tests/css/test_nested_css.py | 1 | |
| LOW | tests/css/test_tokenize.py | 1 | |
| LOW | tests/text_area/test_history.py | 1 | |
| LOW | tests/input/test_input_replace.py | 1 | |
| LOW | tests/input/test_input_key_movement_actions.py | 3 | |
| LOW | tests/input/test_input_properties.py | 1 | |
| 396 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | tests/test_parser.py | 29 | |
| LOW | tests/test_focus.py | 306 | |
| LOW | tests/test_focus.py | 342 | |
| LOW | tests/test_tabbed_content.py | 798 | |
| LOW | tests/test_tabbed_content.py | 824 | |
| LOW | tests/test_tabbed_content.py | 802 | |
| LOW | tests/test_tabbed_content.py | 828 | |
| LOW | tests/snapshot_tests/snapshot_apps/hatch.py | 43 | |
| LOW | tests/snapshot_tests/snapshot_apps/auto_tab_active.py | 8 | |
| LOW | tests/snapshot_tests/snapshot_apps/grid_gutter.py | 29 | |
| LOW | examples/calculator.py | 138 | |
| LOW | examples/dictionary.py | 53 | |
| LOW | src/textual/screen.py | 408 | |
| LOW | src/textual/screen.py | 458 | |
| LOW | src/textual/screen.py | 828 | |
| LOW | src/textual/screen.py | 931 | |
| LOW | src/textual/screen.py | 1097 | |
| LOW | src/textual/screen.py | 1316 | |
| LOW | src/textual/screen.py | 1489 | |
| LOW | src/textual/screen.py | 1630 | |
| LOW | src/textual/screen.py | 1755 | |
| LOW | src/textual/screen.py | 1820 | |
| LOW | src/textual/_border.py | 326 | |
| LOW | src/textual/_border.py | 407 | |
| LOW | src/textual/message_pump.py | 562 | |
| LOW | src/textual/message_pump.py | 634 | |
| LOW | src/textual/message_pump.py | 707 | |
| LOW | src/textual/message_pump.py | 743 | |
| LOW | src/textual/_import_app.py | 35 | |
| LOW | src/textual/color.py | 514 | |
| LOW | src/textual/command.py | 347 | |
| LOW | src/textual/widget.py | 1217 | |
| LOW | src/textual/widget.py | 3951 | |
| LOW | src/textual/widget.py | 4545 | |
| LOW | src/textual/widget.py | 4695 | |
| LOW | src/textual/signal.py | 105 | |
| LOW | src/textual/style.py | 166 | |
| LOW | src/textual/_styles_cache.py | 267 | |
| LOW | src/textual/compose.py | 12 | |
| LOW | src/textual/_resolve.py | 18 | |
| LOW | src/textual/_resolve.py | 121 | |
| LOW | src/textual/_wrap.py | 32 | |
| LOW | src/textual/_loop.py | 48 | |
| LOW | src/textual/design.py | 91 | |
| LOW | src/textual/design.py | 248 | |
| LOW | src/textual/markup.py | 181 | |
| LOW | src/textual/markup.py | 323 | |
| LOW | src/textual/_arrange.py | 127 | |
| LOW | src/textual/_arrange.py | 204 | |
| LOW | src/textual/_compositor.py | 186 | |
| LOW | src/textual/_compositor.py | 324 | |
| LOW | src/textual/_compositor.py | 525 | |
| LOW | src/textual/_compositor.py | 768 | |
| LOW | src/textual/_compositor.py | 900 | |
| LOW | src/textual/_compositor.py | 1203 | |
| LOW | src/textual/_compositor.py | 548 | |
| LOW | src/textual/walk.py | 42 | |
| LOW | src/textual/content.py | 415 | |
| LOW | src/textual/content.py | 806 | |
| LOW | src/textual/content.py | 1452 | |
| 91 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | examples/calculator.py | 151 | except Exception: |
| LOW | examples/dictionary.py | 45 | except Exception: |
| LOW | examples/code_browser.py | 74 | except Exception: |
| LOW | src/textual/screen.py | 561 | except Exception: |
| LOW | src/textual/screen.py | 1382 | except Exception as error: |
| LOW | src/textual/worker.py | 375 | except Exception as error: |
| LOW | src/textual/pilot.py | 488 | except Exception: |
| LOW | src/textual/message_pump.py | 606 | except Exception as error: |
| LOW | src/textual/message_pump.py | 646 | except Exception as error: |
| LOW | src/textual/message_pump.py | 666 | except Exception as error: |
| LOW | src/textual/message_pump.py | 690 | except Exception as error: |
| LOW | src/textual/message_pump.py | 703 | except Exception as error: |
| LOW | src/textual/message_pump.py | 895 | except Exception: |
| LOW | src/textual/message_pump.py | 910 | except Exception: |
| LOW | src/textual/message_pump.py | 917 | except Exception as error: |
| LOW | src/textual/_import_app.py | 66 | except Exception as error: |
| LOW | src/textual/command.py | 247 | except Exception: |
| LOW | src/textual/command.py | 315 | except Exception: |
| MEDIUM | src/textual/widget.py | 3903 | def __rich_repr__(self) -> rich.repr.Result: |
| LOW | src/textual/widget.py | 1311 | except Exception: |
| LOW | src/textual/widget.py | 4724 | except Exception as error: |
| LOW | src/textual/signal.py | 134 | except Exception as error: |
| LOW | src/textual/style.py | 348 | except Exception: |
| LOW | src/textual/compose.py | 84 | except Exception as error: |
| LOW | src/textual/_markup_playground.py | 111 | except Exception: |
| LOW | src/textual/_markup_playground.py | 131 | except Exception as error: |
| LOW | src/textual/_markup_playground.py | 143 | except Exception as error: |
| LOW | src/textual/timer.py | 194 | except Exception as error: |
| LOW | src/textual/actions.py | 47 | except Exception: |
| LOW | src/textual/_doc.py | 56 | except Exception as error: |
| LOW | src/textual/_doc.py | 184 | except Exception: |
| LOW | src/textual/markup.py | 318 | except Exception as error: |
| LOW | src/textual/_win_sleep.py | 32 | except Exception: |
| LOW | src/textual/content.py | 1365 | except Exception: |
| LOW | src/textual/_xterm_parser.py | 439 | except Exception: |
| LOW | src/textual/geometry.py | 301 | except Exception: |
| LOW | src/textual/geometry.py | 707 | except Exception: |
| LOW | src/textual/app.py | 1755 | except Exception as error: |
| LOW | src/textual/app.py | 2270 | except Exception: |
| LOW | src/textual/app.py | 2398 | except Exception as error: |
| LOW | src/textual/app.py | 3410 | except Exception as error: |
| LOW | src/textual/app.py | 3451 | except Exception: |
| LOW | src/textual/app.py | 3515 | except Exception as error: |
| LOW | src/textual/app.py | 3865 | except Exception as error: |
| LOW | src/textual/highlight.py | 163 | except Exception: |
| LOW | src/textual/_debug.py | 25 | except Exception: |
| LOW | src/textual/lazy.py | 120 | except Exception: |
| LOW | src/textual/driver.py | 259 | except Exception as error: |
| LOW | src/textual/_dispatch_key.py | 52 | except Exception: |
| LOW | src/textual/_work_decorator.py | 137 | except Exception: |
| LOW | src/textual/demo/home.py | 193 | except Exception: |
| LOW | src/textual/demo/page.py | 73 | except Exception: |
| LOW | src/textual/demo/widgets.py | 409 | except Exception: |
| LOW | src/textual/drivers/_input_reader_windows.py | 29 | except Exception: |
| LOW | src/textual/drivers/windows_driver.py | 118 | except Exception as error: |
| LOW | src/textual/drivers/win32.py | 297 | except Exception as error: |
| LOW | src/textual/drivers/linux_inline_driver.py | 301 | except Exception as error: |
| LOW | src/textual/drivers/web_driver.py | 208 | except Exception: |
| LOW | src/textual/drivers/web_driver.py | 283 | except Exception as error: |
| LOW | src/textual/drivers/linux_driver.py | 371 | except Exception: |
| 9 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | tests/snapshot_tests/language_snippets.py | 485 | if age >= 18 && isStudent { |
| HIGH | tests/snapshot_tests/language_snippets.py | 536 | if (age >= 18 && isStudent) { |
| HIGH | tests/snapshot_tests/language_snippets.py | 747 | if age >= 18 && is_student { |
| HIGH | tests/snapshot_tests/language_snippets.py | 761 | fruits.push("grape"); |
| HIGH | tests/snapshot_tests/language_snippets.py | 865 | if (age >= 18 && isStudent) { |
| HIGH | src/textual/layout.py | 112 | Placements with adjusted region, or same instance if offset is null. |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | tests/snapshot_tests/language_snippets.py | 128 | > Lorem ipsum |
| LOW | tests/snapshot_tests/language_snippets.py | 205 | street = "123 Main St" |
| LOW | tests/snapshot_tests/language_snippets.py | 211 | name = "John Doe" |
| LOW | tests/snapshot_tests/language_snippets.py | 398 | "name": "John Doe", |
| LOW | tests/snapshot_tests/language_snippets.py | 402 | "street": "123 Main St", |
| LOW | tests/snapshot_tests/test_snapshots.py | 907 | panel = Panel("lorem ipsum dolor sit amet lorem ipsum dolor sit amet") |
| LOW | tests/snapshot_tests/test_snapshots.py | 907 | panel = Panel("lorem ipsum dolor sit amet lorem ipsum dolor sit amet") |
| LOW | …snapshot_tests/snapshot_apps/data_table_auto_height.py | 4 | LORUM_IPSUM = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et do |
| LOW | …snapshot_tests/snapshot_apps/data_table_auto_height.py | 4 | LORUM_IPSUM = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et do |
| LOW | docs/blog/posts/release0-6-0.md | 79 | Use this widget in place of custom widgets you have yet to build when designing your UI. The colors are automatically cy |
| LOW | examples/theme_sandbox.py | 51 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla facilisi. Sed euismod, nunc sit amet aliquam lacinia, nis |
| LOW | examples/theme_sandbox.py | 51 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla facilisi. Sed euismod, nunc sit amet aliquam lacinia, nis |
| LOW | src/textual/_styles_cache.py | 50 | ┃ Lorem ipsum dolor ┃◀┐ border |
| LOW | src/textual/widgets/_placeholder.py | 49 | _LOREM_IPSUM_PLACEHOLDER_TEXT = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam feugiat ac elit sit amet |
| LOW | src/textual/widgets/_placeholder.py | 49 | _LOREM_IPSUM_PLACEHOLDER_TEXT = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam feugiat ac elit sit amet |
| LOW | src/textual/widgets/_placeholder.py | 69 | | text | Lorem Ipsum text. | |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | tests/test_box_model.py | 70 | # Set width to auto-detect |
| LOW | tests/test_box_model.py | 77 | # Set width to 100 vw which should make it the width of the parent |
| LOW | tests/test_box_model.py | 120 | # Set height to 100 vw which should make it the height of the parent |
| LOW | src/textual/_cells.py | 29 | # Check if the click landed on a character within this part. |
| LOW | src/textual/_cells.py | 38 | # Check if the click falls within the boundary of the expanded tab. |
| LOW | src/textual/app.py | 4778 | # Check if we're in an environment that permits this kind of |
| LOW | src/textual/renderables/bar.py | 64 | # Check if we start/end on a number that rounds to a .5 |
| LOW | src/textual/css/stylesheet.py | 673 | # Check if this can / should be animated. It doesn't suffice to check |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | tests/test_query.py | 171 | # Create a fake app to hold everything else. |
| MEDIUM | src/textual/_doc.py | 17 | # This module defines our "Custom Fences", powered by SuperFences |
| MEDIUM | src/textual/_compositor.py | 1178 | # Create a crop region that surrounds all updates. |
| MEDIUM | src/textual/document/_history.py | 101 | # Create a new batch (creating a "checkpoint"). |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | tests/test_binding_inheritance.py | 401 | async def test_focused_child_widget_with_movement_bindings_no_inherit() -> None: |
| LOW | tests/test_binding_inheritance.py | 461 | |
| LOW | tests/test_binding_inheritance.py | 521 | # |
| LOW | src/textual/drivers/linux_driver.py | 201 | os.kill(os.getpid(), signal.SIGSTOP) |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | src/textual/signal.py | 33 | """A signal that a widget may subscribe to, in order to invoke callbacks when an associated event occurs.""" |