AI Slop Code RIsk Monitor

wger-project/wger

Self hosted FLOSS fitness/workout, nutrition and weight tracker

46.0 High pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for wger-project/wger, a Python project with 7,094 GitHub stars. SynthScan examined 97,232 lines of code across 714 source files, recording 2740 pattern matches distributed across 18 syntactic categories. The legacy adjusted pattern signal is 46.0 (High pattern signal); it is not an authorship estimate.

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

46.0
Adjusted Signal
46.0
Raw Pattern Score
100%
Time Factor
2026-10-10
Last Push
7.1K
Stars
Python
Language
97.2K
Lines of Code
714
Files
2.7K
Pattern Hits
2026-10-12
Scan Date
0.15
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 83.2/100 · CRITICAL

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

Hallucinated Dependency & Supply Chain Risk 27.7/100 · MEDIUM

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

Agent Over-Engineering Ratio 58.1/100 · HIGH

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

PR Review Velocity Impact 89.7/100 · CRITICAL

Which changes need focused human review? 2740 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

Run additional scans to build a history of the legacy pattern signal. Score changes are not a measure of AI adoption or code quality.

No multi-scan history yet — run the scanner again to build trend data.

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 27HIGH 78MEDIUM 527LOW 2108

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 2740 distinct pattern matches across 18 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.

Self-Referential Comments520 hits · 1562 pts
SeverityFileLineSnippetContext
MEDIUMwger/tasks.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/tasks.py83 # Create the database if necessary, or finish an interrupted setupCOMMENT
MEDIUMwger/version.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/__init__.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/urls.py3# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/__main__.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/weight/__init__.py3# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/weight/forms.py3# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/weight/urls.py3# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/weight/helpers.py3# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/weight/helpers.py89 # Create the valid weight entriesCOMMENT
MEDIUMwger/weight/views.py3# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/weight/tests/test_csv_import.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/weight/tests/test_entry.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/weight/tests/test_csv_export.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/weight/tests/test_email_weight_reminder.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/weight/tests/test_overview.py1# This file is part of wger Workout Manager.COMMENT
MEDIUM…er/weight/management/commands/email-weight-reminder.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/weight/api/filtersets.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/weight/api/serializers.py3# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/weight/api/views.py3# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/mail.py1# This file is part of wger Workout Manager <https://github.com/wger-project>.COMMENT
MEDIUMwger/core/signals.py3# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/powersync.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/tasks.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/account_adapter.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/validators.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/__init__.py3# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/apps.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/forms.py3# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/backends.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/storage.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/demo.py3# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/urls.py3# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/middleware.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/templatetags/wger_extras.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/tests/test_version.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/tests/test_auth_social.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/tests/base_testcase.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/tests/test_oidc_provider.py3# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/tests/api_base_test.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/tests/test_generator.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/tests/test_preferences.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/tests/test_user.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/tests/test_mail.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/tests/test_check_min_server_version.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/tests/test_headless.py3# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/tests/test_apikey.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/tests/test_repetition_unit.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/tests/test_user_profile_api.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/tests/test_sitemap.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/tests/test_password_reset.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/tests/test_temporary_users.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/tests/test_robots_txt.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/tests/test_powersync.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/tests/test_license.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/tests/test_auth_proxy_middleware.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/tests/test_app_auth_handoff.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/tests/test_api_schema.py1# This file is part of wger Workout Manager.COMMENT
MEDIUMwger/core/tests/test_change_password.py1# This file is part of wger Workout Manager.COMMENT
460 more matches not shown…
Hyper-Verbose Identifiers1273 hits · 1324 pts
SeverityFileLineSnippetContext
LOWwger/weight/tests/test_entry.py58 def test_post_creates_official_category(self):CODE
LOWwger/weight/tests/test_entry.py78 def test_post_reuses_official_category(self):CODE
LOWwger/weight/tests/test_entry.py103 def test_get_converts_to_profile_unit(self):CODE
LOWwger/weight/tests/test_entry.py118 def test_post_stamps_profile_unit(self):CODE
LOWwger/weight/tests/test_entry.py134 def test_patch_weight_restamps_unit(self):CODE
LOWwger/weight/tests/test_entry.py150 def test_patch_weight_keeps_the_import_provenance(self):CODE
LOWwger/weight/tests/test_entry.py178 def test_patch_date_keeps_unit(self):CODE
LOWwger/weight/tests/test_entry.py301 def test_listing_does_not_query_per_entry(self):CODE
LOWwger/weight/tests/test_csv_export.py45 def test_export_csv_logged_in(self):CODE
LOW⚡wger/weight/tests/test_email_weight_reminder.py42 def test_without_num_days_weight_reminder(self):CODE
LOW⚡wger/weight/tests/test_email_weight_reminder.py53 def test_with_num_days_weight_reminder(self):CODE
LOWwger/weight/tests/test_email_weight_reminder.py79 def test_send_email_zero_days_diff(self):CODE
LOWwger/weight/tests/test_overview.py40 def test_weight_overview_loged_in(self):CODE
LOWwger/core/signals.py76def delete_temporary_user_on_logout(sender, request, user, **kwargs):CODE
LOWwger/core/tasks.py58def flush_expired_jwt_tokens_task():CODE
LOWwger/core/tasks.py72def flush_expired_long_lived_sessions_task():CODE
LOWwger/core/tasks.py85def flush_expired_oidc_tokens_task():CODE
LOWwger/core/account_adapter.py51 def get_reset_password_from_key_url(self, key):CODE
LOWwger/core/account_adapter.py54 def get_email_confirmation_url(self, request, emailconfirmation):CODE
LOWwger/core/account_adapter.py87 def get_notification_language(self, context):CODE
LOWwger/core/templatetags/wger_extras.py123def _react_translation_paths_json():CODE
LOW⚡wger/core/tests/test_version.py39 def test_version_string_is_semver(self):CODE
LOW⚡wger/core/tests/test_version.py45 def test_endpoint_reports_the_literal(self):CODE
LOW⚡wger/core/tests/test_version.py52 def test_git_sha_is_appended_as_build_metadata(self):CODE
LOWwger/core/tests/test_auth_social.py54 def test_login_page_shows_social_section(self, _):CODE
LOWwger/core/tests/test_auth_social.py67 def test_no_section_without_configured_providers(self):CODE
LOWwger/core/tests/test_auth_social.py83 def test_link_shown_when_providers_configured(self, _):CODE
LOWwger/core/tests/test_auth_social.py92 def test_link_hidden_without_providers(self, _):CODE
LOWwger/core/tests/test_auth_social.py108 def test_use_social_auth_false_when_no_providers(self):CODE
LOWwger/core/tests/test_auth_social.py113 def test_use_social_auth_true_when_providers_configured(self):CODE
LOWwger/core/tests/test_auth_social.py126 def test_account_urls_have_no_language_prefix(self):CODE
LOWwger/core/tests/test_auth_social.py129 def test_account_page_is_localized_from_accept_language(self):CODE
LOWwger/core/tests/base_testcase.py82def delete_testcase_add_methods(cls):CODE
LOWwger/core/tests/base_testcase.py312 def test_delete_object_anonymous(self):CODE
LOWwger/core/tests/base_testcase.py318 def test_delete_object_authorized(self):CODE
LOWwger/core/tests/base_testcase.py412 def test_edit_object_anonymous(self):CODE
LOWwger/core/tests/base_testcase.py418 def test_edit_object_authorized(self):CODE
LOWwger/core/tests/base_testcase.py515 def test_add_object_anonymous(self):CODE
LOWwger/core/tests/base_testcase.py523 def test_add_object_authorized(self):CODE
LOW⚡wger/core/tests/test_oidc_provider.py291 def test_code_is_rejected_without_the_verifier(self):CODE
LOW⚡wger/core/tests/test_oidc_provider.py301 def test_code_is_rejected_with_a_wrong_verifier(self):CODE
LOW⚡wger/core/tests/test_oidc_provider.py311 def test_code_cannot_be_redeemed_twice(self):CODE
LOW⚡wger/core/tests/test_oidc_provider.py321 def test_code_is_rejected_for_another_redirect_uri(self):CODE
LOW⚡wger/core/tests/test_oidc_provider.py561 def test_token_of_a_deactivated_user_is_rejected(self):CODE
LOW⚡wger/core/tests/test_oidc_provider.py570 def test_refresh_token_is_not_accepted_as_a_bearer(self):CODE
LOW⚡wger/core/tests/test_oidc_provider.py575 def test_read_scope_allows_reading(self):CODE
LOW⚡wger/core/tests/test_oidc_provider.py585 def test_read_scope_does_not_allow_writing(self):CODE
LOW⚡wger/core/tests/test_oidc_provider.py908 def test_page_is_gone_while_the_provider_is_off(self):CODE
LOW⚡wger/core/tests/test_oidc_provider.py915 def test_the_settings_page_links_here(self):CODE
LOW⚡wger/core/tests/test_oidc_provider.py921 def test_the_settings_page_hides_the_link_while_the_provider_is_off(self):CODE
LOW⚡wger/core/tests/test_oidc_provider.py926 def test_anonymous_users_are_sent_to_the_login(self):CODE
LOWwger/core/tests/test_oidc_provider.py96 def test_output_is_a_usable_env_value(self):CODE
LOWwger/core/tests/test_oidc_provider.py209 def test_discovery_without_signing_key(self):CODE
LOWwger/core/tests/test_oidc_provider.py232 def test_jwks_publishes_the_signing_key(self):CODE
LOWwger/core/tests/test_oidc_provider.py255 def test_authorization_code_flow(self):CODE
LOWwger/core/tests/test_oidc_provider.py334 def test_unknown_redirect_uri_never_redirects(self):CODE
LOWwger/core/tests/test_oidc_provider.py357 def test_client_cannot_request_a_scope_it_has_not_been_given(self):CODE
LOWwger/core/tests/test_oidc_provider.py374 def test_consent_cannot_grant_more_than_was_asked_for(self):CODE
LOWwger/core/tests/test_oidc_provider.py395 def test_user_can_grant_less_than_the_application_asked_for(self):CODE
LOWwger/core/tests/test_oidc_provider.py425 def test_consent_form_carries_a_csrf_token(self):CODE
1213 more matches not shown…
Over-Commented Block509 hits · 502 pts
SeverityFileLineSnippetContext
LOWwger/tasks.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/version.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/__init__.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/celery_configuration.py1# wger Workout Manager is free software: you can redistribute it and/or modifyCOMMENT
LOWwger/urls.py1# -*- coding: utf-8 -*-COMMENT
LOWwger/__main__.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/weight/__init__.py1# -*- coding: utf-8 -*-COMMENT
LOWwger/weight/forms.py1# -*- coding: utf-8 -*-COMMENT
LOWwger/weight/urls.py1# -*- coding: utf-8 -*-COMMENT
LOWwger/weight/helpers.py1# -*- coding: utf-8 -*-COMMENT
LOWwger/weight/views.py1# -*- coding: utf-8 -*-COMMENT
LOWwger/weight/tests/test_csv_import.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/weight/tests/test_entry.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/weight/tests/test_csv_export.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/weight/tests/test_email_weight_reminder.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/weight/tests/test_overview.py1# This file is part of wger Workout Manager.COMMENT
LOW…er/weight/management/commands/email-weight-reminder.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/weight/api/filtersets.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/weight/api/serializers.py1# -*- coding: utf-8 -*-COMMENT
LOWwger/weight/api/views.py1# -*- coding: utf-8 -*-COMMENT
LOWwger/core/mail.py1# This file is part of wger Workout Manager <https://github.com/wger-project>.COMMENT
LOWwger/core/signals.py1# -*- coding: utf-8 -*-COMMENT
LOWwger/core/powersync.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/core/tasks.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/core/account_adapter.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/core/validators.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/core/__init__.py1# -*- coding: utf-8 -*-COMMENT
LOWwger/core/apps.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/core/forms.py1# -*- coding: utf-8 -*-COMMENT
LOWwger/core/backends.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/core/storage.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/core/demo.py1# -*- coding: utf-8 -*-COMMENT
LOWwger/core/urls.py1# -*- coding: utf-8 -*-COMMENT
LOWwger/core/middleware.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/core/middleware.py61 # Skip processing if not configuredCOMMENT
LOWwger/core/templatetags/wger_extras.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/core/tests/test_version.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/core/tests/test_auth_social.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/core/tests/base_testcase.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/core/tests/test_oidc_provider.py1# -*- coding: utf-8 -*-COMMENT
LOWwger/core/tests/api_base_test.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/core/tests/test_generator.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/core/tests/test_preferences.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/core/tests/test_preferences.py461# resource = UserProfileCOMMENT
LOWwger/core/tests/test_user.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/core/tests/test_mail.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/core/tests/test_check_min_server_version.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/core/tests/test_headless.py1# -*- coding: utf-8 -*-COMMENT
LOWwger/core/tests/test_apikey.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/core/tests/test_repetition_unit.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/core/tests/test_user_profile_api.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/core/tests/test_sitemap.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/core/tests/test_sitemap.py41 # reverse('django.contrib.sitemaps.views.sitemap', kwargs={'section': 'nutrition'})COMMENT
LOWwger/core/tests/test_password_reset.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/core/tests/test_temporary_users.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/core/tests/test_robots_txt.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/core/tests/test_powersync.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/core/tests/test_license.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/core/tests/test_auth_proxy_middleware.py1# This file is part of wger Workout Manager.COMMENT
LOWwger/core/tests/test_app_auth_handoff.py1# This file is part of wger Workout Manager.COMMENT
449 more matches not shown…
Hallucination Indicators27 hits · 275 pts
SeverityFileLineSnippetContext
CRITICALwger/core/signals.py35from wger.utils.helpers import disable_for_loaddataCODE
CRITICALwger/core/forms.py25from django.core.exceptions import ValidationErrorCODE
CRITICALwger/core/middleware.py35from wger.utils.helpers import remove_language_codeCODE
CRITICALwger/core/tests/test_powersync.py19from django.core.exceptions import ValidationErrorCODE
CRITICALwger/core/management/wger_command.py18from django.core.exceptions import ValidationErrorCODE
CRITICALwger/core/management/commands/set-site-url.py7from django.core.exceptions import ValidationErrorCODE
CRITICALwger/core/models/profile.py30from django.core.exceptions import ValidationErrorCODE
CRITICALwger/core/api/views.py23from django.core.exceptions import ValidationError as DjangoValidationErrorCODE
CRITICALwger/core/views/languages.py50from wger.utils.helpers import remove_language_codeCODE
CRITICALwger/utils/validators.py2from django.core.exceptions import ValidationErrorCODE
CRITICALwger/utils/viewsets.py23from django.core.exceptions import ValidationErrorCODE
CRITICALwger/utils/images.py16from django.core.exceptions import ValidationErrorCODE
CRITICALwger/utils/tests/test_remove_language_code.py19from wger.utils.helpers import remove_language_codeCODE
CRITICAL⚡wger/utils/tests/test_helpers.py23from wger.utils.helpers import password_generatorCODE
CRITICALwger/utils/tests/test_imagemixin.py5from wger.utils.helpers import BaseImageMixinCODE
CRITICALwger/manager/validators.py17from django.core.exceptions import ValidationErrorCODE
CRITICALwger/manager/models/log.py22from django.core.exceptions import ValidationErrorCODE
CRITICALwger/manager/models/session.py23from django.core.exceptions import ValidationErrorCODE
CRITICALwger/manager/api/serializers.py20from django.core.exceptions import ValidationError as DjangoValidationErrorCODE
CRITICALwger/exercises/sync.py20from django.core.exceptions import ValidationErrorCODE
CRITICALwger/exercises/models/video.py22from django.core.exceptions import ValidationErrorCODE
CRITICALwger/exercises/models/image.py30from wger.utils.helpers import BaseImageMixinCODE
CRITICALwger/gym/views/gym.py91from wger.utils.helpers import password_generatorCODE
CRITICALwger/nutrition/sync.py29from django.core.exceptions import ValidationErrorCODE
CRITICALwger/nutrition/management/commands/sync-ingredients.py16from django.core.exceptions import ValidationErrorCODE
CRITICALwger/nutrition/models/image.py25from wger.utils.helpers import BaseImageMixinCODE
CRITICALwger/measurements/dynamic/types.py22from django.core.exceptions import ValidationError as DjangoValidationErrorCODE
Cross-Language Confusion35 hits · 240 pts
SeverityFileLineSnippetContext
HIGH⚡wger/core/tests/test_powersync.py60 response = self.push('PATCH', {'id': self.pk_owned, 'weight_unit': 'lb'})CODE
HIGH⚡wger/core/tests/test_powersync.py71 response = self.push('DELETE', {'id': self.pk_owned})CODE
HIGH⚡wger/core/tests/test_powersync.py84 response = self.push('PATCH', {'id': self.pk_owned, 'weight_unit': 'lb'})CODE
HIGH⚡wger/core/tests/test_powersync.py95 response = self.push('PATCH', {'id': self.pk_owned, 'weight_unit': 'lb'})CODE
HIGH⚡wger/core/tests/test_powersync.py106 response = self.push('PATCH', {'id': self.pk_owned, 'weight_unit': 'lb'})CODE
HIGH⚡wger/core/tests/test_powersync.py118 response = self.push('PATCH', {'id': self.pk_owned, 'weight_unit': 'lb'})CODE
HIGH⚡wger/core/tests/powersync_base_test.py109 response = self.push('PUT', self.create_payload)CODE
HIGH⚡wger/core/tests/powersync_base_test.py118 response = self.push('PUT', self.create_payload)CODE
HIGH⚡wger/core/tests/powersync_base_test.py137 response = self.push('PUT', self.create_payload)CODE
HIGH⚡wger/core/tests/powersync_base_test.py155 first = self.push('PUT', self.create_payload)CODE
HIGH⚡wger/core/tests/powersync_base_test.py161 second = self.push('PUT', self.create_payload)CODE
HIGH⚡wger/core/tests/powersync_base_test.py183 response = self.push('PUT', payload)CODE
HIGH⚡wger/core/tests/powersync_base_test.py200 response = self.push('PUT', payload)CODE
HIGH⚡wger/core/tests/powersync_base_test.py233 response = self.push('PATCH', self.update_payload)CODE
HIGH⚡wger/core/tests/powersync_base_test.py240 response = self.push('PATCH', self.update_payload)CODE
HIGH⚡wger/core/tests/powersync_base_test.py253 response = self.push('PATCH', self.update_payload)CODE
HIGH⚡wger/core/tests/powersync_base_test.py319 response = self.push('DELETE', self._delete_payload())CODE
HIGH⚡wger/core/tests/powersync_base_test.py329 response = self.push('DELETE', self._delete_payload())CODE
HIGH⚡wger/core/tests/powersync_base_test.py343 first = self.push('DELETE', self._delete_payload())CODE
HIGH⚡wger/core/tests/powersync_base_test.py349 second = self.push('DELETE', self._delete_payload())CODE
HIGHwger/core/tests/powersync_base_test.py273 response = self.push('PATCH', payload)CODE
HIGHwger/core/tests/powersync_base_test.py294 response = self.push('PUT', self.create_payload or {})CODE
HIGHwger/core/tests/powersync_base_test.py367 response = self.push('DELETE', self._delete_payload())CODE
HIGHwger/manager/tests/test_powersync.py112 response = self.push(CODE
HIGHwger/manager/tests/test_powersync.py143 response = self.push(CODE
HIGHwger/manager/tests/test_log_session_api.py172 response = self.push(CODE
HIGHwger/manager/tests/test_log_session_api.py191 response = self.push(CODE
HIGH⚡wger/manager/tests/test_log_session_api.py208 response = self.push('PATCH', {'id': OWN_LOG, 'session': FOREIGN_SESSION})CODE
HIGH⚡wger/manager/tests/test_log_session_api.py217 response = self.push('PATCH', {'id': OWN_LOG, 'session': OWN_SESSION_OTHER_DATE})CODE
HIGH⚡wger/measurements/tests/test_powersync.py68 response = self.push('PUT', payload)CODE
HIGH⚡wger/measurements/tests/test_powersync.py84 response = self.push('PATCH', payload)CODE
HIGHwger/measurements/tests/test_powersync.py118 return self.push('PUT', payload)CODE
HIGHwger/measurements/tests/test_powersync.py158 response = self.push(CODE
HIGH⚡wger/measurements/tests/test_powersync.py204 response = self.push('PUT', payload)CODE
HIGH⚡wger/measurements/tests/test_powersync.py218 response = self.push('PUT', payload)CODE
Modern Structural Boilerplate111 hits · 111 pts
SeverityFileLineSnippetContext
LOWwger/tasks.py40logger = logging.getLogger(__name__)CODE
LOWwger/version.py23logger = logging.getLogger(__name__)CODE
LOWwger/weight/helpers.py36logger = logging.getLogger(__name__)CODE
LOWwger/weight/views.py38logger = logging.getLogger(__name__)CODE
LOWwger/weight/tests/test_csv_import.py26logger = logging.getLogger(__name__)CODE
LOWwger/weight/tests/test_csv_export.py25logger = logging.getLogger(__name__)CODE
LOWwger/weight/tests/test_overview.py25logger = logging.getLogger(__name__)CODE
LOWwger/core/mail.py43logger = logging.getLogger(__name__)CODE
LOWwger/core/tasks.py40logger = logging.getLogger(__name__)CODE
LOWwger/core/backends.py28logger = logging.getLogger(__name__)CODE
LOWwger/core/demo.py28logger = logging.getLogger(__name__)CODE
LOWwger/core/middleware.py38logger = logging.getLogger(__name__)CODE
LOWwger/core/tests/test_preferences.py32logger = logging.getLogger(__name__)CODE
LOWwger/core/tests/test_apikey.py51logger = logging.getLogger(__name__)CODE
LOWwger/core/tests/test_change_password.py33logger = logging.getLogger(__name__)CODE
LOWwger/core/tests/test_delete_user.py35logger = logging.getLogger(__name__)CODE
LOWwger/core/tests/test_registration.py33logger = logging.getLogger(__name__)CODE
LOWwger/core/tests/test_verification.py41logger = logging.getLogger(__name__)CODE
LOWwger/core/management/commands/dummy-generator.py23logger = logging.getLogger(__name__)CODE
LOWwger/core/management/commands/dummy-generator-users.py36logger = logging.getLogger(__name__)CODE
LOWwger/core/api/serializers.py33logger = logging.getLogger(__name__)CODE
LOWwger/core/api/views.py101logger = logging.getLogger(__name__)CODE
LOWwger/core/views/misc.py35logger = logging.getLogger(__name__)CODE
LOWwger/core/views/user.py123logger = logging.getLogger(__name__)CODE
LOWwger/core/views/repetition_units.py44logger = logging.getLogger(__name__)CODE
LOWwger/core/views/weight_units.py46logger = logging.getLogger(__name__)CODE
LOWwger/core/views/license.py45logger = logging.getLogger(__name__)CODE
LOWwger/core/views/languages.py53logger = logging.getLogger(__name__)CODE
LOWwger/config/models/gym_config.py33logger = logging.getLogger(__name__)CODE
LOWwger/config/views/gym_config.py33logger = logging.getLogger(__name__)CODE
LOWwger/gallery/api/views.py31logger = logging.getLogger(__name__)CODE
LOWwger/trophies/signals.py53logger = logging.getLogger(__name__)CODE
LOWwger/trophies/tasks.py38logger = logging.getLogger(__name__)CODE
LOWwger/trophies/views.py29logger = logging.getLogger(__name__)CODE
LOWwger/trophies/checkers/personal_record.py31logger = logging.getLogger(__name__)CODE
LOWwger/trophies/checkers/registry.py43logger = logging.getLogger(__name__)CODE
LOWwger/trophies/tests/test_overview.py22logger = logging.getLogger(__name__)CODE
LOWwger/trophies/api/serializers.py35logger = logging.getLogger(__name__)CODE
LOWwger/trophies/services/__init__.py22__all__ = ['UserStatisticsService', 'TrophyService']CODE
LOWwger/trophies/services/statistics.py38logger = logging.getLogger(__name__)CODE
LOWwger/trophies/services/trophy.py39logger = logging.getLogger(__name__)CODE
LOWwger/utils/powersync.py40logger = logging.getLogger(__name__)CODE
LOWwger/utils/units.py23logger = logging.getLogger(__name__)CODE
LOWwger/utils/fields.py28logger = logging.getLogger(__name__)CODE
LOWwger/utils/viewsets.py32logger = logging.getLogger(__name__)CODE
LOWwger/utils/generic_views.py45logger = logging.getLogger(__name__)CODE
LOWwger/utils/api_token.py29logger = logging.getLogger(__name__)CODE
LOWwger/utils/cache.py22logger = logging.getLogger(__name__)CODE
LOWwger/utils/widgets.py33logger = logging.getLogger(__name__)CODE
LOWwger/utils/language.py28logger = logging.getLogger(__name__)CODE
LOWwger/utils/helpers.py40logger = logging.getLogger(__name__)CODE
LOWwger/utils/middleware.py32logger = logging.getLogger(__name__)CODE
LOWwger/software/views.py33logger = logging.getLogger(__name__)CODE
LOWwger/manager/tests/test_copy_routine.py30logger = logging.getLogger(__name__)CODE
LOWwger/manager/tests/test_change_config_model.py24logger = logging.getLogger(__name__)CODE
LOWwger/manager/tests/test_weight_log.py28logger = logging.getLogger(__name__)CODE
LOWwger/manager/tests/test_log_model.py33logger = logging.getLogger(__name__)CODE
LOW…anager/management/commands/dummy-generator-routines.py45logger = logging.getLogger(__name__)CODE
LOW…r/management/commands/dummy-generator-workout-diary.py34logger = logging.getLogger(__name__)CODE
LOWwger/manager/models/routine.py56logger = logging.getLogger(__name__)CODE
51 more matches not shown…
Empty Error Handlers22 hits · 110 pts
SeverityFileLineSnippetContext
HIGH…er/weight/management/commands/email-weight-reminder.py56except Measurement.DoesNotExist:CODE
HIGHwger/core/middleware.py95except ValueError:CODE
HIGHwger/core/middleware.py92except ValueError:CODE
HIGHwger/gallery/forms.py69except Exception:CODE
HIGHwger/trophies/signals.py116except User.DoesNotExist:CODE
HIGHwger/trophies/signals.py137except User.DoesNotExist:CODE
HIGHwger/trophies/signals.py175except User.DoesNotExist:CODE
HIGHwger/trophies/signals.py196except User.DoesNotExist:CODE
HIGHwger/trophies/signals.py69except User.DoesNotExist:CODE
HIGHwger/utils/powersync.py126except ValueError:CODE
HIGHwger/manager/signals.py67except ObjectDoesNotExist:CODE
HIGHwger/exercises/sync.py317except Exercise.DoesNotExist:CODE
HIGHwger/exercises/sync.py340except Exercise.DoesNotExist:CODE
HIGHwger/exercises/sync.py348except Translation.DoesNotExist:CODE
HIGHwger/exercises/sync.py356except ExerciseImage.DoesNotExist:CODE
HIGHwger/exercises/sync.py364except ExerciseVideo.DoesNotExist:CODE
HIGHwger/exercises/models/base.py189except (OperationalError, ProgrammingError):CODE
HIGH…/management/commands/migrate-ingredient-image-paths.py133except OSError:CODE
HIGHwger/nutrition/api/filtersets.py174except Language.DoesNotExist:CODE
HIGHwger/nutrition/views/ingredient.py112except (TypeError, ValueError):CODE
HIGHwger/nutrition/views/ingredient.py121except (TypeError, ValueError):CODE
HIGHsettings/local_dev.py124except ImportError:CODE
Unused Imports101 hits · 101 pts
SeverityFileLineSnippetContext
LOWwger/__init__.py17CODE
LOWwger/core/apps.py24CODE
LOWwger/core/apps.py25CODE
LOWwger/core/models/__init__.py18CODE
LOWwger/core/models/__init__.py19CODE
LOWwger/core/models/__init__.py20CODE
LOWwger/core/models/__init__.py21CODE
LOWwger/core/models/__init__.py22CODE
LOWwger/core/models/__init__.py23CODE
LOWwger/core/models/__init__.py24CODE
LOWwger/core/api/views.py72CODE
LOWwger/core/api/views.py73CODE
LOWwger/core/api/views.py74CODE
LOWwger/core/api/views.py75CODE
LOWwger/core/api/views.py76CODE
LOWwger/config/apps.py26CODE
LOWwger/config/models/__init__.py18CODE
LOWwger/gallery/models/__init__.py2CODE
LOWwger/trophies/apps.py26CODE
LOWwger/trophies/checkers/__init__.py20CODE
LOWwger/trophies/checkers/__init__.py21CODE
LOWwger/trophies/checkers/__init__.py22CODE
LOWwger/trophies/checkers/__init__.py23CODE
LOWwger/trophies/checkers/__init__.py24CODE
LOWwger/trophies/checkers/__init__.py25CODE
LOWwger/trophies/checkers/__init__.py26CODE
LOWwger/trophies/checkers/__init__.py27CODE
LOWwger/trophies/checkers/__init__.py28CODE
LOWwger/trophies/checkers/base.py33CODE
LOWwger/trophies/models/__init__.py18CODE
LOWwger/trophies/models/__init__.py19CODE
LOWwger/trophies/models/__init__.py20CODE
LOWwger/trophies/services/__init__.py18CODE
LOWwger/trophies/services/__init__.py19CODE
LOWwger/mailer/models/__init__.py18CODE
LOWwger/mailer/models/__init__.py19CODE
LOWwger/manager/apps.py26CODE
LOWwger/manager/models/__init__.py18CODE
LOWwger/manager/models/__init__.py19CODE
LOWwger/manager/models/__init__.py20CODE
LOWwger/manager/models/__init__.py21CODE
LOWwger/manager/models/__init__.py22CODE
LOWwger/manager/models/__init__.py22CODE
LOWwger/manager/models/__init__.py26CODE
LOWwger/manager/models/__init__.py26CODE
LOWwger/manager/models/__init__.py30CODE
LOWwger/manager/models/__init__.py30CODE
LOWwger/manager/models/__init__.py34CODE
LOWwger/manager/models/__init__.py35CODE
LOWwger/manager/models/__init__.py36CODE
LOWwger/manager/models/__init__.py36CODE
LOWwger/manager/models/__init__.py40CODE
LOWwger/manager/models/__init__.py41CODE
LOWwger/manager/models/__init__.py42CODE
LOWwger/manager/models/__init__.py42CODE
LOWwger/exercises/apps.py26CODE
LOWwger/exercises/models/__init__.py18CODE
LOWwger/exercises/models/__init__.py19CODE
LOWwger/exercises/models/__init__.py20CODE
LOWwger/exercises/models/__init__.py21CODE
41 more matches not shown…
Cross-File Repetition19 hits · 95 pts
SeverityFileLineSnippetContext
HIGHwger/core/tests/test_repetition_unit.py0test that the representation of an object is correctSTRING
HIGHwger/core/tests/test_license.py0test that the representation of an object is correctSTRING
HIGHwger/core/tests/test_weight_unit.py0test that the representation of an object is correctSTRING
HIGHwger/core/tests/test_language.py0test that the representation of an object is correctSTRING
HIGHwger/exercises/tests/test_muscles.py0test that the representation of an object is correctSTRING
HIGHwger/exercises/tests/test_exercise_comments.py0test that the representation of an object is correctSTRING
HIGHwger/exercises/tests/test_categories.py0test that the representation of an object is correctSTRING
HIGHwger/exercises/tests/test_equipment.py0test that the representation of an object is correctSTRING
HIGHwger/exercises/tests/test_exercise_translation.py0test that the representation of an object is correctSTRING
HIGHwger/gym/tests/test_gym.py0test that the representation of an object is correctSTRING
HIGHwger/nutrition/tests/test_ingredient.py0test that the representation of an object is correctSTRING
HIGHwger/nutrition/tests/test_weight_unit_ingredient.py0test that the representation of an object is correctSTRING
HIGHwger/exercises/models/video.py0globally unique id, to identify the image across installationsSTRING
HIGHwger/exercises/models/image.py0globally unique id, to identify the image across installationsSTRING
HIGHwger/nutrition/models/image.py0globally unique id, to identify the image across installationsSTRING
HIGHwger/gym/models/admin_user_note.py0while the model has a user foreign key, this is editable by all managers in the gym.STRING
HIGHwger/gym/models/user_document.py0while the model has a user foreign key, this is editable by all managers in the gym.STRING
HIGHwger/gym/models/user_config.py0while the model has a user foreign key, this is editable by all managers in the gym.STRING
HIGHwger/gym/models/contract.py0while the model has a user foreign key, this is editable by all managers in the gym.STRING
Excessive Try-Catch Wrapping45 hits · 52 pts
SeverityFileLineSnippetContext
LOWwger/core/backends.py64 except Exception as e:CODE
LOWwger/core/backends.py89 except Exception as e:CODE
LOWwger/core/storage.py30 except Exception:CODE
LOWwger/core/storage.py48 except Exception:CODE
MEDIUMwger/core/storage.py27def stored_name(self, name):CODE
MEDIUMwger/core/storage.py45def converter(matchobj):CODE
LOWwger/core/management/commands/add-user-rest.py46 except Exception as exc:CODE
LOWwger/core/api/views.py472 except Exception as e:CODE
LOWwger/gallery/forms.py69 except Exception:CODE
MEDIUMwger/gallery/forms.py60def _get_exif_date(self, image_file):CODE
LOW…er/gallery/management/commands/check_gallery_images.py159 except Exception as e:CODE
LOW⚡…er/gallery/management/commands/check_gallery_images.py210 except Exception as e:CODE
LOW…er/gallery/management/commands/check_gallery_images.py230 except Exception as e:CODE
LOW…er/gallery/management/commands/check_gallery_images.py248 except Exception as e:CODE
LOW…er/gallery/management/commands/check_gallery_images.py284 except Exception as e:CODE
LOWwger/trophies/signals.py71 except Exception as e:CODE
LOWwger/trophies/signals.py118 except Exception as e:CODE
LOWwger/trophies/signals.py139 except Exception as e:CODE
LOWwger/trophies/signals.py177 except Exception as e:CODE
LOWwger/trophies/signals.py198 except Exception as e:CODE
LOWwger/trophies/tasks.py61 except Exception as e:CODE
LOWwger/trophies/tasks.py87 except Exception as e:CODE
LOWwger/trophies/tasks.py115 except Exception as e:CODE
LOWwger/trophies/tasks.py136 except Exception as e:CODE
LOWwger/trophies/checkers/personal_record.py100 except Exception:CODE
LOWwger/trophies/checkers/personal_record.py127 except Exception as e:CODE
LOWwger/trophies/checkers/registry.py145 except Exception as e:CODE
LOW…trophies/management/commands/recalculate_statistics.py145 except Exception as e:CODE
LOWwger/trophies/services/trophy.py121 except Exception as e:CODE
LOWwger/trophies/services/trophy.py253 except Exception as e:CODE
LOWwger/software/views.py56 except Exception as e:CODE
LOWwger/nutrition/sync.py565 except Exception:CODE
LOWwger/nutrition/sync.py573 except Exception:CODE
LOWwger/nutrition/sync.py584 except Exception:CODE
LOWwger/nutrition/sync.py599 except Exception:CODE
LOWwger/nutrition/sync.py606 except Exception:CODE
LOWwger/nutrition/management/products.py99 except Exception as e:CODE
LOWwger/nutrition/management/products.py111 except Exception as e:CODE
LOWwger/nutrition/management/products.py137 except Exception as e:CODE
LOWwger/measurements/tasks.py63 except Exception:CODE
LOWwger/measurements/dynamic/engine.py137 except Exception:CODE
MEDIUMwger/measurements/dynamic/engine.py99def reconcile_by_id(category_id) -> None:CODE
MEDIUMextras/authors/generate_authors_api.py111 print(f'Error fetching commits: {e}')CODE
MEDIUMextras/authors/generate_authors_api.py366 print(f'Error copying {repo}-AUTHORS.md: {e}')CODE
MEDIUMextras/authors/generate_authors_api.py374 print(f'Error copying {rst_file}: {e}')CODE
Deep Nesting38 hits · 38 pts
SeverityFileLineSnippetContext
LOWwger/tasks.py163CODE
LOWwger/core/backends.py38CODE
LOWwger/core/middleware.py55CODE
LOWwger/core/tests/base_testcase.py218CODE
LOWwger/config/models/gym_config.py67CODE
LOW…er/gallery/management/commands/check_gallery_images.py93CODE
LOWwger/trophies/signals.py77CODE
LOW…trophies/management/commands/recalculate_statistics.py70CODE
LOWwger/trophies/management/commands/evaluate_trophies.py70CODE
LOWwger/trophies/services/statistics.py137CODE
LOWwger/trophies/services/statistics.py347CODE
LOWwger/trophies/services/statistics.py416CODE
LOWwger/trophies/services/trophy.py183CODE
LOWwger/utils/context_processor.py28CODE
LOWwger/utils/generic_views.py82CODE
LOWwger/manager/dataclasses.py90CODE
LOWwger/manager/helpers.py189CODE
LOWwger/manager/tests/test_copy_routine.py38CODE
LOW…anager/management/commands/dummy-generator-routines.py72CODE
LOW…r/management/commands/dummy-generator-workout-diary.py53CODE
LOWwger/manager/models/routine.py177CODE
LOWwger/manager/models/day.py131CODE
LOWwger/exercises/sync.py291CODE
LOWwger/exercises/api/serializers.py475CODE
LOWwger/exercises/views/history.py177CODE
LOWwger/gym/management/commands/inactive-members.py38CODE
LOWwger/gym/management/commands/gym-user-config.py35CODE
LOWwger/nutrition/sync.py495CODE
LOWwger/nutrition/management/products.py89CODE
LOWwger/nutrition/management/products.py158CODE
LOW…ition/management/commands/dummy-generator-nutrition.py82CODE
LOW…/management/commands/migrate-ingredient-image-paths.py64CODE
LOWwger/nutrition/extract_info/off.py110CODE
LOWwger/measurements/signals.py50CODE
LOW…gement/commands/dummy-generator-health-measurements.py549CODE
LOW…ts/management/commands/dummy-generator-measurements.py65CODE
LOWextras/authors/generate_authors_api.py230CODE
LOWextras/authors/generate_authors_api.py293CODE
Redundant / Tautological Comments18 hits · 28 pts
SeverityFileLineSnippetContext
LOWwger/tasks.py211 # Check if we are in the wger source folderCOMMENT
LOWwger/core/middleware.py79 # Check if the request comes from a trusted IP or subnetCOMMENT
LOWwger/core/tests/test_auth_proxy_middleware.py84 # Check if the correct user is logged into the sessionCOMMENT
LOWwger/core/views/user.py233 # Check if we're switching back to our original accountCOMMENT
LOW⚡…er/gallery/management/commands/check_gallery_images.py193 # Check if file existsCOMMENT
LOW⚡…er/gallery/management/commands/check_gallery_images.py201 # Check if file exists on diskCOMMENT
LOWwger/trophies/checkers/time_based.py79 # Check if user has ever worked out before the specified timeCOMMENT
LOWwger/trophies/checkers/time_based.py86 # Check if user has ever worked out after the specified timeCOMMENT
LOWwger/trophies/checkers/inactivity_return.py66 # Check if they've worked out after the inactive dateCOMMENT
LOWwger/trophies/services/statistics.py127 # Check if user worked out on January 1stCOMMENT
LOWwger/trophies/services/statistics.py179 # Check if this is a new workout dayCOMMENT
LOWwger/trophies/services/statistics.py312 # Check if current streak is active (includes today or yesterday)COMMENT
LOWwger/trophies/services/statistics.py391 # Check if this is the next weekend (7 days apart)COMMENT
LOWwger/trophies/services/statistics.py443 # Check if both days have workouts. TruncDate with an explicit tzinfo:COMMENT
LOWwger/trophies/services/trophy.py104 # Check if already earnedCOMMENT
LOWwger/trophies/services/trophy.py276 # Check if trophy system is globally disabledCOMMENT
LOWwger/trophies/services/trophy.py280 # Check if user has disabled trophies (if profile has this field)COMMENT
LOWwger/manager/views/routine.py50 # Check if the user is a trainer and the routine belongs to a client, only if it does notCOMMENT
Fake / Example Data14 hits · 16 pts
SeverityFileLineSnippetContext
LOW⚡wger/weight/tests/test_email_weight_reminder.py44 user.email = 'test@test.com'CODE
LOW⚡wger/weight/tests/test_email_weight_reminder.py55 user.email = 'test@test.com'CODE
LOWwger/weight/tests/test_email_weight_reminder.py66 user.email = 'test@test.com'CODE
LOWwger/weight/tests/test_email_weight_reminder.py81 user.email = 'test@test.com'CODE
LOWwger/core/tests/test_mail.py61 to=['user@example.com'],CODE
LOW⚡wger/core/tests/test_mail.py116 self.assertEqual(mail.outbox[0].to, ['user@example.com'])CODE
LOWwger/core/tests/test_password_reset.py81 self.client.post(reverse('account_reset_password'), {'email': 'admin@example.com'})CODE
LOWwger/core/tests/test_verification.py69 self.assertIn('admin@example.com', mail.outbox[0].to)CODE
LOWwger/gym/tests/test_contracts.py110 'note': 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr',CODE
LOWwger/gym/tests/test_contracts.py110 'note': 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr',CODE
LOWwger/gym/tests/test_inactive_members.py41 'admin@example.com',CODE
LOWwger/gym/tests/test_admin_user_notes.py95 data = {'note': 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr'}CODE
LOWwger/gym/tests/test_admin_user_notes.py95 data = {'note': 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr'}CODE
LOWwger/nutrition/tests/test_usda.py184 'foodDescription': 'Lorem ipsum',CODE
Synthetic Comment Markers2 hits · 8 pts
SeverityFileLineSnippetContext
HIGHwger/exercises/models/image.py113 help_text='Check if this image was generated by AI',CODE
HIGHwger/exercises/models/image.py116 """A flag indicating whether the image was generated by AI"""STRING
Verbosity Indicators2 hits · 4 pts
SeverityFileLineSnippetContext
LOW⚡wger/gym/tests/test_user.py245 # Step 1: legitimate hop — trainer1 (user 4) into test (user 2)COMMENT
LOW⚡wger/gym/tests/test_user.py251 # Step 2: chained hop — now-as-test, target manager1 (user 9, has manage_gym)COMMENT
Structural Annotation Overuse2 hits · 4 pts
SeverityFileLineSnippetContext
LOW⚡wger/gym/tests/test_user.py245 # Step 1: legitimate hop — trainer1 (user 4) into test (user 2)COMMENT
LOW⚡wger/gym/tests/test_user.py251 # Step 2: chained hop — now-as-test, target manager1 (user 9, has manage_gym)COMMENT
AI Slop Vocabulary1 hit · 2 pts
SeverityFileLineSnippetContext
LOWwger/manager/models/slot.py117 # If this is not a superset, adjust the sets and just return the dataCOMMENT
AI Structural Patterns1 hit · 1 pts
SeverityFileLineSnippetContext
LOWwger/manager/models/slot.py81CODE