Interactive Data Visualization in the browser, from Python
This report summarizes scanner evidence for bokeh/bokeh, a TypeScript project with 20,455 GitHub stars. SynthScan examined 380,569 lines of code across 2798 source files, recording 12121 pattern matches distributed across 20 syntactic categories. The legacy adjusted pattern signal is 101.8 (High 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? 2558 finding(s).
Are imports declared and package/API names verified? 1043 finding(s).
Are wrappers, guards, and repeated structures necessary? 10190 finding(s).
Which changes need focused human review? 12121 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 12121 distinct pattern matches across 20 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 |
|---|---|---|---|---|
| MEDIUM | setup.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | setup.py | 6 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/__init__.py | 1 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/__init__.py | 6 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/ci/notify_full_ci.py | 1 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/ci/notify_full_ci.py | 6 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/ci/import_all_modules.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/ci/import_all_modules.py | 7 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/ci/import_all_modules.py | 9 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/ci/import_all_modules.py | 11 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/ci/import_all_modules.py | 14 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/ci/import_all_modules.py | 16 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/ci/import_all_modules.py | 23 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/ci/import_all_modules.py | 25 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release/build.py | 1 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release/build.py | 6 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release/git.py | 1 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release/git.py | 6 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release/system.py | 1 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release/system.py | 6 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release/enums.py | 1 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release/enums.py | 6 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release/config.py | 1 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release/config.py | 6 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release/deployment.py | 1 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release/deployment.py | 6 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release/util.py | 1 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release/util.py | 6 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release/ui.py | 1 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release/ui.py | 6 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release/checks.py | 1 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release/checks.py | 6 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release/__init__.py | 1 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release/__init__.py | 6 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release/npm.py | 1 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release/npm.py | 6 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release/action.py | 1 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release/action.py | 6 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release/stages.py | 1 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release/stages.py | 6 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release/publishing.py | 1 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release/publishing.py | 6 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release/pipeline.py | 1 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release/pipeline.py | 6 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release/__main__.py | 1 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release/__main__.py | 6 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/hooks/__init__.py | 1 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/hooks/__init__.py | 6 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/conftest.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/conftest.py | 6 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/__init__.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/__init__.py | 7 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_bokehjs.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_bokehjs.py | 6 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_bokehjs.py | 8 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_bokehjs.py | 10 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_bokehjs.py | 15 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_bokehjs.py | 17 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_bokehjs.py | 23 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_bokehjs.py | 25 | #----------------------------------------------------------------------------- | COMMENT |
| 8265 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/backport/git.py | 283 | def remove_worktree_and_branch( | CODE |
| LOW | tools/backport/planning.py | 133 | def _advance_dedicated_commits( | CODE |
| LOW | tools/backport/planning.py | 197 | def continue_dedicated_commit( | CODE |
| LOW | tools/backport/planning.py | 379 | def _validate_candidate_sequence(git: GitRepo, state: PlanState, head: str) -> None: | CODE |
| LOW | tools/backport/candidates.py | 230 | def candidate_source_problems( | CODE |
| LOW | tools/backport/candidates.py | 256 | def candidate_policy_problems( | CODE |
| LOW | tools/backport/candidates.py | 280 | def candidate_target_problems( | CODE |
| LOW | tools/backport/__main__.py | 38 | def _require_supported_python() -> None: | CODE |
| LOW⚡ | tools/release/build.py | 298 | def verify_pip_install_from_sdist(config: Config, system: System) -> ActionReturn: | CODE |
| LOW⚡ | tools/release/build.py | 305 | def verify_pip_install_using_sdist(config: Config, system: System) -> ActionReturn: | CODE |
| LOW⚡ | tools/release/build.py | 312 | def verify_pip_install_using_wheel(config: Config, system: System) -> ActionReturn: | CODE |
| LOW⚡ | tools/release/deployment.py | 45 | def upload_deployment_tarball(config: Config, system: System) -> ActionReturn: | CODE |
| LOW⚡ | tools/release/deployment.py | 53 | def download_deployment_tarball(config: Config, system: System) -> ActionReturn: | CODE |
| LOW⚡ | tools/release/deployment.py | 61 | def unpack_deployment_tarball(config: Config, system: System) -> ActionReturn: | CODE |
| LOW | tools/release/checks.py | 74 | def check_release_notes_present(config: Config, system: System) -> ActionReturn: | CODE |
| LOW | tools/release/checks.py | 84 | def check_checkout_on_base_branch(config: Config, system: System) -> ActionReturn: | CODE |
| LOW | tools/release/checks.py | 107 | def check_checkout_matches_remote(config: Config, system: System) -> ActionReturn: | CODE |
| LOW | tools/release/checks.py | 127 | def check_docs_version_config(config: Config, system: System) -> ActionReturn: | CODE |
| LOW | tools/release/checks.py | 168 | def check_release_tag_is_available(config: Config, system: System) -> ActionReturn: | CODE |
| LOW | tools/release/checks.py | 197 | def check_staging_branch_is_available(config: Config, system: System) -> ActionReturn: | CODE |
| LOW⚡ | tests/conftest.py | 66 | def pandas_nullable_constructor(obj) -> IntoDataFrame: | CODE |
| LOW⚡ | tests/conftest.py | 70 | def pandas_pyarrow_constructor(obj) -> IntoDataFrame: | CODE |
| LOW⚡ | tests/conftest.py | 79 | def pyarrow_table_constructor(obj) -> IntoDataFrame: | CODE |
| LOW⚡ | tests/unit/bokeh/test_resources.py | 114 | def test_resource_override_version_rejects_invalid_values(version: Any) -> None: | CODE |
| LOW⚡ | tests/unit/bokeh/test_resources.py | 119 | def test_resource_override_version_is_preserved() -> None: | CODE |
| LOW⚡ | tests/unit/bokeh/test_resources.py | 127 | def test_cdn_version_does_not_affect_other_resource_modes( | CODE |
| LOW⚡ | tests/unit/bokeh/test_resources.py | 179 | def test_build_rejects_unknown_dev_resource_settings(setting: str) -> None: | CODE |
| LOW⚡ | tests/unit/bokeh/test_resources.py | 184 | def test_get_all_sri_versions_valid_format() -> None: | CODE |
| LOW⚡ | tests/unit/bokeh/test_resources.py | 189 | def test_get_sri_hashes_for_standard_versions(version: str) -> None: | CODE |
| LOW⚡ | tests/unit/bokeh/test_resources.py | 199 | def test_get_sri_hashes_for_weird_versions(version: str) -> None: | CODE |
| LOW⚡ | tests/unit/bokeh/test_resources.py | 208 | def test_get_sri_hashes_for_version_rejects_unknown_version() -> None: | CODE |
| LOW⚡ | tests/unit/bokeh/test_resources.py | 213 | def test_session_coordinates_normalizes_default_url() -> None: | CODE |
| LOW⚡ | tests/unit/bokeh/test_resources.py | 219 | def test_session_coordinates_rejects_websocket_url() -> None: | CODE |
| LOW⚡ | tests/unit/bokeh/test_resources.py | 224 | def test_session_coordinates_lazily_generates_session_id() -> None: | CODE |
| LOW | tests/unit/bokeh/test_resources.py | 30 | def test_public_resource_configuration() -> None: | CODE |
| LOW | tests/unit/bokeh/test_resources.py | 39 | def test_cdn_version_defaults_to_payload_version( | CODE |
| LOW | tests/unit/bokeh/test_resources.py | 56 | def test_cdn_version_environment_override( | CODE |
| LOW | tests/unit/bokeh/test_resources.py | 73 | def test_cdn_version_programmatic_override_takes_precedence( | CODE |
| LOW | tests/unit/bokeh/test_resources.py | 86 | def test_cdn_version_override_is_captured_by_resource_policy( | CODE |
| LOW | tests/unit/bokeh/test_resources.py | 102 | def test_explicit_resource_override_version_takes_precedence_over_setting(monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW | tests/unit/bokeh/test_resources.py | 146 | def test_cdn_version_override_selects_matching_integrity_hash( | CODE |
| LOW | tests/unit/bokeh/test_resources.py | 165 | def test_build_accepts_dev_resource_settings(setting: resources.ResourcesSetting, mode: resources.ResourcesMode) -> None | CODE |
| LOW⚡ | tests/unit/bokeh/test_palettes.py | 30 | def test_cmap_generator_function() -> None: | CODE |
| LOW⚡ | tests/unit/bokeh/test_palettes.py | 40 | def test_all_palettes___palettes__() -> None: | CODE |
| LOW⚡ | tests/unit/bokeh/test_palettes.py | 76 | def test_diverging_palette_returns_n_colors() -> None: | CODE |
| LOW⚡ | tests/unit/bokeh/test_palettes.py | 82 | def test_diverging_palette_returns_n_colors_for_off_center_midpoint() -> None: | CODE |
| LOW⚡ | tests/unit/bokeh/test_palettes.py | 87 | def test_diverging_palette_splits_across_both_palettes() -> None: | CODE |
| LOW⚡ | tests/unit/bokeh/test_palettes.py | 92 | def test_varying_alpha_palette() -> None: | CODE |
| LOW⚡ | tests/unit/bokeh/test_layouts__typing.py | 33 | def test_gridplot_typing_no_ncols() -> None: | CODE |
| LOW | tests/unit/bokeh/test_layouts__typing.py | 48 | def test_gridplot_typing_using_ncols() -> None: | CODE |
| LOW⚡ | tests/unit/bokeh/test_typing.py | 59 | def mypy_test_figure_list_attr_splat() -> None: | CODE |
| LOW⚡ | tests/unit/bokeh/test_themes.py | 71 | def test_construct_empty_theme_from_json(self) -> None: | STRING |
| LOW⚡ | tests/unit/bokeh/test_themes.py | 76 | def test_construct_no_json_or_filename(self) -> None: | STRING |
| LOW⚡ | tests/unit/bokeh/test_themes.py | 81 | def test_construct_json_and_filename(self) -> None: | STRING |
| LOW⚡ | tests/unit/bokeh/test_themes.py | 290 | def test_setting_built_in_theme_obj(self) -> None: | STRING |
| LOW⚡ | tests/unit/bokeh/test_themes.py | 297 | def test_setting_built_in_theme_str(self) -> None: | STRING |
| LOW⚡ | tests/unit/bokeh/test_themes.py | 304 | def test_setting_built_in_theme_missing(self) -> None: | STRING |
| LOW⚡ | tests/unit/bokeh/test_themes.py | 311 | def test_setting_built_in_theme_error(self) -> None: | STRING |
| LOW | tests/unit/bokeh/test_themes.py | 60 | def test_construct_empty_theme_from_file(self) -> None: | STRING |
| LOW | tests/unit/bokeh/test_themes.py | 93 | def test_construct_bad_class_props(self) -> None: | STRING |
| 1603 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | setup.py | 7 | CODE | |
| LOW | tools/milestone.py | 3 | CODE | |
| LOW | tools/ci/notify_full_ci.py | 10 | CODE | |
| LOW | tools/ci/import_all_modules.py | 12 | CODE | |
| LOW | tools/release/build.py | 10 | CODE | |
| LOW | tools/release/git.py | 10 | CODE | |
| LOW | tools/release/system.py | 10 | CODE | |
| LOW | tools/release/enums.py | 10 | CODE | |
| LOW | tools/release/config.py | 10 | CODE | |
| LOW | tools/release/deployment.py | 7 | CODE | |
| LOW | tools/release/util.py | 10 | CODE | |
| LOW | tools/release/ui.py | 10 | CODE | |
| LOW | tools/release/checks.py | 7 | CODE | |
| LOW | tools/release/__init__.py | 7 | CODE | |
| LOW | tools/release/npm.py | 7 | CODE | |
| LOW | tools/release/action.py | 10 | CODE | |
| LOW | tools/release/stages.py | 7 | CODE | |
| LOW | tools/release/publishing.py | 7 | CODE | |
| LOW | tools/release/pipeline.py | 10 | CODE | |
| LOW | tools/release/__main__.py | 7 | CODE | |
| LOW | tests/conftest.py | 7 | CODE | |
| LOW | tests/test_bokehjs.py | 11 | CODE | |
| LOW | tests/test_cross.py | 11 | CODE | |
| LOW | tests/test_examples.py | 11 | CODE | |
| LOW | tests/test_defaults.py | 11 | CODE | |
| LOW | tests/unit/bokeh/test_resources.py | 8 | CODE | |
| LOW | tests/unit/bokeh/test_palettes.py | 11 | CODE | |
| LOW | tests/unit/bokeh/test_transform.py | 11 | CODE | |
| LOW | tests/unit/bokeh/test___init__.py | 11 | CODE | |
| LOW | tests/unit/bokeh/test_driving.py | 11 | CODE | |
| LOW | tests/unit/bokeh/test_typing.py | 24 | CODE | |
| LOW | tests/unit/bokeh/test_themes.py | 11 | CODE | |
| LOW | tests/unit/bokeh/test_client_server.py | 11 | CODE | |
| LOW | tests/unit/bokeh/test_server.py | 11 | CODE | |
| LOW | tests/unit/bokeh/test___main__.py | 11 | CODE | |
| LOW | tests/unit/bokeh/test_ext.py | 11 | CODE | |
| LOW | tests/unit/bokeh/test_events.py | 11 | CODE | |
| LOW | tests/unit/bokeh/test_regressions.py | 11 | CODE | |
| LOW | tests/unit/bokeh/test_free_threading.py | 11 | CODE | |
| LOW | tests/unit/bokeh/test_objects.py | 11 | CODE | |
| LOW | tests/unit/bokeh/test_layouts.py | 11 | CODE | |
| LOW | tests/unit/bokeh/test_settings.py | 11 | CODE | |
| LOW | tests/unit/bokeh/core/test_validation.py | 11 | CODE | |
| LOW | tests/unit/bokeh/core/test_templates.py | 11 | CODE | |
| LOW | tests/unit/bokeh/core/test_json_encoder.py | 11 | CODE | |
| LOW | tests/unit/bokeh/core/test_enums.py | 11 | CODE | |
| LOW | tests/unit/bokeh/core/test_query.py | 11 | CODE | |
| LOW | tests/unit/bokeh/core/test_has_props.py | 11 | CODE | |
| LOW | tests/unit/bokeh/core/test_serialization.py | 11 | CODE | |
| LOW | tests/unit/bokeh/core/test_properties.py | 11 | CODE | |
| LOW | …sts/unit/bokeh/core/property/test_string_properties.py | 11 | CODE | |
| LOW | tests/unit/bokeh/core/property/test_color__property.py | 11 | CODE | |
| LOW | tests/unit/bokeh/core/property/test_required.py | 11 | CODE | |
| LOW | tests/unit/bokeh/core/property/test_vectorization.py | 11 | CODE | |
| LOW | …ts/unit/bokeh/core/property/test_wrappers__property.py | 11 | CODE | |
| LOW | tests/unit/bokeh/core/property/test_primitive.py | 11 | CODE | |
| LOW | tests/unit/bokeh/core/property/test_visual.py | 11 | CODE | |
| LOW | tests/unit/bokeh/core/property/test_container.py | 11 | CODE | |
| LOW | tests/unit/bokeh/core/property/test_instance.py | 11 | CODE | |
| LOW | tests/unit/bokeh/core/property/test_singletons.py | 11 | CODE | |
| 852 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/__init__.py | 1 | # ----------------------------------------------------------------------------- | COMMENT |
| LOW | tools/ci/import_all_modules.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tools/hooks/__init__.py | 1 | # ----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/__init__.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/test_bokehjs.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/test_bokehjs.py | 41 | COMMENT | |
| LOW | tests/test_cross.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/test_examples.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/test_defaults.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/test_palettes.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/test_palettes.py | 121 | assert pal.varying_alpha_palette("#12345680", 3, start_alpha=0, end_alpha=128) == ("#12345600", "#12345620", "#12345 | COMMENT |
| LOW | tests/unit/bokeh/test_layouts__typing.py | 1 | # ----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/test_layouts__typing.py | 61 | COMMENT | |
| LOW | tests/unit/bokeh/test_transform.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/test_transform.py | 301 | COMMENT | |
| LOW | tests/unit/bokeh/test___init__.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/test_driving.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/test_typing.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/test_typing.py | 101 | # Dev API | COMMENT |
| LOW | tests/unit/bokeh/test_themes.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/test_themes.py | 321 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/test_client_server.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/test_server.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/test_server.py | 61 | # Private API | COMMENT |
| LOW | tests/unit/bokeh/test___main__.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/test___main__.py | 61 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/test_ext.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/test_events.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/test_events.py | 421 | assert isinstance(event.msg_data, ClearInput) | COMMENT |
| LOW | tests/unit/bokeh/test_regressions.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/test_regressions.py | 61 | assert obj0.p0 == [obj1] | COMMENT |
| LOW | tests/unit/bokeh/test_free_threading.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/test_objects.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/test_layouts.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/test_settings.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/core/test_validation.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/core/test_templates.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/core/test_templates.py | 101 | COMMENT | |
| LOW | tests/unit/bokeh/core/test_json_encoder.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/core/test_enums.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/core/test_enums.py | 521 | # Private API | COMMENT |
| LOW | tests/unit/bokeh/core/test_query.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/core/test_query.py | 281 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/core/test_has_props.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/core/test_has_props.py | 1041 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/core/test_serialization.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/core/test_serialization.py | 1601 | COMMENT | |
| LOW | tests/unit/bokeh/core/test_properties.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/core/test_properties.py | 521 | assert 12 == f_base.properties_with_values(include_defaults=True)['x'] | COMMENT |
| LOW | tests/unit/bokeh/core/test_properties.py | 661 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | …sts/unit/bokeh/core/property/test_string_properties.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | …sts/unit/bokeh/core/property/test_string_properties.py | 81 | # Dev API | COMMENT |
| LOW | tests/unit/bokeh/core/property/test_color__property.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/core/property/test_required.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/core/property/test_vectorization.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | …ts/unit/bokeh/core/property/test_wrappers__property.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/core/property/test_primitive.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/core/property/test_visual.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/core/property/test_container.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | tests/unit/bokeh/core/property/test_instance.py | 1 | #----------------------------------------------------------------------------- | COMMENT |
| 645 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tools/backport/publishing.py | 123 | git.push(worktree, state.branch) | CODE |
| HIGH | tests/test_examples.py | 316 | width: Math.max(1, Math.ceil(right + parseFloat(style.marginRight || 0))), | CODE |
| HIGH | tests/test_examples.py | 317 | height: Math.max(1, Math.ceil(bottom + parseFloat(style.marginBottom || 0))), | CODE |
| HIGH | tests/test_examples.py | 280 | return width > 0 && height > 0 | STRING |
| HIGH⚡ | tests/unit/bokeh/core/test_json_encoder.py | 44 | [null,true,false,-128,-1,0,1,128,{"type":"number","value":"nan"}]\ | CODE |
| HIGH⚡ | tests/unit/bokeh/core/test_json_encoder.py | 48 | [null,true,false,-128,-1,0,1,128,{"type":"number","value":"nan"}]\ | CODE |
| HIGH⚡ | tests/unit/bokeh/core/test_json_encoder.py | 53 | null, | CODE |
| HIGH | tests/unit/bokeh/core/test_json_encoder.py | 70 | null, | CODE |
| HIGH⚡ | tests/unit/bokeh/core/test_has_props.py | 418 | assert p1.equals(p2) | CODE |
| HIGH⚡ | tests/unit/bokeh/core/test_has_props.py | 420 | assert not p1.equals(p2) | CODE |
| HIGH⚡ | tests/unit/bokeh/core/test_has_props.py | 422 | assert p1.equals(p2) | CODE |
| HIGH | tests/unit/bokeh/core/test_serialization.py | 1551 | '"name":null,' + | STRING |
| HIGH | tests/unit/bokeh/core/test_serialization.py | 1552 | '"null_child":null,' + | STRING |
| HIGH⚡ | tests/unit/bokeh/embed/test_result.py | 1132 | Bokeh: failure == "missing-api" ? {version: "3.10.1"} : undefined, | STRING |
| HIGH⚡ | tests/unit/bokeh/embed/test_result.py | 1136 | const before_dom = targets.every((target) => target.bokehMountError == null) | STRING |
| HIGH⚡ | tests/unit/bokeh/embed/test_result.py | 1143 | events: targets.map((target) => target.events.length), unrelated: unrelated.bokehMountError == null, | STRING |
| HIGH | tests/unit/bokeh/embed/test_result.py | 1113 | this.addEventListener("bokeh:mount-error", (event) => this.events.push(event.detail)) | STRING |
| HIGH | tests/unit/bokeh/util/test_compiler.py | 248 | formatted.push(`+${difference}}`) | CODE |
| HIGH | tests/tools/backport/test_git.py | 61 | git.push(worktree, branch) | CODE |
| HIGH | tests/integration/server_e2e/test_embed_resources.py | 64 | this.define<any>(({Any}) => ({child: [Any, null]})) | CODE |
| HIGH | tests/integration/server_e2e/test_embed_resources.py | 132 | return target?.bokehMount != null || target?.bokehMountError != null | STRING |
| HIGH | tests/integration/server_e2e/test_embed_resources.py | 156 | return Definition != null && Definition.create().child.type === hidden_name | CODE |
| HIGH | tests/integration/server_e2e/test_examples.py | 136 | "() => globalThis.Bokeh != null && Bokeh.documents.length === 1", | CODE |
| HIGH⚡ | tests/codebase/test_ci_workflows.py | 58 | assert concurrency["group"] == "${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}" | CODE |
| HIGH | examples/advanced/extensions/ticking.py | 17 | formatted.push(`+${(Number(ticks[i]) - Number(ticks[0])).toPrecision(2)}`) | CODE |
| HIGH | examples/basic/data/server_sent_events_source.py | 17 | result.x.push(pts[i][0]) | CODE |
| HIGH | examples/basic/data/server_sent_events_source.py | 18 | result.y.push(pts[i][1]) | CODE |
| HIGH | examples/basic/data/ajax_source.py | 13 | result.x.push(x) | CODE |
| HIGH | examples/basic/data/ajax_source.py | 14 | result.y.push(y) | CODE |
| HIGH | examples/server/app/events_app.py | 28 | args.push(attrs[i] + '=' + val) | CODE |
| HIGH | examples/models/custom.py | 40 | colors.push(`${color} ${offset}px`) | CODE |
| HIGH | examples/models/custom.py | 42 | colors.push(`${color} ${offset}px`) | CODE |
| HIGH⚡ | examples/models/buttons.py | 23 | button.js_on_event("button_click", CustomJS(code="console.log('button: click ', this.toString())")) | CODE |
| HIGH⚡ | examples/models/buttons.py | 24 | button.js_on_event("button_click", CustomJS(code="console.log('button: click ', this.toString())")) | CODE |
| HIGH⚡ | examples/models/buttons.py | 27 | button_disabled.js_on_event("button_click", CustomJS(code="console.log('button(disabled): click ', this.toString())")) | CODE |
| HIGH⚡ | examples/models/buttons.py | 30 | toggle_inactive.js_on_event('button_click', CustomJS(code="console.log('toggle(inactive): active=' + this.origin.active, | CODE |
| HIGH⚡ | examples/models/buttons.py | 33 | toggle_active.js_on_event('button_click', CustomJS(code="console.log('toggle(active): active=' + this.origin.active, thi | CODE |
| HIGH⚡ | examples/models/buttons.py | 38 | dropdown.js_on_event("button_click", CustomJS(code="console.log('dropdown: click ' + this.toString())")) | CODE |
| HIGH⚡ | examples/models/buttons.py | 39 | dropdown.js_on_event("menu_item_click", CustomJS(code="console.log('dropdown: ' + this.item, this.toString())")) | CODE |
| HIGH⚡ | examples/models/buttons.py | 42 | dropdown_disabled.js_on_event("button_click", CustomJS(code="console.log('dropdown(disabled): click ' + this.toString()) | CODE |
| HIGH⚡ | examples/models/buttons.py | 43 | dropdown_disabled.js_on_event("menu_item_click", CustomJS(code="console.log('dropdown(disabled): ' + this.item, this.toS | CODE |
| HIGH⚡ | examples/models/buttons.py | 46 | dropdown_split.js_on_event("button_click", CustomJS(code="console.log('dropdown(split): click ' + this.toString())")) | CODE |
| HIGH⚡ | examples/models/buttons.py | 47 | dropdown_split.js_on_event("menu_item_click", CustomJS(code="console.log('dropdown(split): ' + this.item, this.toString( | CODE |
| HIGH⚡ | examples/models/buttons.py | 50 | checkbox_group.js_on_change('active', CustomJS(code="console.log('checkbox_group: active=' + this.active, this.toString( | CODE |
| HIGH⚡ | examples/models/buttons.py | 53 | radio_group.js_on_change('active', CustomJS(code="console.log('radio_group: active=' + this.active, this.toString())")) | CODE |
| HIGH⚡ | examples/models/buttons.py | 56 | checkbox_button_group.js_on_event("button_click", CustomJS(code="console.log('checkbox_button_group: active=' + this.ori | CODE |
| HIGH⚡ | examples/models/buttons.py | 59 | radio_button_group.js_on_event("button_click", CustomJS(code="console.log('radio_button_group: active=' + this.origin.ac | CODE |
| HIGH | examples/interaction/tools/hover_tooltip_advanced.py | 21 | x_filter = CustomJS(code="""export default (args, tool, {value: x}) => 20 <= x && x <= 80""") | CODE |
| HIGH | examples/interaction/tools/hover_tooltip_advanced.py | 22 | y_filter = CustomJS(code="""export default (args, tool, {value: y}) => 20 <= y && y <= 80""") | CODE |
| HIGH | …amples/interaction/widgets/multiple_datetime_picker.py | 16 | console.log("multiple_datetime_picker: value=" + this.value, this.toString()) | CODE |
| HIGH | examples/interaction/widgets/radio_button_group.py | 8 | console.log('radio_button_group: active=' + btn.active, this.toString()) | CODE |
| HIGH | examples/interaction/widgets/datetime_picker.py | 11 | console.log("datetime_picker: value=" + this.value, this.toString()) | CODE |
| HIGH | examples/interaction/widgets/checkbox_button_group.py | 8 | console.log('checkbox_button_group: active=' + btn.active, this.toString()) | CODE |
| HIGH | examples/interaction/widgets/time_picker.py | 6 | console.log("time_picker: value=" + this.value, this.toString()) | CODE |
| HIGH | examples/interaction/widgets/toggle_button.py | 6 | console.log('toggle: active=' + btn.active, this.toString()) | CODE |
| HIGH | examples/interaction/widgets/dateslider.py | 10 | console.log('date_slider: value=' + this.value, this.toString()) | CODE |
| HIGH | examples/interaction/widgets/radio_group.py | 8 | console.log('radio_group: active=' + this.origin.active, this.toString()) | CODE |
| HIGH | examples/interaction/widgets/date_picker.py | 11 | console.log("date_picker: value=" + this.value, this.toString()) | CODE |
| HIGH | examples/interaction/widgets/date_range_picker.py | 12 | console.log("date_range_picker: value=" + this.value, this.toString()) | CODE |
| HIGH | examples/interaction/widgets/datetime_range_picker.py | 12 | console.log("datetime_range_picker: value=" + this.value, this.toString()) | CODE |
| 28 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/bokeh/palettes.py | 1510 | Generate a new palette as a subset of a given palette. Given an input ``palette``, take ``n`` colors from it by di | STRING |
| HIGH | src/bokeh/palettes.py | 1532 | Generate a new palette by combining exactly two input palettes. Given an input ``palette1`` and ``palette2``, take | STRING |
| HIGH | src/bokeh/palettes.py | 1575 | Generate a palette that is a single color with linearly varying alpha. Alpha may vary from low to high or high to | STRING |
| HIGH | src/bokeh/palettes.py | 1643 | Generate a new palette by interpolating a given palette. Linear interpolation is performed separately on each of t | STRING |
| HIGH | src/bokeh/palettes.py | 1680 | Generate a palette of colors from the Magma palette. The full Magma palette that serves as input for deriving new | STRING |
| HIGH | src/bokeh/palettes.py | 1709 | Generate a palette of colors from the Inferno palette. The full Inferno palette that serves as input for deriving | STRING |
| HIGH | src/bokeh/palettes.py | 1738 | Generate a palette of colors from the Plasma palette. The full Plasma palette that serves as input for deriving ne | STRING |
| HIGH | src/bokeh/palettes.py | 1767 | Generate a palette of colors from the Viridis palette. The full Viridis palette that serves as input for deriving | STRING |
| HIGH | src/bokeh/palettes.py | 1796 | Generate a palette of colors from the Cividis palette. The full Cividis palette that serves as input for deriving | STRING |
| HIGH | src/bokeh/palettes.py | 1825 | Generate a palette of colors from the Turbo palette. Turbo is described here: https://ai.googleblog.com/2019/ | STRING |
| HIGH | src/bokeh/palettes.py | 1858 | Generate a palette of colors from the Greys palette. The full Greys palette that serves as input for deriving new | STRING |
| HIGH | src/bokeh/palettes.py | 1890 | Generate a palette of colors or from the Greys palette. The full Greys palette that serves as input for deriving n | STRING |
| HIGH | src/bokeh/settings.py | 195 | Convert a string to True or False. If a boolean is passed in, it is returned as-is. Otherwise the function map | STRING |
| HIGH | src/bokeh/settings.py | 262 | Convert a string to a Python logging level If a log level is passed in, it is returned as-is. Otherwise the functio | STRING |
| HIGH | src/bokeh/settings.py | 299 | Convert a string to a validation level If a validation level is passed in, it is returned as-is. Args: | STRING |
| HIGH | src/bokeh/settings.py | 323 | Convert a string to an .ico path Args: value (str): A string value to convert to a .ico path | STRING |
| HIGH | src/bokeh/settings.py | 461 | Return the setting value according to the standard precedence. Args: value (any, optional): | STRING |
| HIGH | src/bokeh/resources.py | 456 | Report SRI script hashes for a specific version of BokehJS. Bokeh provides `Subresource Integrity`_ hashes for all | STRING |
| HIGH | src/bokeh/layouts.py | 91 | Create a row of Bokeh Layout objects. Forces all objects to have the same sizing_mode, which is required for comple | STRING |
| HIGH | src/bokeh/layouts.py | 126 | Create a column of Bokeh Layout objects. Forces all objects to have the same sizing_mode, which is required for com | STRING |
| HIGH | src/bokeh/layouts.py | 157 | Create a grid-based arrangement of Bokeh Layout objects. Args: children (list of lists of :class:`~bokeh.m | STRING |
| HIGH | src/bokeh/layouts.py | 234 | Create a grid of plots rendered on separate canvases. The ``gridplot`` function builds a single toolbar for all th | STRING |
| HIGH | src/bokeh/core/enums.py | 215 | Create an |Enumeration| object from a sequence of values. Call ``enumeration`` with a sequence of (unique) strings | STRING |
| HIGH | src/bokeh/core/query.py | 63 | Query a collection of Bokeh models and yield any that match the a selector. Args: objs (Iterable[Model | STRING |
| HIGH | src/bokeh/core/json_encoder.py | 72 | Convert an object or a serialized representation to a JSON string. This function accepts Python-serializable o | STRING |
| HIGH | src/bokeh/core/property/descriptors.py | 331 | Implement the getter for the Python `descriptor protocol`_. For instance attribute access, we delegate to the | STRING |
| HIGH | src/bokeh/core/property/descriptors.py | 612 | Internal implementation of instance attribute access for the ``PropertyDescriptor`` getter. If the val | STRING |
| HIGH | src/bokeh/core/property/wrappers.py | 120 | A decorator for mutating methods of property container classes that notifies owners of the property container about | STRING |
| HIGH | src/bokeh/core/property/bases.py | 300 | Determine whether we can set this property from this value. Validation happens before transform() Arg | STRING |
| HIGH | src/bokeh/core/validation/decorators.py | 101 | Decorator to mark a validator method for a Bokeh error condition Args: code_or_name (int, str or Issue) : | STRING |
| HIGH | src/bokeh/core/validation/decorators.py | 141 | Decorator to mark a validator method for a Bokeh error condition Args: code_or_name (int, str or Issue) : | STRING |
| HIGH | src/bokeh/embed/standalone.py | 81 | Return HTML components to embed a Bokeh plot. The data for the plot is stored directly in the returned HTML. A | STRING |
| HIGH | src/bokeh/util/strings.py | 64 | Join together sequences of strings into English-friendly phrases using the conjunction ``or`` when appropriate. | STRING |
| HIGH | src/bokeh/util/dependencies.py | 70 | Attempt to import a required dependency. Raises a RuntimeError if the requested module is not available. Args | STRING |
| HIGH | src/bokeh/io/util.py | 77 | Generate a default filename with a given extension, attempting to use the filename of the currently running process | STRING |
| HIGH | src/bokeh/io/notebook.py | 188 | Install a new notebook display hook. Bokeh comes with support for Jupyter notebooks built-in. However, there are | STRING |
| HIGH | src/bokeh/io/notebook.py | 271 | Update Bokeh plots in a Jupyter notebook output cells with new data or property values. When working inside th | STRING |
| HIGH | src/bokeh/io/notebook.py | 361 | Run an installed notebook hook with supplied arguments. Args: notebook_type (str) : Name of an | STRING |
| HIGH | src/bokeh/server/server.py | 554 | Create a ``Server`` instance, applying any relevant ``Server`` settings from the global settings module, if the | STRING |
| HIGH | src/bokeh/server/util.py | 95 | This allowlist can be used to restrict websocket or other connections to only those explicitly originating fro | STRING |
| HIGH | src/bokeh/server/util.py | 158 | Match a host string against a pattern Args: host (str) A hostname to compare to the given patt | STRING |
| HIGH | src/bokeh/models/sources.py | 466 | Efficiently update data source columns with new append-only data. In cases where it is necessary to update dat | STRING |
| HIGH | src/bokeh/models/sources.py | 509 | Internal implementation to efficiently update data source columns with new append-only data. The internal imple | STRING |
| HIGH | src/bokeh/models/sources.py | 627 | Efficiently update data source columns at specific locations If it is only necessary to update a small subset | STRING |
| HIGH | src/bokeh/models/plots.py | 125 | Query this object and all of its references for objects that match the given selector. There are a few | STRING |
| HIGH | src/bokeh/models/widgets/tables.py | 843 | Create a simple table from a pandas dataframe, dictionary or ColumnDataSource. Args: data (DataFra | STRING |
| HIGH | src/bokeh/document/document.py | 754 | Remove a callback added earlier with ``add_next_tick_callback``. Args: callback_obj : a value retu | STRING |
| HIGH | src/bokeh/document/document.py | 784 | Remove a callback added earlier with ``add_periodic_callback`` Args: callback_obj : a value return | STRING |
| HIGH | src/bokeh/document/document.py | 830 | Remove a callback added earlier with ``add_timeout_callback``. Args: callback_obj : a value return | STRING |
| HIGH | src/bokeh/document/callbacks.py | 168 | Internal implementation for adding session callbacks. Args: callback_obj (SessionCallback) : | STRING |
| HIGH | src/bokeh/plotting/graph.py | 45 | Generate a ``GraphRenderer`` from a ``networkx.Graph`` object and networkx layout function. Any keyword | STRING |
| HIGH | src/bokeh/plotting/_renderer.py | 153 | Applies basic cascading logic to deduce properties for a glyph. Args: glyphclass : the typ | STRING |
| HIGH | src/bokeh/plotting/_figure.py | 385 | Generate multiple ``HArea`` renderers for levels stacked left to right. Args: stackers (se | STRING |
| HIGH | src/bokeh/plotting/_figure.py | 431 | Generate multiple ``HBar`` renderers for levels stacked left to right. Args: stackers (seq[str]) : | STRING |
| HIGH | src/bokeh/plotting/_figure.py | 477 | Generate multiple ``Line`` renderers for lines stacked vertically or horizontally. Args: s | STRING |
| HIGH | src/bokeh/plotting/_figure.py | 527 | Generate multiple ``Line`` renderers for lines stacked horizontally. Args: stackers (seq[str]) : a | STRING |
| HIGH | src/bokeh/plotting/_figure.py | 570 | Generate multiple ``VArea`` renderers for levels stacked bottom to top. Args: stackers (se | STRING |
| HIGH | src/bokeh/plotting/_figure.py | 616 | Generate multiple ``VBar`` renderers for levels stacked bottom to top. Args: stackers (seq | STRING |
| HIGH | src/bokeh/plotting/_figure.py | 662 | Generate multiple ``Line`` renderers for lines stacked vertically. Args: stackers (seq[str]) : a l | STRING |
| HIGH | src/bokeh/model/util.py | 149 | Look up a Bokeh model class, given its view model name. Args: view_model_name (str) : A view m | STRING |
| 7 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/bokeh/core/property/constraints.py | 0 | clone this property and allow to override ``default`` and ``help``. | STRING |
| HIGH | src/bokeh/core/property/enum.py | 0 | clone this property and allow to override ``default`` and ``help``. | STRING |
| HIGH | src/bokeh/core/property/bases.py | 0 | clone this property and allow to override ``default`` and ``help``. | STRING |
| HIGH | src/bokeh/server/views/session_handler.py | 0 | implements a custom tornado handler for document display page | STRING |
| HIGH | src/bokeh/server/views/doc_handler.py | 0 | implements a custom tornado handler for document display page | STRING |
| HIGH | src/bokeh/server/views/metadata_handler.py | 0 | implements a custom tornado handler for document display page | STRING |
| HIGH | src/bokeh/models/transforms.py | 0 | a mapping of names to python objects. in particular those can be bokeh's models. these objects are made available to the | STRING |
| HIGH | src/bokeh/models/tickers.py | 0 | a mapping of names to python objects. in particular those can be bokeh's models. these objects are made available to the | STRING |
| HIGH | src/bokeh/models/formatters.py | 0 | a mapping of names to python objects. in particular those can be bokeh's models. these objects are made available to the | STRING |
| HIGH | src/bokeh/models/callbacks.py | 0 | a mapping of names to python objects. in particular those can be bokeh's models. these objects are made available to the | STRING |
| HIGH | src/bokeh/models/filters.py | 0 | a mapping of names to python objects. in particular those can be bokeh's models. these objects are made available to the | STRING |
| HIGH | src/bokeh/models/expressions.py | 0 | filter data sources with a custom defined javascript function. .. warning:: the explicit purpose of this bokeh model is | STRING |
| HIGH | src/bokeh/models/callbacks.py | 0 | filter data sources with a custom defined javascript function. .. warning:: the explicit purpose of this bokeh model is | STRING |
| HIGH | src/bokeh/models/filters.py | 0 | filter data sources with a custom defined javascript function. .. warning:: the explicit purpose of this bokeh model is | STRING |
| HIGH | src/bokeh/models/glyphs.py | 0 | the angles to rotate the text, as measured from the horizontal. | STRING |
| HIGH | src/bokeh/models/annotations/labels.py | 0 | the angles to rotate the text, as measured from the horizontal. | STRING |
| HIGH | src/bokeh/models/annotations/html/labels.py | 0 | the angles to rotate the text, as measured from the horizontal. | STRING |
| HIGH | src/bokeh/models/glyphs.py | 0 | offset values to apply to the y-coordinates. this is useful, for instance, if it is desired to "float" text a fixed dist | STRING |
| HIGH | src/bokeh/models/annotations/labels.py | 0 | offset values to apply to the y-coordinates. this is useful, for instance, if it is desired to "float" text a fixed dist | STRING |
| HIGH | src/bokeh/models/annotations/html/labels.py | 0 | offset values to apply to the y-coordinates. this is useful, for instance, if it is desired to "float" text a fixed dist | STRING |
| HIGH | src/bokeh/models/glyphs.py | 0 | extra space between the text of a label and its bounding box (border). .. note:: this property is experimental and may c | STRING |
| HIGH | src/bokeh/models/annotations/labels.py | 0 | extra space between the text of a label and its bounding box (border). .. note:: this property is experimental and may c | STRING |
| HIGH | src/bokeh/models/annotations/html/labels.py | 0 | extra space between the text of a label and its bounding box (border). .. note:: this property is experimental and may c | STRING |
| HIGH | src/bokeh/models/glyphs.py | 0 | allows label's box to have rounded corners. for the best results, it should be used in combination with ``padding``. .. | STRING |
| HIGH | src/bokeh/models/annotations/labels.py | 0 | allows label's box to have rounded corners. for the best results, it should be used in combination with ``padding``. .. | STRING |
| HIGH | src/bokeh/models/annotations/html/labels.py | 0 | allows label's box to have rounded corners. for the best results, it should be used in combination with ``padding``. .. | STRING |
| HIGH | src/bokeh/models/annotations/labels.py | 0 | the unit type for the ``xs`` attribute. interpreted as |data units| by default. | STRING |
| HIGH | src/bokeh/models/annotations/geometry.py | 0 | the unit type for the ``xs`` attribute. interpreted as |data units| by default. | STRING |
| HIGH | src/bokeh/models/annotations/html/labels.py | 0 | the unit type for the ``xs`` attribute. interpreted as |data units| by default. | STRING |
| HIGH | src/bokeh/models/annotations/labels.py | 0 | the unit type for the ``ys`` attribute. interpreted as |data units| by default. | STRING |
| HIGH | src/bokeh/models/annotations/geometry.py | 0 | the unit type for the ``ys`` attribute. interpreted as |data units| by default. | STRING |
| HIGH | src/bokeh/models/annotations/html/labels.py | 0 | the unit type for the ``ys`` attribute. interpreted as |data units| by default. | STRING |
| HIGH | src/bokeh/document/models.py | 0 | args: document (document): a document to manage modules for a weak reference to the document will be retained | STRING |
| HIGH | src/bokeh/document/callbacks.py | 0 | args: document (document): a document to manage modules for a weak reference to the document will be retained | STRING |
| HIGH | src/bokeh/document/modules.py | 0 | args: document (document): a document to manage modules for a weak reference to the document will be retained | STRING |
| HIGH | src/bokeh/model/util.py | 0 | provide a base class for all objects (called bokeh models) that can go in a bokeh |document|. | STRING |
| HIGH | src/bokeh/model/docs.py | 0 | provide a base class for all objects (called bokeh models) that can go in a bokeh |document|. | STRING |
| HIGH | src/bokeh/model/model.py | 0 | provide a base class for all objects (called bokeh models) that can go in a bokeh |document|. | STRING |
| HIGH | src/bokeh/model/data_model.py | 0 | provide a base class for all objects (called bokeh models) that can go in a bokeh |document|. | STRING |
| HIGH | src/bokeh/application/application.py | 0 | processes incoming http request returning a dictionary of additional data to add to the session_context. args: request: | STRING |
| HIGH | src/bokeh/application/handlers/handler.py | 0 | processes incoming http request returning a dictionary of additional data to add to the session_context. args: request: | STRING |
| HIGH | src/bokeh/application/handlers/directory.py | 0 | processes incoming http request returning a dictionary of additional data to add to the session_context. args: request: | STRING |
| HIGH | src/bokeh/application/handlers/request_handler.py | 0 | processes incoming http request returning a dictionary of additional data to add to the session_context. args: request: | STRING |
| HIGH | …c/bokeh/application/handlers/server_request_handler.py | 0 | bokeh application handler to look for bokeh server lifecycle callbacks in a specified python module. | STRING |
| HIGH | src/bokeh/application/handlers/request_handler.py | 0 | bokeh application handler to look for bokeh server lifecycle callbacks in a specified python module. | STRING |
| HIGH | src/bokeh/application/handlers/server_lifecycle.py | 0 | bokeh application handler to look for bokeh server lifecycle callbacks in a specified python module. | STRING |
| HIGH | src/bokeh/application/handlers/lifecycle.py | 0 | bokeh application handler to look for bokeh server lifecycle callbacks in a specified python module. | STRING |
| HIGH | …c/bokeh/application/handlers/server_request_handler.py | 0 | if the handler fails, may contain a related error message. | STRING |
| HIGH | src/bokeh/application/handlers/handler.py | 0 | if the handler fails, may contain a related error message. | STRING |
| HIGH | src/bokeh/application/handlers/server_lifecycle.py | 0 | if the handler fails, may contain a related error message. | STRING |
| HIGH | src/bokeh/application/handlers/code.py | 0 | if the handler fails, may contain a related error message. | STRING |
| HIGH | src/bokeh/application/handlers/directory.py | 0 | if the handler fails, may contain a related error message. | STRING |
| HIGH | …c/bokeh/application/handlers/server_request_handler.py | 0 | if the handler fails, may contain a traceback or other details. | STRING |
| HIGH | src/bokeh/application/handlers/handler.py | 0 | if the handler fails, may contain a traceback or other details. | STRING |
| HIGH | src/bokeh/application/handlers/server_lifecycle.py | 0 | if the handler fails, may contain a traceback or other details. | STRING |
| HIGH | src/bokeh/application/handlers/code.py | 0 | if the handler fails, may contain a traceback or other details. | STRING |
| HIGH | src/bokeh/application/handlers/directory.py | 0 | if the handler fails, may contain a traceback or other details. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/test_examples.py | 374 | except subprocess.TimeoutExpired: | CODE |
| HIGH | tests/test_examples.py | 338 | except OSError: | CODE |
| HIGH | tests/test_examples.py | 369 | except OSError: | CODE |
| HIGH | …ts/unit/bokeh/core/property/test_wrappers__property.py | 550 | except Exception: | CODE |
| HIGH | …ts/unit/bokeh/core/property/test_wrappers__property.py | 555 | except Exception: | CODE |
| HIGH | tests/unit/bokeh/server/test_asgi.py | 1286 | except asyncio.CancelledError: | CODE |
| HIGH | tests/unit/bokeh/model/test_model.py | 226 | except BokehDeprecationWarning: | CODE |
| HIGH | tests/unit/bokeh/command/subcommands/test_serve.py | 440 | except Exception: | CODE |
| HIGH | tests/integration/server_proxy/test_proxy.py | 53 | except (OSError, URLError): | CODE |
| HIGH | tests/integration/server_e2e/test_examples.py | 72 | except (OSError, URLError): | CODE |
| HIGH | tests/support/plugins/file_server.py | 110 | except OSError: | CODE |
| HIGH | docs/bokeh/docserver.py | 94 | except KeyboardInterrupt: | CODE |
| HIGH | docs/bokeh/api_reference/__main__.py | 337 | except OSError: | CODE |
| HIGH | src/bokeh/settings.py | 955 | except Exception: | CODE |
| HIGH | src/bokeh/core/property/either.py | 86 | except ValueError: | CODE |
| HIGH | src/bokeh/core/property/nullable.py | 61 | except ValueError: | CODE |
| HIGH | src/bokeh/core/property/dataspec.py | 238 | except ValueError: | CODE |
| HIGH | src/bokeh/core/property/dataspec.py | 467 | except TypeError: | CODE |
| HIGH | src/bokeh/core/property/dataspec.py | 482 | except TypeError: | CODE |
| HIGH | src/bokeh/core/property/dataspec.py | 496 | except TypeError: | CODE |
| HIGH | src/bokeh/core/property/datetime.py | 117 | except Exception: | CODE |
| HIGH | src/bokeh/core/property/datetime.py | 145 | except ValueError: | CODE |
| HIGH | src/bokeh/util/asyncio.py | 161 | except asyncio.CancelledError: | CODE |
| HIGH | src/bokeh/util/asyncio.py | 109 | except BaseException: | CODE |
| HIGH | src/bokeh/util/asyncio.py | 199 | except ValueError: | CODE |
| HIGH | src/bokeh/util/browser.py | 129 | except Exception: | CODE |
| HIGH | src/bokeh/util/serialization.py | 258 | except (TypeError, ValueError): | CODE |
| HIGH | src/bokeh/util/dependencies.py | 60 | except ImportError: | CODE |
| HIGH | src/bokeh/io/browser.py | 557 | except Exception: | CODE |
| HIGH | src/bokeh/io/browser.py | 199 | except Exception: | CODE |
| HIGH | src/bokeh/io/browser.py | 206 | except Exception: | CODE |
| HIGH | src/bokeh/server/callbacks.py | 225 | except ValueError: | CODE |
| HIGH | src/bokeh/server/executor.py | 69 | except BaseException: | CODE |
| HIGH | src/bokeh/server/views/static_handler.py | 140 | except Exception: | CODE |
| HIGH | src/bokeh/server/views/embed_json_handler.py | 53 | except HTTPError: | CODE |
| HIGH | src/bokeh/models/util/structure.py | 174 | except (TypeError, UnsetValueError): | CODE |
| HIGH | src/bokeh/models/util/structure.py | 178 | except (TypeError, UnsetValueError): | CODE |
| HIGH | src/bokeh/models/util/structure.py | 182 | except (AttributeError, ValueError, UnsetValueError): | CODE |
| HIGH | src/bokeh/models/widgets/sliders.py | 84 | except UnsetValueError: | CODE |
| HIGH | src/bokeh/models/widgets/sliders.py | 86 | except AttributeError: | CODE |
| HIGH | src/bokeh/plotting/_plot.py | 96 | except ValueError: # @mattpap suggests ValidationError instead | CODE |
| HIGH | src/bokeh/plotting/_plot.py | 176 | except ValueError: | CODE |
| HIGH | src/bokeh/command/subcommands/__init__.py | 69 | except TypeError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | tests/unit/bokeh/io/test_saving.py | 52 | mock_open.return_value.__enter__.return_value.write.assert_called_once_with("<html></html>") | CODE |
| CRITICAL | bokehjs/src/lib/models/annotations/toolbar_panel.ts | 57 | this.plot_view.canvas.ui_event_bus.focus.connect(() => { | CODE |
| CRITICAL | bokehjs/src/lib/models/annotations/toolbar_panel.ts | 60 | this.plot_view.canvas.ui_event_bus.blur.connect(() => { | CODE |
| CRITICAL | bokehjs/src/lib/models/graphs/graph_hit_test_policy.ts | 86 | graph_view.edge_view.model.data_source.inspect.emit([graph_view.edge_view.model, {geometry}]) | CODE |
| CRITICAL | bokehjs/src/lib/models/graphs/graph_hit_test_policy.ts | 130 | graph_view.node_view.model.data_source.inspect.emit([graph_view.node_view.model, {geometry}]) | CODE |
| CRITICAL⚡ | bokehjs/src/lib/models/graphs/graph_hit_test_policy.ts | 205 | const node_inspection = graph_view.node_view.model.data_source.selection_manager.get_or_create_inspector(graph_view. | CODE |
| CRITICAL⚡ | bokehjs/src/lib/models/graphs/graph_hit_test_policy.ts | 209 | const edge_inspection = graph_view.edge_view.model.data_source.selection_manager.get_or_create_inspector(graph_view. | CODE |
| CRITICAL⚡ | bokehjs/src/lib/models/graphs/graph_hit_test_policy.ts | 215 | graph_view.node_view.model.data_source.inspect.emit([graph_view.node_view.model, {geometry}]) | CODE |
| CRITICAL⚡ | bokehjs/src/lib/models/graphs/graph_hit_test_policy.ts | 281 | const edge_inspection = graph_view.edge_view.model.data_source.selection_manager.get_or_create_inspector(graph_view. | CODE |
| CRITICAL⚡ | bokehjs/src/lib/models/graphs/graph_hit_test_policy.ts | 285 | const node_inspection = graph_view.node_view.model.data_source.selection_manager.get_or_create_inspector(graph_view. | CODE |
| CRITICAL⚡ | bokehjs/src/lib/models/graphs/graph_hit_test_policy.ts | 291 | graph_view.edge_view.model.data_source.inspect.emit([graph_view.edge_view.model, {geometry}]) | CODE |
| CRITICAL | bokehjs/src/lib/models/graphs/graph_hit_test_policy.ts | 370 | const node_inspection = graph_view.node_view.model.data_source.selection_manager.get_or_create_inspector(graph_view. | CODE |
| CRITICAL | bokehjs/src/lib/models/graphs/graph_hit_test_policy.ts | 380 | graph_view.node_view.model.data_source.inspect.emit([graph_view.node_view.model, {geometry}]) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | bokehjs/make/task.ts | 68 | print(`${chalk.red("failed:")} ${msg}`) | CODE |
| HIGH⚡ | bokehjs/src/compiler/build.ts | 72 | print(`${cyan("npm install")} failed with exit code ${red(`${status}`)}.`) | CODE |
| HIGH⚡ | bokehjs/src/compiler/build.ts | 78 | print(`Using nodejs ${magenta(node_version)} and npm ${magenta(npm_version(base_dir))}`) | CODE |
| HIGH⚡ | bokehjs/src/compiler/build.ts | 79 | print(`Working directory: ${cyan(base_dir)}`) | CODE |
| HIGH⚡ | bokehjs/src/compiler/build.ts | 218 | print(`Created empty ${cyan("index.ts")}. This is the entry point of your extension.`) | CODE |
| HIGH⚡ | bokehjs/src/compiler/build.ts | 221 | print(`You can build your extension with ${magenta(`bokeh build ${rel}`)}`) | CODE |
| HIGH⚡ | bokehjs/src/compiler/build.ts | 223 | print("All done.") | CODE |
| HIGH⚡ | bokehjs/src/compiler/build.ts | 264 | print("Using different version of bokeh, rebuilding from scratch.") | CODE |
| HIGH⚡ | bokehjs/src/compiler/build.ts | 274 | print(`${cyan(package_json_path)} doesn't exist. Not a npm package.`) | CODE |
| HIGH⚡ | bokehjs/src/compiler/build.ts | 277 | print(`Running ${cyan("npm install")}.`) | CODE |
| HIGH⚡ | bokehjs/src/compiler/build.ts | 282 | print(`${result} Running ${cyan("npm install")}.`) | CODE |
| HIGH⚡ | bokehjs/src/compiler/build.ts | 359 | print(report_diagnostics(tsconfig2.diagnostics).text) | CODE |
| HIGH⚡ | bokehjs/src/compiler/build.ts | 367 | print(`Compiling TypeScript (${magenta(count_files(files))})`) | CODE |
| HIGH⚡ | bokehjs/src/compiler/build.ts | 374 | print(report_diagnostics(tsoutput.diagnostics).text) | CODE |
| HIGH | bokehjs/src/compiler/build.ts | 51 | print(` ${file}`) | CODE |
| HIGH | bokehjs/src/compiler/build.ts | 143 | print("Already a bokeh extension. Quitting.") | CODE |
| HIGH | bokehjs/src/compiler/build.ts | 149 | print(`Wrote ${cyan(path)}`) | CODE |
| HIGH | bokehjs/src/compiler/build.ts | 188 | print(`${red("Invalid input")}. Assuming no.`) | CODE |
| HIGH | bokehjs/src/compiler/build.ts | 246 | print("Not a bokeh extension. Quitting.") | CODE |
| HIGH | bokehjs/src/compiler/build.ts | 305 | print(`TypeScript lib: ${cyan(tslib_dir)}`) | CODE |
| HIGH | bokehjs/src/compiler/build.ts | 309 | print(`Using ${cyan(tsconfig_path)}`) | CODE |
| HIGH | bokehjs/src/compiler/build.ts | 330 | print(report_diagnostics(tsconfig.diagnostics).text) | CODE |
| HIGH | bokehjs/src/compiler/build.ts | 346 | print(`Compiling styles (${magenta(count_files(styles))})`) | CODE |
| HIGH | bokehjs/src/compiler/build.ts | 397 | print("Linking modules") | CODE |
| HIGH | bokehjs/src/compiler/build.ts | 418 | print(`Failed to license text from ${magenta(license_path)}`) | CODE |
| HIGH | bokehjs/src/compiler/build.ts | 460 | print(`Output written to ${cyan(dist_dir)}`) | CODE |
| HIGH | bokehjs/src/compiler/build.ts | 461 | print("All done.") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/milestone.py | 366 | CODE | |
| LOW | tools/backport/updating.py | 180 | CODE | |
| LOW | tools/release/build.py | 127 | CODE | |
| LOW | tools/release/build.py | 185 | CODE | |
| LOW | tools/release/checks.py | 107 | CODE | |
| LOW | tools/release/checks.py | 127 | CODE | |
| LOW | tests/test_examples.py | 175 | CODE | |
| LOW | tests/unit/bokeh/test_events.py | 63 | CODE | |
| LOW | tests/unit/bokeh/embed/test_result.py | 390 | CODE | |
| LOW | tests/unit/bokeh/embed/test_result.py | 393 | CODE | |
| LOW | tests/unit/bokeh/server/test_asgi.py | 797 | CODE | |
| LOW | tests/unit/bokeh/server/test_asgi.py | 815 | CODE | |
| LOW | …sts/unit/bokeh/server/views/test_embed_json_handler.py | 244 | CODE | |
| LOW | tests/unit/bokeh/command/subcommands/test_serve.py | 513 | CODE | |
| LOW | tests/tools/release/test_build.py | 165 | CODE | |
| LOW | tests/integration/server_proxy/test_proxy.py | 44 | CODE | |
| LOW | tests/integration/server_e2e/test_embed_resources.py | 39 | CODE | |
| LOW | tests/integration/server_e2e/test_examples.py | 63 | CODE | |
| LOW | tests/support/util/filesystem.py | 79 | CODE | |
| LOW | tests/support/util/examples.py | 151 | CODE | |
| LOW | tests/support/util/compare.py | 47 | CODE | |
| LOW | examples/server/app/image_blur.py | 33 | CODE | |
| LOW | examples/server/app/ohlc/main.py | 67 | CODE | |
| LOW | examples/server/api/asgi/framework_free.py | 41 | CODE | |
| LOW | examples/server/api/asgi/streamlit_particles/ui.py | 58 | CODE | |
| LOW | src/bokeh/resources.py | 245 | CODE | |
| LOW | src/bokeh/layouts.py | 223 | CODE | |
| LOW | src/bokeh/layouts.py | 417 | CODE | |
| LOW | src/bokeh/layouts.py | 615 | CODE | |
| LOW | src/bokeh/layouts.py | 689 | CODE | |
| LOW | src/bokeh/layouts.py | 492 | CODE | |
| LOW | src/bokeh/layouts.py | 507 | CODE | |
| LOW | src/bokeh/core/query.py | 108 | CODE | |
| LOW | src/bokeh/core/has_props.py | 241 | CODE | |
| LOW | src/bokeh/core/has_props.py | 851 | CODE | |
| LOW | src/bokeh/core/serialization.py | 294 | CODE | |
| LOW | src/bokeh/core/serialization.py | 533 | CODE | |
| LOW | src/bokeh/core/serialization.py | 672 | CODE | |
| LOW | src/bokeh/core/property/descriptors.py | 908 | CODE | |
| LOW | src/bokeh/core/property/wrappers.py | 450 | CODE | |
| LOW | src/bokeh/core/property/wrappers.py | 518 | CODE | |
| LOW | src/bokeh/core/property/struct.py | 85 | CODE | |
| LOW | src/bokeh/core/property/bases.py | 349 | CODE | |
| LOW | src/bokeh/sphinxext/_internal/bokeh_model.py | 245 | CODE | |
| LOW | src/bokeh/sphinxext/_internal/bokeh_model.py | 275 | CODE | |
| LOW | src/bokeh/sphinxext/_internal/bokeh_prop.py | 178 | CODE | |
| LOW | src/bokeh/sphinxext/_internal/bokeh_sampledata_xref.py | 127 | CODE | |
| LOW | src/bokeh/sphinxext/_internal/bokeh_sampledata_xref.py | 169 | CODE | |
| LOW | src/bokeh/sphinxext/_internal/bokeh_example_metadata.py | 123 | CODE | |
| LOW | src/bokeh/embed/_output.py | 218 | CODE | |
| LOW | src/bokeh/embed/_output.py | 258 | CODE | |
| LOW | src/bokeh/embed/result.py | 435 | CODE | |
| LOW | src/bokeh/embed/_util.py | 275 | CODE | |
| LOW | src/bokeh/embed/_util.py | 368 | CODE | |
| LOW | src/bokeh/embed/resources.py | 392 | CODE | |
| LOW | src/bokeh/embed/resources.py | 569 | CODE | |
| LOW | src/bokeh/embed/resources.py | 254 | CODE | |
| LOW | src/bokeh/util/package.py | 43 | CODE | |
| LOW | src/bokeh/util/compiler.py | 527 | CODE | |
| LOW | src/bokeh/util/compiler.py | 546 | CODE | |
| 33 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | setup.py | 138 | except Exception: | CODE |
| MEDIUM | tools/ci/notify_full_ci.py | 133 | print(f"Error: {error.stderr.strip() or str(error)}", file=sys.stderr) | STRING |
| LOW | tools/release/build.py | 160 | except Exception as e: | CODE |
| LOW | tools/release/build.py | 177 | except Exception as e: | CODE |
| LOW | …ts/unit/bokeh/core/property/test_wrappers__property.py | 550 | except Exception: | CODE |
| LOW | …ts/unit/bokeh/core/property/test_wrappers__property.py | 555 | except Exception: | CODE |
| LOW | tests/unit/bokeh/model/test_model.py | 228 | except Exception: | CODE |
| MEDIUM⚡ | tests/unit/bokeh/command/subcommands/test_serve.py | 435 | print("An error occurred: %s", e) | CODE |
| LOW⚡ | tests/unit/bokeh/command/subcommands/test_serve.py | 432 | except Exception as e: | CODE |
| LOW⚡ | tests/unit/bokeh/command/subcommands/test_serve.py | 440 | except Exception: | CODE |
| LOW | tests/unit/bokeh/command/subcommands/test_serve.py | 533 | except Exception: | CODE |
| LOW | tests/support/util/filesystem.py | 67 | except Exception as e: | CODE |
| LOW | examples/server/app/taylor.py | 51 | except Exception as exception: | CODE |
| MEDIUM | examples/server/app/taylor.py | 48 | def update(): | CODE |
| LOW | examples/server/app/server_auth/auth.py | 30 | except Exception: | CODE |
| MEDIUM | examples/server/app/server_auth/auth.py | 27 | def get(self): | CODE |
| LOW | examples/server/app/spectrogram/audio.py | 37 | except Exception: | CODE |
| LOW | src/bokeh/settings.py | 243 | except Exception: | CODE |
| LOW⚡ | src/bokeh/settings.py | 955 | except Exception: | STRING |
| LOW | src/bokeh/settings.py | 935 | except Exception: | STRING |
| LOW | src/bokeh/resources.py | 500 | except Exception as e: | CODE |
| LOW | src/bokeh/core/property/datetime.py | 77 | except Exception: | CODE |
| LOW | src/bokeh/core/property/datetime.py | 117 | except Exception: | CODE |
| LOW | src/bokeh/sphinxext/bokeh_plot.py | 196 | except Exception as e: | CODE |
| LOW | src/bokeh/sphinxext/bokeh_plot.py | 259 | except Exception as e: | CODE |
| LOW | src/bokeh/sphinxext/_internal/bokeh_palette.py | 137 | except Exception as e: | CODE |
| LOW | src/bokeh/util/asyncio.py | 137 | except Exception: | CODE |
| LOW⚡ | src/bokeh/util/browser.py | 129 | except Exception: | CODE |
| LOW | src/bokeh/util/info.py | 72 | except Exception: | CODE |
| LOW | src/bokeh/util/dependencies.py | 62 | except Exception: | CODE |
| LOW⚡ | src/bokeh/io/browser.py | 287 | except Exception: | CODE |
| LOW⚡ | src/bokeh/io/browser.py | 303 | except Exception as e: | CODE |
| LOW⚡ | src/bokeh/io/browser.py | 557 | except Exception: | CODE |
| LOW | src/bokeh/io/browser.py | 199 | except Exception: | CODE |
| LOW | src/bokeh/io/browser.py | 206 | except Exception: | CODE |
| LOW | src/bokeh/io/browser.py | 236 | except Exception as e: | CODE |
| LOW | src/bokeh/io/browser.py | 275 | except Exception as e: | CODE |
| LOW | src/bokeh/io/browser.py | 315 | except Exception: | CODE |
| LOW | src/bokeh/io/browser.py | 543 | except Exception as e: | CODE |
| LOW | src/bokeh/io/notebook.py | 126 | except Exception as e: | CODE |
| LOW | src/bokeh/io/notebook.py | 407 | except Exception as e: | CODE |
| LOW⚡ | src/bokeh/io/webdriver.py | 269 | except Exception: | CODE |
| LOW⚡ | src/bokeh/io/webdriver.py | 298 | except Exception: | STRING |
| LOW⚡ | src/bokeh/io/webdriver.py | 304 | except Exception: | STRING |
| LOW | src/bokeh/server/server.py | 525 | except Exception: | CODE |
| LOW | src/bokeh/server/asgi.py | 201 | except Exception as error: | CODE |
| LOW | src/bokeh/server/asgi.py | 520 | except Exception: | CODE |
| LOW⚡ | src/bokeh/server/connection.py | 90 | except Exception: | CODE |
| MEDIUM | src/bokeh/server/contexts.py | 201 | def run_load_hook(self) -> None: | CODE |
| MEDIUM | src/bokeh/server/contexts.py | 207 | def run_unload_hook(self) -> None: | CODE |
| LOW | src/bokeh/server/contexts.py | 204 | except Exception as e: | CODE |
| LOW | src/bokeh/server/contexts.py | 210 | except Exception as e: | CODE |
| LOW | src/bokeh/server/contexts.py | 270 | except Exception as error: | CODE |
| LOW | src/bokeh/server/contexts.py | 303 | except Exception as e: | CODE |
| LOW | src/bokeh/server/contexts.py | 363 | except Exception as e: | CODE |
| LOW | src/bokeh/server/views/ws.py | 176 | except Exception as e: | CODE |
| LOW | src/bokeh/server/views/ws.py | 257 | except Exception as e: | CODE |
| LOW | src/bokeh/server/views/ws.py | 274 | except Exception as e: | CODE |
| LOW | src/bokeh/server/views/static_handler.py | 140 | except Exception: | CODE |
| LOW | src/bokeh/models/plots.py | 987 | except Exception: | STRING |
| 8 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/examples.yaml | 29 | "spectrogram", # Custom models not working in CI test harness | CODE |
| MEDIUM | bokehjs/src/lib/models/glyphs/webgl/polygon.ts | 132 | // robust tessellation path. | COMMENT |
| MEDIUM | bokehjs/src/lib/models/glyphs/webgl/polygon.ts | 246 | // retaining the robust path for crossings, overlaps, and large contours. | COMMENT |
| MEDIUM | …s/src/lib/models/formatters/datetime_tick_formatter.ts | 317 | // For repeating labels only utilize the first entry | COMMENT |
| MEDIUM | …/src/lib/models/formatters/timedelta_tick_formatter.ts | 290 | // For repeating labels only utilize the first entry | COMMENT |
| MEDIUM | .github/workflows/bokeh-ci.yml | 401 | # and included examples can utilize newest available syntax and standard APIs. | COMMENT |
| MEDIUM | .github/workflows/bokeh-ci-full.yml | 18 | cancel-in-progress: false # Don't cancel comprehensive tests | CODE |
| LOW⚡ | src/bokeh/sphinxext/_internal/util.py | 42 | # if BOKEH_DOCS_CDN is unset just use default CDN resources | COMMENT |
| LOW⚡ | src/bokeh/sphinxext/_internal/bokeh_example_metadata.py | 143 | # just use class role as-is for anything else | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/release/build.py | 130 | def update_dependencies(content: dict[str, Any]) -> None: | CODE |
| LOW | tools/release/build.py | 141 | def update_package_json(content: dict[str, Any]) -> None: | CODE |
| LOW | tools/release/build.py | 146 | def update_package_lock_json(content: dict[str, Any]) -> None: | CODE |
| LOW | …sts/unit/bokeh/server/views/test_embed_json_handler.py | 71 | def set_header(self, name: str, value: str) -> None: | CODE |
| LOW | tests/integration/server_e2e/test_examples.py | 141 | def _set_fourier_terms(target: Any, terms: int) -> None: | CODE |
| LOW | examples/server/api/asgi/fourier_studio.py | 157 | def update_data() -> None: | STRING |
| LOW | examples/server/api/asgi/fastapi_shared_data.py | 92 | def update_document(doc: Document) -> None: | CODE |
| LOW | …ples/server/api/asgi/streamlit_particles/simulation.py | 203 | def update_presentation(state: Snapshot) -> None: | CODE |
| LOW | src/bokeh/settings.py | 491 | def set_value(self, value: str | T) -> None: | CODE |
| LOW | src/bokeh/core/has_props.py | 528 | def set_from_json(self, name: str, value: Any, *, setter: Setter | None = None) -> None: | CODE |
| LOW | src/bokeh/core/property/descriptors.py | 224 | def set_from_json(self, obj: HasProps, value: Any, *, setter: Setter | None = None) -> None: | CODE |
| LOW | src/bokeh/core/property/descriptors.py | 498 | def set_from_json(self, obj: HasProps, value: Any, *, setter: Setter | None = None) -> None: | STRING |
| LOW | src/bokeh/core/property/descriptors.py | 670 | def _set_value(self, obj: HasProps, value: Any) -> None: | STRING |
| LOW | src/bokeh/core/property/descriptors.py | 908 | def set_from_json(self, obj: HasProps, value: Any, *, setter: Setter | None = None) -> None: | STRING |
| LOW | src/bokeh/sphinxext/_internal/timing.py | 51 | def _setup_docs_profile(app: Any) -> None: | CODE |
| LOW | src/bokeh/util/callback_manager.py | 119 | def _update_event_callbacks(self) -> None: | CODE |
| LOW | src/bokeh/util/compiler.py | 280 | def set_cache_hook(hook: Callable[[CustomModel, Implementation], AttrDict | None]) -> None: | CODE |
| LOW | src/bokeh/io/doc.py | 94 | def set_curdoc(doc: Document) -> None: | CODE |
| LOW | src/bokeh/server/contexts.py | 105 | def _set_session(self, session: ServerSession) -> None: | CODE |
| LOW | src/bokeh/server/views/embed_json_handler.py | 37 | def set_default_headers(self) -> None: | CODE |
| LOW | src/bokeh/models/layouts.py | 286 | def _set_background(self, color: ColorLike) -> None: | STRING |
| LOW | src/bokeh/models/renderers/contour_renderer.py | 73 | def set_data(self, data: ContourData) -> None: | STRING |
| LOW | src/bokeh/document/models.py | 257 | def update_name(self, model: Model, old_name: str | None, new_name: str | None) -> None: | CODE |
| LOW | src/bokeh/document/document.py | 895 | def set_select(self, selector: SelectorType | type[Model], updates: dict[str, Any]) -> None: | STRING |
| LOW | src/bokeh/document/document.py | 916 | def set_title(self, title: str, setter: Setter | None = None) -> None: | STRING |
| LOW | src/bokeh/document/document.py | 1095 | def _set_config(self, config: DocumentConfig) -> None: | STRING |
| LOW | src/bokeh/model/model.py | 551 | def set_select(self, selector: type[Model] | SelectorType, updates: dict[str, Any]) -> None: | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | bokehjs/src/lib/core/util/svg.ts | 363 | globalCompositeOperation: GlobalCompositeOperation // TODO: implement | CODE |
| LOW⚡ | bokehjs/src/lib/core/util/svg.ts | 370 | filter: string // TODO: implement | CODE |
| LOW⚡ | bokehjs/src/lib/core/util/svg.ts | 371 | imageSmoothingEnabled: boolean // TODO: implement | CODE |
| LOW⚡ | bokehjs/src/lib/core/util/svg.ts | 372 | imageSmoothingQuality: ImageSmoothingQuality // TODO: implement | CODE |
| LOW | bokehjs/src/lib/core/serialization/deserializer.ts | 224 | this.error(`can't resolve named symbol '${obj.name}'`) // TODO: implement symbol resolution | CODE |
| LOW | src/bokeh/core/serialization.py | 748 | self.error(f"can't resolve named symbol '{name}'") # TODO: implement symbol resolution | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tests/unit/bokeh/test_typing.py | 10 | # This file is meant only for type-checking with mypy. Thus "test" functions | COMMENT |
| MEDIUM | examples/models/dateaxis.py | 15 | # Create an array of synthetic times, starting at the current time, and extending 24hrs | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/bokeh/events.py | 650 | CODE | |
| LOW | src/bokeh/core/property/datetime.py | 169 | CODE | |
| LOW | src/bokeh/embed/_util.py | 190 | CODE | |
| LOW | src/bokeh/io/showing.py | 64 | CODE | |
| LOW | src/bokeh/server/server.py | 537 | CODE | |
| LOW | src/bokeh/server/core.py | 187 | CODE | |
| LOW | src/bokeh/server/tornado.py | 260 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/milestone.py | 168 | def helper(cursor: str | None = None) -> int | None: | CODE |
| LOW | tools/milestone.py | 283 | def helper(kind: MilestoneKind, cursor: str | None = None) -> None: | STRING |
| LOW | tests/support/plugins/bokeh_server.py | 94 | def helper() -> Any: | CODE |
| LOW | tests/support/plugins/jupyter_notebook.py | 148 | def helper() -> Any: | STRING |
| LOW | examples/server/app/gapminder/data.py | 4 | def process_data(): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | bokehjs/test/unit/models/sources/ajax_data_source.ts | 177 | const source = AjaxDataSource.create({data_url: "/ajax/dummy_data", polling_interval: 100, if_modified: true | CODE |
| LOW | bokehjs/test/devtools/server.ts | 163 | app.post("/ajax/dummy_data", async (_req, res) => { | CODE |
| LOW | bokehjs/src/lib/core/dom.ts | 198 | placeholder: HTMLInputElement["placeholder"] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/interaction/tools/toolbar_autohide.py | 17 | # Set autohide to true to only show the toolbar when mouse is over plot | COMMENT |