AI Slop Code Risk Monitor

keplergl/kepler.gl

SlopCodeMonitor badge for keplergl/kepler.gl Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

Kepler.gl is a powerful open source geospatial analysis tool for large-scale data sets.

1.9 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for keplergl/kepler.gl, a TypeScript project with 12,073 GitHub stars. SynthScan examined 406,363 lines of code across 1773 source files, recording 634 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 1.9 (Low 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.

1.9
Adjusted Signal
1.9
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
12.1K
Stars
TypeScript
Language
406.4K
Lines of Code
1.8K
Files
634
Pattern Hits
2026-10-31
Scan Date
0.01
HC Hit Rate

Risk Review · Payload v1

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

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 7.5/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 1.0/100 · LOW

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

Agent Over-Engineering Ratio 6.6/100 · LOW

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

PR Review Velocity Impact 9.0/100 · LOW

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

What These Metrics Mean

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

Pattern-Signal History

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

Severity Breakdown

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

CRITICAL 3HIGH 9MEDIUM 29LOW 593

Directory Score Breakdown

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

Pattern Findings

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

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Hyper-Verbose Identifiers525 hits · 514 pts
SeverityFileLineSnippetContext
LOWtest/browser/components/side-panel/layer-list.spec.js133function renderLayerListForInstances({emptySharedGroup = false} = {}) {CODE
LOWtest/browser/layer-tests/heatmap-layer-specs.js490function createHeatmapGeojsonLayer(values) {CODE
LOWtest/browser/layer-tests/flow-field-layer-specs.js404function createFlowFieldGeojsonDataset(id = 'flow-geojson-data') {CODE
LOWtest/node/utils/layer-utils-test.js36async function createDefaultColorDataset(columns, rowCount = 3) {CODE
LOWtest/node/processors/shapefile-files-test.js17function createPointShapefileBuffers({x = -122.4, y = 37.8, name = 'alpha'} = {}) {CODE
LOWtest/node/processors/file-handler-test.js697async function assertCompleteGeoArrowLayer(CODE
LOWtest/node/reducers/vis-state-test.js3760function testSetFilterDynamicDomainGPU(t, setFilter) {CODE
LOWtest/node/reducers/vis-state-test.js7338function loadDualLonLatPolygonState() {CODE
LOWtest/node/reducers/vis-state-test.js9393function mockStateWithFilterAndIntervalBasedAnimationLayer() {CODE
LOWtest/helpers/rtl-utils.js28export function mockHTMLElementClientSize(prop, value) {CODE
LOWtest/helpers/mock-state.js155function mockStateWithLayerCustomColorBreaksLegends() {CODE
LOWtest/helpers/mock-state.js215function mockStateWithSyncedTimeFilter() {CODE
LOWtest/helpers/mock-state.js329export function mockStateWithArcNeighbors(state) {CODE
LOWtest/helpers/mock-state.js382function mockStateWithMultiFilters() {CODE
LOWtest/helpers/mock-state.js566export function mockStateWithLayerDimensions(state) {CODE
LOWtest/helpers/mock-state.js636function mockStateWithCustomMapStyle(customType = 'LOCAL') {CODE
LOWtest/helpers/mock-state.js703function mockStateWithTooltipFormat() {CODE
LOWtest/helpers/mock-state.js734function mockStateWithGeocoderDataset() {CODE
LOWtest/helpers/mock-state.js780function mockStateWithLayerStyling() {CODE
LOWtest/helpers/mock-state.js1258export function stateWithTimeFilterAndTripLayer() {CODE
LOWtest/helpers/mock-state.js1264export function stateWithTimeFilterSyncedWithTripLayer() {CODE
LOWtest/helpers/component-utils.js23export function mockHTMLElementClientSize(prop, value) {CODE
LOWtest/helpers/mock-state-utils.js39export function applyExistingDatasetTasks(reducer, initialState) {CODE
LOWtest/helpers/layer-utils.js51export function testCreateLayerFromConfig(t, tc, LayerClasses = KeplerLayerClasses) {CODE
LOWexamples/custom-layer/src/app.tsx25function CustomLayerConfiguratorFactory(CODE
LOWexamples/demo-app/src/actions.js37export function loadRemoteResourceSuccess(response, config, options, remoteDatasetConfig) {CODE
LOWexamples/demo-app/src/actions.js47export function loadRemoteDatasetProcessedSuccessAction(result) {CODE
LOW…/src/cloud-providers/foursquare/foursquare-provider.js57function extractMapFromFSQResponse(response) {CODE
LOWexamples/demo-app/src/utils/runtime-config.js67export function applyDemoApplicationDefaults() {CODE
LOWexamples/demo-app/src/utils/runtime-config.js167export async function loadAndApplyRuntimeConfig() {CODE
LOWexamples/demo-app/src/reducers/index.js125async function loadRemoteResourceSuccessTask({CODE
LOWexamples/demo-app-sqlrooms/src/actions.js38export function loadRemoteResourceSuccess(response, config, options, remoteDatasetConfig) {CODE
LOWexamples/demo-app-sqlrooms/src/actions.js48export function loadRemoteDatasetProcessedSuccessAction(result) {CODE
LOW…/src/cloud-providers/foursquare/foursquare-provider.js57function extractMapFromFSQResponse(response) {CODE
LOW…es/demo-app-sqlrooms/src/components/assistant-tools.ts15export function createAssistantSkillTools(store: StoreApi<DemoRoomState>) {CODE
LOWexamples/demo-app-sqlrooms/src/reducers/index.js150async function loadRemoteResourceSuccessTask({CODE
LOWbindings/python/keplergl/serializers.py120def _serialize_dataframe_arrow(df: pd.DataFrame, name: str) -> dict:CODE
LOWbindings/python/keplergl/_html_export.py117def _serialize_datasets_for_html(data: dict, json_encoder=str) -> str:CODE
LOW⚡bindings/python/tests/test_serializers.py423 def test_serialize_dataframe_arrow_default_off(self, sample_df):CODE
LOW⚡bindings/python/tests/test_serializers.py430 def test_serialize_geodataframe_ignores_use_arrow(self, sample_gdf):CODE
LOW⚡bindings/python/tests/test_serializers.py439 def test_serialize_unsupported_type(self):CODE
LOW⚡bindings/python/tests/test_serializers.py444 def test_serialize_empty_dataframe(self):CODE
LOW⚡bindings/python/tests/test_serializers.py452 def test_serialize_single_row_dataframe(self):CODE
LOW⚡bindings/python/tests/test_serializers.py459 def test_serialize_dataframe_with_various_dtypes(self):CODE
LOWbindings/python/tests/test_serializers.py23 def test_serialize_dataframe_with_cities(self):CODE
LOWbindings/python/tests/test_serializers.py39 def test_serialize_dataframe_with_hex_data(self):CODE
LOWbindings/python/tests/test_serializers.py56 def test_serialize_dataframe_with_nan_filled(self):CODE
LOWbindings/python/tests/test_serializers.py71 def test_serialize_geodataframe(self, sample_gdf):CODE
LOWbindings/python/tests/test_serializers.py77 def test_serialize_geodataframe_with_timestamp(self):CODE
LOWbindings/python/tests/test_serializers.py99 def test_serialize_geodataframe_points_from_xy(self):CODE
LOWbindings/python/tests/test_serializers.py116 def test_serialize_geodataframe_with_polygons(self):CODE
LOWbindings/python/tests/test_serializers.py132 def test_serialize_geodataframe_with_crs(self):CODE
LOWbindings/python/tests/test_serializers.py143 def test_serialize_empty_geodataframe(self):CODE
LOWbindings/python/tests/test_serializers.py154 def test_serialize_all_null_geometry_geodataframe(self):CODE
LOWbindings/python/tests/test_serializers.py165 def test_serialize_geodataframe_multiple_geometry_columns(self):CODE
LOWbindings/python/tests/test_serializers.py209 def test_serialize_geodataframe_non_default_active_geometry(self):CODE
LOWbindings/python/tests/test_serializers.py239 def test_serialize_geodataframe_null_secondary_geometry(self):CODE
LOWbindings/python/tests/test_serializers.py262 def test_serialize_geojson_dict(self):CODE
LOWbindings/python/tests/test_serializers.py269 def test_serialize_geojson_feature_collection(self):CODE
LOWbindings/python/tests/test_serializers.py292 def test_serialize_geojson_string(self):CODE
465 more matches not shown…
Over-Commented Block54 hits · 54 pts
SeverityFileLineSnippetContext
LOWdocker/docker-compose.ghcr.yml1# No-build demo-app. Pulls the published image; does not clone or compile kepler.gl.COMMENT
LOWtest/browser/components/tooltip-config-test.js21COMMENT
LOWtest/browser/components/common/range-plot-test.js61COMMENT
LOW…t/browser/components/side-panel/color-selector-test.js461 // name: 'Ice And Fire 8',COMMENT
LOW…owser/components/side-panel/layer-configurator-test.js281 'gps_data.lng',COMMENT
LOW…owser/components/side-panel/layer-configurator-test.js301 // value: 'gps_data.lng',COMMENT
LOWtest/browser/layer-tests/hexagon-layer-specs.js221 Object.keys(layerData).sort(),COMMENT
LOWtest/node/processors/file-handler-test.js141 // const expectedResults = [COMMENT
LOWtest/node/reducers/vis-state-test.js4881 stateWithFilterPlot.filters[0].timeBins.smoothie['15-second'],COMMENT
LOWtest/node/reducers/vis-state-test.js4901 // lineChart: {COMMENT
LOWtest/node/reducers/vis-state-test.js4921 // {x: 1474071675000, y: 30.0292134, delta: 'last', pct: 0.00009290816741525582},COMMENT
LOWtest/node/reducers/vis-state-test.js4941 // // gps_data.latCOMMENT
LOWexamples/custom-layer/src/custom-contour-layer.js1// SPDX-License-Identifier: MITCOMMENT
LOWexamples/demo-app-sqlrooms/src/app.tsx881 centerMap: trueCOMMENT
LOWsrc/types/layers.d.ts401};COMMENT
LOWsrc/types/layers.d.ts421 // strokeColor: any;COMMENT
LOWsrc/layers/src/base-layer.ts1721 const userBackground = Boolean(textLabel[i].background || backgroundProps?.background);COMMENT
LOWsrc/layers/src/base-layer.ts1741 // -background and -characters, and deck.gl drops the pair when thoseCOMMENT
LOWsrc/layers/src/flow-field-layer/flow-field-layer.ts1// SPDX-License-Identifier: MITCOMMENT
LOWsrc/layers/src/tile3d-layer/tile3d-layer.ts81 }COMMENT
LOWsrc/layers/src/tile3d-layer/tile3d-layer.ts221 // module is added/removed, existing models keep their old shaders.COMMENT
LOWsrc/layers/src/heatmap-layer/deck-heatmap-layer.ts401 // Detect a transition out of globe mode. In globe mode we frame the densityCOMMENT
LOWsrc/layers/src/heatmap-layer/deck-heatmap-layer.ts461COMMENT
LOWsrc/layers/src/heatmap-layer/deck-heatmap-layer.ts581 if (!triPositionBuffer || !triTexCoordBuffer || !normalizedCommonBounds) {COMMENT
LOWsrc/deckgl-layers/src/globe/atmosphere-layer.ts201 fragColor.a *= fTerminatorOpacityFactor;COMMENT
LOWsrc/deckgl-layers/src/globe/globe-backface-cull.ts1// SPDX-License-Identifier: MITCOMMENT
LOWsrc/deckgl-layers/src/globe/globe-backface-cull.ts21// - a surface point is visible from the camera exactly when the angle between itsCOMMENT
LOWsrc/deckgl-layers/src/globe/globe-view.ts81COMMENT
LOWsrc/deckgl-layers/src/globe/globe-view.ts121 }COMMENT
LOWsrc/deckgl-layers/src/globe/globe-view.ts241 //COMMENT
LOWsrc/deckgl-layers/src/globe/globe-view.ts341 // projection math (globe vs flat mercator). That makes deck's TileLayer/MVTLayerCOMMENT
LOWsrc/deckgl-layers/src/globe/globe-layers.ts281 if (backgroundColor) {COMMENT
LOWsrc/deckgl-layers/src/globe/globe-layers.ts301 // - depthMask: false → don't write depth (avoid self z-fighting on the shell)COMMENT
LOWsrc/deckgl-layers/src/globe/globe-layers.ts321const GLOBE_SATELLITE_ZOOM_OFFSET = 0;COMMENT
LOWsrc/deckgl-layers/src/globe/index.ts1// SPDX-License-Identifier: MITCOMMENT
LOWsrc/deckgl-layers/src/globe/mvt-label-layer.ts1// SPDX-License-Identifier: MITCOMMENT
LOWsrc/deckgl-layers/src/globe/globe-depth-disk-layer.ts21 // Depth writes only happen with depthTest enabled. The disk is opaque-black-ishCOMMENT
LOW…deckgl-layers/src/raster/raster-processing-uniforms.ts81#define colormap_categoricalMinValue_ALIAS rasterProcessing.colormap_categoricalMinValueCOMMENT
LOW…gl-layers/src/raster/webgl/color/sigmoidal-contrast.ts1// SPDX-License-Identifier: MITCOMMENT
LOW…gl-layers/src/raster/webgl/color/sigmoidal-contrast.ts21// 20 is a lot.COMMENT
LOW…deckgl-layers/src/raster/webgl/color/gamma-contrast.ts1// SPDX-License-Identifier: MITCOMMENT
LOWsrc/deckgl-layers/src/layer-utils/cpu-aggregator.ts601 layerData: {},COMMENT
LOWsrc/deckgl-layers/src/layer-utils/aggregation-utils.ts121//COMMENT
LOWsrc/mcp/src/commands/table-command.ts81 // high-risk, confirmation-gated command. Fail fast with an actionableCOMMENT
LOWsrc/mcp/src/commands/layer-creation-command.ts301 // recoverable error. Only run this when colorType is explicitly 'unique':COMMENT
LOWsrc/mcp/src/commands/add-column-command.ts121 // Pass the user-provided datasetName (label or id) toCOMMENT
LOWsrc/mcp/src/commands/load-data-command.ts141 const fileName =COMMENT
LOWsrc/components/src/map-container.tsx741COMMENT
LOWsrc/components/src/map-container.tsx1501 // ending) arrives with all interaction flags false. If we defer it, theCOMMENT
LOW…c/components/src/modals/globe-export-video-preview.tsx101 mapboxApiUrl: mapProps?.mapboxApiUrl,COMMENT
LOW…s/src/common/animation-control/animation-controller.ts221 const delta =COMMENT
LOWsrc/components/src/side-panel/custom-panel.tsx21 };COMMENT
LOWsrc/deckgl-arrow-layers/src/constants.ts1// SPDX-License-Identifier: MITCOMMENT
LOWsrc/reducers/src/map-state-updaters.ts641 // if current viewport is synced, and we are unsyncing itCOMMENT
Self-Referential Comments15 hits · 45 pts
SeverityFileLineSnippetContext
MEDIUM.yarnrc.yml3# Define the registry to use when fetching packages.COMMENT
MEDIUMwebsite/.yarnrc.yml3# Define the registry to use when fetching packages.COMMENT
MEDIUMexamples/custom-reducer/.yarnrc.yml3# Define the registry to use when fetching packages.COMMENT
MEDIUMexamples/replace-component/.yarnrc.yml3# Define the registry to use when fetching packages.COMMENT
MEDIUMexamples/custom-map-style/.yarnrc.yml3# Define the registry to use when fetching packages.COMMENT
MEDIUMexamples/open-modal/.yarnrc.yml3# Define the registry to use when fetching packages.COMMENT
MEDIUMexamples/node-app/.yarnrc.yml3# Define the registry to use when fetching packages.COMMENT
MEDIUMexamples/clicked-feature/.yarnrc.yml3# Define the registry to use when fetching packages.COMMENT
MEDIUMexamples/duckdb-vite/.yarnrc.yml3# Define the registry to use when fetching packages.COMMENT
MEDIUMexamples/get-started-vite/.yarnrc.yml3# Define the registry to use when fetching packages.COMMENT
MEDIUMexamples/custom-layer/.yarnrc.yml3# Define the registry to use when fetching packages.COMMENT
MEDIUMexamples/custom-theme/.yarnrc.yml3# Define the registry to use when fetching packages.COMMENT
MEDIUMexamples/demo-app/.yarnrc.yml3# Define the registry to use when fetching packages.COMMENT
MEDIUMexamples/demo-app-sqlrooms/.yarnrc.yml3# Define the registry to use when fetching packages.COMMENT
MEDIUMexamples/get-started/.yarnrc.yml3# Define the registry to use when fetching packages.COMMENT
Cross-Language Confusion7 hits · 45 pts
SeverityFileLineSnippetContext
HIGHbindings/python/keplergl/_html_export.py132 f" datasets.push({{info: {{id: {json.dumps(name, ensure_ascii=False)}, label: {json.dumps(name, ensure_CODE
HIGHbindings/python/keplergl/_html_export.py139 f" datasets.push({{info: {{id: {json.dumps(name, ensure_ascii=False)}, label: {json.dumps(name, ensCODE
HIGH⚡bindings/python/keplergl/_html_export.py243 window.React = React.default || React;CODE
HIGH⚡bindings/python/keplergl/_html_export.py244 window.ReactDOM = Object.assign({{}}, ReactDOM.default || ReactDOM, ReactDOMClient);CODE
HIGH⚡bindings/python/keplergl/_html_export.py245 window.Redux = Redux.default || Redux;CODE
HIGH⚡bindings/python/keplergl/_html_export.py246 window.ReactRedux = ReactRedux.default || ReactRedux;CODE
HIGHbindings/python/keplergl/_html_export.py340 react.createElement(KeplerElement, null)CODE
Hallucination Indicators3 hits · 30 pts
SeverityFileLineSnippetContext
CRITICALtest/browser/layer-tests/zarr-layer-specs.js1197 deckLayer.props.metadata.multiscales.layout.map(level => level.asset),CODE
CRITICALtest/browser/layer-tests/cluster-layer-specs.js605 const members = () => layer.state.aggregatorState.layerData.data.flatMap(cell => cell.points);CODE
CRITICALtest/node/reducers/vis-state-test.js3433 state.datasets.replacement.filterRecord.cpu.some(filter => filter.id === state.filters[0].id),CODE
Decorative Section Separators9 hits · 27 pts
SeverityFileLineSnippetContext
MEDIUMexamples/custom-layer/src/app.tsx21// ── Custom layer configurator ─────────────────────────────────────────────────COMMENT
MEDIUMexamples/custom-layer/src/app.tsx80// ── Store ─────────────────────────────────────────────────────────────────────COMMENT
MEDIUMexamples/custom-layer/src/app.tsx103// ── Sample data ──────────────────────────────────────────────────────────────COMMENT
MEDIUMexamples/custom-layer/src/app.tsx202// ── Window size hook ─────────────────────────────────────────────────────────COMMENT
MEDIUMexamples/custom-layer/src/app.tsx214// ── App component ────────────────────────────────────────────────────────────COMMENT
MEDIUMexamples/custom-layer/src/custom-contour-layer.js16// ── Layer icon (simple SVG shown in the layer type selector) ─────────────────COMMENT
MEDIUMexamples/custom-layer/src/custom-contour-layer.js28// ── vis-config entries ────────────────────────────────────────────────────────COMMENT
MEDIUMexamples/custom-layer/src/custom-contour-layer.js67// ── Required columns ─────────────────────────────────────────────────────────COMMENT
MEDIUMexamples/custom-layer/src/custom-contour-layer.js71// ── Custom layer class ────────────────────────────────────────────────────────COMMENT
AI Slop Vocabulary5 hits · 13 pts
SeverityFileLineSnippetContext
MEDIUMbindings/python/package-lock.json10232 "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.3.tgz",CODE
MEDIUMbindings/python/package-lock.json11177 "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-2.0.4.tgz",CODE
MEDIUMsrc/deckgl-layers/src/globe/globe-layers.ts298 // is a precision-robust occluder that works at any zoom, so:COMMENT
MEDIUM…deckgl-arrow-layers/src/layers/geo-arrow-text-layer.ts243 // TODO privide more robust data comparatorsCOMMENT
MEDIUMsrc/reducers/src/vis-state-updaters.ts747 // TODO: Shan, make the animation config function more robustCOMMENT
Empty Error Handlers2 hits · 10 pts
SeverityFileLineSnippetContext
HIGHbindings/python/keplergl/serializers.py40except (json.JSONDecodeError, TypeError):CODE
HIGHbindings/python/keplergl/_html_export.py74except (json.JSONDecodeError, TypeError):CODE
TODO Padding4 hits · 6 pts
SeverityFileLineSnippetContext
LOW…mo-app/src/cloud-providers/dropbox/dropbox-provider.js162 // TODO: implement pagination, so we don't need to get all the thumbs all at onceCOMMENT
LOW…lrooms/src/cloud-providers/dropbox/dropbox-provider.js162 // TODO: implement pagination, so we don't need to get all the thumbs all at onceCOMMENT
LOWsrc/layers/src/vector-tile/common-tile/tile-dataset.ts62 // TODO: implement laterCOMMENT
LOWsrc/components/src/common/column-stats-chart.tsx378 // TODO: implement display for ordinal breaksCOMMENT
Unused Imports4 hits · 4 pts
SeverityFileLineSnippetContext
LOWbindings/python/keplergl/__init__.py6CODE
LOWbindings/python/keplergl/__init__.py7CODE
LOWbindings/python/keplergl/_html_export.py6CODE
LOWbindings/python/tests/test_widget.py6CODE
AI Structural Patterns2 hits · 2 pts
SeverityFileLineSnippetContext
LOWbindings/python/keplergl/widget.py29CODE
LOWbindings/python/keplergl/widget.py81CODE
Deep Nesting2 hits · 2 pts
SeverityFileLineSnippetContext
LOWbindings/python/keplergl/serializers.py63CODE
LOWbindings/python/keplergl/_html_export.py44CODE
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippetContext
LOW.github/workflows/build-publish-pypi.yml97 # Check if version contains prerelease indicators (a, b, rc, dev)COMMENT
Modern Structural Boilerplate1 hit · 1 pts
SeverityFileLineSnippetContext
LOWbindings/python/keplergl/__init__.py9__all__ = ["KeplerGl", "__version__"]CODE