AI Slop Code RIsk Monitor

WeblateOrg/weblate

Web based localization tool with tight version control integration.

20.8 Elevated pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for WeblateOrg/weblate, a Python project with 6,110 GitHub stars. SynthScan examined 459,344 lines of code across 1503 source files, recording 8798 pattern matches distributed across 20 syntactic categories. The legacy adjusted pattern signal is 20.8 (Elevated pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

20.8
Adjusted Signal
20.8
Raw Pattern Score
100%
Time Factor
2026-10-11
Last Push
6.1K
Stars
Python
Language
459.3K
Lines of Code
1.5K
Files
8.8K
Pattern Hits
2026-10-12
Scan Date
0.29
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 46.2/100 · MEDIUM

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

Hallucinated Dependency & Supply Chain Risk 29.5/100 · MEDIUM

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

Agent Over-Engineering Ratio 46.5/100 · MEDIUM

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

PR Review Velocity Impact 71.6/100 · HIGH

Which changes need focused human review? 8798 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 124HIGH 307MEDIUM 60LOW 8307

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 8798 distinct pattern matches across 20 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

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

Hyper-Verbose Identifiers6609 hits · 5100 pts
SeverityFileLineSnippetContext
LOWweblate/middleware.py138 def should_redirect_with_slash(self, request: AuthenticatedHttpRequest) -> bool:CODE
LOWweblate/middleware.py207 def check_existing_translations(self, language: Language, project: Project) -> bool:CODE
LOWweblate/middleware.py339 def apply_request_csp_settings(self) -> None:CODE
LOWweblate/middleware.py399 def build_csp_google_analytics(self) -> None:CODE
LOWweblate/metrics/wrapper.py277 def populate_month_activity_cache(CODE
LOWweblate/metrics/tasks.py73def collect_workspace_metrics(date_value: str) -> None:CODE
LOWweblate/metrics/tasks.py97def collect_component_metrics(date_value: str) -> None:CODE
LOWweblate/metrics/tasks.py109def collect_component_list_metrics(date_value: str) -> None:CODE
LOWweblate/metrics/tasks.py121def collect_translation_metrics(date_value: str) -> None:CODE
LOWweblate/metrics/models.py129def get_language_change_metric_data(CODE
LOWweblate/metrics/models.py366 def collect_category_language(CODE
LOWweblate/metrics/models.py700def create_metrics_translation(sender, instance, created=False, **kwargs) -> None:CODE
LOWweblate/metrics/models.py748def delete_metrics_component_list(sender, instance, **kwargs) -> None:CODE
LOWweblate/metrics/models.py756def delete_metrics_translation(sender, instance, **kwargs) -> None:CODE
LOWweblate/metrics/tests.py32 def test_collect_schedules_scope_tasks(self) -> None:CODE
LOWweblate/metrics/tests.py64 def test_collect_nested_shared_category(self) -> None:CODE
LOWweblate/metrics/tests.py108 def test_cleanup_legacy_category_language_metric_keys(self) -> None:CODE
LOWweblate/metrics/tests.py135 def test_collect_uses_requested_date(self) -> None:CODE
LOWweblate/metrics/tests.py142 def test_change_metric_aggregates(self) -> None:CODE
LOWweblate/metrics/tests.py189 def test_workspace_metric_lifecycle(self) -> None:CODE
LOWweblate/metrics/tests.py209 def test_wrapper_prefers_today_metric(self) -> None:CODE
LOWweblate/screenshots/models.py183def change_screenshot_assignment(sender, instance, action, **kwargs) -> None:CODE
LOW⚡weblate/screenshots/models.py194def update_alerts_on_screenshot_save(sender, instance: Screenshot, **kwargs) -> None:CODE
LOW⚡weblate/screenshots/models.py202def update_alerts_on_screenshot_delete(sender, instance: Screenshot, **kwargs) -> None:CODE
LOW⚡weblate/screenshots/models.py210def update_screenshot_coverage_on_component_update(CODE
LOW⚡weblate/screenshots/models.py216def validate_screenshot_image(component: Component, filename: str) -> str | None:CODE
LOWweblate/screenshots/models.py249def sync_screenshots_from_repo(CODE
LOWweblate/screenshots/tests.py58 def test_rejects_invalid_extension(self) -> None:CODE
LOWweblate/screenshots/tests.py72 def test_norwegian_ocr_language(self) -> None:CODE
LOWweblate/screenshots/tests.py108 def test_cache_directory_creation_is_race_safe(self) -> None:CODE
LOWweblate/screenshots/tests.py121 def test_transient_errors_are_retried(self) -> None:CODE
LOWweblate/screenshots/tests.py154 def test_permanent_error_is_not_retried(self) -> None:CODE
LOWweblate/screenshots/tests.py170 def test_exhausted_retries_leave_no_file(self) -> None:CODE
LOWweblate/screenshots/tests.py187 def test_interrupted_install_removes_temporary_file(self) -> None:CODE
LOWweblate/screenshots/tests.py208 def make_language_scoped_user(self, language_code: str, *permissions: str) -> None:CODE
LOWweblate/screenshots/tests.py276 def test_upload_language_scope(self) -> None:CODE
LOWweblate/screenshots/tests.py324 def test_upload_redirect_next(self) -> None:CODE
LOWweblate/screenshots/tests.py340 def test_upload_redirect_next_invalid(self) -> None:CODE
LOWweblate/screenshots/tests.py394 def test_upload_source_invalid(self) -> None:CODE
LOWweblate/screenshots/tests.py409 def test_detail_has_documentation_link(self) -> None:CODE
LOWweblate/screenshots/tests.py450 def test_edit_metadata_with_existing_oversized_image(self) -> None:CODE
LOWweblate/screenshots/tests.py519 def test_view_uses_image_content_type(self) -> None:CODE
LOWweblate/screenshots/tests.py533 def test_private_screenshot_actions_hidden(self) -> None:CODE
LOWweblate/screenshots/tests.py593 def test_delete_redirect_next(self) -> None:CODE
LOWweblate/screenshots/tests.py612 def test_delete_redirect_next_strips_page(self) -> None:CODE
LOWweblate/screenshots/tests.py641 def test_delete_redirect_next_invalid(self) -> None:CODE
LOWweblate/screenshots/tests.py655 def test_async_source_changes_use_screenshot_owner(self) -> None:CODE
LOWweblate/screenshots/tests.py682 def test_source_manipulations(self) -> None:CODE
LOWweblate/screenshots/tests.py786 def test_source_manipulations_language_scope(self) -> None:CODE
LOWweblate/screenshots/tests.py836 def test_language_scoped_controls(self) -> None:CODE
LOWweblate/screenshots/tests.py868 def test_source_bulk_manipulations(self) -> None:CODE
LOWweblate/screenshots/tests.py931 def test_source_bulk_updates_alerts_once(self) -> None:CODE
LOWweblate/screenshots/tests.py967 def test_list_coverage_summary(self) -> None:CODE
LOWweblate/screenshots/tests.py985 def test_list_unassigned_filter(self) -> None:CODE
LOWweblate/screenshots/tests.py1058 def test_list_search_invalid_regex_on_non_text_fields(self) -> None:CODE
LOWweblate/screenshots/tests.py1067 def test_list_search_takes_precedence_over_legacy_unassigned_filter(self) -> None:CODE
LOWweblate/screenshots/tests.py1081 def test_list_queries_do_not_scale_with_screenshots(self) -> None:CODE
LOWweblate/screenshots/tests.py1184 def test_ocr_tesseract_error_propagates(self) -> None:CODE
LOWweblate/screenshots/tests.py1209 def test_ocr_tesseract_download_error(self) -> None:CODE
LOWweblate/screenshots/tests.py1233 def test_translation_manipulations(self) -> None:CODE
6549 more matches not shown…
Hallucination Indicators124 hits · 1305 pts
SeverityFileLineSnippetContext
CRITICALweblate/urls.py311 weblate.trans.views.settings.BackupsView.as_view(),CODE
CRITICALweblate/urls.py316 weblate.trans.views.settings.BackupsDownloadView.as_view(),CODE
CRITICAL⚡weblate/urls.py351 weblate.trans.views.create.CreateProject.as_view(),CODE
CRITICAL⚡weblate/urls.py356 weblate.trans.views.create.ImportProject.as_view(),CODE
CRITICAL⚡weblate/urls.py361 weblate.trans.views.create.CreateComponentSelection.as_view(),CODE
CRITICAL⚡weblate/urls.py366 weblate.trans.views.create.CreateComponent.as_view(),CODE
CRITICAL⚡weblate/urls.py371 weblate.trans.views.create.CreateFromZip.as_view(),CODE
CRITICAL⚡weblate/urls.py376 weblate.trans.views.create.CreateFromDoc.as_view(),CODE
CRITICALweblate/urls.py771 weblate.trans.views.basic.ProjectLanguageRedirectView.as_view(),CODE
CRITICALweblate/urls.py776 weblate.trans.views.basic.ProjectLanguageRedirectView.as_view(CODE
CRITICAL⚡weblate/urls.py836 weblate.trans.views.widgets.WidgetRedirectView.as_view(),CODE
CRITICAL⚡weblate/urls.py840 weblate.trans.views.widgets.WidgetRedirectView.as_view(),CODE
CRITICAL⚡weblate/urls.py844 weblate.trans.views.widgets.WidgetRedirectView.as_view(),CODE
CRITICAL⚡weblate/urls.py848 weblate.trans.views.widgets.WidgetRedirectView.as_view(),CODE
CRITICAL⚡weblate/urls.py1065 path("about/", weblate.trans.views.about.AboutView.as_view(), name="about"),CODE
CRITICAL⚡weblate/urls.py1066 path("donate/", weblate.trans.views.about.DonateView.as_view(), name="donate"),CODE
CRITICAL⚡weblate/urls.py1067 path("keys/", weblate.trans.views.about.KeysView.as_view(), name="keys"),CODE
CRITICAL⚡weblate/urls.py1068 path("stats/", weblate.trans.views.about.StatsView.as_view(), name="stats"),CODE
CRITICALweblate/middleware.py14from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/screenshots/models.py12from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/screenshots/tests.py18from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/formats/ttkit.py22from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/formats/source_edit.py13from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/formats/tests/test_txt.py14from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/formats/tests/test_source_edit.py11from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/formats/tests/test_tbx_multivalue.py16from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/formats/tests/test_formats.py22from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/auth/models.py23from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/auth/forms.py14from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/auth/utils.py14from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/auth/tests/test_group_concurrency.py14from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/auth/tests/test_models.py13from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/checks/flags.py14from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/checks/markup.py16from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/checks/same.py133 unit.translation.component.project.name.lower().split()CODE
CRITICALweblate/checks/tests/test_flags.py7from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/addons/tasks.py15from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/addons/models.py13from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/addons/gettext.py19from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/addons/consistency.py10from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/addons/test_gettext_rules.py13from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/addons/fedora_messaging.py23from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/addons/gettext_rules.py10from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/addons/forms.py1785 queryset = self._addon.instance.component.translation_set.all()CODE
CRITICALweblate/addons/webhooks.py17from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/addons/tests.py34from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/addons/base.py17from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/addons/management/commands/install_addon.py9from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/utils/files.py14from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/utils/params.py20from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/utils/render.py11from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/utils/validators.py26from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/utils/djangosaml2idp.py9from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/utils/forms.py11from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/utils/outbound.py14from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/utils/stats.py966 self._object.component.project.label_set.values_list("name", flat=True)CODE
CRITICALweblate/utils/requests.py19from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/utils/tests/test_validators.py14from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/utils/tests/test_files.py15from django.core.exceptions import ValidationErrorCODE
CRITICALweblate/utils/tests/test_requests.py14from django.core.exceptions import ValidationErrorCODE
64 more matches not shown…
Cross-Language Confusion231 hits · 1055 pts
SeverityFileLineSnippetContext
HIGHweblate/formats/tests/test_formats.py1462 "(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && n % 10 == 0) ? 2 : 3))",CODE
HIGHweblate/memory/tests.py1715"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"CODE
HIGHweblate/checks/tests/test_chars_checks.py92 self.do_test(False, ("Save && Exit", "Save && Exit", "accelerator:&"))CODE
HIGH⚡weblate/checks/tests/test_mdx.py142 "{cond ? <p>{a}</p> : null}",CODE
HIGH⚡weblate/checks/tests/test_mdx.py143 ["{cond ? <p>{a}</p> : null}"],CODE
HIGHweblate/checks/tests/test_flags.py37"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"CODE
HIGHweblate/addons/test_ai.py80 '{"results": null}',CODE
HIGH⚡weblate/addons/tests.py10250 repo.push("")STRING
HIGHweblate/utils/tests/test_api_ratelimits.py307 "WEBLATE_API_RATELIMIT_IP_OVERRIDES": '{"192.0.2.42":null}',CODE
HIGH⚡weblate/lang/tests.py45 ("cs_CZ", "cs", "ltr", "(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2", "Czech", False),CODE
HIGH⚡weblate/lang/tests.py46 ("cze_CZ", "cs", "ltr", "(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2", "Czech", False),CODE
HIGH⚡weblate/lang/tests.py47 ("ces_CZ", "cs", "ltr", "(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2", "Czech", False),CODE
HIGH⚡weblate/lang/tests.py52 "(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2",CODE
HIGH⚡weblate/lang/tests.py56 ("cs (2)", "cs", "ltr", "(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2", "Czech", False),CODE
HIGH⚡weblate/lang/tests.py57 ("cscz", "cs", "ltr", "(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2", "Czech", False),CODE
HIGH⚡weblate/lang/tests.py58 ("czech", "cs", "ltr", "(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2", "Czech", False),CODE
HIGH⚡weblate/lang/tests.py63 "(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2",CODE
HIGH⚡weblate/lang/tests.py77 "n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2",CODE
HIGH⚡weblate/lang/tests.py77 "n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2",CODE
HIGH⚡weblate/lang/tests.py85 "n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2",CODE
HIGH⚡weblate/lang/tests.py85 "n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2",CODE
HIGH⚡weblate/lang/tests.py93 "n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2",CODE
HIGH⚡weblate/lang/tests.py93 "n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2",CODE
HIGH⚡weblate/lang/tests.py101 "n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2",CODE
HIGH⚡weblate/lang/tests.py101 "n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2",CODE
HIGH⚡weblate/lang/tests.py148 "n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5",CODE
HIGH⚡weblate/lang/tests.py156 "n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5",CODE
HIGH⚡weblate/lang/tests.py164 "n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5",CODE
HIGH⚡weblate/lang/tests.py737 "(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)"CODE
HIGH⚡weblate/lang/tests.py737 "(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)"CODE
HIGHweblate/lang/tests.py185 "n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2",CODE
HIGHweblate/lang/tests.py185 "n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2",CODE
HIGHweblate/lang/tests.py387 "czech", "cs", "ltr", "(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2", "Czech", FalseCODE
HIGHweblate/lang/tests.py681 "(n%10==1 ? 0 : n%10==1 && n%100!=11 ? 1 : n %10>=2 && (n%100<10 || n%100>=20) ? 2 : 3)",CODE
HIGHweblate/lang/tests.py681 "(n%10==1 ? 0 : n%10==1 && n%100!=11 ? 1 : n %10>=2 && (n%100<10 || n%100>=20) ? 2 : 3)",CODE
HIGHweblate/lang/tests.py703 "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;",CODE
HIGHweblate/lang/tests.py872 "Created plural (n == 1) ? 0 : ((n != 0 && n % 1000000 == 0) ? 1 : 2) for language es_ZZ",CODE
HIGHweblate/lang/tests.py1118 legacy_formula = "(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2"CODE
HIGH⚡weblate/lang/data.py63 "n==1 || n%10==1 ? 0 : 1",CODE
HIGH⚡weblate/lang/data.py68 "n >= 2 && (n < 11 || n > 99)",CODE
HIGH⚡weblate/lang/data.py69 "n % 10 != 1 || n % 100 == 11",CODE
HIGH⚡weblate/lang/data.py70 "(n % 10 == 1 && n % 100 != 11) ? 0 : 1",CODE
HIGH⚡weblate/lang/data.py71 "n != 1 && n != 2 && n != 3 && (n % 10 == 4 || n % 10 == 6 || n % 10 == 9)",CODE
HIGH⚡weblate/lang/data.py71 "n != 1 && n != 2 && n != 3 && (n % 10 == 4 || n % 10 == 6 || n % 10 == 9)",CODE
HIGH⚡weblate/lang/data.py72 "(n==0 || n==1)",CODE
HIGH⚡weblate/lang/data.py73 "(n%10==1 && n%100!=11 ? 0 : 1)",CODE
HIGH⚡weblate/lang/data.py79 "n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2",CODE
HIGH⚡weblate/lang/data.py79 "n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2",CODE
HIGH⚡weblate/lang/data.py80 "(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2",CODE
HIGH⚡weblate/lang/data.py81 "n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2",CODE
HIGH⚡weblate/lang/data.py81 "n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2",CODE
HIGH⚡weblate/lang/data.py82 "(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)",CODE
HIGH⚡weblate/lang/data.py82 "(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)",CODE
HIGH⚡weblate/lang/data.py83 "n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2",CODE
HIGH⚡weblate/lang/data.py83 "n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2",CODE
HIGH⚡weblate/lang/data.py84 "(n % 10 == 1 && (n % 100 < 11 || n % 100 > 19)) ? 0 : ((n % 10 >= 2 && n % 10 <= 9 && (n % 100 < 11 || n % 100 > 19CODE
HIGH⚡weblate/lang/data.py84 "(n % 10 == 1 && (n % 100 < 11 || n % 100 > 19)) ? 0 : ((n % 10 >= 2 && n % 10 <= 9 && (n % 100 < 11 || n % 100 > 19CODE
HIGH⚡weblate/lang/data.py85 "(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2)",CODE
HIGH⚡weblate/lang/data.py85 "(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2)",CODE
HIGH⚡weblate/lang/data.py86 "(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)",CODE
171 more matches not shown…
Unused Imports735 hits · 678 pts
SeverityFileLineSnippetContext
LOWsetup.py6CODE
LOWweblate/runner.py5CODE
LOWweblate/settings_test.py14CODE
LOWweblate/asgi.py7CODE
LOWweblate/settings_example.py6CODE
LOWweblate/urls.py5CODE
LOWweblate/sitemaps.py5CODE
LOWweblate/middleware.py5CODE
LOWweblate/wsgi.py20CODE
LOWweblate/metrics/wrapper.py5CODE
LOWweblate/metrics/tasks.py5CODE
LOWweblate/metrics/models.py5CODE
LOWweblate/configuration/models.py5CODE
LOWweblate/configuration/views.py5CODE
LOWweblate/configuration/templatetags/colors.py7CODE
LOWweblate/screenshots/tasks.py5CODE
LOWweblate/screenshots/tasks.py18CODE
LOWweblate/screenshots/models.py5CODE
LOWweblate/screenshots/forms.py5CODE
LOWweblate/screenshots/tests.py5CODE
LOWweblate/formats/ttkit.py8CODE
LOWweblate/formats/ttkit.py130CODE
LOWweblate/formats/convert.py7CODE
LOWweblate/formats/multi.py7CODE
LOWweblate/formats/txt.py7CODE
LOWweblate/formats/source_edit.py7CODE
LOWweblate/formats/defaults.py5CODE
LOWweblate/formats/exporters.py7CODE
LOWweblate/formats/exporters.py51CODE
LOWweblate/formats/exporters.py52CODE
LOWweblate/formats/external.py7CODE
LOWweblate/formats/helpers.py5CODE
LOWweblate/formats/base.py7CODE
LOWweblate/formats/auto.py7CODE
LOWweblate/formats/tests/test_txt.py7CODE
LOWweblate/formats/tests/test_source_edit.py5CODE
LOWweblate/formats/tests/test_source_edit.py24CODE
LOWweblate/formats/tests/test_languages.py7CODE
LOWweblate/formats/tests/test_tbx_multivalue.py7CODE
LOWweblate/formats/tests/test_convert.py7CODE
LOWweblate/formats/tests/test_exporters.py4CODE
LOWweblate/formats/tests/test_formats.py8CODE
LOWweblate/formats/tests/test_formats.py107CODE
LOWweblate/formats/tests/test_external.py7CODE
LOWweblate/formats/tests/test_multi.py7CODE
LOWweblate/formats/tests/test_multivalue.py8CODE
LOWweblate/memory/tasks.py4CODE
LOWweblate/memory/models.py5CODE
LOWweblate/memory/apps.py4CODE
LOWweblate/memory/forms.py5CODE
LOWweblate/memory/machine.py4CODE
LOWweblate/memory/utils.py5CODE
LOWweblate/memory/views.py4CODE
LOWweblate/memory/management/commands/import_memory.py4CODE
LOWweblate/memory/management/commands/dump_memory.py4CODE
LOWweblate/memory/management/commands/cleanup_memory.py5CODE
LOWweblate/auth/tasks.py5CODE
LOWweblate/auth/results.py5CODE
LOWweblate/auth/bots.py7CODE
LOWweblate/auth/forms.py5CODE
675 more matches not shown…
Deep Nesting367 hits · 293 pts
SeverityFileLineSnippetContext
LOWweblate/middleware.py216CODE
LOWweblate/middleware.py422CODE
LOWweblate/metrics/models.py258CODE
LOWweblate/screenshots/views.py190CODE
LOWweblate/screenshots/views.py743CODE
LOWweblate/formats/ttkit.py159CODE
LOWweblate/formats/ttkit.py624CODE
LOWweblate/formats/ttkit.py1076CODE
LOWweblate/formats/ttkit.py3526CODE
LOWweblate/formats/ttkit.py3605CODE
LOWweblate/formats/ttkit.py3610CODE
LOWweblate/formats/convert.py294CODE
LOWweblate/formats/exporters.py508CODE
LOWweblate/formats/base.py244CODE
LOWweblate/formats/auto.py116CODE
LOWweblate/formats/tests/test_tbx_multivalue.py193CODE
LOWweblate/formats/tests/test_tbx_multivalue.py620CODE
LOWweblate/formats/tests/test_formats.py3423CODE
LOWweblate/formats/tests/test_multivalue.py108CODE
LOWweblate/formats/tests/test_multivalue.py233CODE
LOWweblate/formats/tests/test_multivalue.py290CODE
LOWweblate/memory/tasks.py79CODE
LOWweblate/memory/tasks.py1123CODE
LOWweblate/memory/models.py1169CODE
LOWweblate/auth/models.py1399CODE
LOWweblate/auth/models.py1506CODE
LOWweblate/auth/permissions.py619CODE
LOWweblate/auth/permissions.py761CODE
LOWweblate/auth/permissions.py1496CODE
LOWweblate/auth/permissions.py1551CODE
LOWweblate/auth/tests/test_group_concurrency.py29CODE
LOWweblate/auth/management/commands/importusers.py34CODE
LOWweblate/checks/mdx.py45CODE
LOWweblate/checks/mdx.py164CODE
LOWweblate/checks/mdx.py208CODE
LOWweblate/checks/mdx.py243CODE
LOWweblate/checks/mdx.py325CODE
LOWweblate/checks/mdx.py423CODE
LOWweblate/checks/tasks.py54CODE
LOWweblate/checks/tasks.py179CODE
LOWweblate/checks/tasks.py271CODE
LOWweblate/checks/icu.py442CODE
LOWweblate/checks/flags.py180CODE
LOWweblate/checks/flags.py302CODE
LOWweblate/checks/format.py479CODE
LOWweblate/checks/format.py924CODE
LOWweblate/checks/markup.py83CODE
LOWweblate/checks/markup.py250CODE
LOWweblate/checks/markup.py902CODE
LOWweblate/checks/markup.py522CODE
LOWweblate/checks/utils.py45CODE
LOWweblate/checks/utils.py91CODE
LOWweblate/checks/utils.py137CODE
LOWweblate/checks/chars.py665CODE
LOWweblate/checks/placeholders.py118CODE
LOWweblate/checks/base.py133CODE
LOWweblate/checks/views.py113CODE
LOWweblate/checks/views.py142CODE
LOWweblate/checks/views.py270CODE
LOWweblate/checks/fluent/inner_html.py458CODE
307 more matches not shown…
Empty Error Handlers39 hits · 195 pts
SeverityFileLineSnippetContext
HIGHweblate/screenshots/views.py748except RuntimeError:CODE
HIGHweblate/screenshots/views.py514except (KeyError, ValueError):CODE
HIGHweblate/formats/txt.py154except ValueError:CODE
HIGHweblate/addons/generate.py338except Translation.DoesNotExist:CODE
HIGHweblate/addons/generate.py354except Translation.DoesNotExist:CODE
HIGHweblate/utils/validators.py505except ValidationError:CODE
HIGHweblate/utils/filesystem.py53except FileNotFoundError:CODE
HIGHweblate/utils/outbound.py70except ValueError:CODE
HIGHweblate/utils/stats.py887except Change.DoesNotExist:CODE
HIGHweblate/accounts/utils.py136except ObjectDoesNotExist:CODE
HIGHweblate/accounts/pipeline.py373except strategy.storage.code.DoesNotExist:CODE
HIGHweblate/accounts/views.py379except (ObjectDoesNotExist, ValueError):CODE
HIGHweblate/accounts/views.py394except (ObjectDoesNotExist, ValueError):CODE
HIGHweblate/accounts/views.py2114except ValidationError:CODE
HIGHweblate/vcs/git.py766except OSError:CODE
HIGHweblate/vcs/git.py862except NoOptionError:CODE
HIGHweblate/api/serializers.py2410except FileNotFoundError:CODE
HIGHweblate/trans/discovery.py740except OSError:CODE
HIGHweblate/trans/debug.py35except FileNotFoundError:CODE
HIGHweblate/trans/debug.py39except OSError:CODE
HIGHweblate/trans/management/commands/import_demo.py41except Project.DoesNotExist:CODE
HIGHweblate/trans/models/unit.py688except KeyError:CODE
HIGHweblate/trans/models/translation.py2581except (ValueError, KeyError):CODE
HIGHweblate/trans/models/translation.py3262except ObjectDoesNotExist:CODE
HIGHweblate/trans/models/translation.py675except UnitNotFoundError:CODE
HIGHweblate/trans/models/translation.py3034except Unit.DoesNotExist:CODE
HIGHweblate/trans/models/component.py6410except RepositoryError:CODE
HIGHweblate/trans/models/component.py2272except self.translation_set.model.DoesNotExist:CODE
HIGHweblate/trans/views/changes.py157except Unit.DoesNotExist:CODE
HIGHweblate/trans/views/dashboard.py106except Language.DoesNotExist:CODE
HIGHweblate/trans/views/settings.py268except ObjectDoesNotExist:CODE
HIGHweblate/billing/management/commands/billing_demo.py62except IndexError:CODE
HIGHweblate/machinery/yandex.py88except Exception:CODE
HIGHweblate/machinery/google.py114except KeyError:CODE
HIGHweblate/machinery/deepl.py195except ValueError:CODE
HIGHweblate/machinery/deepl.py200except KeyError:CODE
HIGHweblate/machinery/yandexv2.py92except Exception:CODE
HIGHweblate/machinery/modernmt.py160except KeyError:CODE
HIGHweblate/machinery/baidu.py96except ValueError:CODE
Cross-File Repetition37 hits · 185 pts
SeverityFileLineSnippetContext
HIGHweblate/memory/machine.py0download list of possible translations from a service.STRING
HIGHweblate/machinery/youdao.py0download list of possible translations from a service.STRING
HIGHweblate/machinery/microsoft.py0download list of possible translations from a service.STRING
HIGHweblate/machinery/tmserver.py0download list of possible translations from a service.STRING
HIGHweblate/machinery/glosbe.py0download list of possible translations from a service.STRING
HIGHweblate/machinery/cyrtranslit.py0download list of possible translations from a service.STRING
HIGHweblate/machinery/saptranslationhub.py0download list of possible translations from a service.STRING
HIGHweblate/machinery/systran.py0download list of possible translations from a service.STRING
HIGHweblate/machinery/yandex.py0download list of possible translations from a service.STRING
HIGHweblate/machinery/google.py0download list of possible translations from a service.STRING
HIGHweblate/machinery/libretranslate.py0download list of possible translations from a service.STRING
HIGHweblate/machinery/netease.py0download list of possible translations from a service.STRING
HIGHweblate/machinery/yandexv2.py0download list of possible translations from a service.STRING
HIGHweblate/machinery/modernmt.py0download list of possible translations from a service.STRING
HIGHweblate/machinery/weblatetm.py0download list of possible translations from a service.STRING
HIGHweblate/machinery/alibaba.py0download list of possible translations from a service.STRING
HIGHweblate/machinery/baidu.py0download list of possible translations from a service.STRING
HIGHweblate/machinery/googlev3.py0download list of possible translations from a service.STRING
HIGHweblate/vcs/git.py0remove stale branches and tags from the repository.STRING
HIGHweblate/vcs/mercurial.py0remove stale branches and tags from the repository.STRING
HIGHweblate/vcs/base.py0remove stale branches and tags from the repository.STRING
HIGHweblate/trans/models/translation.py0check whether there are some not committed changes.STRING
HIGHweblate/trans/models/component.py0check whether there are some not committed changes.STRING
HIGHweblate/trans/models/project.py0check whether there are some not committed changes.STRING
HIGHweblate/machinery/tmserver.py0download list of supported languages from a service.STRING
HIGHweblate/machinery/systran.py0download list of supported languages from a service.STRING
HIGHweblate/machinery/yandex.py0download list of supported languages from a service.STRING
HIGHweblate/machinery/yandexv2.py0download list of supported languages from a service.STRING
HIGHweblate/machinery/apertium.py0download list of supported languages from a service.STRING
HIGHweblate/machinery/base.py0download list of supported languages from a service.STRING
HIGHweblate/machinery/tmserver.py0check whether given language combination is supported.STRING
HIGHweblate/machinery/cyrtranslit.py0check whether given language combination is supported.STRING
HIGHweblate/machinery/systran.py0check whether given language combination is supported.STRING
HIGHweblate/machinery/mymemory.py0check whether given language combination is supported.STRING
HIGHweblate/machinery/deepl.py0check whether given language combination is supported.STRING
HIGHweblate/machinery/apertium.py0check whether given language combination is supported.STRING
HIGHweblate/machinery/base.py0check whether given language combination is supported.STRING
Fake / Example Data215 hits · 177 pts
SeverityFileLineSnippetContext
LOWweblate/screenshots/forms.py250 "placeholder": gettext_lazy("Search screenshots"),CODE
LOW⚡weblate/formats/tests/test_exporters.py212 long_text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. " * 3CODE
LOW⚡weblate/formats/tests/test_exporters.py212 long_text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. " * 3CODE
LOW⚡weblate/auth/tests/test_admin.py23 self.actor = User.objects.create_user("admin", "admin@example.com", "x")CODE
LOW⚡weblate/auth/tests/test_admin.py38 email="addon-test@example.org",CODE
LOW⚡weblate/auth/tests/test_admin.py68 email="bot-test-token@example.org",CODE
LOW⚡weblate/auth/tests/test_views.py372 "inactive-user", "inactive-user@example.org", "testpassword"CODE
LOW⚡weblate/auth/tests/test_views.py379 email="bot-user@example.org",CODE
LOWweblate/auth/tests/test_permissions.py34 self.admin = User.objects.create_user("admin", "admin@example.com")CODE
LOWweblate/auth/management/commands/createadmin.py39 default="admin@example.com",CODE
LOWweblate/auth/management/commands/createadmin.py40 help='Admin email, defaults to "admin@example.com"',CODE
LOWweblate/auth/management/commands/createadmin.py64 email = "admin@example.com"CODE
LOWweblate/checks/placeholders.py208 merge_highlight_spans(source, spans), group_prefix="placeholder"CODE
LOW⚡weblate/checks/tests/test_chars_checks.py192 ["<unused singular (hash=…)>", "Lorem ipsum dolor sit amet."],CODE
LOW⚡weblate/checks/tests/test_chars_checks.py192 ["<unused singular (hash=…)>", "Lorem ipsum dolor sit amet."],CODE
LOW⚡weblate/checks/tests/test_chars_checks.py199 ["<unused singular (hash=…)>", "Lorem ipsum dolor sit amet."],CODE
LOW⚡weblate/checks/tests/test_chars_checks.py199 ["<unused singular (hash=…)>", "Lorem ipsum dolor sit amet."],CODE
LOWweblate/checks/tests/test_flags.py244 {("placeholder", "zkouška sirén")},CODE
LOWweblate/utils/tests/test_list_contributors.py99 "Jane Doe",CODE
LOW⚡weblate/utils/tests/test_validators.py791 "https://social.example/@example@example.org",CODE
LOWweblate/utils/tests/test_environment.py353 os.environ["REDIS_USER"] = "user@example.com"CODE
LOWweblate/workspaces/forms.py62 "placeholder": gettext_lazy("Search workspaces"),CODE
LOWweblate/accounts/tests/test_views.py402 email="addon-test@example.org",CODE
LOWweblate/accounts/tests/test_views.py990 "email": "weblate@example.org",CODE
LOWweblate/accounts/tests/test_views.py1026 "email": "weblate@example.org",CODE
LOWweblate/accounts/tests/test_views.py1272 "email": "weblate@example.org",CODE
LOWweblate/accounts/tests/test_notifications.py258 "thirduser", "noreply+third@example.org", "testpassword"CODE
LOW⚡weblate/accounts/tests/test_models.py227 actor = User.objects.create_user("admin", "admin@example.com")CODE
LOWweblate/accounts/tests/test_models.py178 actor = User.objects.create_user("admin", "admin@example.com")CODE
LOW⚡weblate/accounts/tests/test_registration.py1441 user = User.objects.create_user("username", "primary@example.org")CODE
LOW⚡weblate/accounts/tests/test_registration.py1448 VerifiedEmail.objects.create(social=first_social, email="primary@example.org")CODE
LOW⚡weblate/accounts/tests/test_registration.py1449 VerifiedEmail.objects.create(social=second_social, email="second@example.org")CODE
LOW⚡weblate/accounts/tests/test_registration.py1585 "email": "noreply2@example.org",CODE
LOW⚡weblate/accounts/tests/test_registration.py1591 "email": "noreply-other@example.org",CODE
LOW⚡weblate/accounts/tests/test_registration.py1597 "email": "noreply-weblate@example.org",CODE
LOW⚡weblate/accounts/tests/test_registration.py1637 self.assertEqual(user.email, "noreply-weblate@example.org")CODE
LOW⚡weblate/accounts/tests/test_registration.py1645 ("noreply-other@example.org", True),CODE
LOW⚡weblate/accounts/tests/test_registration.py1646 ("noreply-weblate@example.org", True),CODE
LOW⚡weblate/accounts/tests/test_registration.py1653 user = User.objects.create_user("weblate", "noreply-weblate@example.org", "x")CODE
LOW⚡weblate/accounts/tests/test_registration.py1655 VerifiedEmail.objects.create(social=social, email="old@example.org")CODE
LOW⚡weblate/accounts/tests/test_registration.py1658 email="noreply-weblate@example.org",CODE
LOW⚡weblate/accounts/tests/test_registration.py1667 {"email": "noreply-weblate@example.org"},CODE
LOW⚡weblate/accounts/tests/test_registration.py1673 social=social, email="noreply-weblate@example.org"CODE
LOW⚡weblate/accounts/tests/test_registration.py1678 social=social, email="old@example.org"CODE
LOW⚡weblate/accounts/tests/test_registration.py1684 user = User.objects.create_user("weblate", "noreply-weblate@example.org", "x")CODE
LOW⚡weblate/accounts/tests/test_registration.py1686 VerifiedEmail.objects.create(social=social, email="old@example.org")CODE
LOW⚡weblate/accounts/tests/test_registration.py1687 VerifiedEmail.objects.create(social=social, email="second@example.org")CODE
LOW⚡weblate/accounts/tests/test_registration.py1694 {"email": "noreply-weblate@example.org"},CODE
LOW⚡weblate/accounts/tests/test_registration.py1704 {("noreply-weblate@example.org", True)},CODE
LOW⚡weblate/accounts/tests/test_registration.py1709 user = User.objects.create_user("weblate", "noreply-weblate@example.org", "x")CODE
LOW⚡weblate/accounts/tests/test_registration.py1711 VerifiedEmail.objects.create(social=social, email="old@example.org")CODE
LOW⚡weblate/accounts/tests/test_registration.py1712 VerifiedEmail.objects.create(social=social, email="first@example.org")CODE
LOW⚡weblate/accounts/tests/test_registration.py1713 VerifiedEmail.objects.create(social=social, email="first@example.org")CODE
LOW⚡weblate/accounts/tests/test_registration.py1722 ("first@example.org", True),CODE
LOW⚡weblate/accounts/tests/test_registration.py1723 ("second@example.org", False),CODE
LOW⚡weblate/accounts/tests/test_registration.py1734 {("first@example.org", True), ("second@example.org", False)},CODE
LOW⚡weblate/accounts/tests/test_registration.py1739 User.objects.create_user("weblate", "noreply-weblate@example.org", "x")CODE
LOW⚡weblate/accounts/tests/test_registration.py1744 User.objects.create_user("weblate", "noreply-weblate@example.org", "x")CODE
LOW⚡weblate/accounts/tests/test_registration.py1756 User.objects.create_user("weblate", "noreply-weblate@example.org", "x")CODE
LOW⚡weblate/accounts/tests/test_registration.py1760 User.objects.create_user("second", "noreply-second@example.org", "x")CODE
155 more matches not shown…
Self-Referential Comments44 hits · 132 pts
SeverityFileLineSnippetContext
MEDIUM.yamllint.yml5# This file is maintained in https://github.com/WeblateOrg/meta/COMMENT
MEDIUMweblate/formats/exporters.py523 # Create a temporary unit with this specific targetCOMMENT
MEDIUMweblate/formats/tests/test_exporters.py564 # Create a translation with multiple units having the same id_hashCOMMENT
MEDIUMweblate/formats/tests/test_exporters.py637 # Create a temporary directory for the git repositoryCOMMENT
MEDIUMweblate/formats/tests/test_exporters.py661 # Create the CSV file with real dataCOMMENT
MEDIUMweblate/formats/tests/test_exporters.py708 # Create a format instance and load the fileCOMMENT
MEDIUMweblate/formats/tests/test_formats.py1317 # Create the template under test with a single stringCOMMENT
MEDIUMweblate/formats/tests/test_formats.py4027 # Create a storage classCOMMENT
MEDIUMweblate/addons/gettext.py66 "# This file is distributed under the same license as the",CODE
MEDIUM⚡weblate/addons/tests.py3657 """# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n# This file iSTRING
MEDIUMweblate/addons/tests.py3617 """# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n# This file iSTRING
MEDIUMweblate/addons/tests.py3685 """# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n# This file iSTRING
MEDIUMweblate/utils/backup.py38# This file is a cache directory tag created by WeblateCOMMENT
MEDIUMweblate/utils/unicodechars.py5# This file is generated using ./scripts/generate-unicodechars.pyCOMMENT
MEDIUMweblate/accounts/forms.py313 # Create a mapping of project IDs to slugsCOMMENT
MEDIUMweblate/accounts/tests/test_views.py244 # Creating a trialCOMMENT
MEDIUMweblate/vcs/tests/test_vcs.py5324 # Create a different branch nameCOMMENT
MEDIUM⚡weblate/api/tests.py3811 # Create a non-superuser with project admin rightsCOMMENT
MEDIUM⚡weblate/api/tests.py3815 # Create a project-scoped groupCOMMENT
MEDIUM⚡weblate/api/tests.py19047 # Create a label in one projectCOMMENT
MEDIUMweblate/api/tests.py4041 # Create a project-scoped group via the API as superuserCOMMENT
MEDIUMweblate/api/tests.py18925 # Create a category to get the statistics fromCOMMENT
MEDIUMweblate/glossary/views.py76 # Create a set of existing term IDsCOMMENT
MEDIUMweblate/trans/backups.py1077 # Create the zip with the contentCOMMENT
MEDIUM⚡weblate/trans/tests/test_bulk_suggestions.py488 # Create a user WITHOUT project permissions (no add_user call)COMMENT
MEDIUM⚡weblate/trans/tests/test_bulk_suggestions.py491 # Create a suggester userCOMMENT
MEDIUMweblate/trans/tests/test_bulk_suggestions.py60 # Create a user without permissionsCOMMENT
MEDIUMweblate/trans/tests/test_bulk_suggestions.py155 # Create a suggestion userCOMMENT
MEDIUMweblate/trans/tests/test_views.py1249 # Create a component in the same project but outside the categoryCOMMENT
MEDIUMweblate/trans/management/commands/import_demo.py51 # Create main componentCOMMENT
MEDIUMweblate/trans/models/suggestion.py98 # Create the suggestionCOMMENT
MEDIUMweblate/trans/models/component.py6835 # Create the fileCOMMENT
MEDIUMweblate/trans/views/edit.py934 # Create the suggestionCOMMENT
MEDIUMweblate/billing/tests.py2269 # Creating a trialCOMMENT
MEDIUMdocs/conf.py162# Define the canonical URL if you are using a custom domain on Read the DocsCOMMENT
MEDIUMscripts/generate-unicodechars.py38# This file is generated using ./scripts/generate-unicodechars.pyCOMMENT
MEDIUM.github/FUNDING.yml5# This file is maintained in https://github.com/WeblateOrg/meta/COMMENT
MEDIUM.github/workflows/labels.yml5# This file is maintained in https://github.com/WeblateOrg/meta/COMMENT
MEDIUM.github/workflows/dependency-review.yml5# This file is maintained in https://github.com/WeblateOrg/meta/COMMENT
MEDIUM.github/workflows/pre-commit.yml5# This file is maintained in https://github.com/WeblateOrg/meta/COMMENT
MEDIUM.github/actions/pre-commit-setup/action.yml5# This file is maintained in https://github.com/WeblateOrg/meta/COMMENT
MEDIUM.github/ISSUE_TEMPLATE/feature_request.yml5# This file is maintained in https://github.com/WeblateOrg/meta/COMMENT
MEDIUM.github/ISSUE_TEMPLATE/bug_report.yml5# This file is maintained in https://github.com/WeblateOrg/meta/COMMENT
MEDIUM.github/ISSUE_TEMPLATE/config.yml5# This file is maintained in https://github.com/WeblateOrg/meta/COMMENT
Modern Structural Boilerplate132 hits · 129 pts
SeverityFileLineSnippetContext
LOW⚡weblate/screenshots/models.py194def update_alerts_on_screenshot_save(sender, instance: Screenshot, **kwargs) -> None:CODE
LOW⚡weblate/screenshots/models.py202def update_alerts_on_screenshot_delete(sender, instance: Screenshot, **kwargs) -> None:CODE
LOWweblate/screenshots/tests.py665 async def update_sources() -> None:CODE
LOW⚡weblate/formats/ttkit.py1031 def set_automatically_translated(self, value: bool) -> None:CODE
LOWweblate/formats/ttkit.py388 def set_target(self, target: str | list[str]) -> None:CODE
LOWweblate/formats/ttkit.py395 def set_state(self, state) -> None:CODE
LOWweblate/formats/ttkit.py481 def set_target(self, target: str | list[str]) -> None:CODE
LOWweblate/formats/ttkit.py903 def set_state(self, state) -> None:CODE
LOWweblate/formats/ttkit.py973 def set_target(self, target: str | list[str]) -> None:CODE
LOWweblate/formats/ttkit.py1076 def set_state(self, state) -> None:CODE
LOWweblate/formats/ttkit.py1125 def set_target(self, target: str | list[str]) -> None:CODE
LOWweblate/formats/ttkit.py1230 def set_target(self, target: str | list[str]) -> None:CODE
LOWweblate/formats/ttkit.py1426 def set_target(self, target: str | list[str]) -> None:CODE
LOWweblate/formats/ttkit.py1432 def set_state(self, state) -> None:CODE
LOWweblate/formats/ttkit.py1475 def set_state(self, state) -> None:CODE
LOWweblate/formats/ttkit.py1844 def set_target(self, target: str | list[str]) -> None:CODE
LOWweblate/formats/ttkit.py1861 def set_state(self, state) -> None:CODE
LOWweblate/formats/ttkit.py1948 def update_header(self, file_format_params: FileFormatParams, **kwargs) -> None:CODE
LOWweblate/formats/ttkit.py3666 def set_target(self, target: str | list[str]) -> None:CODE
LOWweblate/formats/ttkit.py3674 def set_explanation(self, explanation: str) -> None:CODE
LOWweblate/formats/ttkit.py3687 def set_source_explanation(self, explanation: str) -> None:CODE
LOWweblate/formats/ttkit.py3874 def set_target(self, target: str | list[str]) -> None:CODE
LOWweblate/formats/ttkit.py1681 def set_target(self, target: str | list[str]) -> None:STRING
LOWweblate/formats/ttkit.py1719 def set_state(self, state) -> None:STRING
LOWweblate/formats/multi.py85 def set_target(self, target: str | list[str]) -> None:CODE
LOWweblate/formats/multi.py111 def set_state(self, state) -> None:CODE
LOWweblate/formats/txt.py193 def set_target(self, target: str | list[str]) -> None:CODE
LOWweblate/formats/txt.py199 def set_state(self, state) -> None:CODE
LOW⚡weblate/formats/base.py382 def set_target(self, target: str | list[str]) -> None:CODE
LOW⚡weblate/formats/base.py386 def set_explanation(self, explanation: str) -> None:CODE
LOW⚡weblate/formats/base.py389 def set_source_explanation(self, explanation: str) -> None:CODE
LOW⚡weblate/formats/base.py392 def set_state(self, state) -> None:CODE
LOW⚡weblate/formats/base.py396 def set_automatically_translated(self, value: bool) -> None:CODE
LOWweblate/formats/base.py688 def update_header(self, file_format_params: FileFormatParams, **kwargs) -> None:CODE
LOW⚡weblate/memory/tasks.py233def set_scope_source_project_ids(memories: list[Memory]) -> None:CODE
LOW⚡weblate/memory/tasks.py443def set_memory_scope_backfill_completed() -> None:CODE
LOWweblate/memory/tasks.py1303def update_memory_bulk(entries: list[MemoryUpdatePayload]) -> None:CODE
LOWweblate/checks/models.py157 def set_dismiss(self, *, state: bool = True, recurse: bool = True) -> None:CODE
LOW⚡weblate/checks/flags.py434 def set_value(self, name: str, value: str) -> None:CODE
LOW⚡weblate/checks/flags.py437 def set_values(self, name: str, *values: FlagValue) -> None:CODE
LOWweblate/checks/fluent/references.py191 def _set_refs(self, branch: FluentSelectorBranch) -> None:CODE
LOWweblate/addons/models.py1114 def update_result(self, result: object) -> None:CODE
LOWweblate/addons/fedora_messaging.py859 def _set_broker_tls_timeout(connection: socket.socket, deadline: float) -> None:CODE
LOWweblate/gitexport/tasks.py19def update_gitexport_urls() -> None:CODE
LOW⚡weblate/gitexport/models.py34def update_component_git_export(sender, instance, **kwargs) -> None:CODE
LOW⚡weblate/gitexport/models.py39def update_components(matching: ComponentQuerySet) -> None:CODE
LOW⚡weblate/gitexport/models.py60def update_project_git_export(sender, instance, **kwargs) -> None:CODE
LOW⚡weblate/gitexport/models.py64def update_all_components() -> None:CODE
LOWweblate/utils/tracing.py23 def set_attribute(self, key: str, value: bool | float | str) -> None: ...CODE
LOWweblate/utils/tracing.py39 def set_status(self, status: object) -> None: ...CODE
LOW⚡weblate/utils/tracing.py64def _set_opentelemetry_attribute(span: AttributeSpan, name: str, value: object) -> None:CODE
LOW⚡weblate/utils/tasks.py96def update_translation_stats_parents(pk: int) -> None:CODE
LOW⚡weblate/utils/tasks.py105def update_language_stats_parents(pk: int) -> None:CODE
LOW⚡weblate/utils/tasks.py114def update_project_stats_link(pk: int) -> None:CODE
LOWweblate/utils/tasks.py125def update_workspace_stats(workspace_ids: list[str]) -> None:CODE
LOWweblate/utils/tasks.py192def update_translation_stats(pks: list[int]) -> None:CODE
LOWweblate/utils/forms.py377 def _set_queryset(self, queryset) -> None:CODE
LOWweblate/utils/stats.py258 def set_data(self, data: StatDict) -> None:CODE
LOWweblate/utils/stats.py478 def update_stats(self, update_parents: bool = True) -> None:CODE
LOW⚡weblate/utils/stats.py1165 def update_language_stats_parents(self) -> None:CODE
72 more matches not shown…
Excessive Try-Catch Wrapping121 hits · 117 pts
SeverityFileLineSnippetContext
LOWweblate/runner.py26 except Exception:CODE
LOWweblate/formats/ttkit.py755 except Exception as exception:CODE
LOWweblate/formats/ttkit.py2237 except Exception as exception:CODE
LOWweblate/formats/ttkit.py2608 except Exception as error:CODE
LOWweblate/formats/ttkit.py3882 except Exception:CODE
LOWweblate/formats/convert.py245 except Exception as exception:CODE
LOWweblate/formats/txt.py122 except Exception as error:CODE
LOWweblate/formats/txt.py304 except Exception as exception:CODE
LOWweblate/formats/auto.py160 except Exception as error:CODE
LOWweblate/memory/models.py849 except Exception as error:CODE
LOW⚡weblate/checks/flags.py425 except Exception as error:CODE
LOWweblate/addons/git.py350 except Exception:CODE
LOWweblate/addons/models.py754 except Exception as error:CODE
LOWweblate/addons/fedora_messaging.py230 except Exception as error:CODE
LOWweblate/addons/fedora_messaging.py380 except Exception:CODE
LOWweblate/addons/fedora_messaging.py428 except Exception:CODE
MEDIUMweblate/addons/forms.py1671def clean_css_selector(self):CODE
LOWweblate/addons/forms.py1674 except Exception as error:CODE
LOW⚡weblate/addons/base.py977 except Exception:CODE
LOWweblate/addons/base.py998 except Exception:CODE
LOWweblate/utils/tracing.py120 except Exception:CODE
MEDIUMweblate/utils/tracing.py46def get_sentry_sdk() -> ModuleType:CODE
LOWweblate/utils/render.py113 except Exception as err:CODE
LOWweblate/utils/validators.py215 except Exception as exc:CODE
LOWweblate/utils/validators.py351 except Exception as error:CODE
LOWweblate/utils/apps.py127 except Exception as error:CODE
LOWweblate/utils/markdown.py177 except Exception:CODE
LOWweblate/utils/views.py729 except Exception:CODE
LOWweblate/utils/views.py896 except Exception:CODE
LOWweblate/accounts/tasks.py488 except Exception:CODE
LOWweblate/accounts/notifications.py543 except Exception:CODE
MEDIUMweblate/accounts/tests/test_registration.py1795def test_saml(self) -> None:CODE
LOWweblate/accounts/tests/test_registration.py1799 except Exception as error:CODE
LOWweblate/vcs/apps.py91 except Exception as error:CODE
LOWweblate/vcs/github.py1304 except Exception as error:CODE
LOWweblate/vcs/base.py481 except Exception as error:CODE
LOWweblate/vcs/base.py1051 except Exception as error:CODE
LOWweblate/vcs/base.py1461 except Exception:CODE
LOWweblate/vcs/base.py1472 except Exception as error:CODE
MEDIUMweblate/vcs/views.py182def _get_workspace(workspaces, workspace_id) -> Workspace:CODE
LOWweblate/vcs/views.py733 except Exception as error:CODE
LOWweblate/vcs/views.py825 except Exception as error:CODE
LOWweblate/vcs/views.py1014 except Exception as error:CODE
LOWweblate/vcs/views.py1030 except Exception as error:CODE
LOWweblate/vcs/views.py1589 except Exception as error:CODE
LOW…vcs/management/commands/refresh_github_repositories.py25 except Exception as error:CODE
LOW⚡weblate/wladmin/middleware.py53 except Exception:CODE
LOWweblate/wladmin/middleware.py103 except Exception:CODE
LOWweblate/wladmin/views.py297 except Exception as error:CODE
LOWweblate/wladmin/views.py421 except Exception:CODE
LOWweblate/wladmin/views.py522 except Exception as error:CODE
MEDIUMweblate/api/serializers.py700def validate_code(self, value):CODE
LOW⚡weblate/api/serializers.py2412 except Exception:CODE
LOWweblate/api/views.py4069 except Exception as error:CODE
LOWweblate/automation/runner.py230 except Exception as error:CODE
LOWweblate/automation/runner.py262 except Exception as error:CODE
LOWweblate/automation/runner.py291 except Exception as error:CODE
LOWweblate/automation/runner.py316 except Exception as error:CODE
LOWweblate/automation/runner.py380 except Exception as error:CODE
LOWweblate/automation/cel.py22 except Exception as error:CODE
61 more matches not shown…
Redundant / Tautological Comments45 hits · 68 pts
SeverityFileLineSnippetContext
LOWweblate/middleware.py252 # Check if project existsCOMMENT
LOWweblate/middleware.py266 # Check if component existsCOMMENT
LOWweblate/formats/ttkit.py1998 # Check if there is matching obsolete unitCOMMENT
LOWweblate/formats/ttkit.py3210 # Check if the file is not two column only, in that case translate-toolkit detectionCOMMENT
LOW⚡weblate/formats/exporters.py537 # Set source_unit to the original unit's source_unit to avoid None issuesCOMMENT
LOW⚡weblate/formats/exporters.py539 # Set unresolved_comments to empty list to avoid query issuesCOMMENT
LOW⚡weblate/formats/exporters.py541 # Set suggestions to empty list to avoid database query issuesCOMMENT
LOWweblate/formats/tests/test_exporters.py586 unit1.source_unit = unit1 # Set source_unit to itselfCODE
LOWweblate/formats/tests/test_exporters.py597 unit2.source_unit = unit2 # Set source_unit to itselfCODE
LOWweblate/formats/tests/test_formats.py1161 # Check if content matchesCOMMENT
LOWweblate/formats/tests/test_formats.py1259 # Check if content matchesCOMMENT
LOWweblate/formats/tests/test_formats.py1570 # Check if content matchesCOMMENT
LOWweblate/formats/tests/test_formats.py1623 # Check if content matchesCOMMENT
LOWweblate/formats/tests/test_formats.py3768 # Check if content matchesCOMMENT
LOWweblate/formats/tests/test_formats.py3890 # Check if content matchesCOMMENT
LOWweblate/auth/permissions.py873 # Check if adding is generally allowedCOMMENT
LOWweblate/auth/permissions.py931 # Check if removing is generally allowedCOMMENT
LOWweblate/auth/permissions.py950 # Check if adding is generally allowedCOMMENT
LOWweblate/auth/views.py300 # Check if invitation can be acceptedCOMMENT
LOWweblate/auth/views.py304 # Check if this is for usCOMMENT
LOWweblate/checks/markup.py442 # Check if source is XMLCOMMENT
LOWweblate/checks/markup.py467 # Check if source is XMLCOMMENT
LOWweblate/checks/chars.py288 # Check if target contains double spaceCOMMENT
LOWweblate/checks/same.py170 # Check if we have any word which is not in exceptions listCOMMENT
LOWweblate/addons/models.py773 # Check if add-on is still installed and log activityCOMMENT
LOWweblate/utils/ratelimit.py71 # Set key to longer expiry for lockout periodCOMMENT
LOWweblate/utils/celery.py292 # Check if any queue got biggerCOMMENT
LOWweblate/accounts/pipeline.py450 # Verify if this mail is not used on other accountsCOMMENT
LOWweblate/vcs/git.py1510 # Set branch to trackCOMMENT
LOWweblate/vcs/git.py2141 # Check if fork is used for this branch (default and matching branches use fork)COMMENT
LOWweblate/vcs/git.py2153 # Check if commits are in the fork (already pushed)COMMENT
LOWweblate/vcs/git.py4021 # Check if a fork already exists owned by the current user.COMMENT
LOWweblate/trans/forms.py3185 # Check if category is from this projectCOMMENT
LOW⚡weblate/trans/tests/test_hooks.py2478 # Set full_name to empty string (too short, will skip repo construction)COMMENT
LOWweblate/trans/models/unit.py1849 # Check if we actually need to change anythingCOMMENT
LOWweblate/trans/models/unit.py2220 # Check if we have expected number of themCOMMENT
LOWweblate/trans/models/translation.py844 # Check if we're not already up to dateCOMMENT
LOWweblate/trans/models/translation.py1752 # Check if context has changed while adding to storageCOMMENT
LOWweblate/trans/models/translation.py2460 # Iterate over list to copy set that will be changedCOMMENT
LOWweblate/trans/models/component.py6005 # Check if we should renameCOMMENT
LOWweblate/trans/models/component.py6701 # Check if template can be parsedCOMMENT
LOWweblate/trans/models/component.py6773 # Check if resulting language is not presentCOMMENT
LOWweblate/trans/models/component.py6793 # Check if language code is validCOMMENT
LOWweblate/machinery/base.py1578 # Check if there is a glossaryCOMMENT
LOWscripts/list-translated-languages.py59 # Print resultsCOMMENT
Over-Commented Block51 hits · 50 pts
SeverityFileLineSnippetContext
LOWweblate/models.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWweblate/__init__.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWweblate/settings_example.py741ENABLE_HOOKS = TrueCOMMENT
LOWweblate/settings_example.py761# "weblate.checks.chars.BeginSpaceCheck",COMMENT
LOWweblate/settings_example.py781# "weblate.checks.format.PerlBraceFormatCheck",COMMENT
LOWweblate/settings_example.py801# "weblate.checks.consistency.PluralsCheck",COMMENT
LOWweblate/settings_example.py821# "weblate.checks.placeholders.PlaceholderCheck",COMMENT
LOWweblate/settings_example.py841# AUTOFIX_LIST = (COMMENT
LOWweblate/settings_example.py861# "weblate.addons.gettext.SphinxAddon",COMMENT
LOWweblate/settings_example.py881# "weblate.addons.resx.ResxUpdateAddon",COMMENT
LOWweblate/metrics/__init__.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWweblate/configuration/__init__.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWweblate/screenshots/__init__.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWweblate/formats/__init__.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWweblate/formats/tests/test_formats.py1301 # This structural sharing can lead to mutations leaking back to theCOMMENT
LOWweblate/memory/__init__.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWweblate/auth/__init__.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWweblate/auth/tests/__init__.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWweblate/checks/__init__.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWweblate/checks/fluent/inner_html.py621 end_tag_match = source.match(cls._END_TAG_REGEX)COMMENT
LOWweblate/checks/fluent/inner_html.py701 # contact <{ $name }COMMENT
LOWweblate/checks/fluent/references.py281 ref: {COMMENT
LOWweblate/checks/fluent/__init__.py1# Copyright © Henry Wilkes <henry@torproject.org>COMMENT
LOWweblate/addons/__init__.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWweblate/gitexport/__init__.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWweblate/utils/tests/__init__.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWweblate/workspaces/__init__.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWweblate/lang/__init__.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWweblate/accounts/__init__.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWweblate/accounts/tests/__init__.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWweblate/vcs/__init__.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWweblate/examples/weblate.uwsgi.ini1#COMMENT
LOWweblate/wladmin/__init__.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWweblate/api/models.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWweblate/api/__init__.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWweblate/glossary/__init__.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWweblate/glossary/admin.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWweblate/automation/__init__.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWweblate/automation/management/__init__.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWweblate/automation/management/commands/__init__.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWweblate/trans/__init__.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWweblate/trans/tests/__init__.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWweblate/trans/hooks/__init__.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWweblate/legal/__init__.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWweblate/fonts/__init__.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWweblate/kotlin_sdk/__init__.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWweblate/billing/__init__.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWweblate/machinery/__init__.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWdocs/conf.py1# Copyright © Michal Čihař <michal@weblate.org>COMMENT
LOWscripts/filter-mypy.sh1#!/bin/shCOMMENT
LOW.github/workflows/scorecards.yml41 - name: Run analysisCOMMENT
AI Structural Patterns32 hits · 23 pts
SeverityFileLineSnippetContext
LOWweblate/formats/ttkit.py2878CODE
LOWweblate/formats/ttkit.py3780CODE
LOWweblate/formats/base.py480CODE
LOWweblate/memory/models.py129CODE
LOWweblate/memory/models.py193CODE
LOWweblate/memory/models.py235CODE
LOWweblate/auth/forms.py164CODE
LOWweblate/addons/generate.py207CODE
LOWweblate/vcs/base.py944CODE
LOWweblate/api/tests.py369CODE
LOWweblate/api/tests.py12309CODE
LOWweblate/trans/tasks.py229CODE
LOWweblate/trans/tasks.py1473CODE
LOWweblate/trans/translator_analysis.py84CODE
LOWweblate/trans/formatting.py522CODE
LOWweblate/trans/formatting.py604CODE
LOWweblate/trans/templatetags/translations.py1117CODE
LOWweblate/trans/tests/test_backups.py287CODE
LOWweblate/trans/tests/factories.py129CODE
LOWweblate/trans/models/pending.py492CODE
LOWweblate/trans/models/unit.py1003CODE
LOWweblate/trans/models/unit.py2997CODE
LOWweblate/trans/models/translation.py2856CODE
LOWweblate/trans/models/translation.py2873CODE
LOWweblate/trans/models/translation.py2889CODE
LOWweblate/trans/models/translation.py2923CODE
LOWweblate/trans/models/component.py4143CODE
LOWweblate/trans/models/component.py4777CODE
LOWweblate/trans/models/component.py4865CODE
LOWweblate/trans/models/component.py4929CODE
LOWweblate/fonts/utils.py45CODE
LOWweblate/fonts/utils.py151CODE
AI Slop Vocabulary5 hits · 14 pts
SeverityFileLineSnippetContext
MEDIUMpyproject.toml452# Mail templates need inline CSS and do not utilize descriptionCOMMENT
MEDIUMweblate/memory/models.py356 # Use MD5 for filtering to utilize MD5 indexCOMMENT
MEDIUMweblate/checks/consistency.py351 # Lower has no effect here, but we want to utilize indexCOMMENT
MEDIUMweblate/lang/models.py1171 # Use own manager to utilize caching of EnglishCOMMENT
LOWweblate/vcs/git.py2888 # If the fork was deleted, we just create another forkCOMMENT
Slop Phrases3 hits · 6 pts
SeverityFileLineSnippetContext
LOWweblate/settings_docker.py213 # Don't forget to use absolute paths, not relative paths.COMMENT
MEDIUMweblate/settings_example.py68# Data directory, you can use following for the development purposes:COMMENT
LOWweblate/settings_example.py167 # Don't forget to use absolute paths, not relative paths.COMMENT
Overly Generic Function Names5 hits · 6 pts
SeverityFileLineSnippetContext
LOWweblate/utils/requests.py505 def handle_request(self, request: httpx2.Request) -> httpx2.Response:CODE
LOW⚡weblate/utils/tests/test_requests.py99 def handle_request(request):CODE
LOWweblate/utils/tests/test_requests.py122 def handle_request(request):CODE
LOWweblate/utils/tests/test_requests.py151 def handle_request(_request):CODE
LOWweblate/utils/tests/test_requests.py224 def handle_request(request):CODE
Modern AI Meta-Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMAGENTS.md92## Weblate-specific guardrailsCOMMENT
Dead Code1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMweblate/trans/tests/test_selenium.py228CODE
TODO Padding1 hit · 2 pts
SeverityFileLineSnippetContext
LOWweblate/trans/tests/test_remote.py1101 # TODO: add tests for the monolingual and monolingual with intermediate.COMMENT