Repository Analysis

Textualize/textual

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.

18.2 Moderate AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of Textualize/textual, a Python project with 36,596 GitHub stars. SynthScan v2.0 examined 175,175 lines of code across 1331 source files, recording 2355 pattern matches distributed across 14 syntactic categories. The overall adjusted score of 18.2 places this repository in the Moderate AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

18.2
Adjusted Score
18.2
Raw Score
100%
Time Factor
2026-07-11
Last Push
36.6K
Stars
Python
Language
175.2K
Lines of Code
1.3K
Files
2.4K
Pattern Hits
2026-07-14
Scan Date
0.17
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 0HIGH 226MEDIUM 6LOW 2123

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 2355 distinct pattern matches across 14 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Hyper-Verbose Identifiers1274 hits · 1248 pts
SeverityFileLineSnippetContext
LOWtests/test_collapsible.py26async def test_compose_default_collapsible():CODE
LOWtests/test_collapsible.py39async def test_compose_empty_collapsible():CODE
LOWtests/test_collapsible.py51async def test_compose_nested_collapsible():CODE
LOWtests/test_collapsible.py66async def test_compose_expanded_collapsible():CODE
LOWtests/test_collapsible.py79async def test_collapsible_collapsed_contents_display_false():CODE
LOWtests/test_collapsible.py91async def test_collapsible_expanded_contents_display_true():CODE
LOWtests/test_collapsible.py172async def test_expand_via_watcher_message():CODE
LOWtests/test_collapsible.py216async def test_collapse_via_watcher_message():CODE
LOWtests/test_collapsible.py238async def test_collapsible_title_reactive_change():CODE
LOWtests/test_tabs.py36async def test_compose_tabs_from_strings():CODE
LOWtests/test_tabs.py50async def test_compose_tabs_from_tabs():CODE
LOWtests/test_tabs.py115async def test_add_tab_before_badly():CODE
LOWtests/test_tabs.py194async def test_add_tab_before_and_after():CODE
LOWtests/test_tabs.py250async def test_remove_tabs_reversed():CODE
LOWtests/test_tabs.py300async def test_change_active_from_code():CODE
LOWtests/test_tabs.py323async def test_navigate_tabs_with_keyboard():CODE
LOWtests/test_tabs.py353async def test_navigate_empty_tabs_with_keyboard():CODE
LOWtests/test_tabs.py375async def test_navigate_tabs_with_mouse():CODE
LOWtests/test_tabs.py426async def test_change_tab_with_code_messages():CODE
LOWtests/test_tabs.py437async def test_remove_tabs_messages():CODE
LOWtests/test_tabs.py454async def test_reverse_remove_tabs_messages():CODE
LOWtests/test_tabs.py468async def test_keyboard_navigation_messages():CODE
LOWtests/test_tabs.py482async def test_mouse_navigation_messages():CODE
LOWtests/test_tabs.py496async def test_disabled_tab_is_not_activated_by_clicking_underline():CODE
LOWtests/test_resolve.py64async def test_resolve_fraction_unit():CODE
LOWtests/test_resolve.py127async def test_resolve_fraction_unit_stress_test():CODE
LOWtests/test_screen_modes.py146async def test_screen_stack_preserved(ModesApp: Type[App]):CODE
LOWtests/test_screen_modes.py171async def test_multiple_mode_callbacks():CODE
LOWtests/test_data_table.py251async def test_add_row_duplicate_key():CODE
LOWtests/test_data_table.py261async def test_add_row_too_many_values():CODE
LOWtests/test_data_table.py271async def test_add_column_duplicate_key():CODE
LOWtests/test_data_table.py280async def test_add_column_with_width():CODE
LOWtests/test_data_table.py445async def test_get_cell_returns_value_at_cell():CODE
LOWtests/test_data_table.py454async def test_get_cell_invalid_row_key():CODE
LOWtests/test_data_table.py464async def test_get_cell_invalid_column_key():CODE
LOWtests/test_data_table.py474async def test_get_cell_coordinate_returns_coordinate():CODE
LOWtests/test_data_table.py686async def test_update_cell_cell_exists():CODE
LOWtests/test_data_table.py696async def test_update_cell_cell_doesnt_exist():CODE
LOWtests/test_data_table.py706async def test_update_cell_invalid_column_key():CODE
LOWtests/test_data_table.py67async def test_datatable_message_emission():CODE
LOWtests/test_data_table.py172async def test_empty_table_interactions():CODE
LOWtests/test_data_table.py182async def test_cursor_movement_with_home_pagedown_etc(show_header):CODE
LOWtests/test_data_table.py221async def test_add_rows_user_defined_keys():CODE
LOWtests/test_data_table.py303async def test_add_columns_with_tuples():CODE
LOWtests/test_data_table.py322async def test_add_columns_user_defined_keys():CODE
LOWtests/test_data_table.py344async def test_remove_row_and_update():CODE
LOWtests/test_data_table.py371async def test_remove_column_and_update():CODE
LOWtests/test_data_table.py426async def test_initial_column_widths() -> None:CODE
LOWtests/test_data_table.py492async def test_get_cell_coordinate_invalid_row_key():CODE
LOWtests/test_data_table.py503async def test_get_cell_coordinate_invalid_column_key():CODE
LOWtests/test_data_table.py514async def test_get_cell_at_returns_value_at_cell():CODE
LOWtests/test_data_table.py523async def test_get_cell_at_exception():CODE
LOWtests/test_data_table.py549async def test_get_row_invalid_row_key():CODE
LOWtests/test_data_table.py576async def test_get_row_at_invalid_index(index):CODE
LOWtests/test_data_table.py587async def test_get_row_index_returns_index():CODE
LOWtests/test_data_table.py602async def test_get_row_index_invalid_row_key():CODE
LOWtests/test_data_table.py627async def test_get_column_invalid_key():CODE
LOWtests/test_data_table.py650async def test_get_column_at_invalid_index(index):CODE
LOWtests/test_data_table.py658async def test_get_column_index_returns_index():CODE
LOWtests/test_data_table.py673async def test_get_column_index_invalid_column_key():CODE
1214 more matches not shown…
Docstring Block Structure117 hits · 585 pts
SeverityFileLineSnippetContext
HIGHsrc/textual/screen.py634Get the widget at a given coordinate. Args: x: X Coordinate. y: Y Coordinate. STRING
HIGHsrc/textual/screen.py649Get the widget, and its region directly under the mouse, and the first widget, region pair with a hover style. STRING
HIGHsrc/textual/screen.py741Get the screen region of a Widget. Args: widget: A Widget within the composition. Returns:STRING
HIGHsrc/textual/_path.py22Normalize the supplied CSSPathType into a list of paths. Args: css_path: Value to be normalized. RaiseSTRING
HIGHsrc/textual/pilot.py109Simulate a [`MouseDown`][textual.events.MouseDown] event at a specified position. The final position for the evSTRING
HIGHsrc/textual/pilot.py155Simulate a [`MouseUp`][textual.events.MouseUp] event at a specified position. The final position for the event STRING
HIGHsrc/textual/pilot.py202Simulate clicking with the mouse at a specified position. The final position to be clicked is computed based onSTRING
HIGHsrc/textual/pilot.py260Simulate double clicking with the mouse at a specified position. Alias for `pilot.click(..., times=2)`. STRING
HIGHsrc/textual/pilot.py309Simulate triple clicking with the mouse at a specified position. Alias for `pilot.click(..., times=3)`. STRING
HIGHsrc/textual/pilot.py354Simulate hovering with the mouse cursor at a specified position. The final position to be hovered is computed bSTRING
HIGHsrc/textual/pilot.py394Simulate a series of mouse events to be fired at a given position. The final position for the events is computeSTRING
HIGHsrc/textual/pilot.py474Wait for the current screen and its children to have processed all pending events. Args: timeout: ASTRING
HIGHsrc/textual/_import_app.py36Import an app from a path or import name. Args: import_name: A name to import, such as `foo.bar`, or a pathSTRING
HIGHsrc/textual/color.py515Parse a string containing a named color or CSS-style color. Colors may be parsed from the following formats: STRING
HIGHsrc/textual/widget.py697Get a common ancestors to both widgets. Raises: ValueError: If there is no common ancestor and `defSTRING
HIGHsrc/textual/widget.py1094Return the first child (immediate descendent) of this node with the given ID. Args: id: The ID of tSTRING
HIGHsrc/textual/widget.py1131Return the first descendant widget with the given ID. Performs a depth-first search rooted at this widget. STRING
HIGHsrc/textual/widget.py1155Get the first immediate child of a given type. Only returns exact matches, and so will not match subclasses of STRING
HIGHsrc/textual/widget.py1178Get a *Rich* style for a component. Args: names: Names of components. partial: Return aSTRING
HIGHsrc/textual/widget.py1376Attempt to locate the point where the caller wants to mount something. Args: spot: The spot to findSTRING
HIGHsrc/textual/widget.py1430Mount widgets below this widget (making this widget a container). Args: *widgets: The widget(s) to STRING
HIGHsrc/textual/widget.py1520Mount widgets from an iterable. Args: widgets: An iterable of widgets. before: OptionalSTRING
HIGHsrc/textual/widget.py1553Mount widgets from the result of a compose method. Example: ```python def on_key(self, evenSTRING
HIGHsrc/textual/_binary_encode.py149Recursively encode data. Args: datum: Data suitable for encoding. Raises: TypeSTRING
HIGHsrc/textual/_binary_encode.py170Load an encoded data structure from bytes. Args: encoded: Encoded data in bytes. Raises: DecodSTRING
HIGHsrc/textual/_binary_encode.py211Get a number of bytes of encode data. Args: size: Number of bytes to retrieve. Raises: STRING
HIGHsrc/textual/_immutable_sequence_view.py53Return the index of the given item. Args: item: The item to find in the sequence. startSTRING
HIGHsrc/textual/_duration.py19 Args: duration: A string of the form `"2s"` or `"300ms"`, representing 2 seconds and 300 millisSTRING
HIGHsrc/textual/actions.py27Parses an action string. Args: action: String containing action. Raises: ActionError: If the aSTRING
HIGHsrc/textual/markup.py298Convert markup to Content. Args: markup: String containing markup. style: Optional base style. STRING
HIGHsrc/textual/markup.py328Internal function to convert markup to Content. Args: markup: String containing markup. style: OptiSTRING
HIGHsrc/textual/_parser.py66Feed data to be parsed. Args: data: Data to parser. Raises: ParseError: If theSTRING
HIGHsrc/textual/_compositor.py830Get the widget under a given coordinate. Args: x: X Coordinate. y: Y Coordinate. STRING
HIGHsrc/textual/_compositor.py971Get information regarding the relative position of a widget in the Compositor. Args: widget: The WiSTRING
HIGHsrc/textual/_event_broker.py18Extract action from meta dict. Args: event_name: Event to check from. meta: Meta information (storeSTRING
HIGHsrc/textual/content.py237Construct content from Text or str. If the argument is already Content, then return it unmodified. ThisSTRING
HIGHsrc/textual/_segment_tools.py38Given a character index, return the cell position of that character within an Iterable of Segments. This is the sum STRING
HIGHsrc/textual/geometry.py1219Unpack padding specified in CSS style. Args: pad: An integer, or tuple of 1, 2, or 4 integers. STRING
HIGHsrc/textual/app.py1251Get the screen stack for the given mode, or the current mode if no mode is specified. Args: mode: NSTRING
HIGHsrc/textual/app.py1794Run a callable from another thread, and return the result. Like asyncio apps in general, Textual apps are not tSTRING
HIGHsrc/textual/app.py2433Get the first child (immediate descendant) of this DOMNode with the given ID. Args: id: The ID of tSTRING
HIGHsrc/textual/app.py2466Get the first descendant widget with the given ID. Performs a breadth-first search rooted at the current screenSTRING
HIGHsrc/textual/app.py2491Get a child of a give type. Args: expect_type: The type of the expected child. Raises: STRING
HIGHsrc/textual/app.py2531Mount the given widgets relative to the app's screen. Args: *widgets: The widget(s) to mount. STRING
HIGHsrc/textual/app.py2561Mount widgets from an iterable. Args: widgets: An iterable of widgets. before: OptionalSTRING
HIGHsrc/textual/app.py2631Switch to a given mode. Args: mode: The mode to switch to. Returns: An optionaSTRING
HIGHsrc/textual/app.py2764Get an installed screen. Example: ```python my_screen = self.get_screen("settings", MySSTRING
HIGHsrc/textual/app.py2798Get an installed screen and an AwaitMount object. If the screen isn't running, it will be registered before it STRING
HIGHsrc/textual/app.py2903Push a new [screen](/guide/screens) on the screen stack, making it the current screen. Args: screenSTRING
HIGHsrc/textual/app.py3037Install a screen. Installing a screen prevents Textual from destroying it when it is no longer on the screen stSTRING
HIGHsrc/textual/app.py4173Parse an action. Args: action: An action string. default_namespace: Namespace to user wSTRING
HIGHsrc/textual/visual.py76Get a visual instance from an object. If the object does not support the Visual protocol and is a Rich renderable, STRING
HIGHsrc/textual/binding.py379Get a list of bindings for a given key. Args: key: Key to look up. Raises: NoBSTRING
HIGHsrc/textual/_dispatch_key.py13Dispatch a key event to method. This function will call the method named 'key_<event.key>' on a node if it exists. STRING
HIGHsrc/textual/dom.py602Get a "component" styles object (must be defined in COMPONENT_CLASSES classvar). Args: names: NamesSTRING
HIGHsrc/textual/dom.py1467Get a widget from this widget's children that matches a selector or widget type. Args: selector: A STRING
HIGHsrc/textual/dom.py1553Get a widget from this widget's children that matches a selector or widget type, or `None` if there is no match.STRING
HIGHsrc/textual/dom.py1590Get a widget from this widget's children that matches a selector or widget type. !!! Note This methSTRING
HIGHsrc/textual/dom.py1670Get an ancestor which matches a query. Args: selector: A TCSS selector. expect_type: ExSTRING
HIGHsrc/textual/dom.py1910Check whether an action is enabled. Implement this method to add logic for [dynamic actions](/guide/actions#dynSTRING
57 more matches not shown…
Cross-File Repetition103 hits · 515 pts
SeverityFileLineSnippetContext
HIGHtests/test_modal.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHtests/snapshot_tests/test_snapshots.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHtests/snapshot_tests/snapshot_apps/log_write_lines.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHtests/snapshot_tests/snapshot_apps/text_selection.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHdocs/examples/guide/screens/modal03.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHdocs/examples/guide/screens/modal02.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHdocs/examples/guide/screens/modal01.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHdocs/examples/guide/styles/border_title.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHdocs/examples/guide/styles/border01.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHdocs/examples/guide/styles/dimensions04.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHdocs/examples/guide/styles/dimensions01.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHdocs/examples/guide/styles/outline01.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHdocs/examples/guide/styles/padding02.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHdocs/examples/guide/styles/dimensions02.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHdocs/examples/guide/styles/margin01.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHdocs/examples/guide/styles/padding01.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHdocs/examples/guide/styles/dimensions03.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHdocs/examples/guide/styles/box_sizing01.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHdocs/examples/styles/scrollbar_size.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHdocs/examples/styles/scrollbars2.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHdocs/examples/styles/scrollbar_gutter.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHdocs/examples/styles/scrollbar_corner_color.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHdocs/examples/styles/overflow.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHdocs/examples/styles/margin.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHdocs/examples/styles/outline_vs_border.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHdocs/examples/styles/text_style.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHdocs/examples/styles/outline.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHdocs/examples/styles/scrollbars.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHdocs/examples/styles/scrollbar_visibility.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHdocs/examples/styles/padding.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHdocs/examples/styles/text_style_all.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHdocs/examples/styles/scrollbar_size2.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHdocs/examples/widgets/log.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHexamples/sidebar.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHsrc/textual/demo/widgets.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHtests/snapshot_tests/test_snapshots.py0\ def hello(name): print("hello" + name) def goodbye(name): print("goodbye" + name)STRING
HIGHdocs/examples/widgets/text_area_selection.py0\ def hello(name): print("hello" + name) def goodbye(name): print("goodbye" + name)STRING
HIGHdocs/examples/widgets/text_area_example.py0\ def hello(name): print("hello" + name) def goodbye(name): print("goodbye" + name)STRING
HIGHtests/snapshot_tests/test_snapshots.py0\ i must not fear. fear is the mind-killer. fear hello, world!is the little-death that brings total obliteration. i willSTRING
HIGHtests/text_area/test_selection_bindings.py0\ i must not fear. fear is the mind-killer. fear hello, world!is the little-death that brings total obliteration. i willSTRING
HIGHtests/text_area/test_edit_via_bindings.py0\ i must not fear. fear is the mind-killer. fear hello, world!is the little-death that brings total obliteration. i willSTRING
HIGHtests/text_area/test_selection.py0\ i must not fear. fear is the mind-killer. fear hello, world!is the little-death that brings total obliteration. i willSTRING
HIGHdocs/examples/guide/widgets/tooltip02.py0\ i must not fear. fear is the mind-killer. fear hello, world!is the little-death that brings total obliteration. i willSTRING
HIGHdocs/examples/guide/widgets/tooltip01.py0\ i must not fear. fear is the mind-killer. fear hello, world!is the little-death that brings total obliteration. i willSTRING
HIGHdocs/examples/styles/text_overflow.py0\ i must not fear. fear is the mind-killer. fear hello, world!is the little-death that brings total obliteration. i willSTRING
HIGHdocs/examples/styles/text_wrap.py0\ i must not fear. fear is the mind-killer. fear hello, world!is the little-death that brings total obliteration. i willSTRING
HIGHtests/text_area/test_edit_via_api.py0\ i must not fear. fear is the mind-killer. fear hello, world!is the little-death that brings total obliteration. i willSTRING
HIGHtests/snapshot_tests/snapshot_apps/unscoped_css.py0mywidget { height: auto; border: magenta; } label { border: solid green; }STRING
HIGHtests/snapshot_tests/snapshot_apps/scoped_css.py0mywidget { height: auto; border: magenta; } label { border: solid green; }STRING
HIGHdocs/blog/posts/release0-38-0.md0mywidget { height: auto; border: magenta; } label { border: solid green; }STRING
HIGH…/snapshot_tests/snapshot_apps/data_table_row_cursor.py0lane,swimmer,country,time 4,joseph schooling,singapore,50.39 2,michael phelps,united states,51.14 5,chad le clos,south aSTRING
HIGH…apshot_tests/snapshot_apps/data_table_column_cursor.py0lane,swimmer,country,time 4,joseph schooling,singapore,50.39 2,michael phelps,united states,51.14 5,chad le clos,south aSTRING
HIGHdocs/examples/widgets/rich_log.py0lane,swimmer,country,time 4,joseph schooling,singapore,50.39 2,michael phelps,united states,51.14 5,chad le clos,south aSTRING
HIGHsrc/textual/demo/widgets.py0lane,swimmer,country,time 4,joseph schooling,singapore,50.39 2,michael phelps,united states,51.14 5,chad le clos,south aSTRING
HIGHtests/select/test_remove.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHdocs/examples/widgets/select_from_values_widget.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHdocs/examples/widgets/select_widget.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHdocs/examples/widgets/select_widget_no_blank.py0i must not fear. fear is the mind-killer. fear is the little-death that brings total obliteration. i will face my fear. STRING
HIGHdocs/blog/posts/spinners-and-pbs-in-textual.md0event handler called when widget is added to the app.STRING
HIGHdocs/examples/tutorial/stopwatch05.py0event handler called when widget is added to the app.STRING
43 more matches not shown…
Unused Imports456 hits · 434 pts
SeverityFileLineSnippetContext
LOWtools/widget_documentation.py7CODE
LOWtests/test_command.py1CODE
LOWtests/test_collapsible.py1CODE
LOWtests/test_tabs.py1CODE
LOWtests/test_data_table.py1CODE
LOWtests/test_layout_resolve.py1CODE
LOWtests/test_unmount.py1CODE
LOWtests/test_features.py1CODE
LOWtests/test_validation.py1CODE
LOWtests/test_box_model.py1CODE
LOWtests/test_reactive.py1CODE
LOWtests/test_modal.py1CODE
LOWtests/test_actions.py1CODE
LOWtests/test_styles_cache.py1CODE
LOWtests/test_widget_navigation.py1CODE
LOWtests/test_on.py1CODE
LOWtests/test_widget_child_moving.py1CODE
LOWtests/test_content_switcher.py1CODE
LOWtests/test_binding_inheritance.py12CODE
LOWtests/test_widget.py629CODE
LOWtests/test_content.py1CODE
LOWtests/test_dynamic_bindings.py1CODE
LOWtests/test_tabbed_content.py1CODE
LOWtests/test_path.py1CODE
LOWtests/test_animator.py1CODE
LOWtests/test_screens.py1CODE
LOWtests/test_markdown.py3CODE
LOWtests/test_cache.py1CODE
LOWtests/test_cache.py1CODE
LOWtests/test_keymap.py1CODE
LOWtests/test_markup.py1CODE
LOWtests/tree/test_tree_cursor.py1CODE
LOWtests/tree/test_tree_messages.py1CODE
LOWtests/tree/test_tree_availability.py1CODE
LOWtests/tree/test_tree_clearing.py1CODE
LOWtests/tree/test_directory_tree.py1CODE
LOWtests/tree/test_tree_expand_etc.py1CODE
LOWtests/snapshot_tests/test_snapshots.py1CODE
LOWtests/snapshot_tests/test_snapshots.py13CODE
LOWtests/snapshot_tests/snapshot_apps/scroll_page.py1CODE
LOWtests/snapshot_tests/snapshot_apps/recompose.py1CODE
LOW…/snapshot_tests/snapshot_apps/directory_tree_reload.py3CODE
LOW…_tests/snapshot_apps/pretty_grid_gutter_interaction.py3CODE
LOW…apshot_tests/snapshot_apps/auto_grid_default_height.py1CODE
LOWtests/snapshot_tests/snapshot_apps/dynamic_bindings.py1CODE
LOWtests/snapshot_tests/snapshot_apps/mount_style_fix.py1CODE
LOW…t_tests/snapshot_apps/option_list_multiline_options.py1CODE
LOWtests/snapshot_tests/snapshot_apps/option_list.py1CODE
LOW…sts/snapshot_tests/snapshot_apps/recompose_on_mount.py1CODE
LOW…ts/snapshot_tests/snapshot_apps/nested_auto_heights.py3CODE
LOW…/snapshot_tests/snapshot_apps/data_table_add_column.py3CODE
LOWtests/snapshot_tests/snapshot_apps/text_selection.py6CODE
LOWtests/snapshot_tests/snapshot_apps/log_write.py3CODE
LOWtests/css/test_parse.py1CODE
LOWtests/css/test_nested_css.py1CODE
LOWtests/css/test_tokenize.py1CODE
LOWtests/text_area/test_history.py1CODE
LOWtests/input/test_input_replace.py1CODE
LOWtests/input/test_input_key_movement_actions.py3CODE
LOWtests/input/test_input_properties.py1CODE
396 more matches not shown…
Deep Nesting152 hits · 140 pts
SeverityFileLineSnippetContext
LOWtests/test_parser.py29CODE
LOWtests/test_focus.py306CODE
LOWtests/test_focus.py342CODE
LOWtests/test_tabbed_content.py798CODE
LOWtests/test_tabbed_content.py824CODE
LOWtests/test_tabbed_content.py802CODE
LOWtests/test_tabbed_content.py828CODE
LOWtests/snapshot_tests/snapshot_apps/hatch.py43CODE
LOWtests/snapshot_tests/snapshot_apps/auto_tab_active.py8CODE
LOWtests/snapshot_tests/snapshot_apps/grid_gutter.py29CODE
LOWexamples/calculator.py138CODE
LOWexamples/dictionary.py53CODE
LOWsrc/textual/screen.py408CODE
LOWsrc/textual/screen.py458CODE
LOWsrc/textual/screen.py828CODE
LOWsrc/textual/screen.py931CODE
LOWsrc/textual/screen.py1097CODE
LOWsrc/textual/screen.py1316CODE
LOWsrc/textual/screen.py1489CODE
LOWsrc/textual/screen.py1630CODE
LOWsrc/textual/screen.py1755CODE
LOWsrc/textual/screen.py1820CODE
LOWsrc/textual/_border.py326CODE
LOWsrc/textual/_border.py407CODE
LOWsrc/textual/message_pump.py562CODE
LOWsrc/textual/message_pump.py634CODE
LOWsrc/textual/message_pump.py707CODE
LOWsrc/textual/message_pump.py743CODE
LOWsrc/textual/_import_app.py35CODE
LOWsrc/textual/color.py514CODE
LOWsrc/textual/command.py347CODE
LOWsrc/textual/widget.py1217CODE
LOWsrc/textual/widget.py3951CODE
LOWsrc/textual/widget.py4545CODE
LOWsrc/textual/widget.py4695CODE
LOWsrc/textual/signal.py105CODE
LOWsrc/textual/style.py166CODE
LOWsrc/textual/_styles_cache.py267CODE
LOWsrc/textual/compose.py12CODE
LOWsrc/textual/_resolve.py18CODE
LOWsrc/textual/_resolve.py121CODE
LOWsrc/textual/_wrap.py32CODE
LOWsrc/textual/_loop.py48CODE
LOWsrc/textual/design.py91CODE
LOWsrc/textual/design.py248CODE
LOWsrc/textual/markup.py181CODE
LOWsrc/textual/markup.py323CODE
LOWsrc/textual/_arrange.py127CODE
LOWsrc/textual/_arrange.py204CODE
LOWsrc/textual/_compositor.py186CODE
LOWsrc/textual/_compositor.py324CODE
LOWsrc/textual/_compositor.py525CODE
LOWsrc/textual/_compositor.py768CODE
LOWsrc/textual/_compositor.py900CODE
LOWsrc/textual/_compositor.py1200CODE
LOWsrc/textual/_compositor.py548CODE
LOWsrc/textual/walk.py42CODE
LOWsrc/textual/content.py415CODE
LOWsrc/textual/content.py806CODE
LOWsrc/textual/content.py1452CODE
92 more matches not shown…
Modern Structural Boilerplate107 hits · 96 pts
SeverityFileLineSnippetContext
LOWtests/snapshot_tests/snapshot_apps/recompose.py50 def update_progress(self) -> None:STRING
LOWdocs/examples/guide/reactivity/recompose01.py23 def update_time(self) -> None:STRING
LOWdocs/examples/guide/reactivity/world_clock01.py38 def update_time(self) -> None:CODE
LOWdocs/examples/guide/reactivity/world_clock02.py38 def update_time(self) -> None:CODE
LOWdocs/examples/guide/reactivity/recompose02.py20 def update_time(self) -> None:STRING
LOWdocs/examples/guide/reactivity/world_clock03.py40 def update_time(self) -> None:CODE
LOWdocs/examples/guide/workers/weather04.py26 async def update_weather(self, city: str) -> None:CODE
LOWdocs/examples/guide/workers/weather05.py28 def update_weather(self, city: str) -> None:CODE
LOWdocs/examples/guide/workers/weather01.py23 async def update_weather(self, city: str) -> None:CODE
LOWdocs/examples/guide/workers/weather02.py23 async def update_weather(self, city: str) -> None:CODE
LOWdocs/examples/guide/workers/weather03.py25 async def update_weather(self, city: str) -> None:CODE
LOWdocs/examples/tutorial/stopwatch05.py19 def update_time(self) -> None:CODE
LOWdocs/examples/tutorial/stopwatch.py20 def update_time(self) -> None:CODE
LOWdocs/examples/tutorial/stopwatch06.py20 def update_time(self) -> None:CODE
LOWdocs/examples/how-to/inline02.py31 def update_clock(self) -> None:STRING
LOWdocs/examples/how-to/inline01.py24 def update_clock(self) -> None:STRING
LOWdocs/examples/widgets/clock.py24 def update_clock(self) -> None:STRING
LOWdocs/examples/widgets/selection_list_selected.py35 def update_selected_view(self) -> None:CODE
LOWexamples/clock.py24 def update_clock(self) -> None:STRING
LOWsrc/textual/screen.py583 def update_pointer_shape(self) -> None:CODE
LOWsrc/textual/screen.py1489 def _update_auto_focus(self) -> None:CODE
LOWsrc/textual/screen.py1564 def _update_tooltip(self, widget: Widget) -> None:CODE
LOWsrc/textual/screen.py1816 def _update_select(self) -> None:CODE
LOWsrc/textual/command.py62__all__ = [CODE
LOWsrc/textual/widget.py1055 def set_loading(self, loading: bool) -> None:CODE
LOWsrc/textual/widget.py1489 def update_styles(children: list[DOMNode]) -> None:CODE
LOWsrc/textual/widget.py2683 def _set_dirty(self, *regions: Region) -> None:CODE
LOWsrc/textual/widget.py2844 def set_scroll(self, x: float | None, y: float | None) -> None:CODE
LOWsrc/textual/widget.py4589 def set_focus(widget: Widget) -> None:CODE
LOWsrc/textual/theme.py523 def set_app_theme(name: str) -> None:CODE
LOWsrc/textual/_styles_cache.py74 def set_dirty(self, *regions: Region) -> None:CODE
LOWsrc/textual/compose.py9__all__ = ["compose"]CODE
LOWsrc/textual/_markup_playground.py103 def update_markup(self) -> None:STRING
LOWsrc/textual/await_complete.py38 def set_pre_await_callback(self, pre_await: CallbackType | None) -> None:CODE
LOWsrc/textual/clock.py63 def set_time(self, time: float) -> None:CODE
LOWsrc/textual/cache.py17__all__ = ["LRUCache", "FIFOCache"]CODE
LOWsrc/textual/__init__.py25__all__ = [CODE
LOWsrc/textual/message.py98 def _set_forwarded(self) -> None:CODE
LOWsrc/textual/types.py29__all__ = [CODE
LOWsrc/textual/markup.py13__all__ = ["MarkupError", "escape", "to_content"]CODE
LOWsrc/textual/_compositor.py1248 def update_widgets(self, widgets: set[Widget]) -> None:CODE
LOWsrc/textual/_win_sleep.py13__all__ = ["sleep"]CODE
LOWsrc/textual/content.py38__all__ = ["ContentType", "Content", "Span"]CODE
LOWsrc/textual/_cells.py5__all__ = ["cell_len", "cell_width_to_column_index"]CODE
LOWsrc/textual/app.py2504 def update_styles(self, node: DOMNode, animate: bool = True) -> None:CODE
LOWsrc/textual/app.py3150 def set_focus(self, widget: Widget | None, scroll_visible: bool = True) -> None:CODE
LOWsrc/textual/app.py3195 def _update_mouse_over(self, screen: Screen) -> None:CODE
LOWsrc/textual/app.py3916 def _set_pointer_shape(self, shape: str) -> None:CODE
LOWsrc/textual/app.py4011 def set_keymap(self, keymap: Keymap) -> None:CODE
LOWsrc/textual/app.py4027 def update_keymap(self, keymap: Keymap) -> None:CODE
LOWsrc/textual/dom.py1807 def update_node_styles(self, animate: bool = True) -> None:CODE
LOWsrc/textual/demo/game.py387 def update_clock(self) -> None:STRING
LOWsrc/textual/demo/widgets.py372 def update_log(self) -> None:STRING
LOWsrc/textual/demo/widgets.py384 def update_rich_log(self) -> None:STRING
LOWsrc/textual/demo/widgets.py570 def update_sparks(self) -> None:STRING
LOWsrc/textual/renderables/__init__.py1__all__ = ["bar", "blank", "digits", "gradient", "sparkline"]CODE
LOWsrc/textual/drivers/_input_reader.py3__all__ = ["InputReader"]CODE
LOWsrc/textual/drivers/linux_inline_driver.py193 async def update_size() -> None:CODE
LOWsrc/textual/css/styles.py1346 def _update_node(self, node: DOMNode) -> None:CODE
LOWsrc/textual/css/stylesheet.py211 def set_variables(self, variables: dict[str, str]) -> None:CODE
47 more matches not shown…
Excessive Try-Catch Wrapping69 hits · 64 pts
SeverityFileLineSnippetContext
LOWexamples/calculator.py151 except Exception:CODE
LOWexamples/dictionary.py45 except Exception:CODE
LOWexamples/code_browser.py74 except Exception:CODE
LOWsrc/textual/screen.py561 except Exception:CODE
LOWsrc/textual/screen.py1382 except Exception as error:CODE
LOWsrc/textual/worker.py375 except Exception as error:CODE
LOWsrc/textual/pilot.py488 except Exception:CODE
LOWsrc/textual/message_pump.py606 except Exception as error:CODE
LOWsrc/textual/message_pump.py646 except Exception as error:CODE
LOWsrc/textual/message_pump.py666 except Exception as error:CODE
LOWsrc/textual/message_pump.py690 except Exception as error:CODE
LOWsrc/textual/message_pump.py703 except Exception as error:CODE
LOWsrc/textual/message_pump.py895 except Exception:CODE
LOWsrc/textual/message_pump.py910 except Exception:CODE
LOWsrc/textual/message_pump.py917 except Exception as error:CODE
LOWsrc/textual/_import_app.py66 except Exception as error:CODE
LOWsrc/textual/command.py247 except Exception:CODE
LOWsrc/textual/command.py315 except Exception:CODE
MEDIUMsrc/textual/widget.py3903def __rich_repr__(self) -> rich.repr.Result:CODE
LOWsrc/textual/widget.py1311 except Exception:CODE
LOWsrc/textual/widget.py4724 except Exception as error:CODE
LOWsrc/textual/signal.py134 except Exception as error:CODE
LOWsrc/textual/style.py348 except Exception:CODE
LOWsrc/textual/compose.py84 except Exception as error:CODE
LOWsrc/textual/_markup_playground.py111 except Exception:STRING
LOWsrc/textual/_markup_playground.py131 except Exception as error:STRING
LOWsrc/textual/_markup_playground.py143 except Exception as error:STRING
LOWsrc/textual/timer.py194 except Exception as error:CODE
LOWsrc/textual/actions.py47 except Exception:CODE
LOWsrc/textual/_doc.py56 except Exception as error:CODE
LOWsrc/textual/_doc.py184 except Exception:CODE
LOWsrc/textual/markup.py318 except Exception as error:CODE
LOWsrc/textual/_win_sleep.py32except Exception:CODE
LOWsrc/textual/content.py1365 except Exception:CODE
LOWsrc/textual/_xterm_parser.py467 except Exception:CODE
LOWsrc/textual/geometry.py301 except Exception:CODE
LOWsrc/textual/geometry.py707 except Exception:CODE
LOWsrc/textual/app.py1755 except Exception as error:CODE
LOWsrc/textual/app.py2270 except Exception:CODE
LOWsrc/textual/app.py2398 except Exception as error:CODE
LOWsrc/textual/app.py3410 except Exception as error:CODE
LOWsrc/textual/app.py3451 except Exception:CODE
LOWsrc/textual/app.py3515 except Exception as error:CODE
LOWsrc/textual/app.py3865 except Exception as error:CODE
LOWsrc/textual/highlight.py163 except Exception:CODE
LOWsrc/textual/_debug.py25 except Exception:CODE
LOWsrc/textual/lazy.py120 except Exception:CODE
LOWsrc/textual/driver.py259 except Exception as error:CODE
LOWsrc/textual/_dispatch_key.py52 except Exception:CODE
LOWsrc/textual/_work_decorator.py137 except Exception:CODE
LOWsrc/textual/demo/home.py193 except Exception:CODE
LOWsrc/textual/demo/page.py73 except Exception:CODE
LOWsrc/textual/demo/widgets.py409 except Exception:STRING
LOWsrc/textual/drivers/_input_reader_windows.py29 except Exception:CODE
LOWsrc/textual/drivers/windows_driver.py118 except Exception as error:CODE
LOWsrc/textual/drivers/win32.py297 except Exception as error:CODE
LOWsrc/textual/drivers/linux_inline_driver.py301 except Exception as error:CODE
LOWsrc/textual/drivers/web_driver.py208 except Exception:CODE
LOWsrc/textual/drivers/web_driver.py283 except Exception as error:CODE
LOWsrc/textual/drivers/linux_driver.py371 except Exception:CODE
9 more matches not shown…
AI Structural Patterns38 hits · 30 pts
SeverityFileLineSnippetContext
LOWtests/utilities/render.py23CODE
LOWsrc/textual/widget.py2718CODE
LOWsrc/textual/widget.py2859CODE
LOWsrc/textual/widget.py2926CODE
LOWsrc/textual/widget.py2968CODE
LOWsrc/textual/widget.py3012CODE
LOWsrc/textual/widget.py3080CODE
LOWsrc/textual/widget.py3157CODE
LOWsrc/textual/widget.py3234CODE
LOWsrc/textual/widget.py3312CODE
LOWsrc/textual/widget.py3525CODE
LOWsrc/textual/widget.py3612CODE
LOWsrc/textual/widget.py3721CODE
LOWsrc/textual/widget.py3780CODE
LOWsrc/textual/containers.py273CODE
LOWsrc/textual/reactive.py142CODE
LOWsrc/textual/design.py47CODE
LOWsrc/textual/_doc.py63CODE
LOWsrc/textual/content.py620CODE
LOWsrc/textual/app.py1838CODE
LOWsrc/textual/scroll_view.py126CODE
LOWsrc/textual/scrollbar.py100CODE
LOWsrc/textual/validation.py219CODE
LOWsrc/textual/widgets/_select.py401CODE
LOWsrc/textual/widgets/_select.py450CODE
LOWsrc/textual/widgets/_static.py32CODE
LOWsrc/textual/widgets/_collapsible.py174CODE
LOWsrc/textual/widgets/_button.py331CODE
LOWsrc/textual/widgets/_progress_bar.py238CODE
LOWsrc/textual/widgets/_rich_log.py68CODE
LOWsrc/textual/widgets/_text_area.py584CODE
LOWsrc/textual/widgets/_text_area.py709CODE
LOWsrc/textual/widgets/_masked_input.py449CODE
LOWsrc/textual/widgets/_data_table.py683CODE
LOWsrc/textual/widgets/_label.py49CODE
LOWsrc/textual/widgets/_input.py354CODE
LOWsrc/textual/widgets/_sparkline.py56CODE
LOWsrc/textual/widgets/_toggle_button.py136CODE
Cross-Language Confusion6 hits · 28 pts
SeverityFileLineSnippetContext
HIGHtests/snapshot_tests/language_snippets.py485 if age >= 18 && isStudent {CODE
HIGHtests/snapshot_tests/language_snippets.py536if (age >= 18 && isStudent) {CODE
HIGHtests/snapshot_tests/language_snippets.py747 if age >= 18 && is_student {CODE
HIGHtests/snapshot_tests/language_snippets.py761 fruits.push("grape");CODE
HIGHtests/snapshot_tests/language_snippets.py865 if (age >= 18 && isStudent) {CODE
HIGHsrc/textual/layout.py112 Placements with adjusted region, or same instance if offset is null.STRING
Fake / Example Data16 hits · 16 pts
SeverityFileLineSnippetContext
LOWtests/snapshot_tests/language_snippets.py128> Lorem ipsumCODE
LOWtests/snapshot_tests/language_snippets.py205street = "123 Main St"CODE
LOWtests/snapshot_tests/language_snippets.py211name = "John Doe"CODE
LOWtests/snapshot_tests/language_snippets.py398 "name": "John Doe",CODE
LOWtests/snapshot_tests/language_snippets.py402 "street": "123 Main St",CODE
LOWtests/snapshot_tests/test_snapshots.py907 panel = Panel("lorem ipsum dolor sit amet lorem ipsum dolor sit amet")CODE
LOWtests/snapshot_tests/test_snapshots.py907 panel = Panel("lorem ipsum dolor sit amet lorem ipsum dolor sit amet")CODE
LOW…snapshot_tests/snapshot_apps/data_table_auto_height.py4LORUM_IPSUM = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et doCODE
LOW…snapshot_tests/snapshot_apps/data_table_auto_height.py4LORUM_IPSUM = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et doCODE
LOWdocs/blog/posts/release0-6-0.md79Use this widget in place of custom widgets you have yet to build when designing your UI. The colors are automatically cyCODE
LOWexamples/theme_sandbox.py51Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla facilisi. Sed euismod, nunc sit amet aliquam lacinia, nisCODE
LOWexamples/theme_sandbox.py51Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla facilisi. Sed euismod, nunc sit amet aliquam lacinia, nisCODE
LOWsrc/textual/_styles_cache.py50 ┃ Lorem ipsum dolor ┃◀┐ borderSTRING
LOWsrc/textual/widgets/_placeholder.py49_LOREM_IPSUM_PLACEHOLDER_TEXT = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam feugiat ac elit sit ametCODE
LOWsrc/textual/widgets/_placeholder.py49_LOREM_IPSUM_PLACEHOLDER_TEXT = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam feugiat ac elit sit ametCODE
LOWsrc/textual/widgets/_placeholder.py69 | text | Lorem Ipsum text. |STRING
Redundant / Tautological Comments8 hits · 12 pts
SeverityFileLineSnippetContext
LOWtests/test_box_model.py70 # Set width to auto-detectCOMMENT
LOWtests/test_box_model.py77 # Set width to 100 vw which should make it the width of the parentCOMMENT
LOWtests/test_box_model.py120 # Set height to 100 vw which should make it the height of the parentCOMMENT
LOWsrc/textual/_cells.py29 # Check if the click landed on a character within this part.COMMENT
LOWsrc/textual/_cells.py38 # Check if the click falls within the boundary of the expanded tab.COMMENT
LOWsrc/textual/app.py4778 # Check if we're in an environment that permits this kind ofCOMMENT
LOWsrc/textual/renderables/bar.py64 # Check if we start/end on a number that rounds to a .5COMMENT
LOWsrc/textual/css/stylesheet.py673 # Check if this can / should be animated. It doesn't suffice to checkCOMMENT
Self-Referential Comments4 hits · 12 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_query.py171 # Create a fake app to hold everything else.COMMENT
MEDIUMsrc/textual/_doc.py17# This module defines our "Custom Fences", powered by SuperFencesCOMMENT
MEDIUMsrc/textual/_compositor.py1175 # Create a crop region that surrounds all updates.COMMENT
MEDIUMsrc/textual/document/_history.py101 # Create a new batch (creating a "checkpoint").COMMENT
Over-Commented Block4 hits · 4 pts
SeverityFileLineSnippetContext
LOWtests/test_binding_inheritance.py401async def test_focused_child_widget_with_movement_bindings_no_inherit() -> None:COMMENT
LOWtests/test_binding_inheritance.py461COMMENT
LOWtests/test_binding_inheritance.py521#COMMENT
LOWsrc/textual/drivers/linux_driver.py201 os.kill(os.getpid(), signal.SIGSTOP)COMMENT
AI Slop Vocabulary1 hit · 1 pts
SeverityFileLineSnippetContext
MEDIUMsrc/textual/signal.py33 """A signal that a widget may subscribe to, in order to invoke callbacks when an associated event occurs."""STRING