AI Slop Code RIsk Monitor

frappe/frappe

Low code web framework for real world applications, in Python and Javascript

12.7 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for frappe/frappe, a Python project with 10,913 GitHub stars. SynthScan examined 617,422 lines of code across 4032 source files, recording 6664 pattern matches distributed across 24 syntactic categories. The legacy adjusted pattern signal is 12.7 (Moderate 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.

12.7
Adjusted Signal
12.7
Raw Pattern Score
100%
Time Factor
2026-10-11
Last Push
10.9K
Stars
Python
Language
617.4K
Lines of Code
4.0K
Files
6.7K
Pattern Hits
2026-10-12
Scan Date
0.05
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 34.4/100 · MEDIUM

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

Hallucinated Dependency & Supply Chain Risk 8.4/100 · LOW

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

Agent Over-Engineering Ratio 37.8/100 · MEDIUM

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

PR Review Velocity Impact 48.4/100 · MEDIUM

Which changes need focused human review? 6664 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 36HIGH 149MEDIUM 224LOW 6255

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 6664 distinct pattern matches across 24 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 Identifiers4424 hits · 4269 pts
SeverityFileLineSnippetContext
LOWui/vite/island/index.js363function assertSheetScannedTheBundle(context, bundle, plugin) {CODE
LOWui/vite/island/tailwind.js27export function writeIslandTailwindConfig(context, sources) {CODE
LOWui/src/components/ActivityTimeline/grouping.ts184export function groupAssignmentActivities(activities: Activity[]): Activity[] {CODE
LOWui/src/components/ConditionBuilder/internal/context.ts230export function useConditionBuilderContext(): ConditionBuilderContext {CODE
LOWui/src/components/ColumnSettings/columns.ts150export function dropOrphanedSyntheticColumns(CODE
LOWui/src/components/Onboarding/onboarding.ts142 function updateUserOnboardingStatus(steps: StoredStep[]) {CODE
LOWfrappe/auth.py308 def force_user_to_reset_password(self):CODE
LOWfrappe/auth.py517def get_login_attempt_tracker(key: str, raise_locked_exception: bool = True):CODE
LOWfrappe/auth.py740def validate_auth_via_api_keys(authorization_header):CODE
LOWfrappe/bundler.py146def page_island_build_command(production: bool = False, watch: bool = False) -> str:CODE
LOWfrappe/bundler.py216def get_safe_max_old_space_size():CODE
LOWfrappe/sessions.py406 def get_session_data_from_cache(self):CODE
LOWfrappe/sessions.py539def get_expiry_period_for_query():CODE
LOWfrappe/runner.py316 def dequeue_job_and_maintain_ttl(self, timeout, max_idle_time=None):CODE
LOWfrappe/translate.py185def get_translations_from_apps(lang, apps=None):CODE
LOWfrappe/translate.py203def get_translations_from_csv(lang, app):CODE
LOWfrappe/translate.py209def get_translation_dict_from_file(path, lang, app, throw=False) -> dict[str, str]:CODE
LOWfrappe/translate.py269def change_translation_version():CODE
LOWfrappe/translate.py341def get_messages_from_doctype(name):CODE
LOWfrappe/translate.py387def get_messages_from_workflow(doctype=None, app_name=None):CODE
LOWfrappe/translate.py457def get_messages_from_custom_fields(app_name):CODE
LOWfrappe/translate.py529def _get_messages_from_page_or_report(doctype, name, module=None):CODE
LOWfrappe/translate.py566def get_messages_from_include_files(app_name=None):CODE
LOWfrappe/translate.py584def get_all_messages_from_js_files(app_name=None):CODE
LOWfrappe/translate.py645def extract_messages_from_python_code(code: str) -> list[tuple[int, str, str | None]]:CODE
LOWfrappe/translate.py672def extract_messages_from_javascript_code(code: str) -> list[tuple[int, str, str | None]]:CODE
LOWfrappe/translate.py877def rebuild_all_translation_files():CODE
LOWfrappe/translate.py918def update_translations_for_source(source: str | None = None, translation_dict: str | dict | None = None):CODE
LOWfrappe/translate.py956 def get_all_language_with_name():CODE
LOWfrappe/translate.py969def get_preferred_language_cookie():CODE
LOWfrappe/config.py123def _apply_common_env_overrides(config: _dict[str, Any]) -> None:CODE
LOWfrappe/cache_manager.py146def _clear_doctype_cache_from_redis(doctype: str | None = None):CODE
LOWfrappe/cache_manager.py262def build_domain_restricted_doctype_cache(*args, **kwargs):CODE
LOWfrappe/cache_manager.py279def build_domain_restricted_page_cache(*args, **kwargs):CODE
LOWfrappe/boot.py513def get_link_preview_doctypes():CODE
LOWfrappe/boot.py530def get_additional_filters_from_hooks():CODE
LOWfrappe/boot.py561def get_notification_settings():CODE
LOWfrappe/onboarding.py13def update_user_onboarding_status(steps: str | list | dict, appName: str):CODE
LOWfrappe/recorder.py255def _install_run_method_tracer():CODE
LOWfrappe/__init__.py484def setup_redis_cache_connection():CODE
LOWfrappe/__init__.py1159def _get_cached_signature_params(fn: Callable) -> tuple[dict[str, Any], bool]:CODE
LOWfrappe/__init__.py1482def validate_and_sanitize_search_inputs(fn):CODE
LOWfrappe/__init__.py1488def override_whitelisted_method(original_method: str) -> str:CODE
LOWfrappe/deprecation_dumpster.py383def test_runner_make_test_records(*args, **kwargs):CODE
LOWfrappe/deprecation_dumpster.py392def test_runner_make_test_objects(*args, **kwargs):CODE
LOWfrappe/deprecation_dumpster.py404def test_runner_make_test_records_for_doctype(*args, **kwargs):CODE
LOWfrappe/deprecation_dumpster.py416def test_runner_print_mandatory_fields(*args, **kwargs):CODE
LOWfrappe/deprecation_dumpster.py428def test_runner_get_test_record_log(doctype):CODE
LOWfrappe/deprecation_dumpster.py440def test_runner_add_to_test_record_log(doctype):CODE
LOWfrappe/deprecation_dumpster.py486def tests_update_system_settings(args, commit=False):CODE
LOWfrappe/deprecation_dumpster.py745 def execute_command_and_count(*args, **kwargs):CODE
LOWfrappe/deprecation_dumpster.py845def get_compat_frappe_test_case_preparation(cfg):CODE
LOWfrappe/deprecation_dumpster.py889def model_trace_traced_field_context(*args, **kwargs):CODE
LOWfrappe/deprecation_dumpster.py901def tests_utils_get_dependencies(doctype):CODE
LOWfrappe/deprecation_dumpster.py936def test_runner_get_dependencies(doctype):CODE
LOWfrappe/deprecation_dumpster.py964def compat_preload_test_records_upfront(candidates: list):CODE
LOWfrappe/twofactor.py112def two_factor_is_enabled_for_(user):CODE
LOWfrappe/twofactor.py271def get_email_subject_for_qr_code(kwargs_dict):CODE
LOWfrappe/twofactor.py279def get_email_body_for_qr_code(kwargs_dict):CODE
LOWfrappe/twofactor.py410def delete_all_barcodes_for_users():CODE
4364 more matches not shown…
Empty Error Handlers111 hits · 555 pts
SeverityFileLineSnippetContext
HIGHfrappe/auth.py736except AttributeError:CODE
HIGHfrappe/auth.py762except (AttributeError, TypeError, ValueError):CODE
HIGHfrappe/bundler.py226except Exception:CODE
HIGHfrappe/bundler.py44except FileExistsError:CODE
HIGHfrappe/bundler.py69except ImportError:CODE
HIGHfrappe/handler.py330except ValueError:CODE
HIGHfrappe/cache_manager.py184except frappe.DoesNotExistError:CODE
HIGHfrappe/boot.py601except Exception:CODE
HIGHfrappe/client.py424except frappe.db.InternalError:CODE
HIGHfrappe/recorder.py101except Exception:CODE
HIGHfrappe/recorder.py123except Exception:CODE
HIGHfrappe/recorder.py136except Exception:CODE
HIGHfrappe/recorder.py162except Exception:CODE
HIGHfrappe/recorder.py356except Exception:CODE
HIGHfrappe/installer.py34except Exception:CODE
HIGHfrappe/installer.py795except Exception:CODE
HIGHfrappe/frappeclient.py399except Exception:CODE
HIGHfrappe/database/query.py114except (AttributeError, TypeError, KeyError):CODE
HIGHfrappe/database/postgres/database.py903except Exception:CODE
HIGH…ppe/core/page/permission_manager/permission_manager.py258except Exception:CODE
HIGHfrappe/core/doctype/page/page.py297except (AttributeError, ImportError):CODE
HIGHfrappe/core/doctype/module_def/module_def.py162except frappe.DoesNotExistError:CODE
HIGHfrappe/core/doctype/file/test_file.py537except frappe.DoesNotExistError:CODE
HIGHfrappe/core/doctype/file/test_file.py818except Exception:CODE
HIGHfrappe/core/doctype/file/test_file.py847except Exception:CODE
HIGHfrappe/core/doctype/data_import/importer.py1734except ValueError:CODE
HIGHfrappe/core/doctype/data_import/importer.py1748except ValueError:CODE
HIGHfrappe/core/doctype/data_import/importer.py422except Exception:CODE
HIGHfrappe/core/doctype/data_import/importer.py376except Exception:CODE
HIGHfrappe/core/doctype/data_import/data_import.py305except Exception:CODE
HIGHfrappe/core/doctype/doctype/doctype.py2133except frappe.DoesNotExistError:CODE
HIGHfrappe/core/doctype/doctype/doctype.py885except ValueError:CODE
HIGHfrappe/desk/reportview.py1109except frappe.db.SQLError:CODE
HIGHfrappe/desk/reportview.py1111except frappe.db.InternalError:CODE
HIGHfrappe/desk/notifications.py500except frappe.DoesNotExistError:CODE
HIGHfrappe/desk/desktop.py518except frappe.PermissionError:CODE
HIGHfrappe/desk/form/assign_to.py238except frappe.DoesNotExistError:CODE
HIGHfrappe/desk/form/meta.py257except frappe.PermissionError:CODE
HIGH…doctype/notification_settings/notification_settings.py156except ImportError:CODE
HIGHfrappe/patches/v12_0/fix_public_private_files.py31except OSError:CODE
HIGHfrappe/patches/v14_0/log_settings_migration.py27except Exception:CODE
HIGHfrappe/patches/v14_0/clear_long_pending_stale_logs.py38except Exception:CODE
HIGHfrappe/patches/v13_0/reset_corrupt_defaults.py32except frappe.DoesNotExistError:CODE
HIGHfrappe/website/router.py83except NotFound:CODE
HIGHfrappe/website/router.py205except Exception:CODE
HIGHfrappe/website/page_renderers/template_page.py275except Exception:CODE
HIGHfrappe/tests/test_sequence.py35except frappe.db.SequenceGeneratorLimitExceeded:CODE
HIGHfrappe/tests/test_child_table.py12except Exception:CODE
HIGHfrappe/tests/test_sqlite_search.py219except Exception:CODE
HIGHfrappe/tests/test_sqlite_search.py225except Exception:CODE
HIGHfrappe/tests/classes/unit_test_case.py124except (ValueError, IndexError):CODE
HIGHfrappe/utils/user.py57except frappe.DoesNotExistError:CODE
HIGHfrappe/utils/task_queue.py157except Exception:CODE
HIGHfrappe/utils/error.py158except Exception:CODE
HIGHfrappe/utils/__init__.py795except Exception:CODE
HIGHfrappe/utils/__init__.py1081except Exception:CODE
HIGHfrappe/utils/pdf.py232except errors.FileNotDecryptedError:CODE
HIGHfrappe/utils/logger.py72except KeyError:CODE
HIGHfrappe/utils/print_format_generator.py167except Exception:CODE
HIGHfrappe/utils/file_lock.py62except OSError:CODE
51 more matches not shown…
Excessive Try-Catch Wrapping447 hits · 492 pts
SeverityFileLineSnippetContext
LOWfrappe/auth.py776 except Exception:CODE
LOWfrappe/bundler.py56 except Exception:CODE
LOWfrappe/bundler.py226 except Exception:CODE
LOWfrappe/bundler.py285 except Exception:CODE
LOWfrappe/bundler.py314 except Exception as e:CODE
LOWfrappe/translate.py178 except Exception:CODE
LOWfrappe/translate.py623 except Exception:CODE
LOWfrappe/config.py46 except Exception as error:CODE
LOWfrappe/config.py102 except Exception:CODE
LOWfrappe/config.py138 except Exception as error:CODE
LOWfrappe/monitor.py67 except Exception:CODE
LOWfrappe/monitor.py121 except Exception:CODE
MEDIUMfrappe/monitor.py52def __init__(self, transaction_type, method, kwargs):CODE
MEDIUMfrappe/monitor.py101def dump(self, response=None):CODE
LOWfrappe/handler.py78 except Exception as e:CODE
LOWfrappe/deferred_insert.py62 except Exception as e:CODE
LOWfrappe/boot.py601 except Exception:CODE
LOWfrappe/boot.py634 except Exception:CODE
MEDIUMfrappe/boot.py631def add_subscription_conf():CODE
LOWfrappe/client.py322 except Exception:CODE
LOWfrappe/recorder.py101 except Exception:CODE
LOWfrappe/recorder.py123 except Exception:CODE
LOWfrappe/recorder.py136 except Exception:CODE
LOWfrappe/recorder.py162 except Exception:CODE
LOWfrappe/recorder.py356 except Exception:CODE
LOWfrappe/recorder.py400 except Exception as e:CODE
LOWfrappe/twofactor.py307 except Exception:CODE
LOWfrappe/apps.py80 except Exception:CODE
LOWfrappe/installer.py34 except Exception:CODE
LOWfrappe/installer.py78 except Exception:CODE
LOWfrappe/installer.py239 except Exception:CODE
LOWfrappe/installer.py474 except Exception:CODE
LOWfrappe/installer.py513 except Exception:CODE
LOWfrappe/installer.py795 except Exception:CODE
LOWfrappe/installer.py1273 except Exception:CODE
LOWfrappe/app.py85 except Exception:CODE
LOWfrappe/app.py157 except Exception as e:CODE
LOWfrappe/app.py172 except Exception:CODE
LOWfrappe/frappeclient.py399 except Exception:CODE
LOWfrappe/migrate.py54 except Exception as e:CODE
LOWfrappe/migrate.py269 except Exception as e:CODE
MEDIUMfrappe/migrate.py49def wrapper(*args, **kwargs):CODE
LOW⚡frappe/oauth.py454 except Exception:CODE
LOW⚡frappe/oauth.py464 except Exception:CODE
LOWfrappe/oauth.py567 except Exception:CODE
MEDIUMfrappe/oauth.py449def validate_id_token(self, token, scopes, request):CODE
MEDIUMfrappe/oauth.py459def validate_jwt_bearer_token(self, token, scopes, request):CODE
LOWfrappe/database/query.py536 except Exception as e:CODE
LOWfrappe/database/query.py1997 except Exception:CODE
LOWfrappe/database/query.py2076 except Exception:CODE
LOWfrappe/database/query.py2092 except Exception:CODE
LOWfrappe/database/query.py2144 except Exception:CODE
LOWfrappe/database/query.py2262 except Exception:CODE
LOWfrappe/database/database.py159 except Exception as e:CODE
LOWfrappe/database/database.py164 except Exception as e:CODE
LOWfrappe/database/database.py302 except Exception as e:CODE
LOWfrappe/database/database.py466 except Exception as e:CODE
LOWfrappe/database/database.py713 except Exception as e:CODE
LOWfrappe/database/database.py1240 except Exception:CODE
LOWfrappe/database/database.py1467 except Exception:CODE
387 more matches not shown…
Unused Imports469 hits · 412 pts
SeverityFileLineSnippetContext
LOWfrappe/runner.py7CODE
LOWfrappe/hooks.py3CODE
LOWfrappe/translate.py13CODE
LOWfrappe/handler.py14CODE
LOWfrappe/handler.py18CODE
LOWfrappe/handler.py22CODE
LOWfrappe/handler.py25CODE
LOWfrappe/deferred_insert.py2CODE
LOWfrappe/deferred_insert.py10CODE
LOWfrappe/boot.py30CODE
LOWfrappe/boot.py34CODE
LOWfrappe/client.py3CODE
LOWfrappe/client.py16CODE
LOWfrappe/parallel_test_runner.py4CODE
LOWfrappe/parallel_test_runner.py9CODE
LOWfrappe/recorder.py31CODE
LOWfrappe/__init__.py24CODE
LOWfrappe/__init__.py25CODE
LOWfrappe/__init__.py25CODE
LOWfrappe/__init__.py25CODE
LOWfrappe/__init__.py30CODE
LOWfrappe/__init__.py36CODE
LOWfrappe/__init__.py36CODE
LOWfrappe/__init__.py36CODE
LOWfrappe/__init__.py36CODE
LOWfrappe/__init__.py38CODE
LOWfrappe/__init__.py38CODE
LOWfrappe/__init__.py38CODE
LOWfrappe/__init__.py41CODE
LOWfrappe/__init__.py43CODE
LOWfrappe/__init__.py43CODE
LOWfrappe/__init__.py43CODE
LOWfrappe/__init__.py43CODE
LOWfrappe/__init__.py43CODE
LOWfrappe/__init__.py1495CODE
LOWfrappe/__init__.py1495CODE
LOWfrappe/__init__.py1495CODE
LOWfrappe/__init__.py1495CODE
LOWfrappe/__init__.py1495CODE
LOWfrappe/__init__.py148CODE
LOWfrappe/__init__.py154CODE
LOWfrappe/__init__.py154CODE
LOWfrappe/__init__.py155CODE
LOWfrappe/__init__.py156CODE
LOWfrappe/__init__.py156CODE
LOWfrappe/__init__.py157CODE
LOWfrappe/__init__.py162CODE
LOWfrappe/__init__.py163CODE
LOWfrappe/__init__.py164CODE
LOWfrappe/__init__.py164CODE
LOWfrappe/__init__.py164CODE
LOWfrappe/__init__.py164CODE
LOWfrappe/__init__.py164CODE
LOWfrappe/__init__.py164CODE
LOWfrappe/__init__.py164CODE
LOWfrappe/__init__.py164CODE
LOWfrappe/__init__.py164CODE
LOWfrappe/__init__.py164CODE
LOWfrappe/__init__.py164CODE
LOWfrappe/__init__.py164CODE
409 more matches not shown…
Deep Nesting465 hits · 404 pts
SeverityFileLineSnippetContext
LOWfrappe/translate.py209CODE
LOWfrappe/translate.py274CODE
LOWfrappe/translate.py387CODE
LOWfrappe/translate.py584CODE
LOWfrappe/translate.py707CODE
LOWfrappe/translate.py737CODE
LOWfrappe/translate.py835CODE
LOWfrappe/config.py33CODE
LOWfrappe/monitor.py101CODE
LOWfrappe/handler.py131CODE
LOWfrappe/deferred_insert.py28CODE
LOWfrappe/cache_manager.py146CODE
LOWfrappe/boot.py686CODE
LOWfrappe/boot.py733CODE
LOWfrappe/recorder.py105CODE
LOWfrappe/recorder.py220CODE
LOWfrappe/recorder.py329CODE
LOWfrappe/recorder.py225CODE
LOWfrappe/__init__.py1001CODE
LOWfrappe/deprecation_dumpster.py845CODE
LOWfrappe/deprecation_dumpster.py964CODE
LOWfrappe/deprecation_dumpster.py852CODE
LOWfrappe/twofactor.py44CODE
LOWfrappe/apps.py41CODE
LOWfrappe/installer.py451CODE
LOWfrappe/installer.py485CODE
LOWfrappe/installer.py610CODE
LOWfrappe/installer.py752CODE
LOWfrappe/installer.py893CODE
LOWfrappe/concurrency_limiter.py61CODE
LOWfrappe/app.py111CODE
LOWfrappe/app.py362CODE
LOWfrappe/permissions.py82CODE
LOWfrappe/permissions.py358CODE
LOWfrappe/permissions.py512CODE
LOWfrappe/defaults.py235CODE
LOWfrappe/frappeclient.py64CODE
LOWfrappe/frappeclient.py260CODE
LOWfrappe/frappeclient.py380CODE
LOWfrappe/oauth.py511CODE
LOWfrappe/database/query.py401CODE
LOWfrappe/database/query.py450CODE
LOWfrappe/database/query.py623CODE
LOWfrappe/database/query.py843CODE
LOWfrappe/database/query.py891CODE
LOWfrappe/database/query.py1102CODE
LOWfrappe/database/query.py1197CODE
LOWfrappe/database/query.py1246CODE
LOWfrappe/database/query.py1397CODE
LOWfrappe/database/query.py1585CODE
LOWfrappe/database/query.py1671CODE
LOWfrappe/database/query.py1914CODE
LOWfrappe/database/query.py1962CODE
LOWfrappe/database/query.py2210CODE
LOWfrappe/database/query.py2533CODE
LOWfrappe/database/query.py2613CODE
LOWfrappe/database/query.py2647CODE
LOWfrappe/database/database.py211CODE
LOWfrappe/database/database.py380CODE
LOWfrappe/database/database.py626CODE
405 more matches not shown…
Hallucination Indicators36 hits · 370 pts
SeverityFileLineSnippetContext
CRITICAL…ctype/installed_applications/installed_applications.js54 dialog.fields_dict.apps.df.data.push({CODE
CRITICALfrappe/printing/page/print/print.js556 const get_options = frappe.ui.form.ControlBarcode.prototype.get_options.bind({CODE
CRITICALfrappe/public/js/frappe/module_editor.js15 return this.frm.doc.__onload.all_modules.map((module) => {CODE
CRITICALfrappe/public/js/frappe/ui/naming_series.js172 this.dialog.fields_dict.naming_series_options.grid.refresh();CODE
CRITICALfrappe/public/js/frappe/ui/naming_series.js176 const rows = this.dialog.fields_dict.naming_series_options.grid.get_data();CODE
CRITICALfrappe/public/js/frappe/ui/naming_series.js221 this.dialog.fields_dict.naming_series_options.grid.refresh();CODE
CRITICALfrappe/public/js/frappe/views/kanban_v2/kanban_page.js610 frappe.views.BaseList.prototype.setup_view_menu.call(this);CODE
CRITICALfrappe/public/js/frappe/widgets/widget_dialog.js644 let color = this.dialog.fields_dict.color.value.toLowerCase();CODE
CRITICALfrappe/public/js/frappe/widgets/widget_dialog.js666 this.dialog.fields_dict.link_to.df.onchange();CODE
CRITICAL⚡frappe/public/js/lib/leaflet_draw/leaflet.draw.js454 this._endLabelText = L.drawLocal.draw.handlers.simpleshape.tooltip.end, L.Draw.Feature.prototype.initialize.call(thiCODE
CRITICAL⚡frappe/public/js/lib/leaflet_draw/leaflet.draw.js457 L.Draw.Feature.prototype.addHooks.call(this), this._map && (this._mapDraggable = this._map.dragging.enabled(), this.CODE
CRITICAL⚡frappe/public/js/lib/leaflet_draw/leaflet.draw.js462 L.Draw.Feature.prototype.removeHooks.call(this), this._map && (this._mapDraggable && this._map.dragging.enable(), thCODE
CRITICAL⚡frappe/public/js/lib/leaflet_draw/leaflet.draw.js498 this.type = L.Draw.Rectangle.TYPE, this._initialLabelText = L.drawLocal.draw.handlers.rectangle.tooltip.start, L.DraCODE
CRITICAL⚡frappe/public/js/lib/leaflet_draw/leaflet.draw.js501 this._enabled && (this._isCurrentlyTwoClickDrawing = !1, L.Draw.SimpleShape.prototype.disable.call(this))CODE
CRITICAL⚡frappe/public/js/lib/leaflet_draw/leaflet.draw.js505 this._isCurrentlyTwoClickDrawing && !o(t.target, "leaflet-pane") || L.Draw.SimpleShape.prototype._onMouseUp.call(thiCODE
CRITICAL⚡frappe/public/js/lib/leaflet_draw/leaflet.draw.js512 L.Draw.SimpleShape.prototype._fireCreatedEvent.call(this, t)CODE
CRITICAL⚡frappe/public/js/lib/leaflet_draw/leaflet.draw.js515 var t, e, i, o = L.Draw.SimpleShape.prototype._getTooltipText.call(this),CODE
CRITICALfrappe/public/js/lib/leaflet_draw/leaflet.draw.js203 L.Browser.touch && (this.options.icon = this.options.touchIcon), this.options.drawError.message = L.drawLocal.draw.hCODE
CRITICALfrappe/public/js/lib/leaflet_draw/leaflet.draw.js206 L.Draw.Feature.prototype.addHooks.call(this), this._map && (this._markers = [], this._markerGroup = new L.LayerGroupCODE
CRITICALfrappe/public/js/lib/leaflet_draw/leaflet.draw.js217 L.Draw.Feature.prototype.removeHooks.call(this), this._clearHideErrorTimeout(), this._cleanUpShape(), this._map.remoCODE
CRITICALfrappe/public/js/lib/leaflet_draw/leaflet.draw.js394 L.Draw.Feature.prototype._fireCreatedEvent.call(this, t)CODE
CRITICALfrappe/public/js/lib/leaflet_draw/leaflet.draw.js420 L.Draw.Polyline.prototype.initialize.call(this, t, e), this.type = L.Draw.Polygon.TYPECODE
CRITICALfrappe/public/js/lib/leaflet_draw/leaflet.draw.js436 return t || this.options.showLength ? (this.options.showLength && (e = L.Draw.Polyline.prototype._getMeasurementStriCODE
CRITICALfrappe/public/js/lib/leaflet_draw/leaflet.draw.js443 !this.options.allowIntersection && this.options.showArea && (i = this._poly.getLatLngs(), this._area = L.GeometryUtiCODE
CRITICALfrappe/public/js/lib/leaflet_draw/leaflet.draw.js533 this.type = L.Draw.Marker.TYPE, this._initialLabelText = L.drawLocal.draw.handlers.marker.tooltip.start, L.Draw.FeatCODE
CRITICALfrappe/public/js/lib/leaflet_draw/leaflet.draw.js536 L.Draw.Feature.prototype.addHooks.call(this), this._map && (this._tooltip.updateContent({CODE
CRITICALfrappe/public/js/lib/leaflet_draw/leaflet.draw.js549 L.Draw.Feature.prototype.removeHooks.call(this), this._map && (this._marker && (this._marker.off("click", this._onClCODE
CRITICALfrappe/public/js/lib/leaflet_draw/leaflet.draw.js571 L.Draw.Feature.prototype._fireCreatedEvent.call(this, t)CODE
CRITICALfrappe/public/js/lib/leaflet_draw/leaflet.draw.js589 this.type = L.Draw.CircleMarker.TYPE, this._initialLabelText = L.drawLocal.draw.handlers.circlemarker.tooltip.start,CODE
CRITICALfrappe/public/js/lib/leaflet_draw/leaflet.draw.js593 L.Draw.Feature.prototype._fireCreatedEvent.call(this, t)CODE
CRITICALfrappe/public/js/lib/leaflet_draw/leaflet.draw.js619 this.type = L.Draw.Circle.TYPE, this._initialLabelText = L.drawLocal.draw.handlers.circle.tooltip.start, L.Draw.SimpCODE
CRITICALfrappe/public/js/lib/leaflet_draw/leaflet.draw.js627 L.Draw.SimpleShape.prototype._fireCreatedEvent.call(this, t)CODE
CRITICALfrappe/public/js/lib/leaflet_draw/leaflet.draw.js907 if (L.Edit.SimpleShape.prototype._onMarkerDragStart.call(this, t), "function" == typeof this._getCorners) {CODE
CRITICALfrappe/public/js/lib/leaflet_draw/leaflet.draw.js937 L.Edit.SimpleShape.prototype._onMarkerDragStart.call(this, t);CODE
CRITICALfrappe/public/js/lib/leaflet_draw/leaflet.draw.js945 o === this._moveMarker && (e = this._shape.getBounds(), i = e.getCenter(), o.setLatLng(i)), this._toggleCornerMarkerCODE
CRITICALfrappe/public/js/lib/jquery/jquery.min.js3}catch(e){}O.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return O.hasData(a)||N.hasData(a)},data:funCODE
Decorative Section Separators112 hits · 366 pts
SeverityFileLineSnippetContext
MEDIUMui/src/components/FileUpload/useUploader.ts340 // ── internals ────────────────────────────────────────────────────────────COMMENT
MEDIUMui/src/components/FileUpload/FileUploadDialog.vue355// ── the add-menu ───────────────────────────────────────────────────────────COMMENT
MEDIUMui/src/components/FileUpload/FileUploadDialog.vue424// ── staged rows ──────────────────────────────────────────────────────────────COMMENT
MEDIUMui/src/components/FileUpload/FileUploadDialog.vue511// ── crop ─────────────────────────────────────────────────────────────────────COMMENT
MEDIUMui/src/components/FileUpload/FileUploadDialog.vue528// ── drag & drop (scoped to this popover) ─────────────────────────────────────COMMENT
MEDIUMui/src/components/FileUpload/FileUploadDialog.vue583// ── commit ───────────────────────────────────────────────────────────────────COMMENT
MEDIUMui/src/components/Fields/GeolocationField.vue140// ─── Computed ────────────────────────────────────────────────────────────────COMMENT
MEDIUMui/src/components/Fields/GeolocationField.vue170// ─── Map lifecycle ───────────────────────────────────────────────────────────COMMENT
MEDIUMui/src/components/Fields/GeolocationField.vue302 // ── Tile layers (mirrors Frappe's map_defaults) ──────────────────────────COMMENT
MEDIUMui/src/components/Fields/GeolocationField.vue336 // ── Locate control ───────────────────────────────────────────────────────COMMENT
MEDIUMui/src/components/Fields/GeolocationField.vue440// ─── Actions ─────────────────────────────────────────────────────────────────COMMENT
MEDIUMui/src/components/Fields/GeolocationField.vue463// ─── Cleanup ─────────────────────────────────────────────────────────────────COMMENT
MEDIUMfrappe/database/__init__.py5# --------------------COMMENT
MEDIUMfrappe/core/doctype/sms_settings/sms_settings.py178# =========================================================COMMENT
MEDIUMfrappe/desk/doctype/custom_sidebar/custom_sidebar.py274# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/custom_sidebar/custom_sidebar.py276# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/custom_sidebar/custom_sidebar.py384# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/custom_sidebar/custom_sidebar.py389# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/custom_sidebar/custom_sidebar.py496# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/custom_sidebar/custom_sidebar.py498# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/custom_sidebar/custom_sidebar.py986# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/custom_sidebar/custom_sidebar.py988# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/sidebar/sidebar.py520# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/sidebar/sidebar.py525# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/sidebar/sidebar.py771# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/sidebar/sidebar.py782# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/sidebar/sidebar.py1039# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/sidebar/sidebar.py1053# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/sidebar/sidebar.py1208# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/sidebar/sidebar.py1210# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/sidebar/sidebar.py1361# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/sidebar/sidebar.py1363# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/sidebar/sidebar.py1495# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/sidebar/sidebar.py1497# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/dock/dock.py353# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/dock/dock.py364# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/dock/dock.py1173# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/dock/dock.py1175# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/dock/dock.py1313# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/dock/dock.py1315# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/dock/dock.py1343# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/dock/dock.py1345# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/automation_engine/schema_relationships.py87# ---------------------------------------------------------------------------COMMENT
MEDIUMfrappe/automation_engine/schema_relationships.py89# ---------------------------------------------------------------------------COMMENT
MEDIUMfrappe/automation_engine/schema_relationships.py133# ---------------------------------------------------------------------------COMMENT
MEDIUMfrappe/automation_engine/schema_relationships.py135# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡frappe/tests/test_mask_fields.py163 # ------------------------------------------------------------------COMMENT
MEDIUM⚡frappe/tests/test_mask_fields.py165 # ------------------------------------------------------------------COMMENT
MEDIUM⚡frappe/tests/test_mask_fields.py177 # ------------------------------------------------------------------COMMENT
MEDIUM⚡frappe/tests/test_mask_fields.py179 # ------------------------------------------------------------------COMMENT
MEDIUM⚡frappe/tests/test_mask_fields.py198 # ------------------------------------------------------------------COMMENT
MEDIUM⚡frappe/tests/test_mask_fields.py200 # ------------------------------------------------------------------COMMENT
MEDIUM⚡frappe/tests/test_mask_fields.py258 # ------------------------------------------------------------------COMMENT
MEDIUM⚡frappe/tests/test_mask_fields.py260 # ------------------------------------------------------------------COMMENT
MEDIUM⚡frappe/tests/test_mask_fields.py327 # ------------------------------------------------------------------COMMENT
MEDIUM⚡frappe/tests/test_mask_fields.py329 # ------------------------------------------------------------------COMMENT
MEDIUM⚡frappe/utils/boilerplate.py487# ------------COMMENT
MEDIUM⚡frappe/utils/boilerplate.py495# ----------COMMENT
MEDIUM⚡frappe/utils/boilerplate.py504# ----------COMMENT
MEDIUM⚡frappe/utils/boilerplate.py513# ------------COMMENT
52 more matches not shown…
Over-Commented Block173 hits · 158 pts
SeverityFileLineSnippetContext
LOWui/vite/index.js1// Vite plugin for apps that consume @framework/ui.COMMENT
LOWui/vite/island/build-pages.js1#!/usr/bin/env nodeCOMMENT
LOWui/vite/island/index.js1// The island build preset. It sets everything the mount contract depends on, soCOMMENT
LOWui/vite/island/pages.js1// Page islands: what the framework build compiles, and how it names it.COMMENT
LOWui/vite/island/tests/fixture/src/islands/unused.js1// The island does not import this module, so its classes must stay out of theCOMMENT
LOWui/island/index.js1// The island client contract: what an app's island entry imports.COMMENT
LOWui/island/mount.js81 root.style.height = "100%";COMMENT
LOWui/src/components/FileUpload/useUploader.ts261COMMENT
LOWui/src/components/FileUpload/FileUploadDialog.vue281 :aspectRatio="restrictions?.crop_image_aspect_ratio ?? null"COMMENT
LOWui/src/components/FileUpload/FileUploadDialog.vue601COMMENT
LOWui/src/components/FileUpload/ImageCropper.vue41 <Button variant="solid" label="Apply" @click="apply" />COMMENT
LOWui/src/components/FormLayout/FormLayout.vue41COMMENT
LOWui/src/components/FormLayout/FormLayout.vue61// Record page does on every save — holds the ref itself.COMMENT
LOWui/src/components/Fields/GeolocationField.vue81//COMMENT
LOWui/src/components/Fields/TableField.vue301// --- Row-edit dialog ---------------------------------------------------------COMMENT
LOWui/src/components/Fields/TableField.vue421// There is no write-back: `FormLayout` mutates `doc.value[fieldname]` and neverCOMMENT
LOWui/src/telemetry/index.ts1// Product telemetry for Frappe SPAs. Moved here from `frappe-ui/frappe` — theCOMMENT
LOWfrappe/hooks.py601# Expose method source code through the API discovery endpoints. Safe for openCOMMENT
LOWfrappe/hooks.py641# whose module is code-only resolves against the heirs instead of dead-ending. Naming the heirs isCOMMENT
LOWfrappe/boot.py261 # The dock this user sees, keyed by app: each app's own dock, with the site's arrangement andCOMMENT
LOWfrappe/_optimizations.py141 #COMMENT
LOWfrappe/database/query.py161TAB_PATTERN = re.compile("^tab")COMMENT
LOWfrappe/database/sequence.py1from frappe import db, scrubCOMMENT
LOWfrappe/database/sequence.py41 sequence_name = scrub(doctype_name + slug)COMMENT
LOWfrappe/database/database.py1521 returnCOMMENT
LOWfrappe/core/__init__.py1# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and ContributorsCOMMENT
LOWfrappe/core/page/__init__.py1# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and ContributorsCOMMENT
LOWfrappe/core/page/permission_manager/__init__.py1# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and ContributorsCOMMENT
LOWfrappe/core/report/__init__.py1# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and ContributorsCOMMENT
LOWfrappe/core/doctype/__init__.py1# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and ContributorsCOMMENT
LOWfrappe/core/doctype/page/__init__.py1# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and ContributorsCOMMENT
LOWfrappe/core/doctype/role/__init__.py1# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and ContributorsCOMMENT
LOWfrappe/core/doctype/docperm/__init__.py1# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and ContributorsCOMMENT
LOWfrappe/core/doctype/permission_type/permission_type.js1// Copyright (c) 2025, Frappe Technologies and contributorsCOMMENT
LOWfrappe/core/doctype/scheduler_event/scheduler_event.js1// Copyright (c) 2025, Frappe Technologies and contributorsCOMMENT
LOWfrappe/core/doctype/docfield/__init__.py1# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and ContributorsCOMMENT
LOWfrappe/core/doctype/module_def/__init__.py1# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and ContributorsCOMMENT
LOWfrappe/core/doctype/api_request_log/api_request_log.js1// Copyright (c) 2025, Frappe Technologies and contributorsCOMMENT
LOWfrappe/core/doctype/defaultvalue/__init__.py1# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and ContributorsCOMMENT
LOWfrappe/core/doctype/patch_log/__init__.py1# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and ContributorsCOMMENT
LOWfrappe/core/doctype/report/__init__.py1# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and ContributorsCOMMENT
LOWfrappe/core/doctype/report/boilerplate/controller.js1// Copyright (c) {year}, {app_publisher} and contributorsCOMMENT
LOWfrappe/core/doctype/recorder_query/recorder_query.js1// Copyright (c) 2023, Frappe Technologies and contributorsCOMMENT
LOWfrappe/core/doctype/communication/__init__.py1# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and ContributorsCOMMENT
LOWfrappe/core/doctype/doctype/__init__.py1# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and ContributorsCOMMENT
LOW…ore/doctype/doctype/boilerplate/controller_calendar.js1// Copyright (c) {year}, {app_publisher} and contributorsCOMMENT
LOW…pe/core/doctype/doctype/boilerplate/controller_list.js1/* eslint-disable */COMMENT
LOW…pe/core/doctype/doctype/boilerplate/controller_tree.js1// Copyright (c) {year}, {app_publisher} and contributorsCOMMENT
LOWfrappe/core/doctype/doctype/boilerplate/controller.js1// Copyright (c) {year}, {app_publisher} and contributorsCOMMENT
LOWfrappe/core/doctype/mapreduce_task/mapreduce_task.js1// Copyright (c) 2026, Frappe Technologies and contributorsCOMMENT
LOWfrappe/desk/__init__.py1# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and ContributorsCOMMENT
LOWfrappe/desk/layers.py141 # because a saved layer is the rail, so an app's later addition waits in the manager ratherCOMMENT
LOWfrappe/desk/page/desktop/desktop.js81 render_app_icons() {COMMENT
LOWfrappe/desk/form/__init__.py1# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and ContributorsCOMMENT
LOWfrappe/desk/doctype/sidebar/sidebar.py61 "filters",COMMENT
LOWfrappe/desk/doctype/sidebar/sidebar.py81#COMMENT
LOWfrappe/desk/doctype/sidebar/sidebar.py761 doc.title = base.titleCOMMENT
LOWfrappe/desk/doctype/sidebar/sidebar.py781# there is none there: a site running in developer mode belongs to a developer.COMMENT
LOWfrappe/desk/doctype/sidebar/sidebar.py1041#COMMENT
LOWfrappe/desk/doctype/sidebar/sidebar.py1641COMMENT
113 more matches not shown…
Fake / Example Data145 hits · 155 pts
SeverityFileLineSnippetContext
LOWui/src/components/TableMultiSelect/TableMultiSelect.vue7 :placeholder="placeholder"CODE
LOW…ts/ActivityTimeline/stories/ActivityTimeline.story.vue85 author: person("Jane Doe", "jane@example.com"),CODE
LOW…ts/ActivityTimeline/stories/ActivityTimeline.story.vue92 author: person("Jane Doe", "jane@example.com"),CODE
LOW…ts/ActivityTimeline/stories/ActivityTimeline.story.vue162 author: person("Jane Doe", "jane@example.com"),CODE
LOWui/src/components/Composer/ComposerEditor.vue7 :placeholder="placeholder"CODE
LOW…rc/components/Composer/EmailComposer/EmailComposer.vue4 :placeholder="placeholder"CODE
LOW…/components/Composer/EmailComposer/RecipientSelect.vue16 :placeholder="placeholder"CODE
LOW…omponents/Composer/CommentComposer/CommentComposer.vue4 :placeholder="placeholder"CODE
LOW…src/components/FormLayout/tests/renderPipeline.test.ts203 expect(el.getAttribute("placeholder")).toBe("0.00");CODE
LOW…c/components/FormLayout/stories/StaticSchema.story.vue71 owner: "admin@example.com",CODE
LOWui/src/components/Phone/Phone.vue88 :placeholder="placeholder"CODE
LOWui/src/components/Filter/valueControl.ts185 return "John Doe";CODE
LOW⚡frappe/database/database.py1307 exists("User", "jane@example.org", cache=True)STRING
LOW⚡frappe/database/database.py1313 exists({"doctype": "User", "full_name": "Jane Doe"})STRING
LOW⚡frappe/database/database.py1319 exists("User", {"full_name": "Jane Doe"})STRING
LOW…ppe/core/page/component_explorer/component_explorer.js10 { label: "John Doe", image: "https://avatars.githubusercontent.com/u/499550?s=60&v=4" },CODE
LOW…ppe/core/page/component_explorer/component_explorer.js372 label: "John Doe",CODE
LOW…ppe/core/page/component_explorer/component_explorer.js814 ).attr("placeholder", __("Search users"))),CODE
LOW…ppe/core/page/component_explorer/component_explorer.js830 ["Jane Doe", "jane@example.com"],CODE
LOW…ppe/core/page/component_explorer/component_explorer.js926 .attr("placeholder", "Search fields")CODE
LOW…ppe/core/page/component_explorer/component_explorer.js1907 label: "John Doe",CODE
LOW…ppe/core/page/component_explorer/component_explorer.js1926 { label: "John Doe" },CODE
LOW⚡…ppe/core/page/component_explorer/component_explorer.js1943 { label: "John Doe", theme: "auto" },CODE
LOW⚡…ppe/core/page/component_explorer/component_explorer.js1953 { label: "John Doe", size: "xs" },CODE
LOW⚡…ppe/core/page/component_explorer/component_explorer.js1954 { label: "John Doe", size: "sm" },CODE
LOW⚡…ppe/core/page/component_explorer/component_explorer.js1955 { label: "John Doe" },CODE
LOW⚡…ppe/core/page/component_explorer/component_explorer.js1956 { label: "John Doe", size: "lg" },CODE
LOW⚡…ppe/core/page/component_explorer/component_explorer.js1957 { label: "John Doe", size: "xl" },CODE
LOW⚡…ppe/core/page/component_explorer/component_explorer.js1958 { label: "John Doe", size: "2xl" },CODE
LOW⚡…ppe/core/page/component_explorer/component_explorer.js1959 { label: "John Doe", size: "3xl" },CODE
LOW⚡…ppe/core/page/component_explorer/component_explorer.js1965 { label: "John Doe", theme: "blue" },CODE
LOW⚡…ppe/core/page/component_explorer/component_explorer.js1966 { label: "John Doe", theme: "blue", shape: "square" },CODE
LOW⚡…ppe/core/page/component_explorer/component_explorer.js1967 { label: "John Doe", theme: "blue", shape: "square", size: "2xl" },CODE
LOW⚡…ppe/core/page/component_explorer/component_explorer.js1974 label: "John Doe",CODE
LOWfrappe/core/doctype/role/role.py143 if enabled and user_info not in ["admin@example.com", "guest@example.com"]:CODE
LOWfrappe/core/doctype/docfield/docfield.json87 "placeholder",CODE
LOWfrappe/core/doctype/docfield/docfield.json649 "fieldname": "placeholder",CODE
LOWfrappe/core/doctype/comment/test_comment.py72 "comment_email": "test@test.com",CODE
LOWfrappe/core/doctype/comment/test_comment.py130 comment_email="test@test.com",CODE
LOWfrappe/core/doctype/user/test_user.py341 data = {"cmd": "frappe.core.doctype.user.user.reset_password", "user": "test@test.com"}STRING
LOWfrappe/core/doctype/report/test_report.py451 "email": "admin@example.com",CODE
LOWfrappe/core/doctype/report/test_report.py487 "email": "admin@example.com",CODE
LOW⚡frappe/core/doctype/communication/test_communication.py416 to = "jane.doe+A+Test@example.org"CODE
LOW⚡frappe/core/doctype/communication/test_communication.py423 results = list(parse_email(["erp+ToDo=TASK-0001@example.org"]))CODE
LOWfrappe/core/doctype/communication/communication.py634 e.g. 'admin@example.com' is returned for email 'admin+doctype+docname@example.com'STRING
LOWfrappe/desk/page/setup_wizard/install_fixtures.py55 {"email": "admin@example.com", "global_unsubscribe": 1},CODE
LOWfrappe/patches/v13_0/email_unsubscribe.py6 {"email": "admin@example.com", "global_unsubscribe": 1},CODE
LOW⚡frappe/contacts/doctype/contact/test_contact.py43 self.assertEqual(get_full_name(first="John", last="Doe"), "John Doe")CODE
LOW⚡frappe/contacts/doctype/contact/test_contact.py45 self.assertEqual(get_full_name(first="John", last="Doe", company="Doe Pvt Ltd"), "John Doe")CODE
LOW…appe/website/doctype/web_template/test_web_template.py48 self.assertEqual(sections[0].find("p").text, "test lorem ipsum")CODE
LOW…appe/website/doctype/web_template/test_web_template.py84 {"title": "Test Title", "subtitle": "test lorem ipsum"}CODE
LOW…appe/website/doctype/web_template/test_web_template.py92 "subtitle": "test lorem ipsum",CODE
LOWfrappe/website/doctype/web_form/web_form.json189 "placeholder": "Add a short description to tell users what this form is for..."CODE
LOW…ppe/website/doctype/web_form_field/web_form_field.json30 "placeholder"CODE
LOW…ppe/website/doctype/web_form_field/web_form_field.json158 "fieldname": "placeholder",CODE
LOW⚡frappe/tests/test_utils.py1531 self.assertEqual(escape_formula_injection("555-1234"), "555-1234")CODE
LOW⚡frappe/tests/test_utils.py1567 ["REC-002", "normal text", "555-1234", "10"],CODE
LOWfrappe/tests/test_utils.py1490 ["+91-1234567890", -5, "555-1234"],CODE
LOWfrappe/tests/test_utils.py1504 ((2, 2), "555-1234"),CODE
LOWfrappe/tests/test_email.py32 sender="admin@example.com",CODE
85 more matches not shown…
Self-Referential Comments48 hits · 142 pts
SeverityFileLineSnippetContext
MEDIUMfrappe/sessions.py152 """This function is meant to be called from scheduler"""STRING
MEDIUMfrappe/database/query.py975 # Create a ChildTableField instance to handle join and field accessCOMMENT
MEDIUMfrappe/core/doctype/file/test_file.py2352 # Create a test user without System Manager roleCOMMENT
MEDIUMfrappe/core/doctype/rq_job/test_rq_job.py92 # Create a slow job and check if it's stuck in "Started"COMMENT
MEDIUMfrappe/desk/desktop.py616 # Create a json string to logCOMMENT
MEDIUM…ctype/global_search_settings/global_search_settings.py194 # Create a Customize Form stub to apply property settersCOMMENT
MEDIUMfrappe/tests/test_mask_fields.py88 # Create a role without mask permissionCOMMENT
MEDIUMfrappe/tests/test_mask_fields.py92 # Create a test user and assign the roleCOMMENT
MEDIUM⚡frappe/tests/test_search.py334 # Create a test doctype to link toCOMMENT
MEDIUM⚡frappe/tests/test_search.py342 # Create a form doctype with a link field that has ignore_user_permissionsCOMMENT
MEDIUMfrappe/tests/test_search.py370 # Create a test user with restricted permissionsCOMMENT
MEDIUMfrappe/tests/test_removing_orphans.py11 # Create a new reportCOMMENT
MEDIUMfrappe/tests/test_boot.py296 # Create a ToDo custom report with admin userCOMMENT
MEDIUMfrappe/tests/test_boot.py320 # Create a ToDo custom report with test userSTRING
MEDIUMfrappe/tests/test_api_v2.py536 # Create a fresh doc for this testCOMMENT
MEDIUMfrappe/tests/test_query_report.py298 # Define the visible rowsCOMMENT
MEDIUMfrappe/tests/test_query_report.py323 # Define the visible rowsCOMMENT
MEDIUMfrappe/tests/test_query_report.py354 # Define the visible rowsCOMMENT
MEDIUMfrappe/tests/test_base_document.py134 # Create an instance of the extended ToDoCOMMENT
MEDIUMfrappe/tests/test_base_document.py187 # Create an instance with some dataCOMMENT
MEDIUM⚡frappe/tests/test_query.py3603# This function is used as a permission query condition hookCOMMENT
MEDIUMfrappe/tests/test_query.py1004 # Create a test blog postCOMMENT
MEDIUMfrappe/tests/test_query.py1112 # Create a test note with specific contentCOMMENT
MEDIUMfrappe/tests/test_query.py1332 # Create a Dashboard Settings for test userCOMMENT
MEDIUMfrappe/tests/test_query.py1345 # Create a server script for permission queryCOMMENT
MEDIUMfrappe/tests/test_query.py1779 # Create a test blog postCOMMENT
MEDIUMfrappe/tests/test_query.py2769 # Create a private event (only owner can see by default)COMMENT
MEDIUMfrappe/tests/test_query.py2994 # Create a child table row with non-existent parentCOMMENT
MEDIUMfrappe/tests/test_sqlite_search.py388 # Create a test user and switch to themCOMMENT
MEDIUMfrappe/tests/test_sqlite_search.py556 # Create a new document after index is builtCOMMENT
MEDIUMfrappe/tests/test_sqlite_search.py676 # Create a note with HTML contentCOMMENT
MEDIUMfrappe/tests/test_sqlite_search.py719 # Create a search class with search disabledCOMMENT
MEDIUMfrappe/tests/test_sqlite_search.py762 # Create a test documentCOMMENT
MEDIUM⚡frappe/utils/test_print_format_generator.py80 # Create the doc directly (without format_data) because _make_print_formatCOMMENT
MEDIUMfrappe/utils/password_strength.py82 # Define a number of functions that are used in a look up dictionaryCOMMENT
MEDIUMfrappe/utils/chromium/page.py372 # Create a new stylesheetCOMMENT
MEDIUMfrappe/utils/chromium/page.py379 # Define the CSS rule for the page sizeCOMMENT
MEDIUMfrappe/search/sqlite_search.py1358 # Create the FTS table with dynamic columnsCOMMENT
MEDIUMfrappe/search/sqlite_search.py1368 # Create the vocabulary and trigram tablesSTRING
MEDIUMfrappe/search/sqlite_search.py1385 # Create the index progress tracking tableSTRING
MEDIUM…tegrations/doctype/ldap_settings/test_ldap_settings.py41 # Create a clean docCOMMENT
MEDIUM…tegrations/doctype/ldap_settings/test_ldap_settings.py572 # Create a clean docCOMMENT
MEDIUMfrappe/model/db_query.py824 # Create a copy of the fields list and reverse it to avoid index issues when removing fieldsCOMMENT
MEDIUMfrappe/model/base_document.py240 # Create the extended class by combining extension classes with base classCOMMENT
MEDIUMfrappe/email/doctype/notification/test_notification.py262 # Create a test notificationCOMMENT
MEDIUMfrappe/email/doctype/notification/test_notification.py321 # Create a test notificationCOMMENT
MEDIUMfrappe/email/doctype/notification/test_notification.py716 # Create a ToDoCOMMENT
MEDIUMfrappe/email/doctype/notification/test_notification.py921# # Create an event and notification before each testCOMMENT
Cross-Language Confusion19 hits · 131 pts
SeverityFileLineSnippetContext
HIGHfrappe/database/query.py2163 # Since Y and X can't be null, null value in column will never match filter, soCOMMENT
HIGH⚡frappe/core/doctype/server_script/test_server_script.py173 server_script["script"] = "js || code.?"CODE
HIGHfrappe/core/doctype/data_import/test_data_import.py9CSV_IMPORT_SOURCE_DEPENDS_ON = "eval:doc.google_sheets_url || (doc.import_file && doc.import_file.split('.').pop().toLowCODE
HIGHfrappe/core/doctype/data_import/test_data_import.py10CSV_DELIMITER_OPTIONS_DEPENDS_ON = "eval:doc.custom_delimiters && (doc.google_sheets_url || (doc.import_file && doc.impoCODE
HIGHfrappe/desk/reportview.py1158 filters=[*filters, "({0} = '' or {0} is null)".format(tag["name"])],CODE
HIGH⚡…ppe/printing/doctype/print_format/test_print_format.py289 "sections is null": '{"sections": null}',CODE
HIGH⚡frappe/tests/test_utils.py1153 "these_are && js_conditions",CODE
HIGH⚡frappe/tests/test_utils.py1154 "more || js_conditions",CODE
HIGHfrappe/tests/test_db_query.py1393 # it is non-null, so the plucked result must be masked.COMMENT
HIGHfrappe/tests/test_translate.py325 __("attr with", null, "context")STRING
HIGHfrappe/tests/test_translate.py371 args = get_args("""__("attr with", null, "context")""")CODE
HIGH⚡frappe/tests/test_query.py3476 null, empty, filled = (self.names[label] for label in ("null", "empty", "filled"))CODE
HIGH⚡frappe/tests/test_query.py3478 (["is", "not set"], {null}),CODE
HIGH⚡frappe/tests/test_query.py3481 (["!=", "[]"], {null, filled}),CODE
HIGH⚡frappe/tests/test_query.py3483 (["not in", ["[]"]], {null, filled}),CODE
HIGH⚡frappe/tests/test_query.py3485 (["=", None], {null}),CODE
HIGH⚡frappe/utils/telemetry/pulse/test_pulse_client.py332 # Guests have no server-known identity → null; the client mints its own anon id.COMMENT
HIGH⚡frappe/gettext/extractors/tests/test_javascript.py13 code = "let test = `<p>${__('Test', null, 'Context')}</p>`;"CODE
HIGHfrappe/model/db_query.py1059 # Since Y and X can't be null, null value in column will never match filter, soCOMMENT
Cross-File Repetition14 hits · 70 pts
SeverityFileLineSnippetContext
HIGHfrappe/database/mariadb/database.py0syncs a `doctype` to the table * creates if required * updates columns * updates indicesSTRING
HIGHfrappe/database/mariadb/mysqlclient.py0syncs a `doctype` to the table * creates if required * updates columns * updates indicesSTRING
HIGHfrappe/database/postgres/database.py0syncs a `doctype` to the table * creates if required * updates columns * updates indicesSTRING
HIGHfrappe/core/doctype/page/page.py0return true if `has role` is not set or the user is allowed.STRING
HIGHfrappe/core/doctype/report/report.py0return true if `has role` is not set or the user is allowed.STRING
HIGHfrappe/desk/doctype/desktop_icon/desktop_icon.py0return true if `has role` is not set or the user is allowed.STRING
HIGHfrappe/gettext/extractors/sidebar.py0extract messages from `custom/{doctype}.json` files. to be used by babel extractor. :param fileobj: the file-like objectSTRING
HIGHfrappe/gettext/extractors/desktop_icon.py0extract messages from `custom/{doctype}.json` files. to be used by babel extractor. :param fileobj: the file-like objectSTRING
HIGHfrappe/gettext/extractors/workspace_sidebar.py0extract messages from `custom/{doctype}.json` files. to be used by babel extractor. :param fileobj: the file-like objectSTRING
HIGHfrappe/gettext/extractors/customization.py0extract messages from `custom/{doctype}.json` files. to be used by babel extractor. :param fileobj: the file-like objectSTRING
HIGHfrappe/gettext/extractors/web_form.py0extract messages from report json files. to be used to babel extractor :param fileobj: the file-like object the messagesSTRING
HIGHfrappe/gettext/extractors/doctype.py0extract messages from report json files. to be used to babel extractor :param fileobj: the file-like object the messagesSTRING
HIGHfrappe/gettext/extractors/workspace.py0extract messages from report json files. to be used to babel extractor :param fileobj: the file-like object the messagesSTRING
HIGHfrappe/gettext/extractors/report.py0extract messages from report json files. to be used to babel extractor :param fileobj: the file-like object the messagesSTRING
Redundant / Tautological Comments46 hits · 68 pts
SeverityFileLineSnippetContext
LOWfrappe/auth.py114 # Check if the referrer or origin is in the allowed listCOMMENT
LOWfrappe/database/query.py498 # Check if the operator is a string, and specifically a logical operatorCOMMENT
LOWfrappe/database/query.py509 # Check if it looks like it *might* be nested (even if malformed).COMMENT
LOWfrappe/database/query.py848 # Check if it's a nested condition list [cond1, op, cond2, ...]COMMENT
LOWfrappe/database/query.py959 # Check if doctype is a valid child table of self.doctypeCOMMENT
LOWfrappe/database/query.py1226 # Iterate through the list where each item could be a single field, criterion, or a comma-separated stringCOMMENT
LOWfrappe/database/query.py1254 # Check if it's a SQL function or operator dictionaryCOMMENT
LOWfrappe/database/query.py1543 # Check if the last word is a valid directionCOMMENT
LOWfrappe/database/query.py1661 # Check if the field name is an optional field (like _user_tags) or in permitted fieldsCOMMENT
LOWfrappe/database/query.py2257 # Check if the first part is a valid fieldname in the parent doctypeCOMMENT
LOWfrappe/database/query.py2683 # Check if it's a numeric string like "1" (for COUNT(1), etc.)COMMENT
LOWfrappe/core/doctype/user/user.py1318 # Check if we have a search term, and decide the filters depending on the search termCOMMENT
LOWfrappe/core/doctype/version/version.py34 # Check if doc has some information about creation source like data importCOMMENT
LOWfrappe/core/doctype/package_release/package_release.py133 # Set path to tarballCOMMENT
LOWfrappe/core/doctype/report/test_report.py389 # Check if creating and deleting works with proper validationsCOMMENT
LOWfrappe/desk/desktop.py127 # Check if onboarding is enabledCOMMENT
LOWfrappe/desk/desktop.py138 # Check if user is allowedCOMMENT
LOWfrappe/desk/desktop.py144 # Check if already completeCOMMENT
LOWfrappe/desk/desktop.py254 # Check if user is allowed to viewCOMMENT
LOWfrappe/tests/test_nestedset.py362 # Check if all records are fetched when flag is set to TrueCOMMENT
LOWfrappe/tests/test_nestedset.py365 # Check if disabled records are skipped is set to FalseCOMMENT
LOWfrappe/tests/test_query_report.py334 # Check if unset filters are skipped | Rows -> 2 filters + 1 empty + 1 column + 3 dataCOMMENT
LOWfrappe/tests/test_sqlite_search.py298 # Check if FTS table existsCOMMENT
LOWfrappe/tests/test_sqlite_search.py302 # Check if vocabulary tables existCOMMENT
LOWfrappe/tests/test_sqlite_search.py452 # Check if corrections were appliedCOMMENT
LOWfrappe/utils/backups.py198 # Check if file exists and is less than a day oldCOMMENT
LOWfrappe/utils/change_log.py382 # Check if user is int the set of users to send update message toCOMMENT
LOWfrappe/utils/pdf_generator/browser.py145 # Check if any of the classes existCOMMENT
LOWfrappe/utils/pdf_generator/browser.py157 if soup.find(class_=class_name): # Check if any element with the class is foundCODE
LOWfrappe/search/sqlite_search.py341 # Check if this is a completely fresh build or a continuationCOMMENT
LOWfrappe/search/sqlite_search.py353 # Check if we're continuing a fresh build (temp db exists)COMMENT
LOWfrappe/search/sqlite_search.py387 # Check if indexing is already completeCOMMENT
LOWfrappe/search/sqlite_search.py466 # Check if all doctypes are indexed before building vocabularyCOMMENT
LOWfrappe/search/sqlite_search.py927 # Check if this is a LIKE filter (list with 'LIKE' operator)COMMENT
LOWfrappe/search/sqlite_search.py1873 # Check if a temp DB exists (incomplete build from previous run)COMMENT
LOWfrappe/search/sqlite_search.py1963 # Check if a temp DB exists (incomplete build from previous run)COMMENT
LOWfrappe/testing/discovery.py85 # Check if the DocType belongs to the specified appCOMMENT
LOWfrappe/model/qb_query.py117 # Set fields to the requested field or `name` if none specifiedCOMMENT
LOWfrappe/model/qb_query.py183 # Check if table exists before running queryCOMMENT
LOWfrappe/model/db_query.py668 # Check if table_name is a linked_table aliasCOMMENT
LOWfrappe/api/v2.py167 # Check if the doctype controller has a static get_list methodCOMMENT
LOWfrappe/commands/site.py385 # Check if the backup is of an older version of frappe and the user hasn't specified forceCOMMENT
LOWfrappe/email/doctype/notification/test_notification.py280 # Check if the notification was triggeredCOMMENT
LOWfrappe/email/doctype/notification/test_notification.py339 # Check if the notification was triggeredCOMMENT
LOW…e/email/doctype/auto_email_report/auto_email_report.py125 # Check if all Mandatory Report Filters are filled by the UserCOMMENT
LOW.github/workflows/run-indinvidual-tests.yml32 # Loop through array and create JSON objectsCOMMENT
AI Structural Patterns73 hits · 66 pts
SeverityFileLineSnippetContext
LOWfrappe/client.py26CODE
LOWfrappe/client.py374CODE
LOWfrappe/recorder.py581CODE
LOWfrappe/__init__.py764CODE
LOWfrappe/__init__.py901CODE
LOWfrappe/installer.py42CODE
LOWfrappe/installer.py124CODE
LOWfrappe/installer.py726CODE
LOWfrappe/installer.py752CODE
LOWfrappe/share.py49CODE
LOWfrappe/app.py573CODE
LOWfrappe/frappeclient.py363CODE
LOWfrappe/frappeclient.py370CODE
LOWfrappe/database/query.py242CODE
LOWfrappe/database/sequence.py28CODE
LOWfrappe/database/database.py211CODE
LOWfrappe/database/database.py548CODE
LOWfrappe/database/database.py626CODE
LOWfrappe/database/__init__.py122CODE
LOW…prepared_report_analytics/prepared_report_analytics.py106CODE
LOWfrappe/core/doctype/access_log/access_log.py51CODE
LOWfrappe/core/doctype/data_export/exporter.py33CODE
LOWfrappe/core/doctype/data_export/exporter.py78CODE
LOWfrappe/core/doctype/data_import/importer.py749CODE
LOWfrappe/core/doctype/communication/mixins.py270CODE
LOWfrappe/core/doctype/communication/mixins.py338CODE
LOWfrappe/core/doctype/communication/email.py33CODE
LOWfrappe/core/doctype/communication/email.py143CODE
LOWfrappe/desk/query_report.py264CODE
LOWfrappe/desk/query_report.py287CODE
LOWfrappe/desk/search.py104CODE
LOWfrappe/desk/doctype/dashboard_chart/dashboard_chart.py94CODE
LOWfrappe/website/doctype/web_page_view/web_page_view.py47CODE
LOWfrappe/tests/ui_test_helpers.py782CODE
LOWfrappe/tests/microbenchmarks/utils.py31CODE
LOWfrappe/tests/microbenchmarks/utils.py43CODE
LOWfrappe/utils/task_queue.py12CODE
LOWfrappe/utils/backups.py646CODE
LOWfrappe/utils/backups.py685CODE
LOWfrappe/utils/backups.py64CODE
LOWfrappe/utils/print_utils.py59CODE
LOWfrappe/utils/print_utils.py188CODE
LOWfrappe/utils/response.py377CODE
LOWfrappe/utils/messages.py11CODE
LOWfrappe/utils/background_jobs.py129CODE
LOWfrappe/utils/commands.py40CODE
LOWfrappe/utils/data.py238CODE
LOWfrappe/utils/data.py253CODE
LOWfrappe/utils/data.py268CODE
LOWfrappe/utils/data.py282CODE
LOWfrappe/realtime/__init__.py30CODE
LOWfrappe/testing/runner.py49CODE
LOWfrappe/model/delete_doc.py24CODE
LOWfrappe/model/qb_query.py26CODE
LOWfrappe/model/db_query.py119CODE
LOWfrappe/model/document.py179CODE
LOWfrappe/model/document.py415CODE
LOWfrappe/model/rename_doc.py108CODE
LOWfrappe/commands/site.py74CODE
LOWfrappe/commands/site.py208CODE
13 more matches not shown…
Modern Structural Boilerplate35 hits · 36 pts
SeverityFileLineSnippetContext
LOWfrappe/database/postgres/setup_db.py66def _set_database_owner(root_conn, db_name: str, db_user: str, postgres_version: int) -> None:CODE
LOWfrappe/core/doctype/file/utils.py343def update_existing_file_docs(doc: "File") -> None:CODE
LOWfrappe/core/doctype/background_task/background_task.py66 def update_stage(self, stage: str) -> None:CODE
LOWfrappe/core/doctype/recorder/db_optimizer.py110 def update_cardinality(self, column_stats: list[ColumnStat]) -> None:CODE
LOW…e/document_naming_settings/document_naming_settings.py124 def set_series_options_in_meta(self, doctype: str, options: str) -> None:CODE
LOW⚡…ctype/global_search_settings/global_search_settings.py161def _set_global_search_property_setter(cf: CustomizeForm, fieldname: str, enabled: bool) -> None:CODE
LOWfrappe/automation_engine/__init__.py8__all__ = ["emit", "is_enabled", "skip_automations"]CODE
LOWfrappe/tests/test_virtual_doctype.py42 def update_data(data: dict[str, dict]) -> None:CODE
LOWfrappe/tests/classes/context_managers.py274__all__ = [CODE
LOWfrappe/tests/utils/generators.py21logger = logging.getLogger(__name__)CODE
LOWfrappe/tests/utils/generators.py26__all__ = [CODE
LOWfrappe/pulse/utils.py5__all__ = ["get_app_version", "get_frappe_version"]CODE
LOWfrappe/utils/translations.py73def set_user_lang(user: str, user_language: str | None = None) -> None:CODE
LOWfrappe/utils/logger.py109def set_log_level(level: Literal["ERROR", "WARNING", "WARN", "INFO", "DEBUG"]) -> None:CODE
LOWfrappe/utils/messages.py176__all__ = [CODE
LOW⚡frappe/utils/scheduler.py71def _update_scheduler_heartbeat() -> None:CODE
LOWfrappe/utils/chromium/__init__.py25__all__ = [CODE
LOWfrappe/www/printview.py294def set_link_titles(doc: "Document") -> None:STRING
LOWfrappe/www/printview.py331def set_title_values_for_table_and_multiselect_fields(meta: "Meta", doc: "Document") -> None:STRING
LOWfrappe/testing/runner.py37logger = logging.getLogger(__name__)CODE
LOWfrappe/testing/__init__.py41logger = logging.getLogger(__name__)CODE
LOWfrappe/testing/result.py28logger = logging.getLogger(__name__)CODE
LOWfrappe/testing/utils.py5logger = logging.getLogger(__name__)CODE
LOW⚡frappe/testing/environment.py36logger = logging.getLogger(__name__)CODE
LOWfrappe/model/naming.py128 def update_counter(self, new_count: int) -> None:CODE
LOWfrappe/model/document.py2747def _set_document_in_cache(key: str, doc: "Document") -> None:CODE
LOWfrappe/model/rename_doc.py236def update_assignments(old: str, new: str, doctype: str) -> None:CODE
LOWfrappe/model/rename_doc.py260def update_user_settings(old: str, new: str, link_fields: list[dict]) -> None:CODE
LOWfrappe/model/rename_doc.py299def update_customizations(old: str, new: str) -> None:CODE
LOWfrappe/model/rename_doc.py303def update_attachments(doctype: str, old: str, new: str) -> None:CODE
LOWfrappe/model/rename_doc.py327def update_autoname_field(doctype: str, new: str, meta: "Meta") -> None:CODE
LOWfrappe/model/rename_doc.py414def update_child_docs(old: str, new: str, meta: "Meta") -> None:CODE
LOWfrappe/model/rename_doc.py424def update_link_field_values(link_fields: list[dict], old: str, new: str, doctype: str) -> None:CODE
LOWfrappe/model/rename_doc.py516def update_options_for_fieldtype(fieldtype: str, old: str, new: str) -> None:CODE
LOWfrappe/custom/doctype/custom_field/custom_field.py442def _update_fieldname_references(field: CustomField, old_fieldname: str, new_fieldname: str) -> None:CODE
Verbosity Indicators14 hits · 28 pts
SeverityFileLineSnippetContext
LOWfrappe/utils/chromium/page.py147 # Covers private files, but we need to check if the user has permission to read the file.COMMENT
LOW…ntegrations/doctype/google_calendar/google_calendar.py343 # instances of recurring events, so we need to check if the event is alreadyCOMMENT
LOWfrappe/public/js/frappe/form/toolbar.js768 // We need to check if document is already amend specifically and hideCOMMENT
LOW⚡frappe/public/js/frappe/list/list_factory.js90 // Step 1: /desk/List/Item redirects to /desk/List/Item/ListCOMMENT
LOW⚡frappe/public/js/frappe/list/list_factory.js91 // Step 2: User hits "back" comes back to /desk/List/ItemCOMMENT
LOW⚡frappe/public/js/frappe/list/list_factory.js92 // Step 3: Now we cannot send the user back to /desk/List/Item/List so go back one more stepCOMMENT
LOW⚡…appe/public/js/frappe/list/list_view_virtualization.js362 // Step 1: compute visible window from scroll positionCOMMENT
LOW⚡…appe/public/js/frappe/list/list_view_virtualization.js372 // Step 2: nothing to do if user scrolled inside the same windowCOMMENT
LOW…appe/public/js/frappe/list/list_view_virtualization.js384 // Step 3: tear down previous windowCOMMENT
LOW⚡…appe/public/js/frappe/list/list_view_virtualization.js411 // Step 7: measure; retry once if spacers were sized with stale height estimates.COMMENT
LOW⚡…appe/public/js/frappe/list/list_view_virtualization.js419 // Step 8: column widths + bulk checkbox state for visible rowsCOMMENT
LOW⚡frappe/public/js/frappe/list/list_view.js2480 // Step 1: Walk visible rows once and resolve each checkbox docname.COMMENT
LOW⚡frappe/public/js/frappe/list/list_view.js2481 // Step 2: Mark checked from Set membership, so off-screen selections remain source-of-truth.COMMENT
LOW⚡frappe/public/js/frappe/list/list_view.js2482 // Step 3: Refresh header/action state from checked_docnames.COMMENT
Structural Annotation Overuse12 hits · 25 pts
SeverityFileLineSnippetContext
LOWfrappe/__init__.py1194 # WARNING: This behaviour is now part of business logic in places, never remove.COMMENT
LOWfrappe/tests/utils/generators.py222 # NOTE: This method is called in roughly these situations:COMMENT
LOW⚡frappe/public/js/frappe/list/list_factory.js91 // Step 2: User hits "back" comes back to /desk/List/ItemCOMMENT
LOW⚡frappe/public/js/frappe/list/list_factory.js92 // Step 3: Now we cannot send the user back to /desk/List/Item/List so go back one more stepCOMMENT
LOW⚡…appe/public/js/frappe/list/list_view_virtualization.js362 // Step 1: compute visible window from scroll positionCOMMENT
LOW⚡…appe/public/js/frappe/list/list_view_virtualization.js372 // Step 2: nothing to do if user scrolled inside the same windowCOMMENT
LOW…appe/public/js/frappe/list/list_view_virtualization.js384 // Step 3: tear down previous windowCOMMENT
LOW⚡…appe/public/js/frappe/list/list_view_virtualization.js411 // Step 7: measure; retry once if spacers were sized with stale height estimates.COMMENT
LOW⚡…appe/public/js/frappe/list/list_view_virtualization.js419 // Step 8: column widths + bulk checkbox state for visible rowsCOMMENT
LOW⚡frappe/public/js/frappe/list/list_view.js2480 // Step 1: Walk visible rows once and resolve each checkbox docname.COMMENT
LOW⚡frappe/public/js/frappe/list/list_view.js2481 // Step 2: Mark checked from Set membership, so off-screen selections remain source-of-truth.COMMENT
LOW⚡frappe/public/js/frappe/list/list_view.js2482 // Step 3: Refresh header/action state from checked_docnames.COMMENT
AI Slop Vocabulary7 hits · 18 pts
SeverityFileLineSnippetContext
LOWfrappe/core/doctype/file/file.py573 # just use the url, to avoid uploading a duplicateCOMMENT
MEDIUMfrappe/automation_engine/tests/test_drainer.py45 # instead of relying on the harness transaction rollback.COMMENT
MEDIUMfrappe/automation_engine/tests/test_drainer.py51 # claim_batch commits, so these tests cannot rely on the harness rollback.COMMENT
MEDIUMfrappe/tests/test_preview.py80 # this robust against jpeg compression noise.COMMENT
LOWfrappe/tests/test_permissions.py578 # not raise permission error but simply return empty listCOMMENT
MEDIUMfrappe/utils/chromium/page.py320 # Absolutely/fixed-positioned descendants are skipped so they can'tCOMMENT
MEDIUMfrappe/public/js/frappe/ui/sort_selector.js84 // and is robust to missing backticksCOMMENT
Modern AI Meta-Vocabulary5 hits · 15 pts
SeverityFileLineSnippetContext
MEDIUM…/island/decisions/0012-a-desk-page-can-be-an-island.md25## Rejected: the scaffold mounts the islandCOMMENT
MEDIUMfrappe/core/doctype/page/test_page.py145 # A title is data, and the scaffold writes it into source. SubstitutedCOMMENT
MEDIUMfrappe/core/doctype/page/page.py145 # has. There is nothing to scaffold beside its json.COMMENT
MEDIUM…/public/js/frappe/form/doctype_settings/tabs/naming.js2// Naming Rules. Each is a shared `frappe.doctype_settings.section` scaffold over aCOMMENT
MEDIUM…/public/js/frappe/form/doctype_settings/tabs/naming.js27// A titled section (shared scaffold) + an EmbeddedList table beneath it. Returns theCOMMENT
Docstring Block Structure3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHfrappe/utils/telemetry/pulse/utils.py42 Parse interval string or integer into seconds. Args: interval: Can be: - Integer: seconds (e.g., 3600)STRING
HIGHfrappe/model/delete_doc.py36 Deletes a document and validates if it is not submitted and not linked in a live record. Args: doctype (str, optioSTRING
HIGHfrappe/model/qb_query.py61Execute a database query using the Query Builder engine. Args: fields: Fields to select. Can be a list, tuple, or STRING
Cross-Language Confusion (JS/TS)2 hits · 10 pts
SeverityFileLineSnippetContext
HIGHfrappe/public/js/frappe/utils/utils.js1834 print(doctype, docname, print_format, letterhead, lang_code) {CODE
HIGHfrappe/public/js/frappe/list/bulk_operations.js7 print(docs) {CODE
TODO Padding2 hits · 3 pts
SeverityFileLineSnippetContext
LOWfrappe/__init__.py236# TODO: implement dataclassCOMMENT
LOWfrappe/__init__.py238# TODO: implement dataclassCOMMENT
Dead Code1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMfrappe/deprecation_dumpster.py140CODE
Slop Phrases1 hit · 2 pts
SeverityFileLineSnippetContext
LOWfrappe/oauth.py241 # the authorization code. Don't forget to save both theCOMMENT