AI Slop Code RIsk Monitor

reactive-python/reactpy

It's React, but in Python

20.1 Elevated pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for reactive-python/reactpy, a Python project with 8,149 GitHub stars. SynthScan examined 30,584 lines of code across 289 source files, recording 575 pattern matches distributed across 18 syntactic categories. The legacy adjusted pattern signal is 20.1 (Elevated pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

20.1
Adjusted Signal
20.1
Raw Pattern Score
100%
Time Factor
2026-10-11
Last Push
8.1K
Stars
Python
Language
30.6K
Lines of Code
289
Files
575
Pattern Hits
2026-10-12
Scan Date
0.03
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 48.5/100 · MEDIUM

Can maintainers explain intent, assumptions, and trade-offs? 417 finding(s).

Hallucinated Dependency & Supply Chain Risk 16.6/100 · LOW

Are imports declared and package/API names verified? 111 finding(s).

Agent Over-Engineering Ratio 50.7/100 · HIGH

Are wrappers, guards, and repeated structures necessary? 416 finding(s).

PR Review Velocity Impact 65.6/100 · HIGH

Which changes need focused human review? 575 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 0HIGH 9MEDIUM 16LOW 550

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 575 distinct pattern matches across 18 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Hyper-Verbose Identifiers365 hits · 330 pts
SeverityFileLineSnippetContext
LOW⚡tests/test_utils.py96def test_string_to_reactpy_empty_source(source):CODE
LOW⚡tests/test_utils.py101def test_string_to_reactpy_non_string_source(source):CODE
LOW⚡tests/test_utils.py107def test_string_to_reactpy_missing_tags(source):CODE
LOW⚡tests/test_utils.py222def test_string_to_reactpy_default_transforms(case):CODE
LOW⚡tests/test_utils.py226def test_string_to_reactpy_intercept_links():CODE
LOW⚡tests/test_utils.py243def test_string_to_reactpy_custom_transform():CODE
LOWtests/test_utils.py276def test_non_html_tag_behavior():CODE
LOWtests/test_utils.py412def test_reactpy_to_string_error():CODE
LOWtests/conftest.py56def assert_no_logged_exceptions():CODE
LOWtests/test_html.py10async def test_script_re_run_on_content_change(display: DisplayFixture):CODE
LOW⚡tests/test_html.py88def test_script_may_only_have_one_child():STRING
LOW⚡tests/test_html.py95def test_child_of_script_must_be_string():STRING
LOW⚡tests/test_html.py100def test_script_has_no_event_handlers():STRING
LOWtests/test_html.py119def test_fragment_can_have_no_attributes():STRING
LOWtests/test_widgets.py55async def test_use_linked_inputs_on_change(display: DisplayFixture):STRING
LOWtests/test_widgets.py83async def test_use_linked_inputs_on_change_with_cast(display: DisplayFixture):STRING
LOWtests/test_widgets.py110async def test_use_linked_inputs_ignore_empty(display: DisplayFixture):STRING
LOWtests/test_config.py26def test_reactpy_debug_toggle():CODE
LOWtests/test_option.py16def test_option_from_os_environ():CODE
LOWtests/test_option.py79def test_cannot_subscribe_immutable_option():CODE
LOWtests/test_option.py124def test_option_parent_child_must_be_mutable():CODE
LOWtests/test_option.py133def test_no_default_or_parent():CODE
LOWtests/test_client.py56async def test_style_can_be_changed(display: DisplayFixture):CODE
LOWtests/test_client.py99async def test_slow_server_response_on_input_change(display: DisplayFixture):CODE
LOWtests/test_build_py_wheel.py9def _load_build_py_wheel_module():CODE
LOWtests/test_build_py_wheel.py31def test_hatch_build_command_uses_python_module_when_available(tmp_path):CODE
LOWtests/test_build_py_wheel.py52def test_build_packaged_static_assets_runs_javascript_build(tmp_path):CODE
LOWtests/test_build_py_wheel.py78def test_main_skips_all_work_when_skip_env_var_is_set(tmp_path):CODE
LOWtests/test_build_py_wheel.py101def test_main_builds_static_assets_before_embedded_wheel(tmp_path):CODE
LOW⚡tests/test_testing.py14def test_assert_reactpy_logged_does_not_suppress_errors():CODE
LOW⚡tests/test_testing.py21def test_assert_reactpy_logged_message():CODE
LOW⚡tests/test_testing.py29def test_assert_reactpy_logged_error():CODE
LOWtests/test_testing.py90def test_assert_reactpy_logged_assertion_error_message():CODE
LOWtests/test_testing.py104def test_assert_reactpy_logged_ignores_level():CODE
LOWtests/test_testing.py115def test_assert_reactpy_did_not_log():CODE
LOW⚡tests/test_testing.py139async def test_simple_display_fixture(browser):CODE
LOW⚡tests/test_testing.py145def test_list_logged_exceptions():CODE
LOW⚡tests/test_testing.py161async def test_hotswap_update_on_change(display: DisplayFixture):CODE
LOWtests/test_testing.py212async def test_backend_server_failure():CODE
LOWtests/test_testing.py232async def test_display_fixture_headless_logic():CODE
LOWtests/test_testing.py266async def test_display_fixture_internal_backend():CODE
LOWtests/test_pyscript/test_components.py71async def test_root_component_error_hides_component(display: DisplayFixture):CODE
LOWtests/test_pyscript/test_utils.py49def test_pyscript_component_html_renders_executor_markup():CODE
LOWtests/test_pyscript/test_utils.py83def test_pyscript_setup_html_renders_setup_assets():CODE
LOWtests/test_pyscript/test_utils.py109def test_extend_pyscript_config():CODE
LOWtests/test_pyscript/test_utils.py134def test_extend_pyscript_config_string_values():CODE
LOWtests/test_pyscript/test_utils.py160def test_reactpy_pkg_string_prefers_packaged_wheel():CODE
LOWtests/test_pyscript/test_utils.py182def test_reactpy_pkg_string_rebuilds_source_checkout_when_wheel_is_stale():CODE
LOWtests/test_pyscript/test_utils.py215def test_reactpy_pkg_string_reconstructs_installed_wheel_when_needed():CODE
LOWtests/test_pyscript/test_utils.py238def test_ensure_local_reactpy_wheel_keeps_current_source_checkout_wheel():CODE
LOWtests/test_pyscript/test_utils.py263def test_ensure_local_reactpy_wheel_replaces_stale_packaged_wheel_after_build():CODE
LOWtests/test_pyscript/test_utils.py295def test_ensure_local_reactpy_wheel_copies_built_wheel_when_packaged_copy_missing():CODE
LOWtests/test_pyscript/test_utils.py326def test_ensure_local_reactpy_wheel_raises_when_source_build_fails():CODE
LOWtests/test_pyscript/test_utils.py345def test_ensure_local_reactpy_wheel_raises_when_installed_wheel_is_missing():CODE
LOWtests/test_pyscript/test_utils.py364def test_find_current_reactpy_wheel_returns_none_for_missing_directory(tmp_path):CODE
LOWtests/test_pyscript/test_utils.py368def test_source_checkout_exists_uses_repo_root_pyproject(tmp_path, monkeypatch):CODE
LOWtests/test_pyscript/test_utils.py380def test_find_current_reactpy_wheel_selects_matching_local_version(tmp_path):CODE
LOWtests/test_pyscript/test_utils.py403def test_wheel_is_stale_for_source_when_pyproject_changes(tmp_path):CODE
LOWtests/test_pyscript/test_utils.py425def test_wheel_is_stale_for_source_ignores_cache_and_packaged_wheels(tmp_path):CODE
LOWtests/test_pyscript/test_utils.py453def test_wheel_is_not_stale_when_only_ignored_or_older_files_exist(tmp_path):CODE
305 more matches not shown…
Unused Imports101 hits · 96 pts
SeverityFileLineSnippetContext
LOWtests/conftest.py1CODE
LOWtests/sample.py1CODE
LOWtests/test_build_py_wheel.py1CODE
LOWtests/tooling/layout.py1CODE
LOWtests/tooling/aio.py1CODE
LOWtests/tooling/select.py1CODE
LOWtests/test_asgi/test_init.py18CODE
LOWtests/test_core/test_event_inspect.py7CODE
LOWdocs/docs_app/examples.py1CODE
LOWdocs/source/_exts/reactpy_example.py1CODE
LOWdocs/source/_exts/custom_autosectionlabel.py7CODE
LOWdocs/source/_exts/autogen_api_docs.py1CODE
LOWsrc/reactpy/transforms.py1CODE
LOWsrc/reactpy/config.py6CODE
LOWsrc/reactpy/__init__.py1CODE
LOWsrc/reactpy/__init__.py1CODE
LOWsrc/reactpy/__init__.py1CODE
LOWsrc/reactpy/__init__.py1CODE
LOWsrc/reactpy/__init__.py1CODE
LOWsrc/reactpy/__init__.py1CODE
LOWsrc/reactpy/__init__.py2CODE
LOWsrc/reactpy/__init__.py2CODE
LOWsrc/reactpy/__init__.py3CODE
LOWsrc/reactpy/__init__.py4CODE
LOWsrc/reactpy/__init__.py5CODE
LOWsrc/reactpy/__init__.py6CODE
LOWsrc/reactpy/__init__.py6CODE
LOWsrc/reactpy/__init__.py6CODE
LOWsrc/reactpy/__init__.py6CODE
LOWsrc/reactpy/__init__.py6CODE
LOWsrc/reactpy/__init__.py6CODE
LOWsrc/reactpy/__init__.py6CODE
LOWsrc/reactpy/__init__.py6CODE
LOWsrc/reactpy/__init__.py6CODE
LOWsrc/reactpy/__init__.py6CODE
LOWsrc/reactpy/__init__.py6CODE
LOWsrc/reactpy/__init__.py6CODE
LOWsrc/reactpy/__init__.py6CODE
LOWsrc/reactpy/__init__.py21CODE
LOWsrc/reactpy/__init__.py22CODE
LOWsrc/reactpy/__init__.py23CODE
LOWsrc/reactpy/__init__.py23CODE
LOWsrc/reactpy/__init__.py23CODE
LOWsrc/reactpy/types.py1CODE
LOWsrc/reactpy/widgets.py1CODE
LOWsrc/reactpy/utils.py1CODE
LOWsrc/reactpy/_html.py1CODE
LOWsrc/reactpy/_option.py1CODE
LOWsrc/reactpy/templatetags/__init__.py1CODE
LOWsrc/reactpy/_console/rewrite_props.py1CODE
LOWsrc/reactpy/_console/ast_utils.py2CODE
LOWsrc/reactpy/_console/rewrite_keys.py1CODE
LOWsrc/reactpy/core/hooks.py1CODE
LOWsrc/reactpy/core/hooks.py6CODE
LOWsrc/reactpy/core/_event_inspect.py6CODE
LOWsrc/reactpy/core/events.py1CODE
LOWsrc/reactpy/core/layout.py1CODE
LOWsrc/reactpy/core/_life_cycle_hook.py1CODE
LOWsrc/reactpy/core/serve.py1CODE
LOWsrc/reactpy/core/vdom.py2CODE
41 more matches not shown…
Decorative Section Separators8 hits · 33 pts
SeverityFileLineSnippetContext
MEDIUM⚡tests/test_core/test_event_inspect.py23# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_core/test_event_inspect.py26# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_core/test_event_inspect.py181# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_core/test_event_inspect.py183# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_core/test_event_inspect.py361# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_core/test_event_inspect.py364# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_core/test_event_inspect.py421# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_core/test_event_inspect.py423# ---------------------------------------------------------------------------COMMENT
Modern Structural Boilerplate19 hits · 20 pts
SeverityFileLineSnippetContext
LOWtests/tooling/layout.py14logger = logging.getLogger(__name__)CODE
LOWdocs/docs_app/examples.py148 def set_callback(self, function: Callable[[str], None]) -> None:CODE
LOWdocs/source/_exts/custom_autosectionlabel.py20logger = logging.getLogger(__name__)CODE
LOWsrc/reactpy/logging.py31def _set_debug_level(debug: bool) -> None:CODE
LOWsrc/reactpy/__init__.py28__all__ = [CODE
LOWsrc/reactpy/_html.py16__all__ = ["h", "html"]CODE
LOWsrc/reactpy/_option.py89 def set_current(self, new: Any) -> None:CODE
LOWsrc/reactpy/templatetags/__init__.py3__all__ = ["ReactPyJinja"]CODE
LOWsrc/reactpy/core/hooks.py39__all__ = [CODE
LOWsrc/reactpy/core/_life_cycle_hook.py22logger = logging.getLogger(__name__)CODE
LOWsrc/reactpy/core/_life_cycle_hook.py204 def set_context_provider(self, provider: ContextProvider[Any]) -> None:CODE
LOW⚡src/reactpy/core/_life_cycle_hook.py254 def set_current(self) -> None:CODE
LOWsrc/reactpy/web/__init__.py8__all__ = [CODE
LOWsrc/reactpy/web/module.py16__all__ = [CODE
LOWsrc/reactpy/reactjs/__init__.py20__all__ = [CODE
LOWsrc/reactpy/reactjs/utils.py13logger = logging.getLogger(__name__)CODE
LOWsrc/reactpy/reactjs/module.py19logger = logging.getLogger(__name__)CODE
LOWsrc/reactpy/testing/__init__.py17__all__ = [CODE
LOWsrc/reactpy/executors/utils.py18logger = logging.getLogger(__name__)CODE
Deep Nesting19 hits · 19 pts
SeverityFileLineSnippetContext
LOWtests/conftest.py56CODE
LOWtests/test_reactjs/test_utils.py171CODE
LOWtests/test_reactjs/test_utils.py225CODE
LOWsrc/reactpy/_console/rewrite_props.py95CODE
LOWsrc/reactpy/_console/ast_utils.py97CODE
LOWsrc/reactpy/core/_event_inspect.py22CODE
LOWsrc/reactpy/core/layout.py877CODE
LOWsrc/reactpy/core/layout.py152CODE
LOWsrc/reactpy/core/layout.py274CODE
LOWsrc/reactpy/core/layout.py509CODE
LOWsrc/reactpy/core/vdom.py228CODE
LOWsrc/reactpy/core/vdom.py268CODE
LOWsrc/reactpy/reactjs/utils.py71CODE
LOWsrc/reactpy/reactjs/utils.py160CODE
LOWsrc/reactpy/testing/backend.py114CODE
LOWsrc/reactpy/testing/logs.py16CODE
LOWsrc/reactpy/testing/logs.py92CODE
LOWsrc/reactpy/executors/pyscript/utils.py234CODE
LOWsrc/reactpy/executors/pyscript/layout_handler.py48CODE
Self-Referential Comments6 hits · 18 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_core/test_layout.py1704 # Define a target and a handlerCOMMENT
MEDIUMsrc/reactpy/_console/rewrite_props.py76 # Create a copy of the value to avoid modifying the originalCOMMENT
MEDIUMsrc/reactpy/executors/asgi/middleware.py231 # Create a connection object by analyzing the websocket's query string.COMMENT
MEDIUMsrc/reactpy/executors/pyscript/utils.py68 # Create a valid PyScript executor by replacing the template valuesCOMMENT
MEDIUMsrc/reactpy/executors/pyscript/component_template.py24# Create a task to run the user's component workspaceCOMMENT
MEDIUMsrc/reactpy/executors/pyscript/layout_handler.py37 # Create a new container to render the layout intoCOMMENT
Excessive Try-Catch Wrapping14 hits · 16 pts
SeverityFileLineSnippetContext
LOW⚡tests/test_testing.py135 except Exception:CODE
LOW⚡tests/test_testing.py153 except Exception as error:CODE
LOWdocs/docs_app/examples.py108 except Exception:CODE
LOWsrc/reactpy/utils.py128 except Exception as e:CODE
LOWsrc/reactpy/core/layout.py184 except Exception:CODE
LOWsrc/reactpy/core/layout.py341 except Exception as error:CODE
LOWsrc/reactpy/core/layout.py374 except Exception as e: # nocovCODE
LOWsrc/reactpy/core/_life_cycle_hook.py171 except Exception:CODE
LOW⚡src/reactpy/core/_life_cycle_hook.py249 except Exception:CODE
MEDIUMsrc/reactpy/core/_life_cycle_hook.py32def get(self) -> list[LifeCycleHook]:CODE
LOWsrc/reactpy/core/serve.py50 except Exception: # nocovCODE
LOWsrc/reactpy/testing/logs.py34 except Exception:CODE
LOWsrc/reactpy/executors/asgi/middleware.py248 except Exception as error:CODE
LOWsrc/build_scripts/delete_old_coverage.py20 except Exception as e:CODE
Redundant / Tautological Comments9 hits · 16 pts
SeverityFileLineSnippetContext
LOW⚡tests/test_utils.py235 # Check if the result equals expected when removing `eventHandlers` from the result dictCOMMENT
LOW⚡tests/test_reactjs/test_modules_from_npm.py80 # Check if it has the correct class for primary variantCOMMENT
LOW⚡tests/test_reactjs/test_modules_from_npm.py85 # Check if missing import map was loggedCOMMENT
LOWtests/test_reactjs/test_modules_from_npm.py32 # Check if it has the correct class for primary variantCOMMENT
LOWtests/test_reactjs/test_modules_from_npm.py57 # Check if it has the correct class for primary variantCOMMENT
LOWtests/test_reactjs/test_modules_from_npm.py382 # Check if the button is visible and has correct textCOMMENT
LOWtests/test_reactjs/test_modules_from_npm.py389 # Check if Card is rendered (it usually has MuiCard-root class)COMMENT
LOWsrc/reactpy/_console/rewrite_props.py48 # Check if the props need to be rewrittenCOMMENT
LOWsrc/reactpy/core/events.py127 # Check if our `preventDefault` or `stopPropagation` methods were calledCOMMENT
Empty Error Handlers3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHtests/tooling/select.py64except StopIteration:CODE
HIGHsrc/reactpy/_option.py156except AttributeError:CODE
HIGHsrc/reactpy/testing/logs.py81except LogAssertionError:CODE
Cross-File Repetition3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHtests/test_pyscript/test_components.py0override for the display fixture that uses reactpymiddleware.STRING
HIGHtests/test_asgi/test_pyscript.py0override for the display fixture that uses reactpymiddleware.STRING
HIGHtests/test_asgi/test_middleware.py0override for the display fixture that uses reactpymiddleware.STRING
Over-Commented Block9 hits · 9 pts
SeverityFileLineSnippetContext
LOWdocs/source/conf.py241COMMENT
LOWdocs/source/conf.py261#COMMENT
LOWdocs/source/conf.py301# Bibliographic Dublin Core info.COMMENT
LOW.github/workflows/codeql-analysis.yml1# For most projects, this workflow file will not need changing; you simply needCOMMENT
LOWsrc/js/packages/@reactpy/client/src/components.tsx241 >(null);COMMENT
LOWsrc/js/packages/@reactpy/client/src/components.tsx261 // cannot reliably distinguish a server snapshot from before someCOMMENT
LOWsrc/js/packages/@reactpy/client/src/components.tsx281 // user types faster than the server can ack.COMMENT
LOWsrc/js/packages/@reactpy/client/src/components.tsx341 wrapped = debounceHandler(wrapped, handlerDebounce as number);COMMENT
LOWsrc/js/packages/@reactpy/client/src/components.tsx381 // after the DOM has been updated and can be trusted, but weCOMMENT
Fake / Example Data8 hits · 8 pts
SeverityFileLineSnippetContext
LOWtests/test_web/test_module.py321 "placeholder": "Username",CODE
LOWtests/test_web/test_module.py330 "placeholder": "Recipient's username",CODE
LOWtests/test_web/test_module.py378 "placeholder": "Username",CODE
LOWtests/test_web/test_module.py387 "placeholder": "Recipient's username",CODE
LOW…activity/state-as-a-snapshot/_examples/send_message.py26 "placeholder": "Your message here...",CODE
LOW…ty/state-as-a-snapshot/_examples/print_chat_message.py35 "placeholder": "Your message...",CODE
LOWsrc/reactpy/transforms.py212 "placeholder",CODE
LOWsrc/reactpy/types.py709 "placeholder": str,CODE
Cross-Language Confusion2 hits · 8 pts
SeverityFileLineSnippetContext
HIGHtests/test_asgi/test_standalone.py133 window.__reactpySockets.push(this);STRING
HIGHsrc/reactpy/core/events.py153 and not getattr(other, attr, undefined) == getattr(self, attr)CODE
Docstring Block Structure1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHsrc/reactpy/reactjs/module.py186 Return an import map script tag for ReactJS or Preact. Parameters: framework: The frameworkSTRING
AI Structural Patterns4 hits · 4 pts
SeverityFileLineSnippetContext
LOWsrc/reactpy/reactjs/__init__.py107CODE
LOWsrc/reactpy/reactjs/__init__.py122CODE
LOWsrc/reactpy/reactjs/__init__.py136CODE
LOWsrc/reactpy/executors/asgi/pyscript.py26CODE
Modern AI Meta-Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_core/test_events.py769 # This is hard to orchestrate with exact timing in an integration test without hooks into the internal loop.COMMENT
AI Slop Vocabulary1 hit · 2 pts
SeverityFileLineSnippetContext
LOWtests/test_testing.py220 # Mock serve to just return (or sleep briefly then return)COMMENT
Overly Generic Function Names2 hits · 1 pts
SeverityFileLineSnippetContext
LOWtests/test_console/test_rewrite_keys.py67 def my_function():STRING
LOWtests/test_console/test_rewrite_keys.py72 def my_function():STRING