It's React, but in Python
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.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 417 finding(s).
Are imports declared and package/API names verified? 111 finding(s).
Are wrappers, guards, and repeated structures necessary? 416 finding(s).
Which changes need focused human review? 575 finding(s).
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.
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.
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.
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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/test_utils.py | 96 | def test_string_to_reactpy_empty_source(source): | CODE |
| LOW⚡ | tests/test_utils.py | 101 | def test_string_to_reactpy_non_string_source(source): | CODE |
| LOW⚡ | tests/test_utils.py | 107 | def test_string_to_reactpy_missing_tags(source): | CODE |
| LOW⚡ | tests/test_utils.py | 222 | def test_string_to_reactpy_default_transforms(case): | CODE |
| LOW⚡ | tests/test_utils.py | 226 | def test_string_to_reactpy_intercept_links(): | CODE |
| LOW⚡ | tests/test_utils.py | 243 | def test_string_to_reactpy_custom_transform(): | CODE |
| LOW | tests/test_utils.py | 276 | def test_non_html_tag_behavior(): | CODE |
| LOW | tests/test_utils.py | 412 | def test_reactpy_to_string_error(): | CODE |
| LOW | tests/conftest.py | 56 | def assert_no_logged_exceptions(): | CODE |
| LOW | tests/test_html.py | 10 | async def test_script_re_run_on_content_change(display: DisplayFixture): | CODE |
| LOW⚡ | tests/test_html.py | 88 | def test_script_may_only_have_one_child(): | STRING |
| LOW⚡ | tests/test_html.py | 95 | def test_child_of_script_must_be_string(): | STRING |
| LOW⚡ | tests/test_html.py | 100 | def test_script_has_no_event_handlers(): | STRING |
| LOW | tests/test_html.py | 119 | def test_fragment_can_have_no_attributes(): | STRING |
| LOW | tests/test_widgets.py | 55 | async def test_use_linked_inputs_on_change(display: DisplayFixture): | STRING |
| LOW | tests/test_widgets.py | 83 | async def test_use_linked_inputs_on_change_with_cast(display: DisplayFixture): | STRING |
| LOW | tests/test_widgets.py | 110 | async def test_use_linked_inputs_ignore_empty(display: DisplayFixture): | STRING |
| LOW | tests/test_config.py | 26 | def test_reactpy_debug_toggle(): | CODE |
| LOW | tests/test_option.py | 16 | def test_option_from_os_environ(): | CODE |
| LOW | tests/test_option.py | 79 | def test_cannot_subscribe_immutable_option(): | CODE |
| LOW | tests/test_option.py | 124 | def test_option_parent_child_must_be_mutable(): | CODE |
| LOW | tests/test_option.py | 133 | def test_no_default_or_parent(): | CODE |
| LOW | tests/test_client.py | 56 | async def test_style_can_be_changed(display: DisplayFixture): | CODE |
| LOW | tests/test_client.py | 99 | async def test_slow_server_response_on_input_change(display: DisplayFixture): | CODE |
| LOW | tests/test_build_py_wheel.py | 9 | def _load_build_py_wheel_module(): | CODE |
| LOW | tests/test_build_py_wheel.py | 31 | def test_hatch_build_command_uses_python_module_when_available(tmp_path): | CODE |
| LOW | tests/test_build_py_wheel.py | 52 | def test_build_packaged_static_assets_runs_javascript_build(tmp_path): | CODE |
| LOW | tests/test_build_py_wheel.py | 78 | def test_main_skips_all_work_when_skip_env_var_is_set(tmp_path): | CODE |
| LOW | tests/test_build_py_wheel.py | 101 | def test_main_builds_static_assets_before_embedded_wheel(tmp_path): | CODE |
| LOW⚡ | tests/test_testing.py | 14 | def test_assert_reactpy_logged_does_not_suppress_errors(): | CODE |
| LOW⚡ | tests/test_testing.py | 21 | def test_assert_reactpy_logged_message(): | CODE |
| LOW⚡ | tests/test_testing.py | 29 | def test_assert_reactpy_logged_error(): | CODE |
| LOW | tests/test_testing.py | 90 | def test_assert_reactpy_logged_assertion_error_message(): | CODE |
| LOW | tests/test_testing.py | 104 | def test_assert_reactpy_logged_ignores_level(): | CODE |
| LOW | tests/test_testing.py | 115 | def test_assert_reactpy_did_not_log(): | CODE |
| LOW⚡ | tests/test_testing.py | 139 | async def test_simple_display_fixture(browser): | CODE |
| LOW⚡ | tests/test_testing.py | 145 | def test_list_logged_exceptions(): | CODE |
| LOW⚡ | tests/test_testing.py | 161 | async def test_hotswap_update_on_change(display: DisplayFixture): | CODE |
| LOW | tests/test_testing.py | 212 | async def test_backend_server_failure(): | CODE |
| LOW | tests/test_testing.py | 232 | async def test_display_fixture_headless_logic(): | CODE |
| LOW | tests/test_testing.py | 266 | async def test_display_fixture_internal_backend(): | CODE |
| LOW | tests/test_pyscript/test_components.py | 71 | async def test_root_component_error_hides_component(display: DisplayFixture): | CODE |
| LOW | tests/test_pyscript/test_utils.py | 49 | def test_pyscript_component_html_renders_executor_markup(): | CODE |
| LOW | tests/test_pyscript/test_utils.py | 83 | def test_pyscript_setup_html_renders_setup_assets(): | CODE |
| LOW | tests/test_pyscript/test_utils.py | 109 | def test_extend_pyscript_config(): | CODE |
| LOW | tests/test_pyscript/test_utils.py | 134 | def test_extend_pyscript_config_string_values(): | CODE |
| LOW | tests/test_pyscript/test_utils.py | 160 | def test_reactpy_pkg_string_prefers_packaged_wheel(): | CODE |
| LOW | tests/test_pyscript/test_utils.py | 182 | def test_reactpy_pkg_string_rebuilds_source_checkout_when_wheel_is_stale(): | CODE |
| LOW | tests/test_pyscript/test_utils.py | 215 | def test_reactpy_pkg_string_reconstructs_installed_wheel_when_needed(): | CODE |
| LOW | tests/test_pyscript/test_utils.py | 238 | def test_ensure_local_reactpy_wheel_keeps_current_source_checkout_wheel(): | CODE |
| LOW | tests/test_pyscript/test_utils.py | 263 | def test_ensure_local_reactpy_wheel_replaces_stale_packaged_wheel_after_build(): | CODE |
| LOW | tests/test_pyscript/test_utils.py | 295 | def test_ensure_local_reactpy_wheel_copies_built_wheel_when_packaged_copy_missing(): | CODE |
| LOW | tests/test_pyscript/test_utils.py | 326 | def test_ensure_local_reactpy_wheel_raises_when_source_build_fails(): | CODE |
| LOW | tests/test_pyscript/test_utils.py | 345 | def test_ensure_local_reactpy_wheel_raises_when_installed_wheel_is_missing(): | CODE |
| LOW | tests/test_pyscript/test_utils.py | 364 | def test_find_current_reactpy_wheel_returns_none_for_missing_directory(tmp_path): | CODE |
| LOW | tests/test_pyscript/test_utils.py | 368 | def test_source_checkout_exists_uses_repo_root_pyproject(tmp_path, monkeypatch): | CODE |
| LOW | tests/test_pyscript/test_utils.py | 380 | def test_find_current_reactpy_wheel_selects_matching_local_version(tmp_path): | CODE |
| LOW | tests/test_pyscript/test_utils.py | 403 | def test_wheel_is_stale_for_source_when_pyproject_changes(tmp_path): | CODE |
| LOW | tests/test_pyscript/test_utils.py | 425 | def test_wheel_is_stale_for_source_ignores_cache_and_packaged_wheels(tmp_path): | CODE |
| LOW | tests/test_pyscript/test_utils.py | 453 | def test_wheel_is_not_stale_when_only_ignored_or_older_files_exist(tmp_path): | CODE |
| 305 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/conftest.py | 1 | CODE | |
| LOW | tests/sample.py | 1 | CODE | |
| LOW | tests/test_build_py_wheel.py | 1 | CODE | |
| LOW | tests/tooling/layout.py | 1 | CODE | |
| LOW | tests/tooling/aio.py | 1 | CODE | |
| LOW | tests/tooling/select.py | 1 | CODE | |
| LOW | tests/test_asgi/test_init.py | 18 | CODE | |
| LOW | tests/test_core/test_event_inspect.py | 7 | CODE | |
| LOW | docs/docs_app/examples.py | 1 | CODE | |
| LOW | docs/source/_exts/reactpy_example.py | 1 | CODE | |
| LOW | docs/source/_exts/custom_autosectionlabel.py | 7 | CODE | |
| LOW | docs/source/_exts/autogen_api_docs.py | 1 | CODE | |
| LOW | src/reactpy/transforms.py | 1 | CODE | |
| LOW | src/reactpy/config.py | 6 | CODE | |
| LOW | src/reactpy/__init__.py | 1 | CODE | |
| LOW | src/reactpy/__init__.py | 1 | CODE | |
| LOW | src/reactpy/__init__.py | 1 | CODE | |
| LOW | src/reactpy/__init__.py | 1 | CODE | |
| LOW | src/reactpy/__init__.py | 1 | CODE | |
| LOW | src/reactpy/__init__.py | 1 | CODE | |
| LOW | src/reactpy/__init__.py | 2 | CODE | |
| LOW | src/reactpy/__init__.py | 2 | CODE | |
| LOW | src/reactpy/__init__.py | 3 | CODE | |
| LOW | src/reactpy/__init__.py | 4 | CODE | |
| LOW | src/reactpy/__init__.py | 5 | CODE | |
| LOW | src/reactpy/__init__.py | 6 | CODE | |
| LOW | src/reactpy/__init__.py | 6 | CODE | |
| LOW | src/reactpy/__init__.py | 6 | CODE | |
| LOW | src/reactpy/__init__.py | 6 | CODE | |
| LOW | src/reactpy/__init__.py | 6 | CODE | |
| LOW | src/reactpy/__init__.py | 6 | CODE | |
| LOW | src/reactpy/__init__.py | 6 | CODE | |
| LOW | src/reactpy/__init__.py | 6 | CODE | |
| LOW | src/reactpy/__init__.py | 6 | CODE | |
| LOW | src/reactpy/__init__.py | 6 | CODE | |
| LOW | src/reactpy/__init__.py | 6 | CODE | |
| LOW | src/reactpy/__init__.py | 6 | CODE | |
| LOW | src/reactpy/__init__.py | 6 | CODE | |
| LOW | src/reactpy/__init__.py | 21 | CODE | |
| LOW | src/reactpy/__init__.py | 22 | CODE | |
| LOW | src/reactpy/__init__.py | 23 | CODE | |
| LOW | src/reactpy/__init__.py | 23 | CODE | |
| LOW | src/reactpy/__init__.py | 23 | CODE | |
| LOW | src/reactpy/types.py | 1 | CODE | |
| LOW | src/reactpy/widgets.py | 1 | CODE | |
| LOW | src/reactpy/utils.py | 1 | CODE | |
| LOW | src/reactpy/_html.py | 1 | CODE | |
| LOW | src/reactpy/_option.py | 1 | CODE | |
| LOW | src/reactpy/templatetags/__init__.py | 1 | CODE | |
| LOW | src/reactpy/_console/rewrite_props.py | 1 | CODE | |
| LOW | src/reactpy/_console/ast_utils.py | 2 | CODE | |
| LOW | src/reactpy/_console/rewrite_keys.py | 1 | CODE | |
| LOW | src/reactpy/core/hooks.py | 1 | CODE | |
| LOW | src/reactpy/core/hooks.py | 6 | CODE | |
| LOW | src/reactpy/core/_event_inspect.py | 6 | CODE | |
| LOW | src/reactpy/core/events.py | 1 | CODE | |
| LOW | src/reactpy/core/layout.py | 1 | CODE | |
| LOW | src/reactpy/core/_life_cycle_hook.py | 1 | CODE | |
| LOW | src/reactpy/core/serve.py | 1 | CODE | |
| LOW | src/reactpy/core/vdom.py | 2 | CODE | |
| 41 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tests/test_core/test_event_inspect.py | 23 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_core/test_event_inspect.py | 26 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_core/test_event_inspect.py | 181 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_core/test_event_inspect.py | 183 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_core/test_event_inspect.py | 361 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_core/test_event_inspect.py | 364 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_core/test_event_inspect.py | 421 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_core/test_event_inspect.py | 423 | # --------------------------------------------------------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/tooling/layout.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | docs/docs_app/examples.py | 148 | def set_callback(self, function: Callable[[str], None]) -> None: | CODE |
| LOW | docs/source/_exts/custom_autosectionlabel.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/reactpy/logging.py | 31 | def _set_debug_level(debug: bool) -> None: | CODE |
| LOW | src/reactpy/__init__.py | 28 | __all__ = [ | CODE |
| LOW | src/reactpy/_html.py | 16 | __all__ = ["h", "html"] | CODE |
| LOW | src/reactpy/_option.py | 89 | def set_current(self, new: Any) -> None: | CODE |
| LOW | src/reactpy/templatetags/__init__.py | 3 | __all__ = ["ReactPyJinja"] | CODE |
| LOW | src/reactpy/core/hooks.py | 39 | __all__ = [ | CODE |
| LOW | src/reactpy/core/_life_cycle_hook.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/reactpy/core/_life_cycle_hook.py | 204 | def set_context_provider(self, provider: ContextProvider[Any]) -> None: | CODE |
| LOW⚡ | src/reactpy/core/_life_cycle_hook.py | 254 | def set_current(self) -> None: | CODE |
| LOW | src/reactpy/web/__init__.py | 8 | __all__ = [ | CODE |
| LOW | src/reactpy/web/module.py | 16 | __all__ = [ | CODE |
| LOW | src/reactpy/reactjs/__init__.py | 20 | __all__ = [ | CODE |
| LOW | src/reactpy/reactjs/utils.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/reactpy/reactjs/module.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/reactpy/testing/__init__.py | 17 | __all__ = [ | CODE |
| LOW | src/reactpy/executors/utils.py | 18 | logger = logging.getLogger(__name__) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/conftest.py | 56 | CODE | |
| LOW | tests/test_reactjs/test_utils.py | 171 | CODE | |
| LOW | tests/test_reactjs/test_utils.py | 225 | CODE | |
| LOW | src/reactpy/_console/rewrite_props.py | 95 | CODE | |
| LOW | src/reactpy/_console/ast_utils.py | 97 | CODE | |
| LOW | src/reactpy/core/_event_inspect.py | 22 | CODE | |
| LOW | src/reactpy/core/layout.py | 877 | CODE | |
| LOW | src/reactpy/core/layout.py | 152 | CODE | |
| LOW | src/reactpy/core/layout.py | 274 | CODE | |
| LOW | src/reactpy/core/layout.py | 509 | CODE | |
| LOW | src/reactpy/core/vdom.py | 228 | CODE | |
| LOW | src/reactpy/core/vdom.py | 268 | CODE | |
| LOW | src/reactpy/reactjs/utils.py | 71 | CODE | |
| LOW | src/reactpy/reactjs/utils.py | 160 | CODE | |
| LOW | src/reactpy/testing/backend.py | 114 | CODE | |
| LOW | src/reactpy/testing/logs.py | 16 | CODE | |
| LOW | src/reactpy/testing/logs.py | 92 | CODE | |
| LOW | src/reactpy/executors/pyscript/utils.py | 234 | CODE | |
| LOW | src/reactpy/executors/pyscript/layout_handler.py | 48 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/test_core/test_layout.py | 1704 | # Define a target and a handler | COMMENT |
| MEDIUM | src/reactpy/_console/rewrite_props.py | 76 | # Create a copy of the value to avoid modifying the original | COMMENT |
| MEDIUM | src/reactpy/executors/asgi/middleware.py | 231 | # Create a connection object by analyzing the websocket's query string. | COMMENT |
| MEDIUM | src/reactpy/executors/pyscript/utils.py | 68 | # Create a valid PyScript executor by replacing the template values | COMMENT |
| MEDIUM | src/reactpy/executors/pyscript/component_template.py | 24 | # Create a task to run the user's component workspace | COMMENT |
| MEDIUM | src/reactpy/executors/pyscript/layout_handler.py | 37 | # Create a new container to render the layout into | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/test_testing.py | 135 | except Exception: | CODE |
| LOW⚡ | tests/test_testing.py | 153 | except Exception as error: | CODE |
| LOW | docs/docs_app/examples.py | 108 | except Exception: | CODE |
| LOW | src/reactpy/utils.py | 128 | except Exception as e: | CODE |
| LOW | src/reactpy/core/layout.py | 184 | except Exception: | CODE |
| LOW | src/reactpy/core/layout.py | 341 | except Exception as error: | CODE |
| LOW | src/reactpy/core/layout.py | 374 | except Exception as e: # nocov | CODE |
| LOW | src/reactpy/core/_life_cycle_hook.py | 171 | except Exception: | CODE |
| LOW⚡ | src/reactpy/core/_life_cycle_hook.py | 249 | except Exception: | CODE |
| MEDIUM | src/reactpy/core/_life_cycle_hook.py | 32 | def get(self) -> list[LifeCycleHook]: | CODE |
| LOW | src/reactpy/core/serve.py | 50 | except Exception: # nocov | CODE |
| LOW | src/reactpy/testing/logs.py | 34 | except Exception: | CODE |
| LOW | src/reactpy/executors/asgi/middleware.py | 248 | except Exception as error: | CODE |
| LOW | src/build_scripts/delete_old_coverage.py | 20 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/test_utils.py | 235 | # Check if the result equals expected when removing `eventHandlers` from the result dict | COMMENT |
| LOW⚡ | tests/test_reactjs/test_modules_from_npm.py | 80 | # Check if it has the correct class for primary variant | COMMENT |
| LOW⚡ | tests/test_reactjs/test_modules_from_npm.py | 85 | # Check if missing import map was logged | COMMENT |
| LOW | tests/test_reactjs/test_modules_from_npm.py | 32 | # Check if it has the correct class for primary variant | COMMENT |
| LOW | tests/test_reactjs/test_modules_from_npm.py | 57 | # Check if it has the correct class for primary variant | COMMENT |
| LOW | tests/test_reactjs/test_modules_from_npm.py | 382 | # Check if the button is visible and has correct text | COMMENT |
| LOW | tests/test_reactjs/test_modules_from_npm.py | 389 | # Check if Card is rendered (it usually has MuiCard-root class) | COMMENT |
| LOW | src/reactpy/_console/rewrite_props.py | 48 | # Check if the props need to be rewritten | COMMENT |
| LOW | src/reactpy/core/events.py | 127 | # Check if our `preventDefault` or `stopPropagation` methods were called | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/tooling/select.py | 64 | except StopIteration: | CODE |
| HIGH | src/reactpy/_option.py | 156 | except AttributeError: | CODE |
| HIGH | src/reactpy/testing/logs.py | 81 | except LogAssertionError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/test_pyscript/test_components.py | 0 | override for the display fixture that uses reactpymiddleware. | STRING |
| HIGH | tests/test_asgi/test_pyscript.py | 0 | override for the display fixture that uses reactpymiddleware. | STRING |
| HIGH | tests/test_asgi/test_middleware.py | 0 | override for the display fixture that uses reactpymiddleware. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/source/conf.py | 241 | COMMENT | |
| LOW | docs/source/conf.py | 261 | # | COMMENT |
| LOW | docs/source/conf.py | 301 | # Bibliographic Dublin Core info. | COMMENT |
| LOW | .github/workflows/codeql-analysis.yml | 1 | # For most projects, this workflow file will not need changing; you simply need | COMMENT |
| LOW | src/js/packages/@reactpy/client/src/components.tsx | 241 | >(null); | COMMENT |
| LOW | src/js/packages/@reactpy/client/src/components.tsx | 261 | // cannot reliably distinguish a server snapshot from before some | COMMENT |
| LOW | src/js/packages/@reactpy/client/src/components.tsx | 281 | // user types faster than the server can ack. | COMMENT |
| LOW | src/js/packages/@reactpy/client/src/components.tsx | 341 | wrapped = debounceHandler(wrapped, handlerDebounce as number); | COMMENT |
| LOW | src/js/packages/@reactpy/client/src/components.tsx | 381 | // after the DOM has been updated and can be trusted, but we | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_web/test_module.py | 321 | "placeholder": "Username", | CODE |
| LOW | tests/test_web/test_module.py | 330 | "placeholder": "Recipient's username", | CODE |
| LOW | tests/test_web/test_module.py | 378 | "placeholder": "Username", | CODE |
| LOW | tests/test_web/test_module.py | 387 | "placeholder": "Recipient's username", | CODE |
| LOW | …activity/state-as-a-snapshot/_examples/send_message.py | 26 | "placeholder": "Your message here...", | CODE |
| LOW | …ty/state-as-a-snapshot/_examples/print_chat_message.py | 35 | "placeholder": "Your message...", | CODE |
| LOW | src/reactpy/transforms.py | 212 | "placeholder", | CODE |
| LOW | src/reactpy/types.py | 709 | "placeholder": str, | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/test_asgi/test_standalone.py | 133 | window.__reactpySockets.push(this); | STRING |
| HIGH | src/reactpy/core/events.py | 153 | and not getattr(other, attr, undefined) == getattr(self, attr) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/reactpy/reactjs/module.py | 186 | Return an import map script tag for ReactJS or Preact. Parameters: framework: The framework | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/reactpy/reactjs/__init__.py | 107 | CODE | |
| LOW | src/reactpy/reactjs/__init__.py | 122 | CODE | |
| LOW | src/reactpy/reactjs/__init__.py | 136 | CODE | |
| LOW | src/reactpy/executors/asgi/pyscript.py | 26 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/test_core/test_events.py | 769 | # This is hard to orchestrate with exact timing in an integration test without hooks into the internal loop. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_testing.py | 220 | # Mock serve to just return (or sleep briefly then return) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_console/test_rewrite_keys.py | 67 | def my_function(): | STRING |
| LOW | tests/test_console/test_rewrite_keys.py | 72 | def my_function(): | STRING |