AI Slop Code RIsk Monitor

oppia/oppia

A free, online learning platform to make quality education accessible for all.

12.9 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for oppia/oppia, a Python project with 6,845 GitHub stars. SynthScan examined 1,558,955 lines of code across 5865 source files, recording 19396 pattern matches distributed across 22 syntactic categories. The legacy adjusted pattern signal is 12.9 (Moderate pattern signal); it is not an authorship estimate.

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

12.9
Adjusted Signal
12.9
Raw Pattern Score
100%
Time Factor
2026-10-11
Last Push
6.8K
Stars
Python
Language
1.6M
Lines of Code
5.9K
Files
19.4K
Pattern Hits
2026-10-12
Scan Date
0.13
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 41.3/100 · MEDIUM

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

Hallucinated Dependency & Supply Chain Risk 5.0/100 · LOW

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

Agent Over-Engineering Ratio 31.0/100 · MEDIUM

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

PR Review Velocity Impact 53.2/100 · HIGH

Which changes need focused human review? 19396 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 18HIGH 723MEDIUM 239LOW 18416

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 19396 distinct pattern matches across 22 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 Identifiers11930 hits · 9657 pts
SeverityFileLineSnippetContext
LOWconftest_test.py33 def test_pytest_configure_adds_missing_paths_to_sys_path(self) -> None:CODE
LOWconftest_test.py59 def test_pytest_configure_does_not_duplicate_paths(self) -> None:CODE
LOWconftest_test.py91 def test_pytest_configure_adds_all_required_paths(self) -> None:CODE
LOWconftest_test.py111 def test_environment_variables_are_set(self) -> None:CODE
LOWconftest_test.py128 def test_curr_dir_added_to_sys_path(self) -> None:CODE
LOWsetup_test.py33 def test_setuptools_is_invoked_with_correct_parameters(self) -> None:CODE
LOWmain_test.py44 def test_cloud_logging_is_set_up_when_emulator_mode_is_disabled(CODE
LOWmain_test.py72 def test_ndb_wsgi_middleware_properly_wraps_given_function(self) -> None:CODE
LOWmain_test.py122 def test_get_redirect_route_creates_correct_route(self) -> None:CODE
LOWmain_test.py139 def test_android_test_data_route_added_in_dev_mode(self) -> None:CODE
LOWmain_test.py154 def test_firebase_connection_not_established_when_in_pytest(self) -> None:CODE
LOWcore/schema_utils.py635 def is_valid_algebraic_expression(obj: str) -> bool:CODE
LOWcore/schema_utils.py648 def is_valid_numeric_expression(obj: str) -> bool:CODE
LOWcore/schema_utils.py700 def is_supported_audio_language_code(obj: str) -> bool:CODE
LOWcore/schema_utils.py712 def is_valid_audio_language_code(obj: str) -> bool:CODE
LOWcore/schema_utils.py769 def has_expected_subtitled_content_length(CODE
LOWcore/schema_utils.py786 def has_subtitled_html_non_empty(obj: objects.SubtitledHtml) -> bool:CODE
LOWcore/schema_utils.py800 def has_unique_subtitled_contents(obj: List[objects.SubtitledHtml]) -> bool:CODE
LOW⚡core/schema_utils_test.py733 def test_normalize_against_schema_raises_exception(self) -> None:CODE
LOW⚡core/schema_utils_test.py741 def test_is_nonempty_validator(self) -> None:CODE
LOW⚡core/schema_utils_test.py751 def test_is_at_most_validator(self) -> None:CODE
LOW⚡core/schema_utils_test.py761 def test_has_length_at_least_validator(self) -> None:CODE
LOW⚡core/schema_utils_test.py771 def test_get_raises_invalid_validator_id(self) -> None:CODE
LOW⚡core/schema_utils_test.py781 def test_is_valid_algebraic_expression_validator(self) -> None:CODE
LOWcore/schema_utils_test.py531 def test_schemas_are_correctly_validated(self) -> None:CODE
LOWcore/schema_utils_test.py793 def test_normalize_against_schema_raises_invalid_input_exception(CODE
LOWcore/schema_utils_test.py809 def test_is_valid_numeric_expression_validator(self) -> None:CODE
LOWcore/schema_utils_test.py820 def test_is_valid_math_equation_validator(self) -> None:CODE
LOWcore/schema_utils_test.py859 def test_is_supported_audio_language_code(self) -> None:CODE
LOWcore/schema_utils_test.py883 def test_global_validators_raise_exception_when_error_in_dict(self) -> None:CODE
LOWcore/schema_utils_test.py898 def test_global_validators_raise_exception_when_error_in_list(self) -> None:CODE
LOWcore/schema_utils_test.py913 def test_global_validators_pass_when_no_error(self) -> None:CODE
LOWcore/schema_utils_test.py942 def test_is_search_query_string(self) -> None:CODE
LOWcore/schema_utils_test.py955 def test_is_valid_username_string(self) -> None:CODE
LOWcore/schema_utils_test.py973 def test_has_expected_subtitled_content_length(self) -> None:CODE
LOWcore/schema_utils_test.py987 def test_has_unique_subtitled_contents(self) -> None:CODE
LOWcore/schema_utils_test.py1083 def test_unicode_or_none_schema(self) -> None:CODE
LOWcore/schema_utils_test.py1095 def test_list_schema_with_len(self) -> None:CODE
LOWcore/schema_utils_test.py1151 def test_schema_key_post_normalizers(self) -> None:CODE
LOWcore/schema_utils_test.py1172 def test_normalize_against_schema_for_bytes_unicode_works_fine(CODE
LOWcore/schema_utils_test.py1308 def test_dict_with_variable_key_schema(self) -> None:CODE
LOWcore/schema_utils_test.py1361 def test_object_dict_schema_with_validation_method_key(self) -> None:CODE
LOWcore/schema_utils_test.py1405 def test_normalizer_get_raises_exception_for_invalid_id(self) -> None:CODE
LOWcore/schema_utils_test.py1421 def test_normalizer_sanitize_url(self) -> None:CODE
LOWcore/schema_utils_test.py1469 def test_weak_multiple_schema(self) -> None:CODE
LOWcore/schema_utils_test.py1494 def test_object_dict_schema_with_object_class_key(self) -> None:CODE
LOWcore/schema_utils_test.py1509def validation_method_for_testing(obj: Dict[str, str]) -> Dict[str, str]:CODE
LOW⚡core/utils_test.py208 def test_generate_random_string(self) -> None:CODE
LOW⚡core/utils_test.py214 def test_convert_data_url_to_binary_with_incorrect_prefix(self) -> None:CODE
LOW⚡core/utils_test.py220 def test_get_thumbnail_icon_url_for_category(self) -> None:CODE
LOW⚡core/utils_test.py330 def test_datetime_conversion_to_string_returns_correct_format(self) -> None:CODE
LOW⚡core/utils_test.py337 def test_string_to_datetime_conversion_returns_correct_datetime(CODE
LOW⚡core/utils_test.py347 def test_create_string_from_largest_unit_in_timedelta_raises_for_zero_diff(CODE
LOW⚡core/utils_test.py687 def test_get_exploration_components_from_dir_with_no_yaml_file(CODE
LOW⚡core/utils_test.py697 def test_get_asset_dir_prefix_with_prod_mode(self) -> None:CODE
LOW⚡core/utils_test.py705 def test_get_supported_audio_language_description_with_invalid_code(CODE
LOW⚡core/utils_test.py757 def test_snake_case_to_camel_case(self) -> None:CODE
LOW⚡core/utils_test.py765 def _assert_valid_thumbnail_filename(CODE
LOW⚡core/utils_test.py774 def test_require_valid_thumbnail_filename(self) -> None:CODE
LOW⚡core/utils_test.py840 def test_get_time_in_millisecs(self) -> None:CODE
11870 more matches not shown…
Over-Commented Block4298 hits · 4195 pts
SeverityFileLineSnippetContext
LOWconftest.py1# Copyright 2025 The Oppia Authors. All Rights Reserved.COMMENT
LOWpytest.ini41# Uncomment the options below to enable parallel test execution across CPU cores.COMMENT
LOWrequirements.txt1# Developers: Please do not modify this auto-generated file. IfCOMMENT
LOWrequirements.txt441firebase-admin==6.9.0 \COMMENT
LOWrequirements.txt461 # google-cloud-coreCOMMENT
LOWrequirements.txt481google-api-python-client==2.198.0 \COMMENT
LOWrequirements.txt501 # google-cloud-bigquery-storageCOMMENT
LOWrequirements.txt561 # google-cloud-bigtableCOMMENT
LOWrequirements.txt701 --hash=sha256:53a062ff3c32552fbd62c11fe23768b78e4ddf0494d5e5fd97d3f4689c75fbbd \COMMENT
LOWrequirements.txt781 # google-cloud-monitoringCOMMENT
LOWrequirements.txt1141 # faiss-cpuCOMMENT
LOWrequirements.txt1381 # viaCOMMENT
LOWrequirements.txt1421 # google-cloud-aiplatformCOMMENT
LOWrequirements.txt1501 # viaCOMMENT
LOWrequirements.txt2501# WARNING: The following packages were not pinned, but pip requires them to beCOMMENT
LOWmypy_imports.py1# coding: utf-8COMMENT
LOWmypy_imports_test.py1# coding: utf-8COMMENT
LOWapp_dev.yaml181 PYTHONHTTPSVERIFY: 1COMMENT
LOWsetup.py1# Copyright 2021 The Oppia Authors. All Rights Reserved.COMMENT
LOWconftest_test.py1# coding: utf-8COMMENT
LOW.lighthouserc.js1// Copyright 2020 The Oppia Authors. All Rights Reserved.COMMENT
LOWpuppeteer-login-script.js1// Copyright 2014 The Oppia Authors. All Rights Reserved.COMMENT
LOWsetup_test.py1# Copyright 2022 The Oppia Authors. All Rights Reserved.COMMENT
LOWmain_test.py1# Copyright 2014 The Oppia Authors. All Rights Reserved.COMMENT
LOWmain.py1# Copyright 2014 The Oppia Authors. All Rights Reserved.COMMENT
LOW.lighthouserc-desktop.js1// Copyright 2020 The Oppia Authors. All Rights Reserved.COMMENT
LOW.lighthouserc-base.js1// Copyright 2020 The Oppia Authors. All Rights Reserved.COMMENT
LOWcore/schema_utils.py1# Copyright 2014 The Oppia Authors. All Rights Reserved.COMMENT
LOWcore/handler_schema_constants_test.py1# coding: utf-8COMMENT
LOWcore/handler_schema_constants.py1# coding: utf-8COMMENT
LOWcore/schema_utils_test.py1# coding: utf-8COMMENT
LOWcore/feature_flag_list.py1# coding: utf-8COMMENT
LOWcore/feature_flag_list.py121#COMMENT
LOWcore/utils_test.py1# coding: utf-8COMMENT
LOWcore/android_validation_constants_test.py1# Copyright 2020 The Oppia Authors. All Rights Reserved.COMMENT
LOWcore/constants.py1# coding: utf-8COMMENT
LOWcore/constants.py141 # Here we use type Any because the return value here refers to the `value`COMMENT
LOWcore/constants_test.py1# Copyright 2017 The Oppia Authors. All Rights Reserved.COMMENT
LOWcore/feconf.py1# coding: utf-8COMMENT
LOWcore/feconf.py301# incompatible changes are made to the stats blob schema in the data store,COMMENT
LOWcore/feconf.py601 'gcp': 'Google Cloud Translate',COMMENT
LOWcore/feconf.py621# The default preference for Contributor Dashboard reviewer notificationCOMMENT
LOWcore/feconf.py821COMMENT
LOWcore/feconf.py1201# Number of unresolved answers to be displayed in the dashboard for eachCOMMENT
LOWcore/feconf.py1461COMMENT
LOWcore/feconf_test.py1# coding: utf-8COMMENT
LOWcore/utils.py1# Copyright 2014 The Oppia Authors. All Rights Reserved.COMMENT
LOWcore/feature_flag_list_test.py1# coding: utf-8COMMENT
LOWcore/android_validation_constants.py1# Copyright 2020 The Oppia Authors. All Rights Reserved.COMMENT
LOWcore/platform/models_test.py1# coding: utf-8COMMENT
LOWcore/platform/models.py1# coding: utf-8COMMENT
LOWcore/platform/taskqueue/cloud_tasks_emulator.py1# coding: utf-8COMMENT
LOW…re/platform/taskqueue/cloud_taskqueue_services_test.py1# coding: utf-8COMMENT
LOWcore/platform/taskqueue/cloud_tasks_emulator_test.py1# coding: utf-8COMMENT
LOW…platform/taskqueue/dev_mode_taskqueue_services_test.py1# coding: utf-8COMMENT
LOWcore/platform/taskqueue/dev_mode_taskqueue_services.py1# coding: utf-8COMMENT
LOWcore/platform/taskqueue/cloud_taskqueue_services.py1# coding: utf-8COMMENT
LOWcore/platform/app_identity/gae_app_identity_services.py1# coding: utf-8COMMENT
LOW…latform/app_identity/gae_app_identity_services_test.py1# coding: utf-8COMMENT
LOWcore/platform/cache/redis_cache_services_test.py1# coding: utf-8COMMENT
4238 more matches not shown…
Docstring Block Structure430 hits · 1962 pts
SeverityFileLineSnippetContext
HIGHcore/schema_utils.py100Validate the given object using the schema, normalizing if necessary. Args: obj: *. The object to validate STRING
HIGHcore/schema_utils.py374Returns the normalizer method corresponding to the specified normalizer_id. Args: normalizeSTRING
HIGHcore/schema_utils.py396Takes a string representing a URL and sanitizes it. Args: obj: str. A string representing a URL. STRING
HIGHcore/schema_utils.py454Returns the validator method corresponding to the specified validator_id. Args: validator_iSTRING
HIGHcore/schema_utils.py822Checks if given audio file is a valid audio file. Args: obj: str. The raw audio file to validate. STRING
HIGHcore/schema_utils_test.py1510Method to test 'validation_method' key of schema. Args: obj: dict. Dictionary form of the argument. ReSTRING
HIGHcore/constants.py88Open file and return its contents. This needs to be used for files that are loaded by the Python code directly, likeSTRING
HIGHcore/utils.py85Create or return the singleton instance of the class. Args: *args: list(*). Positional arguments foSTRING
HIGHcore/utils.py187Gets the (yaml, assets) from the contents of an exploration data dir. Args: dir_path: str. A full path to tSTRING
HIGHcore/utils.py286Gets the dict representation of a YAML string. Args: yaml_str: str. Yaml string for conversion into dict. STRING
HIGHcore/utils.py385Converts a PNG or WEBP base64 data URL to a PNG binary data. Args: image_data_url: str. A string that is toSTRING
HIGHcore/utils.py411Converts a PNG or WEBP image string (represented by 'content') to a data URL. Args: content: str. PNG oSTRING
HIGHcore/utils.py493Set or replace a query parameter, and return the modified URL. Args: url: str. URL string which contains thSTRING
HIGHcore/utils.py542Convert a string to a SHA1 hash. Args: input_string: str. Input string for conversion to hash. max_STRING
HIGHcore/utils.py723Given the timedelta object, find the largest nonzero time unit and return that value, along with the time unit, as aSTRING
HIGHcore/utils.py1179Returns the language description for the given language code. Args: language_code: str. The language code fSTRING
HIGHcore/platform/models.py90Imports and returns the storage modules listed in model_names. Args: model_names: list(Names). ListSTRING
HIGHcore/platform/translate/gcp_translate_services.py57Queries GCP Cloud Translation v2 over HTTPS using format=html. Args: source_language_code: str. ISOSTRING
HIGHcore/platform/translate/cloud_translate_emulator.py72Returns the saved expected response for a given input. If no response exists for the given input, returns a defaSTRING
HIGHcore/platform/translate/dev_mode_translate_services.py36Translates text into the target language. For more information on ISO 639-1 see: https://www.w3schools.com/STRING
HIGHcore/platform/translate/cloud_translate_services.py45Translates text into the target language. This method uses ISO 639-1 compliant language codes to specify languages.STRING
HIGHcore/platform/auth/firebase_auth_services_test.py194Adds user to storage if new, otherwise raises an error. Args: uid: str|None. The unique Firebase acSTRING
HIGHcore/platform/auth/firebase_auth_services_test.py237Deletes the users identified by the specified user ids. Deleting a non-existing user does not generate an errorSTRING
HIGHcore/platform/auth/firebase_auth_services_test.py267Returns user with given ID if found, otherwise raises an error. Args: uid: str. The Firebase accounSTRING
HIGHcore/platform/auth/firebase_auth_services_test.py286Returns user with given ID if found, otherwise raises an error. Args: identifiers: list(firebase_auSTRING
HIGHcore/platform/auth/firebase_auth_services_test.py311Returns user with given email if found, otherwise raises an error. Args: email: str. The email addrSTRING
HIGHcore/platform/auth/firebase_auth_services_test.py353Retrieves a page of user accounts from a Firebase project. The `page_token` argument governs the starting pointSTRING
HIGHcore/platform/auth/firebase_auth_services_test.py440Updates the user in storage if found, otherwise raises an error. If any of these properties are omitted, then tSTRING
HIGHcore/platform/auth/firebase_auth_services.py173Authenticates the request and returns claims about its authorizer. Args: request: webapp2.Request. The HTTPSTRING
HIGHcore/platform/auth/firebase_auth_services.py593Returns claims from the session cookie, or None if invalid. Args: cookie: str|None. The session cookie to eSTRING
HIGH…e/platform/bulk_email/mailchimp_bulk_email_services.py40Returns Mailchimp subscriber hash from email. Args: email: str. The email of the user. Returns: STRING
HIGH…e/platform/bulk_email/mailchimp_bulk_email_services.py102Creates a new user in the mailchimp database and handles the case where the user was permanently deleted from the daSTRING
HIGH…e/platform/bulk_email/mailchimp_bulk_email_services.py192Subscribes/unsubscribes an existing user or creates a new user with correct status in the mailchimp DB. NOTE: CSTRING
HIGH…tform/bulk_email/mailchimp_bulk_email_services_test.py103Mocks the get function of the mailchimp api. Args: _list_id: str. List Id oSTRING
HIGHcore/platform/datastore/cloud_datastore_services.py118Fetches models corresponding to a sequence of keys. Args: keys: list(str). The keys to look up. ReturnSTRING
HIGHcore/platform/datastore/cloud_datastore_services.py288Fetches the entities from the datastore corresponding to the given ids and models. Args: ids_and_modelsSTRING
HIGH…re/platform/transactions/cloud_transaction_services.py60Runs a decorated function in a transaction. Either all of the operations in the transaction are applied, or none of STRING
HIGH…rm/speech_synthesis/azure_speech_synthesis_services.py351Regenerates speech (Oppia's voiceovers) from the provided text. This method uses Azure Text-to-Speech to synthesizeSTRING
HIGHcore/platform/email/mailgun_email_services.py57Send POST HTTP request to mailgun api. This method is adopted from the requests library's post method. Args: STRING
HIGHcore/tests/test_utils.py176Returns filepath using the filename. Different files are present in different subdirectories in the rootdir. So, we STRING
HIGHcore/tests/test_utils.py212Mock for load_template function. This mock is required for backend tests since the compiled output may not be availaSTRING
HIGHcore/tests/test_utils.py413Mocks get_platform_parameter_value function to return the value of the platform parameter if the parameter is prSTRING
HIGHcore/tests/test_utils.py1118Updates a param dict using the given list of param_changes. Note that the list of parameter changes is ordered.STRING
HIGHcore/tests/test_utils.py1307Swap obj.attr with a CallCounter instance. Args: obj: *. The Python object whose attribute you wantSTRING
HIGHcore/tests/test_utils.py1347Swap an object's function value within the context of a 'with' statement. The object can be anything that supporSTRING
HIGHcore/tests/test_utils.py1559Asserts that the message in a raised exception matches a regex. This is a wrapper around assertRaisesRegex in unSTRING
HIGHcore/tests/test_utils.py2540Gets the user ID corresponding to the given email. Args: email: str. A valid email stored in the ApSTRING
HIGHcore/tests/test_utils.py2724Get a response, transformed to a Python object and checks for a list of status codes. Args: STRING
HIGHcore/tests/test_utils.py3332Saves a new strictly-validated exploration with a sequence of states. Args: exploration_id: str. ThSTRING
HIGHcore/tests/test_utils.py3649Creates an Oppia Story and saves it. NOTE: Callers are responsible for ensuring that the 'correspondingSTRING
HIGHcore/tests/gae_suite.py69Creates test suites. If test_target is None, runs all tests. Args: test_target: str. The name of the test sSTRING
HIGHcore/storage/statistics/gae_models.py1597Generates a unique id for the playthrough of the form '[exp_id].[random hash of 16 chars]'. Args: STRING
HIGHcore/storage/base_model/gae_models.py339Gets an entity by id. Args: entity_id: str. The entity id. strict: bool. Whether to faiSTRING
HIGHcore/storage/base_model/gae_models.py511Gets a new id for an entity, based on its name. The returned id is guaranteed to be unique among all instances STRING
HIGHcore/storage/base_model/gae_models.py1016Evaluates and executes commit. Main function for all commit types. Args: committer_id: str. The useSTRING
HIGHcore/storage/base_model/gae_models.py1503Gets model instance representing the given version. The snapshot content is used to populate this model instancSTRING
HIGHcore/storage/base_model/gae_models.py1611Gets model instances for each version specified in version_numbers. Args: entity_id: str. ID of theSTRING
HIGHcore/storage/base_model/gae_models.py1732Gets a list of dicts, each representing a model snapshot. One dict is returned for each version number in the lSTRING
HIGHcore/storage/base_model/gae_models.py2233Returns a query object filtered by the given parameters. Args: author_id: Optional[str]. If provideSTRING
HIGHcore/storage/cloud_task/gae_models.py41Generates an ID for a new CloudTaskRunModel. Args: model_class: CloudTaskRunModel. The class for which the STRING
370 more matches not shown…
Cross-File Repetition269 hits · 1345 pts
SeverityFileLineSnippetContext
HIGHcore/platform/auth/firebase_auth_services.py0deletes all associations that refer to the user outside of oppia. args: user_id: str. the unique id of the user whose asSTRING
HIGHcore/tests/test_utils.py0deletes all associations that refer to the user outside of oppia. args: user_id: str. the unique id of the user whose asSTRING
HIGHcore/domain/auth_services.py0deletes all associations that refer to the user outside of oppia. args: user_id: str. the unique id of the user whose asSTRING
HIGHcore/platform/auth/firebase_auth_services.py0returns true if and only if we have successfully verified that all external associations have been deleted. args: user_iSTRING
HIGHcore/tests/test_utils.py0returns true if and only if we have successfully verified that all external associations have been deleted. args: user_iSTRING
HIGHcore/domain/auth_services.py0returns true if and only if we have successfully verified that all external associations have been deleted. args: user_iSTRING
HIGHcore/platform/auth/firebase_auth_services.py0returns the user id associated with the given auth id. args: auth_id: str. the auth id. include_deleted: bool. whether tSTRING
HIGHcore/tests/test_utils.py0returns the user id associated with the given auth id. args: auth_id: str. the auth id. include_deleted: bool. whether tSTRING
HIGHcore/domain/auth_services.py0returns the user id associated with the given auth id. args: auth_id: str. the auth id. include_deleted: bool. whether tSTRING
HIGHcore/platform/auth/firebase_auth_services.py0returns the user ids associated with the given auth ids. args: auth_ids: list(str). the auth ids. returns: list(str|noneSTRING
HIGHcore/tests/test_utils.py0returns the user ids associated with the given auth ids. args: auth_ids: list(str). the auth ids. returns: list(str|noneSTRING
HIGHcore/domain/auth_services.py0returns the user ids associated with the given auth ids. args: auth_ids: list(str). the auth ids. returns: list(str|noneSTRING
HIGHcore/storage/statistics/gae_models.py0model doesn't contain any data directly corresponding to a user.STRING
HIGHcore/storage/opportunity/gae_models.py0model doesn't contain any data directly corresponding to a user.STRING
HIGHcore/storage/beam_job/gae_models.py0model doesn't contain any data directly corresponding to a user.STRING
HIGHcore/storage/base_model/gae_models.py0model doesn't contain any data directly corresponding to a user.STRING
HIGHcore/storage/certificate_assessment/gae_models.py0model doesn't contain any data directly corresponding to a user.STRING
HIGHcore/storage/cloud_task/gae_models.py0model doesn't contain any data directly corresponding to a user.STRING
HIGHcore/storage/collection/gae_models.py0model doesn't contain any data directly corresponding to a user.STRING
HIGHcore/storage/skill/gae_models.py0model doesn't contain any data directly corresponding to a user.STRING
HIGHcore/storage/suggestion/gae_models.py0model doesn't contain any data directly corresponding to a user.STRING
HIGHcore/storage/translation/gae_models.py0model doesn't contain any data directly corresponding to a user.STRING
HIGHcore/storage/config/gae_models.py0model doesn't contain any data directly corresponding to a user.STRING
HIGHcore/storage/auth/gae_models.py0model doesn't contain any data directly corresponding to a user.STRING
HIGHcore/storage/activity/gae_models.py0model doesn't contain any data directly corresponding to a user.STRING
HIGHcore/storage/app_feedback_report/gae_models.py0model doesn't contain any data directly corresponding to a user.STRING
HIGHcore/storage/classroom/gae_models.py0model doesn't contain any data directly corresponding to a user.STRING
HIGHcore/storage/user/gae_models.py0model doesn't contain any data directly corresponding to a user.STRING
HIGHcore/storage/topic/gae_models.py0model doesn't contain any data directly corresponding to a user.STRING
HIGHcore/storage/exploration/gae_models.py0model doesn't contain any data directly corresponding to a user.STRING
HIGHcore/storage/feedback/gae_models.py0model doesn't contain any data directly corresponding to a user.STRING
HIGHcore/storage/recommendations/gae_models.py0model doesn't contain any data directly corresponding to a user.STRING
HIGHcore/storage/question/gae_models.py0model doesn't contain any data directly corresponding to a user.STRING
HIGHcore/storage/job/gae_models.py0model doesn't contain any data directly corresponding to a user.STRING
HIGHcore/storage/blog_statistics/gae_models.py0model doesn't contain any data directly corresponding to a user.STRING
HIGHcore/storage/subtopic/gae_models.py0model doesn't contain any data directly corresponding to a user.STRING
HIGHcore/storage/voiceover/gae_models.py0model doesn't contain any data directly corresponding to a user.STRING
HIGHcore/storage/story/gae_models.py0model doesn't contain any data directly corresponding to a user.STRING
HIGHcore/storage/base_model/gae_models.py0check whether blogpostrightsmodel references to the given user. args: user_id: str. the id of the user whose data shouldSTRING
HIGHcore/storage/collection/gae_models.py0check whether blogpostrightsmodel references to the given user. args: user_id: str. the id of the user whose data shouldSTRING
HIGHcore/storage/suggestion/gae_models.py0check whether blogpostrightsmodel references to the given user. args: user_id: str. the id of the user whose data shouldSTRING
HIGHcore/storage/improvements/gae_models.py0check whether blogpostrightsmodel references to the given user. args: user_id: str. the id of the user whose data shouldSTRING
HIGHcore/storage/user/gae_models.py0check whether blogpostrightsmodel references to the given user. args: user_id: str. the id of the user whose data shouldSTRING
HIGHcore/storage/topic/gae_models.py0check whether blogpostrightsmodel references to the given user. args: user_id: str. the id of the user whose data shouldSTRING
HIGHcore/storage/exploration/gae_models.py0check whether blogpostrightsmodel references to the given user. args: user_id: str. the id of the user whose data shouldSTRING
HIGHcore/storage/blog/gae_models.py0check whether blogpostrightsmodel references to the given user. args: user_id: str. the id of the user whose data shouldSTRING
HIGHcore/storage/collection/gae_models.py0the history of commits is not relevant for the purposes of takeout since commits don't contain relevant data correspondiSTRING
HIGHcore/storage/skill/gae_models.py0the history of commits is not relevant for the purposes of takeout since commits don't contain relevant data correspondiSTRING
HIGHcore/storage/topic/gae_models.py0the history of commits is not relevant for the purposes of takeout since commits don't contain relevant data correspondiSTRING
HIGHcore/storage/exploration/gae_models.py0the history of commits is not relevant for the purposes of takeout since commits don't contain relevant data correspondiSTRING
HIGHcore/storage/question/gae_models.py0the history of commits is not relevant for the purposes of takeout since commits don't contain relevant data correspondiSTRING
HIGHcore/storage/subtopic/gae_models.py0the history of commits is not relevant for the purposes of takeout since commits don't contain relevant data correspondiSTRING
HIGHcore/storage/story/gae_models.py0the history of commits is not relevant for the purposes of takeout since commits don't contain relevant data correspondiSTRING
HIGHcore/storage/collection/gae_models.py0model contains data corresponding to a user, but this isn't exported because the history of commits isn't deemed as usefSTRING
HIGHcore/storage/skill/gae_models.py0model contains data corresponding to a user, but this isn't exported because the history of commits isn't deemed as usefSTRING
HIGHcore/storage/topic/gae_models.py0model contains data corresponding to a user, but this isn't exported because the history of commits isn't deemed as usefSTRING
HIGHcore/storage/exploration/gae_models.py0model contains data corresponding to a user, but this isn't exported because the history of commits isn't deemed as usefSTRING
HIGHcore/storage/question/gae_models.py0model contains data corresponding to a user, but this isn't exported because the history of commits isn't deemed as usefSTRING
HIGHcore/storage/subtopic/gae_models.py0model contains data corresponding to a user, but this isn't exported because the history of commits isn't deemed as usefSTRING
HIGHcore/storage/story/gae_models.py0model contains data corresponding to a user, but this isn't exported because the history of commits isn't deemed as usefSTRING
209 more matches not shown…
Unused Imports1072 hits · 934 pts
SeverityFileLineSnippetContext
LOWconftest.py17CODE
LOWmypy_imports.py24CODE
LOWmypy_imports.py26CODE
LOWmypy_imports.py29CODE
LOWmypy_imports.py30CODE
LOWmypy_imports.py33CODE
LOWmypy_imports.py34CODE
LOWmypy_imports.py37CODE
LOWmypy_imports.py38CODE
LOWmypy_imports.py39CODE
LOWmypy_imports.py42CODE
LOWmypy_imports.py43CODE
LOWmypy_imports.py46CODE
LOWmypy_imports.py49CODE
LOWmypy_imports.py52CODE
LOWmypy_imports.py53CODE
LOWmypy_imports.py56CODE
LOWmypy_imports.py57CODE
LOWmypy_imports.py58CODE
LOWmypy_imports.py59CODE
LOWmypy_imports.py60CODE
LOWmypy_imports.py61CODE
LOWmypy_imports.py62CODE
LOWmypy_imports.py65CODE
LOWmypy_imports.py66CODE
LOWmypy_imports.py67CODE
LOWmypy_imports.py68CODE
LOWmypy_imports.py69CODE
LOWmypy_imports.py70CODE
LOWmypy_imports.py71CODE
LOWmypy_imports.py72CODE
LOWmypy_imports.py73CODE
LOWmypy_imports.py74CODE
LOWmypy_imports.py75CODE
LOWmypy_imports.py76CODE
LOWmypy_imports.py77CODE
LOWmypy_imports.py78CODE
LOWmypy_imports.py79CODE
LOWmypy_imports.py80CODE
LOWmypy_imports.py81CODE
LOWmypy_imports.py82CODE
LOWmypy_imports.py83CODE
LOWmypy_imports.py84CODE
LOWmypy_imports.py85CODE
LOWmypy_imports.py86CODE
LOWmypy_imports.py87CODE
LOWmypy_imports_test.py19CODE
LOWmypy_imports_test.py21CODE
LOWsetup.py21CODE
LOWconftest_test.py19CODE
LOWsetup_test.py17CODE
LOWmain_test.py17CODE
LOWmain.py17CODE
LOWcore/schema_utils.py27CODE
LOWcore/handler_schema_constants_test.py19CODE
LOWcore/handler_schema_constants_test.py21CODE
LOWcore/handler_schema_constants.py29CODE
LOWcore/schema_utils_test.py19CODE
LOWcore/feature_flag_list.py19CODE
LOWcore/utils_test.py19CODE
1012 more matches not shown…
Fake / Example Data499 hits · 431 pts
SeverityFileLineSnippetContext
LOWcore/schema_utils_test.py139 'placeholder': {CODE
LOWcore/schema_utils_test.py159 'placeholder': {CODE
LOWcore/platform/auth/firebase_auth_services_test.py1063 EMAIL = 'foo@bar.com'CODE
LOWcore/platform/auth/firebase_auth_services_test.py1679 EMAIL = 'user@example.com'CODE
LOWcore/tests/test_utils.py1892 CURRICULUM_ADMIN_EMAIL: Final = 'admin@example.com'CODE
LOWcore/tests/test_utils.py2003 'placeholder': {'value': 'Enter text here'},CODE
LOWcore/tests/test_utils.py4118 'placeholder': {CODE
LOWcore/tests/test_utils.py4122 extra_prefix='placeholder',CODE
LOWcore/tests/ci-test-suite-configs/acceptance.json324 "name": "super-admin/load-dummy-data-in-dev-mode",CODE
LOWcore/tests/ci-test-suite-configs/acceptance.json325 "module": "core/tests/puppeteer-acceptance-tests/specs/super-admin/load-dummy-data-in-dev-mode.spec.ts",CODE
LOWcore/tests/build_sources/extensions/CodeRepl.py51 'name': 'placeholder',CODE
LOW…tests/build_sources/extensions/DragAndDropSortInput.py60 'placeholder': 'Enter an option for the learner to drag'CODE
LOW…ght-acceptance-tests/utilities/user/logged-out-user.ts1375 return el && el.getAttribute('placeholder') === expected;CODE
LOW…eer-acceptance-tests/utilities/user/logged-out-user.ts6476 return el && el.getAttribute('placeholder') === expected;CODE
LOW…eer-acceptance-tests/utilities/user/logged-out-user.ts6899 return el && el.getAttribute('placeholder') === expected;CODE
LOW⚡core/tests/data/test_cases_for_rte.json43 "html_content": "<table border=\"1\"><tbody><tr><td><b>Lorem</b></td><td><b>ipsum</b></td></tr><tr><td>lorem</td><tdCODE
LOW⚡core/tests/data/test_cases_for_rte.json44 "expected_output": "<p><b>Lorem</b> <b>ipsum</b></p><p>lorem ipsum</p><p><br></p><p>lorem ipsum</p>",CODE
LOW⚡core/tests/data/test_cases_for_rte.json51 "html_content": "<blockquote><i>lorem ipsum</i><b><i>oi</i></b>lorem ipsum<br><i><b>lorem ipsum</b>lorem ipsum</i><sCODE
LOW⚡core/tests/data/test_cases_for_rte.json52 "expected_output": "<blockquote><p><i>lorem ipsum</i><b><i>oi</i></b>lorem ipsum<br><i><b>lorem ipsum</b>lorem ipsumCODE
LOWcore/tests/data/test_cases_for_rte.json111 "html_content": "<i><div><i><span>Hello </span>this is test </i><span>case </span><i>for migration testing</i></div>CODE
LOWcore/tests/data/test_cases_for_rte.json112 "expected_output": "<p><i>Hello this is test </i>case <i>for migration testing</i></p><p><oppia-noninteractive-imageCODE
LOWcore/tests/data/test_cases_for_rte.json131 "html_content": "<span><ol><li><p><span>lorem ipsum</span></p></li></ol></span>",CODE
LOWcore/tests/data/test_cases_for_rte.json132 "expected_output": "<ol><li><p>lorem ipsum</p></li></ol>",CODE
LOWcore/tests/data/test_cases_for_rte.json143 "html_content": "<table border=\"0\"><tbody><tr><td><p><br>lorem ipsum</p></td><td><p><br>testing done<br></p></td><CODE
LOWcore/tests/data/test_cases_for_rte.json144 "expected_output": "<p><br>lorem ipsum <br>testing done<br></p>",CODE
LOW⚡core/tests/data/test_cases_for_rte.json155 "html_content": "<span><div><span>Hello </span><span></span></div><oppia-noninteractive-collapsible content-with-valCODE
LOW⚡core/tests/data/test_cases_for_rte.json156 "expected_output": "<p>Hello </p><p><oppia-noninteractive-collapsible content-with-value=\"&amp;quot;&amp;lt;p&amp;gCODE
LOW⚡core/tests/data/test_cases_for_rte.json159 "html_content": "Hello <div><br></div><div>this is </div><div><br></div><div>test </div><div><br></div><div>case forCODE
LOW⚡core/tests/data/test_cases_for_rte.json160 "expected_output": "<p>Hello </p><p><br></p><p>this is </p><p><br></p><p>test </p><p><br></p><p>case for migration tCODE
LOWcore/tests/data/test_cases_for_rte.json211 "html_content": "<span><b>Hello </b></span><div><b><span>this is test case</span></b></div><div><b><br></b></div><diCODE
LOWcore/tests/data/test_cases_for_rte.json212 "expected_output": "<p><b>Hello </b></p><p><b>this is test case</b></p><p><b><br></b></p><p><oppia-noninteractive-taCODE
LOWcore/tests/data/test_cases_for_rte.json235 "html_content": "<table border=\"1\"><tbody><tr><td>Lorem ipsum</td><td>Lorem ipsum</td><td>Lorem ipsum</td></tr><trCODE
LOWcore/tests/data/test_cases_for_rte.json236 "expected_output": "<p>Lorem ipsum Lorem ipsum Lorem ipsum</p><p>Lorem ipsum Lorem ipsum Lorem ipsum</p><p>Lorem ipsCODE
LOWcore/storage/collection/gae_models_test.py363 'fake_user'CODE
LOWcore/storage/auth/gae_models_test.py127 email='user@example.com',CODE
LOW⚡core/storage/user/gae_models_test.py290 'Entity for class UserSettingsModel with id fake_user not found',CODE
LOW⚡core/storage/user/gae_models_test.py292 user_models.UserSettingsModel.export_data('fake_user')CODE
LOW⚡core/storage/user/gae_models_test.py298 'email': 'user@example.com',CODE
LOW⚡core/storage/user/gae_models_test.py1988 'fake_user'CODE
LOWcore/storage/user/gae_models_test.py45 USER_1_EMAIL: Final = 'user@example.com'CODE
LOWcore/storage/user/gae_models_test.py54 PROFILE_1_EMAIL: Final = 'user@example.com'CODE
LOWcore/storage/user/gae_models_test.py2745 user_data = user_models.UserSkillMasteryModel.export_data('fake_user')CODE
LOW⚡core/storage/exploration/gae_models_test.py377 'fake_user'CODE
LOWcore/storage/feedback/gae_models_test.py135 'fake_user'CODE
LOW…ed-choices-field/filtered-choices-field.component.html2 <mat-select [placeholder]="placeholder"CODE
LOW…i-selection-field/multi-selection-field.component.html13 <input [placeholder]="placeholder"CODE
LOW…on-directives/create-activity-button.component.spec.ts92 _email: 'tester@example.org',CODE
LOW…on-directives/create-activity-button.component.spec.ts107 getEmail: () => 'tester@example.org',CODE
LOW…on-directives/create-activity-button.component.spec.ts121 _email: 'tester@example.org',CODE
LOW…on-directives/create-activity-button.component.spec.ts136 getEmail: () => 'tester@example.org',CODE
LOW…ives/question-player/question-player.component.spec.ts84 'tester@example.org',CODE
LOW…contribution-opportunities-backend-api.service.spec.ts165 email: 'user@example.com',CODE
LOW…ashboard-page/learner-dashboard-page.component.spec.ts250 _email: 'tester@example.org',CODE
LOW…ashboard-page/learner-dashboard-page.component.spec.ts265 getEmail: () => 'tester@example.org',CODE
LOW…plates/pages/splash-page/splash-page.component.spec.ts210 email: 'test@test.com',CODE
LOW…plates/pages/splash-page/splash-page.component.spec.ts231 email: 'test@test.com',CODE
LOW…g-dashboard-page/blog-dashboard-page.component.spec.ts207 email: 'test@test.com',CODE
LOW…ge/blog-post-editor/blog-post-editor.component.spec.ts200 email: 'test@test.com',CODE
LOW…-page/templates/delete-account-modal.component.spec.ts82 email: 'test@test.com',CODE
LOW…-page/templates/delete-account-modal.component.spec.ts125 email: 'test@test.com',CODE
439 more matches not shown…
Self-Referential Comments135 hits · 382 pts
SeverityFileLineSnippetContext
MEDIUMconftest_test.py35 # Create a mock config object.COMMENT
MEDIUMconftest_test.py61 # Create a mock config object.COMMENT
MEDIUMconftest_test.py93 # Create a mock config object.COMMENT
MEDIUMcore/utils_test.py1196 # Create a test class using SingletonMeta.COMMENT
MEDIUMcore/platform/storage/cloud_storage_emulator.py260 # Create a pipeline that is then executed at one.COMMENT
MEDIUMcore/storage/suggestion/gae_models_test.py2538 # Create a translation suggestion that has a different language code.COMMENT
MEDIUMcore/storage/auth/gae_models_test.py121 # Create the model instance to be fetched usingCOMMENT
MEDIUMcore/jobs/batch_jobs/voiceover_synthesis_jobs_test.py312 # Create a non-curated exploration.COMMENT
MEDIUM…obs/batch_jobs/exploration_voiceover_sync_jobs_test.py454 # Creating the first curated exploration.COMMENT
MEDIUM…obs/batch_jobs/exploration_voiceover_sync_jobs_test.py608 # Creating the second curated exploration.COMMENT
MEDIUMcore/jobs/batch_jobs/exp_migration_jobs_test.py1216 # Create a new, default exploration whose snapshots should not beCOMMENT
MEDIUMcore/jobs/batch_jobs/exp_migration_jobs_test.py1683 # Create a new, default exploration that should not be affected by theCOMMENT
MEDIUM…s/synthesize_voiceover_by_language_accent_jobs_test.py312 # Create a non-curated exploration.COMMENT
MEDIUM…s/batch_jobs/suggestion_stats_computation_jobs_test.py294 # Define a fixed datetime.COMMENT
MEDIUM…s/batch_jobs/suggestion_stats_computation_jobs_test.py791 # Define a fixed datetime.COMMENT
MEDIUM⚡…jobs/batch_jobs/exp_version_history_computation_job.py926 # The following block is used to prevent MyPy errors.COMMENT
MEDIUM…tch_jobs/translation_opportunity_backfill_jobs_test.py527 # Create a new exploration 'exp_2' with non-empty content.COMMENT
MEDIUM…tch_jobs/translation_opportunity_backfill_jobs_test.py658 # Create a new exploration 'exp_3'.COMMENT
MEDIUM…/jobs/batch_jobs/cloud_task_run_migration_jobs_test.py57 # Create a recent model in RUNNING state (should not be updated).COMMENT
MEDIUM…/jobs/batch_jobs/cloud_task_run_migration_jobs_test.py73 # Create a model in SUCCEEDED state (should not be updated).COMMENT
MEDIUM…/jobs/batch_jobs/cloud_task_run_migration_jobs_test.py272 # Create a non-stale model that should not be updated.COMMENT
MEDIUM…/jobs/batch_jobs/cloud_task_run_migration_jobs_test.py590 # Create a stale model in RUNNING state (should be logged but not updated).COMMENT
MEDIUMcore/controllers/base_test.py168 # Create a user to test redirect behavior for the learner.COMMENT
MEDIUMcore/controllers/base_test.py184 # Create a new user but do not submit their registration form.COMMENT
MEDIUMcore/controllers/base_test.py926 # Create a token and check that it expires correctly.COMMENT
MEDIUMcore/controllers/feedback_test.py358 # Create a thread for others to post to.COMMENT
MEDIUMcore/controllers/feedback_test.py473 # Create an exploration.COMMENT
MEDIUMcore/controllers/blog_dashboard_test.py129 # Create a blog post to trigger author model creation.COMMENT
MEDIUMcore/controllers/learner_group_test.py239 # Create a learner group.COMMENT
MEDIUMcore/controllers/learner_group_test.py1570 # Create a learner group.COMMENT
MEDIUMcore/controllers/suggestion_test.py4309 # Create a new exploration and linked story.COMMENT
MEDIUMcore/controllers/suggestion_test.py4329 # Create a translation suggestion for the Continue button text.COMMENT
MEDIUMcore/controllers/suggestion_test.py4419 # Create a new exploration, link a new story, and create a correspondingCOMMENT
MEDIUMcore/controllers/admin_test.py3098 # Create a skill with description 'Dummy Skill 1' but with a differentCOMMENT
MEDIUMcore/controllers/classroom_test.py278 # Create a prerequisite topic for a classroom and delete its summary.COMMENT
MEDIUMcore/controllers/classroom_test.py344 # Create a published classroom with a url_fragment matching 'math'.COMMENT
MEDIUMcore/controllers/classroom_test.py356 # Create an unpublished classroom with a url_fragment that does notCOMMENT
MEDIUMcore/controllers/classroom_test.py365 # Create a published classroom with a url_fragment that does not matchCOMMENT
MEDIUMcore/controllers/editor_test.py2479 # Create a random user.COMMENT
MEDIUM⚡core/controllers/editor_test.py665 # Create a simple exploration.STRING
MEDIUMcore/controllers/editor_test.py927 # Create a simple exploration.STRING
MEDIUMcore/controllers/editor_test.py958 # Create a simple exploration.STRING
MEDIUMcore/controllers/editor_test.py988 # Create a simple exploration.STRING
MEDIUMcore/controllers/cron_test.py388 # Create a translation suggestion so that the reviewer has somethingCOMMENT
MEDIUMcore/controllers/cron_test.py662 # Create a translation suggestion so that the reviewer has somethingCOMMENT
MEDIUMcore/controllers/android_test.py760 # Create a skill and two questions, linking each question to that skill.COMMENT
MEDIUMcore/controllers/android_test.py843 # Create a skill and three questions linked to that skill.COMMENT
MEDIUMcore/controllers/reader.py2105 # Create a new unique_progress_url_id.COMMENT
MEDIUMcore/controllers/reader.py2110 # Create a new model corresponding to the new progress id.COMMENT
MEDIUMcore/controllers/admin.py1265 # Create a default arc covering all nodes.COMMENT
MEDIUMcore/controllers/admin.py1743 # Create a default arc covering all nodes.COMMENT
MEDIUM⚡core/controllers/contributor_dashboard_test.py585 # Create a translation suggestion for exploration 0.COMMENT
MEDIUM⚡core/controllers/contributor_dashboard_test.py2203 # Create a topic.COMMENT
MEDIUMcore/controllers/contributor_dashboard_test.py399 # Create a new topic.COMMENT
MEDIUMcore/controllers/contributor_dashboard_test.py461 # Create a new topic.COMMENT
MEDIUMcore/controllers/contributor_dashboard_test.py619 # Create a translation suggestion in Hindi.COMMENT
MEDIUMcore/controllers/contributor_dashboard_test.py638 # Create a translation suggestion in Spanish.COMMENT
MEDIUMcore/controllers/contributor_dashboard_test.py704 # Create a translation suggestion in Hindi.COMMENT
MEDIUMcore/controllers/contributor_dashboard_test.py723 # Create a translation suggestion in Spanish.COMMENT
MEDIUMcore/controllers/contributor_dashboard_test.py824 # Create a translation suggestion in Hindi.COMMENT
75 more matches not shown…
Decorative Section Separators84 hits · 279 pts
SeverityFileLineSnippetContext
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts31 // ┌────────┬───────────────State1───────────────┬───────┐COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts33 // │ │ ┌──────┘ │ └──────┐ │ │COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts37 // │ └────────────────┐ │COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts39 // └───────────────────────►State4◄──────────────┘COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts402 // ┌───────────┐COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts404 // └────┬──────┘ │COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts406 // │ ┌───────────┐COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts408 // │ └┬──────────┘ │COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts410 // │ │ ┌───────────┐COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts412 // │ │ │ └───────────┘ │COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts414 // │ │ │ ┌───────────┐COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts415 // │ │ │ ┌────────┤ State8 ├──┐COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts416 // │ │ │ │ └───────────┘ │COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts418 // │ │ │ │ ┌───────────┐COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts419 // │ │ │ │ ┌─────────────┤ State7 ├──┐COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts420 // │ │ │ │ │ └───────────┘ │COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts422 // │ │ │ │ │ ┌───────────┐COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts424 // │ │ │ │ │ │ └─────┬─────┘COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts426 // │ │ │ │ │ │ ┌─────▼─────┐COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts428 // ▼ ▼ ▼ ▼ ▼ │ └─┬─────────┘COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts429 // ┌───────────┐ ◄─────────────────┘ │COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts431 // └─────┬─────┘◄───────────────────────┘COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts433 // ┌─────▼─────┐COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts435 // └───────────┘COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts958 // ┌──────────────┐COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts960 // └──┬────────┬──┴──────┐COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts964 // └──────┘ └──────┘ └──────┘.COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts1040 // ┌──────────────┬───────────────┐COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts1042 // └──┬────────┬──┴──────┐ │COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts1046 // └──────┘ └──────┘ └──────┘ └──────┘.COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts1140 // ┌──────────────┬───────────────┐COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts1142 // │ └──┬────────┬──┴──────┐ │COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts1146 // │ └──────┘ └──────┘ └──────┘ └──────┘COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts1147 // │ ┌──────┐COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts1148 // └─────────────►State5│COMMENT
MEDIUM⚡…components/graph-services/graph-layout.service.spec.ts1149 // └──────┘COMMENT
MEDIUM⚡core/domain/exp_domain_test.py815 # ┌────────────────┐COMMENT
MEDIUM⚡core/domain/exp_domain_test.py817 # └──┬───────────┬─┘COMMENT
MEDIUM⚡core/domain/exp_domain_test.py820 # ┌────────┴──┐ ┌─┴─────────┐COMMENT
MEDIUM⚡core/domain/exp_domain_test.py822 # └───────────┘ └─┬─────────┘COMMENT
MEDIUM⚡core/domain/exp_domain_test.py824 # ┌─────────────┴─┐COMMENT
MEDIUM⚡core/domain/exp_domain_test.py826 # └───────────────┘.COMMENT
MEDIUM⚡core/domain/exp_domain_test.py990 # ┌────────────────┐COMMENT
MEDIUM⚡core/domain/exp_domain_test.py992 # └──┬───────────┬─┘COMMENT
MEDIUM⚡core/domain/exp_domain_test.py995 # ┌────────┴──┐ ┌─┴─────────┐COMMENT
MEDIUM⚡core/domain/exp_domain_test.py997 # └────────┬──┘ └───────────┘COMMENT
MEDIUM⚡core/domain/exp_domain_test.py999 # ┌─┴─────────────┐COMMENT
MEDIUM⚡core/domain/exp_domain_test.py1001 # └───────────────┘.COMMENT
MEDIUM⚡core/domain/exp_domain_test.py1050 # ┌────────────────┐COMMENT
MEDIUM⚡core/domain/exp_domain_test.py1052 # └─┬─────┬──────┬─┘COMMENT
MEDIUM⚡core/domain/exp_domain_test.py1053 # ┌───────────┐ │ │ │ ┌────────────┐COMMENT
MEDIUM⚡core/domain/exp_domain_test.py1054 # │ A ├────┘ │ └─────┤ C │COMMENT
MEDIUM⚡core/domain/exp_domain_test.py1055 # └────┬──────┘ │ └─────┬──────┘COMMENT
MEDIUM⚡core/domain/exp_domain_test.py1056 # │ ┌────┴─────┐ │COMMENT
MEDIUM⚡core/domain/exp_domain_test.py1058 # │ └──┬───────┘ │COMMENT
MEDIUM⚡core/domain/exp_domain_test.py1059 # └─────────┐ │ │COMMENT
MEDIUM⚡core/domain/exp_domain_test.py1060 # ┌──────┴─────┴─┐ ┌─────────────┘COMMENT
MEDIUM⚡core/domain/exp_domain_test.py1062 # └─────────────┬┘ │COMMENT
MEDIUM⚡core/domain/exp_domain_test.py1064 # ┌──┴─────┴──┐COMMENT
MEDIUM⚡core/domain/exp_domain_test.py1066 # └───────────┘.COMMENT
24 more matches not shown…
Deep Nesting294 hits · 198 pts
SeverityFileLineSnippetContext
LOWcore/schema_utils.py94CODE
LOWcore/schema_utils_test.py352CODE
LOWcore/utils.py184CODE
LOWcore/platform/models.py89CODE
LOWcore/platform/models.py271CODE
LOWcore/platform/taskqueue/cloud_tasks_emulator.py117CODE
LOW…e/platform/bulk_email/mailchimp_bulk_email_services.py185CODE
LOWcore/platform/storage/cloud_storage_emulator.py42CODE
LOW…rm/speech_synthesis/azure_speech_synthesis_services.py346CODE
LOWcore/tests/test_utils.py261CODE
LOWcore/tests/test_utils.py2717CODE
LOWcore/storage/base_model/gae_models.py368CODE
LOWcore/storage/suggestion/gae_models.py677CODE
LOWcore/storage/suggestion/gae_models.py878CODE
LOWcore/storage/suggestion/gae_models.py1073CODE
LOWcore/storage/suggestion/gae_models.py2568CODE
LOWcore/storage/suggestion/gae_models.py2994CODE
LOWcore/storage/suggestion/gae_models.py3332CODE
LOWcore/storage/suggestion/gae_models.py3624CODE
LOWcore/storage/app_feedback_report/gae_models.py384CODE
LOWcore/storage/question/gae_models.py476CODE
LOWcore/jobs/transforms/validation/base_validation.py339CODE
LOWcore/jobs/batch_jobs/voiceover_synthesis_jobs.py196CODE
LOW…e/jobs/batch_jobs/suggestion_stats_computation_jobs.py480CODE
LOW…e/jobs/batch_jobs/suggestion_stats_computation_jobs.py570CODE
LOWcore/jobs/batch_jobs/story_node_jobs.py53CODE
LOWcore/jobs/batch_jobs/cloud_task_run_migration_jobs.py184CODE
LOW…jobs/batch_jobs/exp_version_history_computation_job.py140CODE
LOW…jobs/batch_jobs/exp_version_history_computation_job.py504CODE
LOW…jobs/batch_jobs/exp_version_history_computation_job.py730CODE
LOW…h_jobs/synthesize_voiceover_by_language_accent_jobs.py202CODE
LOW…e/jobs/batch_jobs/contributor_admin_stats_jobs_test.py1518CODE
LOWcore/jobs/batch_jobs/number_with_units_audit_jobs.py101CODE
LOWcore/jobs/batch_jobs/translation_migration_jobs.py52CODE
LOWcore/jobs/batch_jobs/opportunity_management_jobs.py301CODE
LOW…e/jobs/batch_jobs/delete_duplicate_content_ids_jobs.py258CODE
LOW…e/jobs/batch_jobs/delete_duplicate_content_ids_jobs.py332CODE
LOW…alid_suggestion_and_delete_invalid_translation_jobs.py386CODE
LOW…alid_suggestion_and_delete_invalid_translation_jobs.py558CODE
LOWcore/jobs/batch_jobs/contributor_admin_stats_jobs.py432CODE
LOWcore/jobs/batch_jobs/contributor_admin_stats_jobs.py684CODE
LOWcore/jobs/batch_jobs/contributor_admin_stats_jobs.py1096CODE
LOWcore/jobs/batch_jobs/contributor_admin_stats_jobs.py1249CODE
LOWcore/jobs/batch_jobs/contributor_admin_stats_jobs.py1886CODE
LOWcore/jobs/batch_jobs/contributor_admin_stats_jobs.py2029CODE
LOWcore/controllers/base_test.py1086CODE
LOWcore/controllers/base_test.py1173CODE
LOWcore/controllers/base_test.py1216CODE
LOWcore/controllers/base_test.py1425CODE
LOWcore/controllers/base_test.py1859CODE
LOWcore/controllers/payload_validator.py66CODE
LOWcore/controllers/voiceover.py387CODE
LOWcore/controllers/profile.py366CODE
LOWcore/controllers/profile.py705CODE
LOWcore/controllers/topic_viewer.py78CODE
LOWcore/controllers/reader.py150CODE
LOWcore/controllers/skill_editor.py175CODE
LOWcore/controllers/topic_editor.py119CODE
LOWcore/controllers/admin.py503CODE
LOWcore/controllers/android.py194CODE
234 more matches not shown…
Hallucination Indicators18 hits · 180 pts
SeverityFileLineSnippetContext
CRITICAL…ctives/navigation-bars/top-navigation-bar.component.ts220 this.windowRef.nativeWindow.location.pathname.split('/')[1];CODE
CRITICAL…ommon-elements/classroom-navigation-links.component.ts81 this.windowRef.nativeWindow.location.pathname.split('/')[1];CODE
CRITICAL…templates/pages/library-page/library-page.component.ts392 this.windowRef.nativeWindow.location.pathname.split('/');CODE
CRITICAL…c-editor-page/services/topic-editor-routing.service.ts112 return parseInt(this.windowRef.nativeWindow.location.hash.split('/')[2]);CODE
CRITICAL…ges/exploration-editor-page/services/router.service.ts69 this._changeTab(this.windowRef.nativeWindow.location.hash.split('#')[1]);CODE
CRITICAL…ditor-page/services/story-editor-navigation.service.ts66 const chapterId = this.windowRef.nativeWindow.location.hash.split('/')[2];CODE
CRITICAL…ditor-page/services/story-editor-navigation.service.ts76 this.windowRef.nativeWindow.location.hash.split('/')[1] ===CODE
CRITICAL…ges/topic-landing-page/topic-landing-page.component.ts117 let pathArray = this.windowRef.nativeWindow.location.pathname.split('/');CODE
CRITICAL…ic-story-section/topic-story-section.component.spec.ts4927 windowRef.nativeWindow.document.querySelector.and.callFake(CODE
CRITICAL…ic-story-section/topic-story-section.component.spec.ts4946 windowRef.nativeWindow.document.querySelector.and.returnValue(null);CODE
CRITICAL…ic-story-section/topic-story-section.component.spec.ts4959 windowRef.nativeWindow.document.getElementById.and.callFake((id: string) =>CODE
CRITICAL…ic-story-section/topic-story-section.component.spec.ts4962 windowRef.nativeWindow.document.querySelector.and.returnValue(null);CODE
CRITICAL…ic-story-section/topic-story-section.component.spec.ts4988 windowRef.nativeWindow.document.getElementById.and.callFake((id: string) =>CODE
CRITICAL…ic-story-section/topic-story-section.component.spec.ts4991 windowRef.nativeWindow.document.querySelector.and.callFake(CODE
CRITICAL…ic-story-section/topic-story-section.component.spec.ts5018 windowRef.nativeWindow.document.getElementById.and.callFake((id: string) =>CODE
CRITICAL…ic-story-section/topic-story-section.component.spec.ts5021 windowRef.nativeWindow.document.querySelector.and.returnValue(null);CODE
CRITICAL…/services/contextual/meta-tag-customization.service.ts48 this.windowRef.nativeWindow.document.head.appendChild(meta);CODE
CRITICAL…contextual/document-attribute-customization.service.ts30 this.windowRef.nativeWindow.document.documentElement.setAttribute(CODE
Excessive Try-Catch Wrapping153 hits · 146 pts
SeverityFileLineSnippetContext
LOWcore/schema_utils.py188 except Exception as e:CODE
LOWcore/schema_utils.py199 except Exception as e:CODE
LOWcore/schema_utils_test.py302 except Exception as e:CODE
LOWcore/platform/app_identity/gae_app_identity_services.py108 except Exception as err:CODE
LOW…e/platform/bulk_email/mailchimp_bulk_email_services.py322 except Exception as error:CODE
LOWcore/platform/secrets/cloud_secrets_services.py65 except Exception:CODE
LOWcore/platform/datastore/cloud_datastore_services.py133 except Exception as e:CODE
LOWcore/tests/test_utils.py1139 except Exception as e:CODE
LOWcore/tests/test_utils_test.py595 except Exception as e:CODE
LOWcore/jobs/jobs_manager.py234 except Exception as e:CODE
LOWcore/jobs/jobs_manager.py290 except Exception:CODE
LOWcore/jobs/jobs_manager.py317 except Exception:CODE
LOWcore/jobs/io/gcs_io.py85 except Exception:CODE
LOWcore/jobs/io/firebase_io.py317 except Exception as e:CODE
LOWcore/jobs/transforms/validation/base_validation.py369 except Exception as e:CODE
LOWcore/jobs/transforms/validation/base_validation.py443 except Exception as e:CODE
LOWcore/jobs/batch_jobs/voiceover_synthesis_jobs.py188 except Exception:CODE
LOWcore/jobs/batch_jobs/voiceover_synthesis_jobs.py422 except Exception as error:CODE
LOW…e/jobs/batch_jobs/suggestion_stats_computation_jobs.py563 except Exception as e:CODE
LOWcore/jobs/batch_jobs/question_migration_jobs.py72 except Exception as e:CODE
LOWcore/jobs/batch_jobs/question_migration_jobs.py170 except Exception as e:CODE
LOWcore/jobs/batch_jobs/question_migration_jobs.py266 except Exception as e:CODE
LOWcore/jobs/batch_jobs/exploration_voiceover_sync_jobs.py143 except Exception:CODE
LOWcore/jobs/batch_jobs/story_node_jobs.py179 except Exception as e:CODE
LOW⚡…jobs/batch_jobs/exp_version_history_computation_job.py923 except Exception as e:CODE
LOW…jobs/batch_jobs/exp_version_history_computation_job.py137 except Exception:CODE
LOW…jobs/batch_jobs/exp_version_history_computation_job.py267 except Exception:CODE
LOW…jobs/batch_jobs/exp_version_history_computation_job.py331 except Exception:CODE
LOW…jobs/batch_jobs/exp_version_history_computation_job.py805 except Exception:CODE
LOW…jobs/batch_jobs/exp_version_history_computation_job.py960 except Exception:CODE
LOWcore/jobs/batch_jobs/story_migration_jobs.py99 except Exception as e:CODE
LOWcore/jobs/batch_jobs/exp_migration_jobs.py93 except Exception as e:CODE
LOWcore/jobs/batch_jobs/exp_migration_jobs.py311 except Exception as e:CODE
LOWcore/jobs/batch_jobs/exp_migration_jobs.py420 except Exception as e:CODE
LOWcore/jobs/batch_jobs/exp_migration_jobs.py519 except Exception:CODE
LOWcore/jobs/batch_jobs/exp_migration_jobs.py567 except Exception as e:CODE
LOWcore/jobs/batch_jobs/exp_migration_jobs.py676 except Exception:CODE
LOWcore/jobs/batch_jobs/exp_migration_jobs.py722 except Exception as e:CODE
LOW…h_jobs/synthesize_voiceover_by_language_accent_jobs.py437 except Exception as error:CODE
LOWcore/jobs/batch_jobs/subtopic_migration_jobs.py80 except Exception as e:CODE
LOWcore/jobs/batch_jobs/suggestion_migration_jobs.py281 except Exception as e:CODE
LOWcore/jobs/batch_jobs/translation_migration_jobs.py106 except Exception as e:CODE
LOWcore/jobs/batch_jobs/translation_migration_jobs.py140 except Exception as e:CODE
LOWcore/jobs/batch_jobs/skill_migration_jobs.py76 except Exception as e:CODE
LOWcore/jobs/batch_jobs/opportunity_management_jobs.py173 except Exception as e:CODE
LOWcore/jobs/batch_jobs/opportunity_management_jobs.py357 except Exception as e:CODE
LOWcore/jobs/batch_jobs/topic_migration_jobs.py74 except Exception as e:CODE
LOWcore/jobs/batch_jobs/contributor_admin_stats_jobs.py595 except Exception as e:CODE
LOWcore/jobs/batch_jobs/contributor_admin_stats_jobs.py820 except Exception as e:CODE
LOWcore/controllers/payload_validator.py124 except Exception as e:CODE
LOWcore/controllers/questions_list.py65 except Exception as e:CODE
LOWcore/controllers/tasks.py356 except Exception as e:CODE
LOWcore/controllers/tasks.py522 except Exception as e:CODE
LOWcore/controllers/question_editor.py68 except Exception as e:CODE
LOWcore/controllers/question_editor.py73 except Exception as e:CODE
LOWcore/controllers/question_editor.py96 except Exception as e:CODE
LOWcore/controllers/skill_mastery.py93 except Exception as e:CODE
LOWcore/controllers/skill_mastery.py143 except Exception as e:CODE
LOWcore/controllers/story_viewer.py179 except Exception as e:CODE
LOWcore/controllers/subtopic_viewer.py125 except Exception as e:CODE
93 more matches not shown…
Redundant / Tautological Comments68 hits · 108 pts
SeverityFileLineSnippetContext
LOWcore/platform/datastore/cloud_datastore_services.py308 # Add the keys to the list of keys whose entities we have to fetch.COMMENT
LOWcore/storage/opportunity/gae_models.py378 # Check if entity_type is valid.COMMENT
LOWcore/storage/base_model/gae_models.py2363 # Check if there are more results. Only one entity is fetchedCOMMENT
LOW⚡core/storage/user/gae_models_test.py3646 # Check if passing a non-existent user_id does not fail.COMMENT
LOWcore/storage/user/gae_models_test.py3279 # Check if passing a non-existent user_id does not fail.COMMENT
LOWcore/storage/feedback/gae_models.py508 # Check if the new ids are valid.COMMENT
LOW…/jobs/batch_jobs/recover_orphaned_translations_jobs.py132 # Check if the merged dict adds anything new.COMMENT
LOWcore/jobs/batch_jobs/contributor_admin_stats_jobs.py498 # Iterate over the list and count occurrences.COMMENT
LOWcore/jobs/batch_jobs/contributor_admin_stats_jobs.py747 # Iterate over the list and count occurrences.COMMENT
LOWcore/jobs/batch_jobs/contributor_admin_stats_jobs.py1165 # Check if xploration opportunity model exists.COMMENT
LOWcore/jobs/batch_jobs/contributor_admin_stats_jobs.py1198 # Check if xploration opportunity model exists.COMMENT
LOWcore/jobs/batch_jobs/contributor_admin_stats_jobs.py1231 # Check if xploration opportunity model exists.COMMENT
LOWcore/jobs/batch_jobs/contributor_admin_stats_jobs.py1320 # Check if xploration opportunity model exists.COMMENT
LOW⚡core/controllers/voice_artist_test.py348 # Check if method returns 200 http status.COMMENT
LOWcore/controllers/feedback_test.py602 # Check if the new message is also added to the read list.COMMENT
LOWcore/controllers/learner_group.py211 # Check if user is the facilitator of the learner group, as onlyCOMMENT
LOWcore/controllers/library_test.py88 # Check if the language preference is default.COMMENT
LOWcore/controllers/library_test.py260 # Check if the language preference is default.COMMENT
LOWcore/controllers/library_test.py354 # Assign rating to exploration to test handler for top ratedCOMMENT
LOWcore/controllers/library_test.py386 # Assign rating to exploration to test handler for top ratedCOMMENT
LOWcore/domain/feedback_services_test.py710 # Check if the message is added to the read section of the viewer.COMMENT
LOWcore/domain/exp_domain.py2188 # Check if first state is a checkpoint or not.COMMENT
LOWcore/domain/exp_domain.py2196 # Check if terminal states are checkpoints.COMMENT
LOWcore/domain/exp_domain.py2208 # Check if checkpoint count is between 1 and 8, inclusive.COMMENT
LOWcore/domain/exp_domain.py2219 # Check if a state marked as a checkpoint is bypassable.COMMENT
LOWcore/domain/customization_args_util_test.py88 # Check if no error is produced for valid customization args.COMMENT
LOWcore/domain/customization_args_util_test.py100 # Check if error is produced when arg name is invalid.COMMENT
LOWcore/domain/customization_args_util_test.py114 # Check if error is produced when extra args are present.COMMENT
LOWcore/domain/customization_args_util_test.py129 # Check if no error is produced when arg type is not valid.COMMENT
LOWcore/domain/customization_args_util_test.py176 # Check if error is produced for missing customization args.COMMENT
LOWcore/domain/customization_args_util_test.py188 # Check if error is produced when arg name is invalid.COMMENT
LOWcore/domain/customization_args_util_test.py202 # Check if error is produced when extra args are present.COMMENT
LOWcore/domain/customization_args_util_test.py217 # Check if no error is produced when arg type is not valid.COMMENT
LOW⚡core/domain/state_domain.py4039 # Check if the state_dict can be converted to a State.COMMENT
LOWcore/domain/state_domain.py3389 # Check if there are input keys which are not rule parameters.COMMENT
LOWcore/domain/state_domain.py3396 # Check if there are missing parameters.COMMENT
LOWcore/domain/question_domain.py984 # Assign values to html fields.COMMENT
LOW⚡core/domain/learner_goals_services_test.py356 # Check if the removed topic is not present in the learner goals.COMMENT
LOW⚡core/domain/learner_goals_services_test.py362 # Check if the remaining topic is still present in the learner goals.COMMENT
LOW⚡core/domain/learner_goals_services_test.py371 # Check if both topics are not present in the learner goals.COMMENT
LOWcore/domain/topic_services.py834 # Check if study guide already exists in our modified collection.COMMENT
LOWcore/domain/wipeout_service.py716 # Verify if user profile picture is deleted.COMMENT
LOWscripts/install_python_prod_dependencies_test.py546 # Read the file and verify the content.COMMENT
LOWscripts/check_unused_i18n_keys.py93 # Check if key literally exists in code.COMMENT
LOWscripts/install_python_prod_dependencies.py195 # Check if this is a direct URL package (from git).COMMENT
LOWscripts/install_python_prod_dependencies.py322 # Check if this is a git URL dependency.COMMENT
LOWscripts/build_test.py316 # Set constant to provide everything to frontend.COMMENT
LOWscripts/build_test.py352 # Set constant to provide everything to frontend.COMMENT
LOWscripts/servers.py373 # Check if a redis dump file currently exists. This file contains residualCOMMENT
LOWscripts/servers.py566 # Check if a socket file exists. This file can exist when previous instanceCOMMENT
LOWscripts/run_lighthouse_tests.py589 # Verify if Chrome is installed.COMMENT
LOWscripts/run_backend_tests.py480 # Check if this is a specific test (has _test. in it).COMMENT
LOWscripts/run_backend_tests.py610 # Check if target either ends with '_test' which means a path toCOMMENT
LOWscripts/linters/js_ts_linter.py94 # Check if we have enough lines before accessing indices.COMMENT
LOWscripts/linters/general_purpose_linter.py394 # Check if the current pattern is specifically the TODO check.COMMENT
LOWscripts/linters/run_lint_checks.py319 # Check if 'js' and 'ts' both are present in file_extensions_to_lint.COMMENT
LOW⚡scripts/linters/pylint_extensions.py1715 # Check if variable name is used.COMMENT
LOW⚡scripts/linters/pylint_extensions.py1721 # Check if allowed prefix is used.COMMENT
LOW⚡scripts/linters/pylint_extensions.py1727 # Check if comment contains any excluded phrase.COMMENT
LOWscripts/linters/pylint_extensions.py124 # Check if token type is an operator and is either aCOMMENT
8 more matches not shown…
Modern Structural Boilerplate86 hits · 96 pts
SeverityFileLineSnippetContext
LOWmypy_imports.py89__all__ = [CODE
LOWcore/tests/test_utils.py2452 def set_question_admins(self, question_admin_usernames: List[str]) -> None:CODE
LOWcore/tests/test_utils.py2482 def set_moderators(self, moderator_usernames: List[str]) -> None:CODE
LOWcore/tests/test_utils.py2491 def set_voiceover_admin(self, voiceover_admin_username: List[str]) -> None:CODE
LOWcore/storage/base_model/gae_models.py409 def update_timestamps(self, update_last_updated_time: bool = True) -> None:CODE
LOWcore/domain/feedback_services.py1044def update_feedback_email_retries_transactional(user_id: str) -> None:CODE
LOWcore/domain/exp_services.py4179def set_exploration_edits_allowed(exp_id: str, edits_are_allowed: bool) -> None:CODE
LOW⚡core/domain/story_domain.py2494 def update_description(self, description: str) -> None:CODE
LOW⚡core/domain/story_domain.py2502 def update_notes(self, notes: str) -> None:CODE
LOW⚡core/domain/story_domain.py2510 def update_language_code(self, language_code: str) -> None:CODE
LOW⚡core/domain/story_domain.py2518 def update_url_fragment(self, url_fragment: str) -> None:CODE
LOW⚡core/domain/story_domain.py2526 def update_meta_tag_content(self, new_meta_tag_content: str) -> None:CODE
LOWcore/domain/story_domain.py2448 def update_title(self, title: str) -> None:CODE
LOWcore/domain/story_domain.py2608 def update_node_outline(self, node_id: str, new_outline: str) -> None:CODE
LOWcore/domain/story_domain.py2618 def update_node_title(self, node_id: str, new_title: str) -> None:CODE
LOWcore/domain/story_domain.py2738 def update_node_status(self, node_id: str, new_status: str) -> None:CODE
LOWcore/domain/story_domain.py2962 def update_initial_node(self, new_initial_node_id: str) -> None:CODE
LOWcore/domain/opportunity_domain.py535 def _update_language_completeness(self, language_code: str) -> None:CODE
LOWcore/domain/opportunity_domain.py549 def update_translation_count(self, language_code: str, count: int) -> None:CODE
LOWcore/domain/opportunity_domain.py560 def update_content_count(self, content_count: int) -> None:CODE
LOWcore/domain/opportunity_domain.py574 def update_topic_ids(self, topic_ids: List[str]) -> None:CODE
LOW⚡core/domain/exp_domain.py2553 def update_title(self, title: str) -> None:CODE
LOW⚡core/domain/exp_domain.py2561 def update_category(self, category: str) -> None:CODE
LOW⚡core/domain/exp_domain.py2569 def update_objective(self, objective: str) -> None:CODE
LOW⚡core/domain/exp_domain.py2577 def update_language_code(self, language_code: str) -> None:CODE
LOW⚡core/domain/exp_domain.py2585 def update_tags(self, tags: List[str]) -> None:CODE
LOW⚡core/domain/exp_domain.py2593 def update_blurb(self, blurb: str) -> None:CODE
LOW⚡core/domain/exp_domain.py2601 def update_author_notes(self, author_notes: str) -> None:CODE
LOW⚡core/domain/exp_domain.py2655 def update_auto_tts_enabled(self, auto_tts_enabled: bool) -> None:CODE
LOW⚡core/domain/exp_domain.py2664 def update_next_content_id_index(self, next_content_id_index: int) -> None:CODE
LOWcore/domain/exp_domain.py2634 def update_init_state_name(self, init_state_name: str) -> None:CODE
LOWcore/domain/recommendations_services.py289def update_topic_similarities(csv_data: str) -> None:CODE
LOW⚡core/domain/suggestion_registry.py199 def set_suggestion_status_to_accepted(self) -> None:CODE
LOW⚡core/domain/suggestion_registry.py203 def set_suggestion_status_to_in_review(self) -> None:CODE
LOW⚡core/domain/suggestion_registry.py207 def set_suggestion_status_to_rejected(self) -> None:CODE
LOW⚡core/domain/suggestion_registry.py211 def set_final_reviewer_id(self, reviewer_id: str) -> None:CODE
LOWcore/domain/suggestion_registry.py1025 def _update_change_to_latest_state_schema_version(self) -> None:CODE
LOWcore/domain/cloud_task_domain.py366 def update_remaining_content_status_as_succeeded(self) -> None:CODE
LOW⚡core/domain/blog_domain.py367 def update_title(self, new_title: str) -> None:CODE
LOW⚡core/domain/blog_domain.py376 def update_url_fragment(self, new_url_fragment: str) -> None:CODE
LOW⚡core/domain/blog_domain.py398 def update_content(self, content: str) -> None:CODE
LOW⚡core/domain/blog_domain.py406 def update_tags(self, tags: List[str]) -> None:CODE
LOWcore/domain/stats_domain.py2259 def update_state_reference(self, new_state_reference: str) -> None:CODE
LOW⚡core/domain/topic_domain.py1969 def update_abbreviated_name(self, new_abbreviated_name: str) -> None:CODE
LOW⚡core/domain/topic_domain.py1978 def update_url_fragment(self, new_url_fragment: str) -> None:CODE
LOW⚡core/domain/topic_domain.py2010 def update_description(self, new_description: str) -> None:CODE
LOW⚡core/domain/topic_domain.py2018 def update_language_code(self, new_language_code: str) -> None:CODE
LOW⚡core/domain/topic_domain.py2026 def update_meta_tag_content(self, new_meta_tag_content: str) -> None:CODE
LOWcore/domain/topic_domain.py1955 def update_name(self, new_name: str) -> None:CODE
LOWcore/domain/topic_domain.py2192 def update_subtopic_title(self, subtopic_id: int, new_title: str) -> None:CODE
LOW⚡core/domain/skill_domain.py1731 def update_description(self, description: str) -> None:CODE
LOW⚡core/domain/skill_domain.py1739 def update_language_code(self, language_code: str) -> None:CODE
LOW⚡core/domain/skill_domain.py1747 def update_superseding_skill_id(self, superseding_skill_id: str) -> None:CODE
LOWcore/domain/skill_domain.py1881 def update_rubric(self, difficulty: str, explanations: List[str]) -> None:CODE
LOWcore/domain/topic_domain_test.py1397 def _setup_stories(self, topic: topic_domain.Topic) -> None:CODE
LOWcore/domain/user_domain.py630 def update_name(self, updated_name: str) -> None:CODE
LOW⚡core/domain/machine_translation_services.py275def update_translation_automatic_status(is_enabled: bool) -> None:CODE
LOWcore/domain/user_services.py1652def set_username(user_id: str, new_username: str) -> None:CODE
LOWcore/domain/user_services.py2484def update_dashboard_stats_log(user_id: str) -> None:CODE
LOWcore/domain/user_services.py3076def set_user_has_viewed_lesson_info_modal_once(user_id: str) -> None:CODE
26 more matches not shown…
Cross-Language Confusion9 hits · 68 pts
SeverityFileLineSnippetContext
HIGH⚡core/domain/caching_services_test.py151 '"interaction": {"solution": null, "answer_gr'CODE
HIGH⚡core/domain/caching_services_test.py152 'oups": [{"tagged_skill_misconception_id": null, "outcome": {"param_cha'CODE
HIGH⚡core/domain/caching_services_test.py155 '_stuck": null, "refresher_exploration_id": null, "missing_prerequisite'CODE
HIGH⚡core/domain/caching_services_test.py156 '_skill_id": null, "labelled_as_correct": false}, "training_data": [], 'CODE
HIGH⚡core/domain/caching_services_test.py162 ' null, "refresher_exploration_id": null, "missing_prerequisite_skill_i'CODE
HIGH⚡core/domain/caching_services_test.py163 'd": null, "labelled_as_correct": false}, "customization_args": {"rows"'CODE
HIGH⚡core/domain/caching_services_test.py169 'is a copyright character \\u00a9.</p>"}}]}, "linked_skill_id": null, 'CODE
HIGH⚡core/domain/caching_services_test.py170 '"classifier_model_id": null, "content": 'CODE
HIGHscripts/pre_push_hook.py63# Git hash of /dev/null, refers to an 'empty' commit.COMMENT
Empty Error Handlers11 hits · 55 pts
SeverityFileLineSnippetContext
HIGHcore/controllers/suggestion.py1446except ValueError:CODE
HIGHcore/domain/exp_services.py516except Exception:CODE
HIGHcore/domain/exp_services.py528except Exception:CODE
HIGHcore/domain/exp_services.py545except Exception:CODE
HIGHcore/domain/exp_services.py558except Exception:CODE
HIGHcore/domain/topic_services.py846except Exception:CODE
HIGHextensions/interactions/base_test.py550except Exception:CODE
HIGHscripts/run_portserver.py467except socket.error:CODE
HIGHscripts/install_python_prod_dependencies.py199except FileNotFoundError:CODE
HIGHscripts/servers.py594except OSError:CODE
HIGHscripts/common.py721except (urlerror.URLError, client.HTTPException, socket.timeout):CODE
AI Slop Vocabulary18 hits · 37 pts
SeverityFileLineSnippetContext
LOWcore/platform/translate/translate_emulator.py69 # Otherwise, just use the raw source text.COMMENT
MEDIUM…e/platform/bulk_email/mailchimp_bulk_email_services.py138 # comprehensive, since, under status 400, they only list a subset of theCOMMENT
LOWcore/storage/feedback/gae_models_test.py508 # If we do wish to change it however, we can simply use the put functionCOMMENT
MEDIUMcore/templates/third-party-imports/gif-frames.import.ts33// And utilize its functionality for use in the application.COMMENT
MEDIUM…/state-directives/rule-editor/rule-editor.component.ts304 // TODO(sll): Find a more robust way of doing this. For example,COMMENT
LOW…s/batch_jobs/missing_translation_images_repair_jobs.py290 # we just use the first elements to represent the whole lists.COMMENT
MEDIUMcore/jobs/batch_jobs/model_validation_jobs.py83 """Runs a comprehensive audit on every model in the datastore."""STRING
MEDIUMcore/controllers/feedback.py513 """Records when the given user views a feedback thread, in order to clearSTRING
LOWcore/domain/suggestion_services.py2556 # If the strings are identical, simply return truncated versions.COMMENT
MEDIUMcore/domain/state_domain.py2274 # name to InteractionCustomizationArg, so that we can utilizeCOMMENT
MEDIUMcore/domain/voiceover_regeneration_services.py369 # cache fails; otherwise, utilize the cached voiceovers.COMMENT
MEDIUMscripts/linters/warranted_angular_security_bypasses.py35 # this list due to the aforementioned reason.COMMENT
MEDIUMassets/scripts/oppia-player-0.0.1.min.js1(function(f,a){if(f.hasOwnProperty("OPPIA_EMBED_GLOBALS")){return}f.OPPIA_EMBED_GLOBALS={version:"0.0.1"};function g(i){CODE
MEDIUMassets/scripts/oppia-player-0.0.1.min.js1(function(f,a){if(f.hasOwnProperty("OPPIA_EMBED_GLOBALS")){return}f.OPPIA_EMBED_GLOBALS={version:"0.0.1"};function g(i){CODE
MEDIUMassets/scripts/oppia-player-0.0.3.min.js1!function(t,e){if(!t.hasOwnProperty("OPPIA_EMBED_GLOBALS")){t.OPPIA_EMBED_GLOBALS={version:"0.0.3"};for(var o=function(eCODE
MEDIUMassets/scripts/oppia-player-0.0.3.min.js1!function(t,e){if(!t.hasOwnProperty("OPPIA_EMBED_GLOBALS")){t.OPPIA_EMBED_GLOBALS={version:"0.0.3"};for(var o=function(eCODE
MEDIUMassets/scripts/oppia-player-0.0.2.min.js1(function(f,a){if(f.hasOwnProperty("OPPIA_EMBED_GLOBALS")){return}f.OPPIA_EMBED_GLOBALS={version:"0.0.2"};var g=functionCODE
MEDIUMassets/scripts/oppia-player-0.0.2.min.js1(function(f,a){if(f.hasOwnProperty("OPPIA_EMBED_GLOBALS")){return}f.OPPIA_EMBED_GLOBALS={version:"0.0.2"};var g=functionCODE
Synthetic Comment Markers3 hits · 22 pts
SeverityFileLineSnippetContext
HIGHcore/storage/translation/gae_models.py475 # The AI-generated translation of the source text into the target language.COMMENT
HIGH…rd-page/services/translate-text-backend-api.service.ts215 // AI-generated. This keeps the payload lean for manual submissions andCOMMENT
HIGHcore/domain/exp_domain.py445 # - was_auto_generated is True → AI-generated suggestionCOMMENT
AI Structural Patterns11 hits · 10 pts
SeverityFileLineSnippetContext
LOWcore/platform/storage/cloud_storage_services.py77CODE
LOW…rm/speech_synthesis/azure_speech_synthesis_services.py210CODE
LOWcore/tests/test_utils.py3753CODE
LOWcore/tests/test_utils.py4142CODE
LOWcore/storage/general_feedback/gae_models.py430CODE
LOWcore/domain/user_domain.py104CODE
LOWcore/domain/user_domain.py1555CODE
LOWcore/domain/user_services.py2240CODE
LOWscripts/scripts_test_utils.py59CODE
LOWscripts/servers.py159CODE
LOWscripts/run_backend_tests.py282CODE
AI Response Leakage1 hit · 8 pts
SeverityFileLineSnippetContext
HIGH…ates/components/graph-services/graph-layout.service.ts232 // In this implementation, nodes are aligned with a rectangular grid.COMMENT
Structural Annotation Overuse3 hits · 4 pts
SeverityFileLineSnippetContext
LOWrequirements.txt2501# WARNING: The following packages were not pinned, but pip requires them to beCOMMENT
LOWcore/domain/taskqueue_services.py38# NOTE: The following constants should match the queue names on theCOMMENT
LOWcore/domain/story_services.py911 # NOTE: This function should not be called on its own. Access itSTRING
Slop Phrases2 hits · 2 pts
SeverityFileLineSnippetContext
LOWscripts/run_typescript_checks.py304 # This make sure to restore include property to its original value after theCOMMENT
LOW…ta/explorations/all_interactions/all_interactions.yaml1325 to the original number. Also, don't forget to breakdown the decimal placeCODE
Overly Generic Function Names2 hits · 2 pts
SeverityFileLineSnippetContext
LOWscripts/concurrent_task_utils_test.py31def test_function(unused_arg: str) -> Callable[[], None]:CODE
LOWscripts/run_backend_tests_test.py57def test_function(_: str) -> Callable[[], None]:CODE