Repository Analysis

frappe/frappe

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

11.2 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of frappe/frappe, a Python project with 10,654 GitHub stars. SynthScan v2.0 examined 539,167 lines of code across 3709 source files, recording 5211 pattern matches distributed across 22 syntactic categories. The overall adjusted score of 11.2 places this repository in the Low AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

11.2
Adjusted Score
11.2
Raw Score
100%
Time Factor
2026-08-28
Last Push
10.7K
Stars
Python
Language
539.2K
Lines of Code
3.7K
Files
5.2K
Pattern Hits
2026-08-29
Scan Date
0.02
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 36HIGH 35MEDIUM 232LOW 4908

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 5211 distinct pattern matches across 22 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Hyper-Verbose Identifiers3126 hits · 3057 pts
SeverityFileLineSnippetContext
LOWui/src/components/ActivityTimeline/grouping.ts184export function groupAssignmentActivities(activities: Activity[]): Activity[] {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.py717def validate_auth_via_api_keys(authorization_header):CODE
LOWfrappe/bundler.py151def get_safe_max_old_space_size():CODE
LOWfrappe/sessions.py365 def get_session_data_from_cache(self):CODE
LOWfrappe/sessions.py501def 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.py670def extract_messages_from_javascript_code(code: str) -> list[tuple[int, str, str | None]]:CODE
LOWfrappe/translate.py875def rebuild_all_translation_files():CODE
LOWfrappe/translate.py916def update_translations_for_source(source: str | None = None, translation_dict: str | dict | None = None):CODE
LOWfrappe/translate.py954 def get_all_language_with_name():CODE
LOWfrappe/translate.py967def get_preferred_language_cookie():CODE
LOWfrappe/config.py123def _apply_common_env_overrides(config: _dict[str, Any]) -> None:CODE
LOWfrappe/cache_manager.py147def _clear_doctype_cache_from_redis(doctype: str | None = None):CODE
LOWfrappe/cache_manager.py258def build_domain_restricted_doctype_cache(*args, **kwargs):CODE
LOWfrappe/cache_manager.py275def build_domain_restricted_page_cache(*args, **kwargs):CODE
LOWfrappe/boot.py495def get_link_preview_doctypes():CODE
LOWfrappe/boot.py512def get_additional_filters_from_hooks():CODE
LOWfrappe/boot.py543def get_notification_settings():CODE
LOWfrappe/onboarding.py13def update_user_onboarding_status(steps: str | list | dict, appName: str):CODE
LOWfrappe/recorder.py170def _install_run_method_tracer():CODE
LOWfrappe/__init__.py484def setup_redis_cache_connection():CODE
LOWfrappe/__init__.py1157def _get_cached_signature_params(fn: Callable) -> tuple[dict[str, Any], bool]:CODE
LOWfrappe/__init__.py1480def validate_and_sanitize_search_inputs(fn):CODE
LOWfrappe/__init__.py1486def 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.py844def get_compat_frappe_test_case_preparation(cfg):CODE
LOWfrappe/deprecation_dumpster.py888def model_trace_traced_field_context(*args, **kwargs):CODE
LOWfrappe/deprecation_dumpster.py900def tests_utils_get_dependencies(doctype):CODE
LOWfrappe/deprecation_dumpster.py935def test_runner_get_dependencies(doctype):CODE
LOWfrappe/deprecation_dumpster.py963def 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.py409def delete_all_barcodes_for_users():CODE
LOWfrappe/twofactor.py419def should_remove_barcode_image(barcode):CODE
LOWfrappe/apps.py133def get_incomplete_setup_route(current_app: str, app_route: str):CODE
LOWfrappe/installer.py413def remove_from_installed_apps(app_name):CODE
LOWfrappe/installer.py524def reapply_disabled_app_state():CODE
3066 more matches not shown…
Excessive Try-Catch Wrapping429 hits · 475 pts
SeverityFileLineSnippetContext
LOWfrappe/auth.py753 except Exception:CODE
LOWfrappe/bundler.py55 except Exception:CODE
LOWfrappe/bundler.py161 except Exception:CODE
LOWfrappe/bundler.py220 except Exception:CODE
LOWfrappe/bundler.py249 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.py55 except Exception as e:CODE
LOWfrappe/boot.py583 except Exception:CODE
LOWfrappe/boot.py616 except Exception:CODE
MEDIUMfrappe/boot.py613def add_subscription_conf():CODE
LOWfrappe/client.py322 except Exception:CODE
LOWfrappe/recorder.py100 except Exception:CODE
LOWfrappe/recorder.py122 except Exception:CODE
LOWfrappe/recorder.py135 except Exception:CODE
LOWfrappe/recorder.py161 except Exception:CODE
LOWfrappe/recorder.py254 except Exception:CODE
LOWfrappe/recorder.py298 except Exception as e:CODE
LOWfrappe/twofactor.py307 except Exception:CODE
LOWfrappe/apps.py76 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.py120 except Exception as e:CODE
LOWfrappe/app.py135 except Exception:CODE
LOWfrappe/frappeclient.py398 except Exception:CODE
LOWfrappe/migrate.py55 except Exception as e:CODE
LOWfrappe/migrate.py277 except Exception as e:CODE
MEDIUMfrappe/migrate.py50def wrapper(*args, **kwargs):CODE
LOWfrappe/oauth.py120 except Exception as e:CODE
LOWfrappe/oauth.py404 except Exception:CODE
LOWfrappe/oauth.py414 except Exception:CODE
LOWfrappe/oauth.py517 except Exception:CODE
MEDIUMfrappe/oauth.py125def authenticate_client_id(self, client_id, request, *args, **kwargs):CODE
MEDIUMfrappe/oauth.py409def validate_jwt_bearer_token(self, token, scopes, request):CODE
LOWfrappe/database/query.py478 except Exception as e:CODE
LOWfrappe/database/query.py595 except Exception:CODE
LOWfrappe/database/query.py1912 except Exception:CODE
LOWfrappe/database/query.py1928 except Exception:CODE
LOWfrappe/database/query.py1977 except Exception:CODE
LOWfrappe/database/query.py2005 except Exception:CODE
LOWfrappe/database/query.py2123 except Exception:CODE
LOWfrappe/database/database.py159 except Exception as e:CODE
LOWfrappe/database/database.py164 except Exception as e:CODE
LOWfrappe/database/database.py288 except Exception as e:CODE
LOWfrappe/database/database.py452 except Exception as e:CODE
LOWfrappe/database/database.py699 except Exception as e:CODE
LOWfrappe/database/database.py1436 except Exception:CODE
369 more matches not shown…
Decorative Section Separators129 hits · 423 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
MEDIUMcypress/integration/print_format_builder.js6// ─── shared helpers ───────────────────────────────────────────────────────────COMMENT
MEDIUMcypress/integration/print_format_builder.js50// ─── Create flow ──────────────────────────────────────────────────────────────COMMENT
MEDIUMcypress/integration/print_format_builder.js456// ─── Setup flow ───────────────────────────────────────────────────────────────COMMENT
MEDIUMcypress/integration/print_format_builder.js575// ─── Section insert (+ Add Section) ──────────────────────────────────────────COMMENT
MEDIUMcypress/integration/print_format_builder.js722// ─── Column width resize ──────────────────────────────────────────────────────COMMENT
MEDIUMcypress/integration/print_format_builder.js927// ─── Image and Barcode blocks ─────────────────────────────────────────────────COMMENT
MEDIUMcypress/integration/print_format_builder.js1017// ─── selection & spacing ────────────────────────────────────────────────────────COMMENT
MEDIUMcypress/integration/print_format_builder.js1159// ─── Draft / Save & Apply ─────────────────────────────────────────────────────COMMENT
MEDIUMcypress/integration/list_view_column_width.js69 // ─── 1. Width set via List View Settings dialog is applied ───────────────────COMMENT
MEDIUMcypress/integration/list_view_column_width.js92 // ─── 2. Width persists after page reload ─────────────────────────────────────COMMENT
MEDIUMcypress/integration/list_view_column_width.js115 // ─── 3. Drag-to-resize changes the column width ──────────────────────────────COMMENT
MEDIUMcypress/integration/list_view_column_width.js125 // ─── 4. Drag-to-resize width is persisted after reload ───────────────────────COMMENT
MEDIUMcypress/integration/list_view_column_width.js140 // ─── 5. Min-width constraint (50 px) is enforced ─────────────────────────────COMMENT
MEDIUMcypress/integration/list_view_column_width.js147 // ─── 6. Max-width constraint (400 px) is enforced ────────────────────────────COMMENT
MEDIUMcypress/integration/list_view_column_width.js154 // ─── 7. Resize handles are present in the header ─────────────────────────────COMMENT
MEDIUMcypress/integration/list_view_column_width.js160 // ─── 8. List View Settings dialog shows Width (px) header and hint ───────────COMMENT
MEDIUMfrappe/database/__init__.py5# --------------------COMMENT
MEDIUMfrappe/core/doctype/sms_settings/sms_settings.py161# =========================================================COMMENT
MEDIUMfrappe/desk/doctype/custom_sidebar/custom_sidebar.py253# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/custom_sidebar/custom_sidebar.py255# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/custom_sidebar/custom_sidebar.py332# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/custom_sidebar/custom_sidebar.py337# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/custom_sidebar/custom_sidebar.py401# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/custom_sidebar/custom_sidebar.py403# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/custom_sidebar/custom_sidebar.py672# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/custom_sidebar/custom_sidebar.py674# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/sidebar/sidebar.py376# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/sidebar/sidebar.py381# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/sidebar/sidebar.py592# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/sidebar/sidebar.py604# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/sidebar/sidebar.py731# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/sidebar/sidebar.py733# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/sidebar/sidebar.py879# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/sidebar/sidebar.py881# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/sidebar/sidebar.py1013# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/sidebar/sidebar.py1015# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/dock/dock.py353# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/dock/dock.py364# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/dock/dock.py1172# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/dock/dock.py1174# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/dock/dock.py1312# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/dock/dock.py1314# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/dock/dock.py1342# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/desk/doctype/dock/dock.py1344# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/patches/v16_0/convert_sidebars.py44# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/patches/v16_0/convert_sidebars.py46# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/patches/v16_0/convert_sidebars.py130# ---------------------------------------------------------------------------------------COMMENT
MEDIUMfrappe/patches/v16_0/convert_sidebars.py132# ---------------------------------------------------------------------------------------COMMENT
69 more matches not shown…
Unused Imports466 hits · 410 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.py30CODE
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__.py1493CODE
LOWfrappe/__init__.py1493CODE
LOWfrappe/__init__.py1493CODE
LOWfrappe/__init__.py1493CODE
LOWfrappe/__init__.py1493CODE
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
406 more matches not shown…
Deep Nesting441 hits · 392 pts
SeverityFileLineSnippetContext
LOWfrappe/translate.py209CODE
LOWfrappe/translate.py274CODE
LOWfrappe/translate.py387CODE
LOWfrappe/translate.py584CODE
LOWfrappe/translate.py705CODE
LOWfrappe/translate.py735CODE
LOWfrappe/translate.py833CODE
LOWfrappe/config.py33CODE
LOWfrappe/monitor.py101CODE
LOWfrappe/handler.py131CODE
LOWfrappe/deferred_insert.py28CODE
LOWfrappe/cache_manager.py147CODE
LOWfrappe/boot.py712CODE
LOWfrappe/recorder.py104CODE
LOWfrappe/recorder.py227CODE
LOWfrappe/__init__.py999CODE
LOWfrappe/deprecation_dumpster.py844CODE
LOWfrappe/deprecation_dumpster.py963CODE
LOWfrappe/deprecation_dumpster.py851CODE
LOWfrappe/twofactor.py44CODE
LOWfrappe/apps.py41CODE
LOWfrappe/installer.py451CODE
LOWfrappe/installer.py485CODE
LOWfrappe/installer.py610CODE
LOWfrappe/installer.py752CODE
LOWfrappe/installer.py893CODE
LOWfrappe/app.py74CODE
LOWfrappe/app.py325CODE
LOWfrappe/permissions.py82CODE
LOWfrappe/permissions.py358CODE
LOWfrappe/permissions.py512CODE
LOWfrappe/defaults.py235CODE
LOWfrappe/frappeclient.py64CODE
LOWfrappe/frappeclient.py260CODE
LOWfrappe/frappeclient.py380CODE
LOWfrappe/oauth.py461CODE
LOWfrappe/database/query.py392CODE
LOWfrappe/database/query.py565CODE
LOWfrappe/database/query.py838CODE
LOWfrappe/database/query.py886CODE
LOWfrappe/database/query.py1097CODE
LOWfrappe/database/query.py1181CODE
LOWfrappe/database/query.py1230CODE
LOWfrappe/database/query.py1336CODE
LOWfrappe/database/query.py1518CODE
LOWfrappe/database/query.py1604CODE
LOWfrappe/database/query.py1822CODE
LOWfrappe/database/query.py1870CODE
LOWfrappe/database/query.py2071CODE
LOWfrappe/database/query.py2394CODE
LOWfrappe/database/query.py2476CODE
LOWfrappe/database/query.py2510CODE
LOWfrappe/database/database.py197CODE
LOWfrappe/database/database.py366CODE
LOWfrappe/database/database.py612CODE
LOWfrappe/database/database.py729CODE
LOWfrappe/database/__init__.py122CODE
LOWfrappe/database/schema.py415CODE
LOWfrappe/database/schema.py112CODE
LOWfrappe/database/schema.py321CODE
381 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.js544 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/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
CRITICALfrappe/public/js/lib/leaflet_draw/leaflet.draw.js454 this._endLabelText = L.drawLocal.draw.handlers.simpleshape.tooltip.end, L.Draw.Feature.prototype.initialize.call(thiCODE
CRITICALfrappe/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
CRITICALfrappe/public/js/lib/leaflet_draw/leaflet.draw.js462 L.Draw.Feature.prototype.removeHooks.call(this), this._map && (this._mapDraggable && this._map.dragging.enable(), thCODE
CRITICALfrappe/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
CRITICALfrappe/public/js/lib/leaflet_draw/leaflet.draw.js501 this._enabled && (this._isCurrentlyTwoClickDrawing = !1, L.Draw.SimpleShape.prototype.disable.call(this))CODE
CRITICALfrappe/public/js/lib/leaflet_draw/leaflet.draw.js505 this._isCurrentlyTwoClickDrawing && !o(t.target, "leaflet-pane") || L.Draw.SimpleShape.prototype._onMouseUp.call(thiCODE
CRITICALfrappe/public/js/lib/leaflet_draw/leaflet.draw.js512 L.Draw.SimpleShape.prototype._fireCreatedEvent.call(this, t)CODE
CRITICALfrappe/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
CRITICALfrappe/public/js/form_builder/form_builder.bundle.js35 this.store.frm.layout.tabs.find((tab) => tab.label === "Form").set_active();CODE
Over-Commented Block176 hits · 165 pts
SeverityFileLineSnippetContext
LOWui/vite/index.js1// Vite plugin for apps that consume @framework/ui.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/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
LOWcypress/plugins/index.js1// ***********************************************************COMMENT
LOWcypress/integration/awesome_bar.js41 cy.get(".title-text").should("contain", "To Do");COMMENT
LOWcypress/integration/sidebar_resolution.js1// Cold-entry sidebar resolution: the order in resolve_initial_sidebar().COMMENT
LOWcypress/integration/relative_time_filters.js1// TODO: Enable this againCOMMENT
LOWcypress/integration/relative_time_filters.js21// cy.intercept('POST', '/api/method/frappe.desk.reportview.get').as('list_refresh');COMMENT
LOWcypress/integration/relative_time_filters.js41// cy.wait('@list_refresh');COMMENT
LOWcypress/integration/arrangement_editor.js1// The editor every navigation surface is arranged in: `frappe.ui.ArrangementEditor`, which theCOMMENT
LOWcypress/integration/arrangement_editor.js361 cy.get_open_dialog().find(".ws-add").click();COMMENT
LOWcypress/integration/sidebar.js81 cy.get(".show-all-btn").click({ force: true });COMMENT
LOWcypress/integration/sidebar.js101 // cy.wait(1000);COMMENT
LOWcypress/integration/sidebar.js121 // cy.get(".fieldname-select-area > .awesomplete > .form-control").should(COMMENT
LOWcypress/integration/sidebar.js141 // cy.click_sidebar_button("Assigned To");COMMENT
LOWcypress/integration/es_components.js1// Espresso component tests, driven through the Component Explorer pageCOMMENT
LOWcypress/support/commands.js1import "@testing-library/cypress/add-commands";COMMENT
LOWcypress/support/e2e.js1// ***********************************************************COMMENT
LOWfrappe/hooks.py601 "has_permission": "frappe.permissions.check_app_permission",COMMENT
LOWfrappe/hooks.py621# see.COMMENT
LOWfrappe/boot.py241# read in the same order as the screen users reach them from. Its module-level counterpart isCOMMENT
LOWfrappe/boot.py361 # because that workspace may sit in a module the app's `Dock` record never names,COMMENT
LOWfrappe/_optimizations.py141 #COMMENT
LOWfrappe/database/query.py141# Pattern for detecting SQL function calls: identifier followed by opening parenthesisCOMMENT
LOWfrappe/database/sequence.py1from frappe import db, scrubCOMMENT
LOWfrappe/database/sequence.py41 sequence_name = scrub(doctype_name + slug)COMMENT
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/user/user.py641 # delete user permissionsCOMMENT
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/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
116 more matches not shown…
Self-Referential Comments49 hits · 145 pts
SeverityFileLineSnippetContext
MEDIUMfrappe/sessions.py122 """This function is meant to be called from scheduler"""STRING
MEDIUMfrappe/database/query.py970 # Create a ChildTableField instance to handle join and field accessCOMMENT
MEDIUMfrappe/core/doctype/file/test_file.py1654 # Create a test user without System Manager roleCOMMENT
MEDIUMfrappe/core/doctype/rq_job/test_rq_job.py89 # Create a slow job and check if it's stuck in "Started"COMMENT
MEDIUMfrappe/core/doctype/data_import/importer.py1755 # Defining an explicit value which surely recognizesCOMMENT
MEDIUMfrappe/desk/desktop.py592 # 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
MEDIUMfrappe/tests/test_search.py230 # Create a test doctype to link toCOMMENT
MEDIUMfrappe/tests/test_search.py238 # Create a form doctype with a link field that has ignore_user_permissionsCOMMENT
MEDIUMfrappe/tests/test_search.py266 # Create a test user with restricted permissionsCOMMENT
MEDIUMfrappe/tests/test_removing_orphans.py11 # Create a new reportCOMMENT
MEDIUMfrappe/tests/test_boot.py182 # Create a ToDo custom report with admin userCOMMENT
MEDIUMfrappe/tests/test_boot.py204 # Create a ToDo custom report with test userSTRING
MEDIUMfrappe/tests/test_api_v2.py472 # Create a fresh doc for this testCOMMENT
MEDIUMfrappe/tests/test_query_report.py181 # Define the visible rowsCOMMENT
MEDIUMfrappe/tests/test_query_report.py206 # Define the visible rowsCOMMENT
MEDIUMfrappe/tests/test_query_report.py237 # 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
MEDIUMfrappe/tests/test_query.py2910# This function is used as a permission query condition hookCOMMENT
MEDIUMfrappe/tests/test_query.py983 # Create a test blog postCOMMENT
MEDIUMfrappe/tests/test_query.py1091 # Create a test note with specific contentCOMMENT
MEDIUMfrappe/tests/test_query.py1205 # Create a Dashboard Settings for test userCOMMENT
MEDIUMfrappe/tests/test_query.py1218 # Create a server script for permission queryCOMMENT
MEDIUMfrappe/tests/test_query.py1477 # Create a test blog postCOMMENT
MEDIUMfrappe/tests/test_query.py2258 # Create a private event (only owner can see by default)COMMENT
MEDIUMfrappe/tests/test_query.py2465 # Create a child table row with non-existent parentCOMMENT
MEDIUMfrappe/tests/test_sqlite_search.py232 # Create a test user and switch to themCOMMENT
MEDIUMfrappe/tests/test_sqlite_search.py400 # Create a new document after index is builtCOMMENT
MEDIUMfrappe/tests/test_sqlite_search.py520 # Create a note with HTML contentCOMMENT
MEDIUMfrappe/tests/test_sqlite_search.py563 # Create a search class with search disabledCOMMENT
MEDIUMfrappe/tests/test_sqlite_search.py606 # Create a test documentCOMMENT
MEDIUMfrappe/utils/test_print_format_generator.py83 # 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.py363 # Create a new stylesheetCOMMENT
MEDIUMfrappe/utils/chromium/page.py370 # Define the CSS rule for the page sizeCOMMENT
MEDIUMfrappe/search/sqlite_search.py1268 # Create the FTS table with dynamic columnsCOMMENT
MEDIUMfrappe/search/sqlite_search.py1278 # Create the vocabulary and trigram tablesSTRING
MEDIUMfrappe/search/sqlite_search.py1295 # 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.py881 # 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.py239 # Create a test notificationCOMMENT
MEDIUMfrappe/email/doctype/notification/test_notification.py298 # Create a test notificationCOMMENT
MEDIUMfrappe/email/doctype/notification/test_notification.py675 # Create a ToDoCOMMENT
MEDIUMfrappe/email/doctype/notification/test_notification.py785# # Create an event and notification before each testCOMMENT
Fake / Example Data127 hits · 136 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.vue8 :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
LOWui/src/components/Phone/Phone.vue88 :placeholder="placeholder"CODE
LOWui/src/components/Filter/Filter.vue390 return "John Doe";CODE
LOWcypress/integration/control_color.js77 .invoke("attr", "placeholder")CODE
LOWfrappe/database/database.py1279 exists("User", "jane@example.org", cache=True)STRING
LOWfrappe/database/database.py1285 exists({"doctype": "User", "full_name": "Jane Doe"})STRING
LOWfrappe/database/database.py1291 exists("User", {"full_name": "Jane Doe"})STRING
LOW…ppe/core/page/component_explorer/component_explorer.js319 label: "John Doe",CODE
LOW…ppe/core/page/component_explorer/component_explorer.js1188 label: "John Doe",CODE
LOW…ppe/core/page/component_explorer/component_explorer.js1207 { label: "John Doe" },CODE
LOW…ppe/core/page/component_explorer/component_explorer.js1218 { label: "John Doe", size: "xs" },CODE
LOW…ppe/core/page/component_explorer/component_explorer.js1219 { label: "John Doe", size: "sm" },CODE
LOW…ppe/core/page/component_explorer/component_explorer.js1220 { label: "John Doe" },CODE
LOW…ppe/core/page/component_explorer/component_explorer.js1221 { label: "John Doe", size: "lg" },CODE
LOW…ppe/core/page/component_explorer/component_explorer.js1222 { label: "John Doe", size: "xl" },CODE
LOW…ppe/core/page/component_explorer/component_explorer.js1223 { label: "John Doe", size: "2xl" },CODE
LOW…ppe/core/page/component_explorer/component_explorer.js1224 { label: "John Doe", size: "3xl" },CODE
LOW…ppe/core/page/component_explorer/component_explorer.js1230 { label: "John Doe", theme: "blue" },CODE
LOW…ppe/core/page/component_explorer/component_explorer.js1231 { label: "John Doe", theme: "blue", shape: "square" },CODE
LOW…ppe/core/page/component_explorer/component_explorer.js1232 { label: "John Doe", theme: "blue", shape: "square", size: "2xl" },CODE
LOW…ppe/core/page/component_explorer/component_explorer.js1239 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.json86 "placeholder",CODE
LOWfrappe/core/doctype/docfield/docfield.json641 "fieldname": "placeholder",CODE
LOWfrappe/core/doctype/comment/test_comment.py55 "comment_email": "test@test.com",CODE
LOWfrappe/core/doctype/user/test_user.py291 data = {"cmd": "frappe.core.doctype.user.user.reset_password", "user": "test@test.com"}STRING
LOWfrappe/core/doctype/report/test_report.py194 "email": "admin@example.com",CODE
LOWfrappe/core/doctype/report/test_report.py230 "email": "admin@example.com",CODE
LOWfrappe/core/doctype/communication/test_communication.py416 to = "jane.doe+A+Test@example.org"CODE
LOWfrappe/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
LOWfrappe/contacts/doctype/contact/test_contact.py40 self.assertEqual(get_full_name(first="John", last="Doe"), "John Doe")CODE
LOWfrappe/contacts/doctype/contact/test_contact.py42 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
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
LOWfrappe/tests/test_utils.py1229 self.assertEqual(escape_formula_injection("555-1234"), "555-1234")CODE
LOWfrappe/tests/test_utils.py1265 ["REC-002", "normal text", "555-1234", "10"],CODE
LOWfrappe/tests/test_utils.py1188 ["+91-1234567890", -5, "555-1234"],CODE
LOWfrappe/tests/test_utils.py1202 ((2, 2), "555-1234"),CODE
LOWfrappe/tests/test_email.py31 sender="admin@example.com",CODE
LOWfrappe/tests/test_email.py98 sender="admin@example.com",CODE
LOWfrappe/tests/test_email.py139 sender="admin@example.com",CODE
LOWfrappe/tests/test_email.py176 sender="admin@example.com",CODE
LOWfrappe/tests/test_email.py211 sender="admin@example.com",CODE
LOWfrappe/tests/test_email.py260 sender="admin@example.com",CODE
LOWfrappe/tests/test_email.py274 _patched_assertion(email_account, "admin@example.com")CODE
LOWfrappe/tests/test_email.py281 _patched_assertion(email_account, '"admin@example.com" <test@example.com>')CODE
67 more matches not shown…
Cross-Language Confusion16 hits · 99 pts
SeverityFileLineSnippetContext
HIGHfrappe/database/query.py2024 # Since Y and X can't be null, null value in column will never match filter, soCOMMENT
HIGHfrappe/core/doctype/server_script/test_server_script.py171 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.py1036 filters=[*filters, "({0} = '' or {0} is null)".format(tag["name"])],CODE
HIGH…ppe/printing/doctype/print_format/test_print_format.py208 "sections is null": '{"sections": null}',CODE
HIGHfrappe/tests/test_utils.py851 "these_are && js_conditions",CODE
HIGHfrappe/tests/test_utils.py852 "more || js_conditions",CODE
HIGHfrappe/tests/test_db_query.py1322 # it is non-null, so the plucked result must be masked.COMMENT
HIGHfrappe/tests/test_translate.py321 __("attr with", null, "context")STRING
HIGHfrappe/tests/test_translate.py367 args = get_args("""__("attr with", null, "context")""")CODE
HIGHfrappe/utils/telemetry/pulse/test_pulse_client.py332 # Guests have no server-known identity → null; the client mints its own anon id.COMMENT
HIGHfrappe/gettext/extractors/tests/test_javascript.py13 code = "let test = `<p>${__('Test', null, 'Context')}</p>`;"CODE
HIGHfrappe/model/db_query.py1111 # Since Y and X can't be null, null value in column will never match filter, soCOMMENT
HIGHfrappe/commands/testing.py499 "(cd ../frappe && yarn bin)",STRING
HIGHfrappe/commands/testing.py540 frappe.commands.popen(f"(cd ../frappe && yarn add {packages} --no-lockfile)")STRING
Redundant / Tautological Comments48 hits · 71 pts
SeverityFileLineSnippetContext
LOWfrappe/auth.py114 # Check if the referrer or origin is in the allowed listCOMMENT
LOWfrappe/database/query.py440 # Check if the operator is a string, and specifically a logical operatorCOMMENT
LOWfrappe/database/query.py451 # Check if it looks like it *might* be nested (even if malformed).COMMENT
LOWfrappe/database/query.py843 # Check if it's a nested condition list [cond1, op, cond2, ...]COMMENT
LOWfrappe/database/query.py954 # Check if doctype is a valid child table of self.doctypeCOMMENT
LOWfrappe/database/query.py1210 # Iterate through the list where each item could be a single field, criterion, or a comma-separated stringCOMMENT
LOWfrappe/database/query.py1238 # Check if it's a SQL function or operator dictionaryCOMMENT
LOWfrappe/database/query.py1476 # Check if the last word is a valid directionCOMMENT
LOWfrappe/database/query.py1594 # Check if the field name is an optional field (like _user_tags) or in permitted fieldsCOMMENT
LOWfrappe/database/query.py2118 # Check if the first part is a valid fieldname in the parent doctypeCOMMENT
LOWfrappe/database/query.py2546 # Check if it's a numeric string like "1" (for COUNT(1), etc.)COMMENT
LOWfrappe/core/doctype/user/user.py1245 # 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.py132 # Check if creating and deleting works with proper validationsCOMMENT
LOWfrappe/desk/desktop.py118 # Check if onboarding is enabledCOMMENT
LOWfrappe/desk/desktop.py130 # Check if user is allowedCOMMENT
LOWfrappe/desk/desktop.py136 # Check if already completeCOMMENT
LOWfrappe/desk/desktop.py230 # Check if user is allowed to viewCOMMENT
LOWfrappe/desk/desktop.py731 # Check if user is allowedSTRING
LOWfrappe/website/website_generator.py162 # Check if the route is changedCOMMENT
LOWfrappe/tests/test_nestedset.py333 # Check if all records are fetched when flag is set to TrueCOMMENT
LOWfrappe/tests/test_nestedset.py336 # Check if disabled records are skipped is set to FalseCOMMENT
LOWfrappe/tests/test_query_report.py217 # Check if unset filters are skipped | Rows -> 2 filters + 1 empty + 1 column + 3 dataCOMMENT
LOWfrappe/tests/test_sqlite_search.py142 # Check if FTS table existsCOMMENT
LOWfrappe/tests/test_sqlite_search.py146 # Check if vocabulary tables existCOMMENT
LOWfrappe/tests/test_sqlite_search.py296 # Check if corrections were appliedCOMMENT
LOWfrappe/utils/backups.py176 # Check if file exists and is less than a day oldCOMMENT
LOWfrappe/utils/change_log.py373 # Check if user is int the set of users to send update message toCOMMENT
LOWfrappe/utils/pdf_generator/browser.py124 # Check if any of the classes existCOMMENT
LOWfrappe/utils/pdf_generator/browser.py136 if soup.find(class_=class_name): # Check if any element with the class is foundCODE
LOWfrappe/search/sqlite_search.py332 # Check if this is a completely fresh build or a continuationCOMMENT
LOWfrappe/search/sqlite_search.py344 # Check if we're continuing a fresh build (temp db exists)COMMENT
LOWfrappe/search/sqlite_search.py377 # Check if indexing is already completeCOMMENT
LOWfrappe/search/sqlite_search.py456 # Check if all doctypes are indexed before building vocabularyCOMMENT
LOWfrappe/search/sqlite_search.py837 # Check if this is a LIKE filter (list with 'LIKE' operator)COMMENT
LOWfrappe/search/sqlite_search.py1783 # Check if a temp DB exists (incomplete build from previous run)COMMENT
LOWfrappe/search/sqlite_search.py1864 # Check if a temp DB exists (incomplete build from previous run)COMMENT
LOWfrappe/testing/discovery.py84 # 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.py640 # 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.py257 # Check if the notification was triggeredCOMMENT
LOWfrappe/email/doctype/notification/test_notification.py316 # 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
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
AI Structural Patterns72 hits · 66 pts
SeverityFileLineSnippetContext
LOWfrappe/client.py26CODE
LOWfrappe/client.py374CODE
LOWfrappe/recorder.py472CODE
LOWfrappe/__init__.py762CODE
LOWfrappe/__init__.py899CODE
LOWfrappe/installer.py42CODE
LOWfrappe/installer.py124CODE
LOWfrappe/installer.py726CODE
LOWfrappe/installer.py752CODE
LOWfrappe/share.py49CODE
LOWfrappe/app.py536CODE
LOWfrappe/frappeclient.py363CODE
LOWfrappe/frappeclient.py370CODE
LOWfrappe/database/query.py215CODE
LOWfrappe/database/sequence.py28CODE
LOWfrappe/database/database.py197CODE
LOWfrappe/database/database.py534CODE
LOWfrappe/database/database.py612CODE
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.py569CODE
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.py253CODE
LOWfrappe/desk/query_report.py276CODE
LOWfrappe/desk/search.py103CODE
LOWfrappe/desk/doctype/dashboard_chart/dashboard_chart.py93CODE
LOWfrappe/website/doctype/web_page_view/web_page_view.py47CODE
LOWfrappe/tests/ui_test_helpers.py740CODE
LOWfrappe/tests/microbenchmarks/utils.py31CODE
LOWfrappe/tests/microbenchmarks/utils.py43CODE
LOWfrappe/utils/task_queue.py12CODE
LOWfrappe/utils/backups.py631CODE
LOWfrappe/utils/backups.py670CODE
LOWfrappe/utils/backups.py42CODE
LOWfrappe/utils/print_utils.py49CODE
LOWfrappe/utils/print_utils.py143CODE
LOWfrappe/utils/response.py377CODE
LOWfrappe/utils/messages.py11CODE
LOWfrappe/utils/background_jobs.py79CODE
LOWfrappe/utils/commands.py40CODE
LOWfrappe/utils/data.py237CODE
LOWfrappe/utils/data.py252CODE
LOWfrappe/utils/data.py267CODE
LOWfrappe/utils/data.py281CODE
LOWfrappe/realtime/__init__.py30CODE
LOWfrappe/testing/runner.py49CODE
LOWfrappe/model/delete_doc.py24CODE
LOWfrappe/model/qb_query.py26CODE
LOWfrappe/model/db_query.py113CODE
LOWfrappe/model/document.py178CODE
LOWfrappe/model/document.py412CODE
LOWfrappe/model/rename_doc.py108CODE
LOWfrappe/commands/site.py74CODE
LOWfrappe/commands/site.py208CODE
12 more matches not shown…
Verbosity Indicators19 hits · 40 pts
SeverityFileLineSnippetContext
LOWcypress/integration/list_view.js150 // Step 1: select one visible row and capture its source-of-truth docname.COMMENT
LOWcypress/integration/list_view.js159 // Step 2: force a list rerender; the same row should still resolve as checked.COMMENT
LOWcypress/integration/list_view.js180 // Step 1: force virtual mode even on small fixtures to exercise virtualization path.COMMENT
LOWcypress/integration/list_view.js189 // Step 2: select all and verify Set tracks all docs, not just visible DOM rows.COMMENT
LOWcypress/integration/list_view.js199 // Step 3: scroll to trigger window swap; selection state must remain intact.COMMENT
LOWfrappe/utils/chromium/page.py145 # 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.js751 // We need to check if document is already amend specifically and hideCOMMENT
LOWfrappe/public/js/frappe/list/list_factory.js68 // Step 1: /desk/List/Item redirects to /desk/List/Item/ListCOMMENT
LOWfrappe/public/js/frappe/list/list_factory.js69 // Step 2: User hits "back" comes back to /desk/List/ItemCOMMENT
LOWfrappe/public/js/frappe/list/list_factory.js70 // 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
LOWfrappe/public/js/frappe/list/list_view.js2401 // Step 1: Walk visible rows once and resolve each checkbox docname.COMMENT
LOWfrappe/public/js/frappe/list/list_view.js2402 // Step 2: Mark checked from Set membership, so off-screen selections remain source-of-truth.COMMENT
LOWfrappe/public/js/frappe/list/list_view.js2403 // Step 3: Refresh header/action state from checked_docnames.COMMENT
Structural Annotation Overuse17 hits · 36 pts
SeverityFileLineSnippetContext
LOWcypress/integration/list_view.js150 // Step 1: select one visible row and capture its source-of-truth docname.COMMENT
LOWcypress/integration/list_view.js159 // Step 2: force a list rerender; the same row should still resolve as checked.COMMENT
LOWcypress/integration/list_view.js180 // Step 1: force virtual mode even on small fixtures to exercise virtualization path.COMMENT
LOWcypress/integration/list_view.js189 // Step 2: select all and verify Set tracks all docs, not just visible DOM rows.COMMENT
LOWcypress/integration/list_view.js199 // Step 3: scroll to trigger window swap; selection state must remain intact.COMMENT
LOWfrappe/__init__.py1192 # 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
LOWfrappe/public/js/frappe/list/list_factory.js69 // Step 2: User hits "back" comes back to /desk/List/ItemCOMMENT
LOWfrappe/public/js/frappe/list/list_factory.js70 // 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
LOWfrappe/public/js/frappe/list/list_view.js2401 // Step 1: Walk visible rows once and resolve each checkbox docname.COMMENT
LOWfrappe/public/js/frappe/list/list_view.js2402 // Step 2: Mark checked from Set membership, so off-screen selections remain source-of-truth.COMMENT
LOWfrappe/public/js/frappe/list/list_view.js2403 // Step 3: Refresh header/action state from checked_docnames.COMMENT
Modern Structural Boilerplate32 hits · 32 pts
SeverityFileLineSnippetContext
LOWfrappe/core/doctype/file/utils.py342def update_existing_file_docs(doc: "File") -> None:CODE
LOWfrappe/core/doctype/background_task/background_task.py55 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/tests/test_virtual_doctype.py42 def update_data(data: dict[str, dict]) -> None:CODE
LOWfrappe/tests/classes/context_managers.py267__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
LOWfrappe/utils/chromium/__init__.py25__all__ = [CODE
LOWfrappe/www/printview.py265def set_link_titles(doc: "Document") -> None:STRING
LOWfrappe/www/printview.py302def 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
LOWfrappe/testing/environment.py36logger = logging.getLogger(__name__)CODE
LOWfrappe/model/naming.py128 def update_counter(self, new_count: int) -> None:CODE
LOWfrappe/model/document.py2741def _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.py411def update_child_docs(old: str, new: str, meta: "Meta") -> None:CODE
LOWfrappe/model/rename_doc.py421def update_link_field_values(link_fields: list[dict], old: str, new: str, doctype: str) -> None:CODE
LOWfrappe/model/rename_doc.py513def update_options_for_fieldtype(fieldtype: str, old: str, new: str) -> None:CODE
LOWfrappe/custom/doctype/custom_field/custom_field.py443def _update_fieldname_references(field: CustomField, old_fieldname: str, new_fieldname: str) -> None:CODE
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
AI Slop Vocabulary5 hits · 12 pts
SeverityFileLineSnippetContext
LOWfrappe/core/doctype/file/file.py514 # just use the url, to avoid uploading a duplicateCOMMENT
MEDIUMfrappe/tests/test_preview.py80 # this robust against jpeg compression noise.COMMENT
LOWfrappe/tests/test_permissions.py525 # not raise permission error but simply return empty listCOMMENT
MEDIUMfrappe/utils/chromium/page.py311 # Absolutely/fixed-positioned descendants are skipped so they can'tCOMMENT
MEDIUMfrappe/public/js/frappe/ui/sort_selector.js76 // and is robust to missing backticksCOMMENT
Cross-Language Confusion (JS/TS)2 hits · 10 pts
SeverityFileLineSnippetContext
HIGHfrappe/public/js/frappe/utils/utils.js1797 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.py194 # the authorization code. Don't forget to save both theCOMMENT