Repository Analysis

oppia/oppia

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

13.0 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of oppia/oppia, a Python project with 6,738 GitHub stars. SynthScan v2.0 examined 1,499,634 lines of code across 5441 source files, recording 18721 pattern matches distributed across 21 syntactic categories. The overall adjusted score of 13.0 places this repository in the Low AI signal band.

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

13.0
Adjusted Score
13.0
Raw Score
100%
Time Factor
2026-07-13
Last Push
6.7K
Stars
Python
Language
1.5M
Lines of Code
5.4K
Files
18.7K
Pattern Hits
2026-07-14
Scan Date
0.13
HC Hit Rate

What These Metrics Mean

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

Score History

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

Severity Breakdown

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

CRITICAL 11HIGH 697MEDIUM 238LOW 17775

Directory Score Breakdown

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

Pattern Findings

The scanner identified 18721 distinct pattern matches across 21 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Hyper-Verbose Identifiers11344 hits · 9234 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
LOWcore/schema_utils_test.py733 def test_normalize_against_schema_raises_exception(self) -> None:CODE
LOWcore/schema_utils_test.py741 def test_is_nonempty_validator(self) -> None:CODE
LOWcore/schema_utils_test.py751 def test_is_at_most_validator(self) -> None:CODE
LOWcore/schema_utils_test.py761 def test_has_length_at_least_validator(self) -> None:CODE
LOWcore/schema_utils_test.py771 def test_get_raises_invalid_validator_id(self) -> None:CODE
LOWcore/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
LOWcore/utils_test.py208 def test_generate_random_string(self) -> None:CODE
LOWcore/utils_test.py214 def test_convert_data_url_to_binary_with_incorrect_prefix(self) -> None:CODE
LOWcore/utils_test.py220 def test_get_thumbnail_icon_url_for_category(self) -> None:CODE
LOWcore/utils_test.py260 def test_datetime_conversion_to_string_returns_correct_format(self) -> None:CODE
LOWcore/utils_test.py267 def test_string_to_datetime_conversion_returns_correct_datetime(CODE
LOWcore/utils_test.py277 def test_create_string_from_largest_unit_in_timedelta_raises_for_zero_diff(CODE
LOWcore/utils_test.py617 def test_get_exploration_components_from_dir_with_no_yaml_file(CODE
LOWcore/utils_test.py627 def test_get_asset_dir_prefix_with_prod_mode(self) -> None:CODE
LOWcore/utils_test.py635 def test_get_supported_audio_language_description_with_invalid_code(CODE
LOWcore/utils_test.py687 def test_snake_case_to_camel_case(self) -> None:CODE
LOWcore/utils_test.py695 def _assert_valid_thumbnail_filename(CODE
LOWcore/utils_test.py704 def test_require_valid_thumbnail_filename(self) -> None:CODE
LOWcore/utils_test.py770 def test_get_time_in_millisecs(self) -> None:CODE
11284 more matches not shown…
Over-Commented Block4270 hits · 4171 pts
SeverityFileLineSnippetContext
LOW.lighthouserc-performance.js1// Copyright 2020 The Oppia Authors. All Rights Reserved.COMMENT
LOWconftest.py1# Copyright 2025 The Oppia Authors. All Rights Reserved.COMMENT
LOW.lighthouserc-accessibility.js1// Copyright 2020 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.txt381 --hash=sha256:2ceb087315e6af43f256704b871d99326b1f12a9d6ce99beaedec99ba26a0ace \COMMENT
LOWrequirements.txt401 # google-cloud-pubsubliteCOMMENT
LOWrequirements.txt421 --hash=sha256:500c3a29adedeb36ea9cf24b8d10858e152f2412e3ca37829b3fa18e33d63b77COMMENT
LOWrequirements.txt481 # apache-beamCOMMENT
LOWrequirements.txt641 # google-cloud-storageCOMMENT
LOWrequirements.txt1121 # apache-beamCOMMENT
LOWrequirements.txt1161 --hash=sha256:de78575669dddf6099a8a0f46a27e82a1783c557ccc38ee620ed8cc96d3be7d7 \COMMENT
LOWrequirements.txt1181 # google-cloud-recommendations-aiCOMMENT
LOWrequirements.txt1601 --hash=sha256:f6442f0f0ff81775eaa5b05af8a0ffa1dda36e9cf6ec1e0d3d245e8564b684ce \COMMENT
LOWmypy_imports.py1# coding: utf-8COMMENT
LOWmypy_imports_test.py1# coding: utf-8COMMENT
LOWsetup.py1# Copyright 2021 The Oppia Authors. All Rights Reserved.COMMENT
LOWconftest_test.py1# coding: utf-8COMMENT
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
LOWangular-template-style-url-replacer.webpack-loader.js1// Copyright 2021 The Oppia Authors. All Rights Reserved.COMMENT
LOW.lighthouserc-base.js1// Copyright 2020 The Oppia Authors. All Rights Reserved.COMMENT
LOWrequirements_dev.txt501tomli==2.0.1 \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/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.py321# The minimum version of the app feedback report daily stats blob schema.COMMENT
LOWcore/feconf.py621# Whether to send an email to all the creator's subscribers when he/sheCOMMENT
LOWcore/feconf.py821# is_linear property to true. Linear interactions do not support branching andCOMMENT
LOWcore/feconf.py1421# CLASSROOM_PAGES_DATA property in config_domain.COMMENT
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
LOWcore/platform/cache/redis_cache_services.py1# coding: utf-8COMMENT
LOW…platform/translate/dev_mode_translate_services_test.py1# coding: utf-8COMMENT
LOWcore/platform/translate/translate_emulator_test.py1# coding: utf-8COMMENT
LOW…re/platform/translate/cloud_translate_emulator_test.py1# coding: utf-8COMMENT
LOWcore/platform/translate/base_translate_services.py1# coding: utf-8COMMENT
4210 more matches not shown…
Docstring Block Structure418 hits · 1912 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.py694Given the timedelta object, find the largest nonzero time unit and return that value, along with the time unit, as aSTRING
HIGHcore/utils.py1103Returns 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/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.py189Adds user to storage if new, otherwise raises an error. Args: uid: str. The unique Firebase accountSTRING
HIGHcore/platform/auth/firebase_auth_services_test.py226Deletes 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.py278Returns user with given ID if found, otherwise raises an error. Args: uid: str. The Firebase accounSTRING
HIGHcore/platform/auth/firebase_auth_services_test.py297Returns user with given ID if found, otherwise raises an error. Args: identifiers: list(firebase_auSTRING
HIGHcore/platform/auth/firebase_auth_services_test.py322Returns user with given email if found, otherwise raises an error. Args: email: str. The email addrSTRING
HIGHcore/platform/auth/firebase_auth_services_test.py364Retrieves a page of user accounts from a Firebase project. The `page_token` argument governs the starting pointSTRING
HIGHcore/platform/auth/firebase_auth_services_test.py429Updates the custom claims of the given user. Args: uid: str. The Firebase account ID of the user. STRING
HIGHcore/platform/auth/firebase_auth_services_test.py451Updates the user in storage if found, otherwise raises an error. Args: uid: str. The Firebase accouSTRING
HIGHcore/platform/auth/firebase_auth_services.py163Authenticates the request and returns claims about its authorizer. Args: request: webapp2.Request. The HTTPSTRING
HIGHcore/platform/auth/firebase_auth_services.py592Returns 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.py236Returns filepath using the filename. Different files are present in different subdirectories in the rootdir. So, we STRING
HIGHcore/tests/test_utils.py274Mock for load_template function. This mock is required for backend tests since we do not have webpack compilation beSTRING
HIGHcore/tests/test_utils.py480Mocks get_platform_parameter_value function to return the value of the platform parameter if the parameter is prSTRING
HIGHcore/tests/test_utils.py624Creates an index with the given name. Args: index: str. The name of the index to create. RSTRING
HIGHcore/tests/test_utils.py663Adds a document with the given ID to the index. Note that, unfortunately, we have to keep the name of "id" for STRING
HIGHcore/tests/test_utils.py704Checks whether a document with the given ID exists in the mock database. Args: index: str. STRING
HIGHcore/tests/test_utils.py724Deletes a document from an index in the mock database. Does nothing if the document is not in the index. STRING
HIGHcore/tests/test_utils.py773Deletes documents from an index based on the given query. Note that this mock only supports a specific for the STRING
HIGHcore/tests/test_utils.py821Searches and returns documents that match the given query. Args: body: dict|None. A dictionary searSTRING
HIGHcore/tests/test_utils.py1537Updates a param dict using the given list of param_changes. Note that the list of parameter changes is ordered.STRING
HIGHcore/tests/test_utils.py1726Swap obj.attr with a CallCounter instance. Args: obj: *. The Python object whose attribute you wantSTRING
HIGHcore/tests/test_utils.py1766Swap an object's function value within the context of a 'with' statement. The object can be anything that supporSTRING
HIGHcore/tests/test_utils.py1978Asserts that the message in a raised exception matches a regex. This is a wrapper around assertRaisesRegex in unSTRING
HIGHcore/tests/test_utils.py2244Mocks parts of the datastore to accept a fake datetime type that always returns the same value for utcnow. STRING
HIGHcore/tests/test_utils.py2984Gets the user ID corresponding to the given email. Args: email: str. A valid email stored in the ApSTRING
HIGHcore/tests/test_utils.py3169Get a response, transformed to a Python object and checks for a list of status codes. Args: STRING
HIGHcore/tests/test_utils.py3777Saves a new strictly-validated exploration with a sequence of states. Args: exploration_id: str. ThSTRING
HIGHcore/tests/test_utils.py4094Creates an Oppia Story and saves it. NOTE: Callers are responsible for ensuring that the 'correspondingSTRING
HIGHcore/tests/gae_suite.py68Creates 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.py1598Generates 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
358 more matches not shown…
Cross-File Repetition268 hits · 1340 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
208 more matches not shown…
Unused Imports1059 hits · 928 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.py40CODE
LOWmypy_imports.py43CODE
LOWmypy_imports.py44CODE
LOWmypy_imports.py47CODE
LOWmypy_imports.py50CODE
LOWmypy_imports.py53CODE
LOWmypy_imports.py54CODE
LOWmypy_imports.py57CODE
LOWmypy_imports.py58CODE
LOWmypy_imports.py59CODE
LOWmypy_imports.py60CODE
LOWmypy_imports.py61CODE
LOWmypy_imports.py62CODE
LOWmypy_imports.py63CODE
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.py88CODE
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
999 more matches not shown…
Fake / Example Data498 hits · 437 pts
SeverityFileLineSnippetContext
LOWcore/schema_utils_test.py139 'placeholder': {CODE
LOWcore/schema_utils_test.py159 'placeholder': {CODE
LOWcore/platform/auth/firebase_auth_services_test.py992 EMAIL = 'foo@bar.com'CODE
LOWcore/tests/test_utils.py2313 CURRICULUM_ADMIN_EMAIL: Final = 'admin@example.com'CODE
LOWcore/tests/test_utils.py2422 'placeholder': {'value': 'Enter text here'},CODE
LOWcore/tests/test_utils.py4563 'placeholder': {CODE
LOWcore/tests/test_utils.py4567 extra_prefix='placeholder',CODE
LOWcore/tests/ci-test-suite-configs/acceptance.json299 "name": "super-admin/load-dummy-data-in-dev-mode",CODE
LOWcore/tests/ci-test-suite-configs/acceptance.json300 "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…eer-acceptance-tests/utilities/user/logged-out-user.ts6337 return el && el.getAttribute('placeholder') === expected;CODE
LOWcore/tests/load_tests/feedback_thread_summaries_test.py52 USER_EMAIL: Final = 'user@example.com'CODE
LOWcore/tests/webdriverio_desktop/userJourneys.js262 'placeholder',CODE
LOWcore/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
LOWcore/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
LOWcore/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
LOWcore/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
LOWcore/tests/data/test_cases_for_rte.json155 "html_content": "<span><div><span>Hello </span><span></span></div><oppia-noninteractive-collapsible content-with-valCODE
LOWcore/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
LOWcore/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
LOWcore/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
LOWcore/storage/user/gae_models_test.py289 'Entity for class UserSettingsModel with id fake_user not found',CODE
LOWcore/storage/user/gae_models_test.py291 user_models.UserSettingsModel.export_data('fake_user')CODE
LOWcore/storage/user/gae_models_test.py297 'email': 'user@example.com',CODE
LOWcore/storage/user/gae_models_test.py1976 '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.py2733 user_data = user_models.UserSkillMasteryModel.export_data('fake_user')CODE
LOWcore/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.ts90 _email: 'tester@example.org',CODE
LOW…on-directives/create-activity-button.component.spec.ts105 getEmail: () => 'tester@example.org',CODE
LOW…on-directives/create-activity-button.component.spec.ts119 _email: 'tester@example.org',CODE
LOW…on-directives/create-activity-button.component.spec.ts134 getEmail: () => 'tester@example.org',CODE
LOW…ives/question-player/question-player.component.spec.ts84 'tester@example.org',CODE
LOW…/certificate-offering-dashboard-page.component.spec.ts302 component.openDeleteCertificateOfferingModal('dummy_id');CODE
LOW…/certificate-offering-dashboard-page.component.spec.ts311 expect(deleteSpy).toHaveBeenCalledWith('dummy_id');CODE
LOW…/certificate-offering-dashboard-page.component.spec.ts320 component.openDeleteCertificateOfferingModal('dummy_id');CODE
LOW…/certificate-offering-dashboard-page.component.spec.ts327 component.certificateOfferings = [makeOffering('dummy_id')];CODE
LOW…/certificate-offering-dashboard-page.component.spec.ts334 component.deleteCertificateOffering('dummy_id');CODE
LOW…/certificate-offering-dashboard-page.component.spec.ts337 expect(deleteSpy).toHaveBeenCalledWith('dummy_id');CODE
LOW…/certificate-offering-dashboard-page.component.spec.ts361 const initialOfferings = [makeOffering('dummy_id', 'Certificate Title')];CODE
LOW…/certificate-offering-dashboard-page.component.spec.ts369 void component.deleteCertificateOffering('dummy_id');CODE
LOW…/certificate-offering-dashboard-page.component.spec.ts372 expect(deleteSpy).toHaveBeenCalledWith('dummy_id');CODE
LOW…contribution-opportunities-backend-api.service.spec.ts164 email: 'user@example.com',CODE
438 more matches not shown…
Self-Referential Comments134 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.py1115 # 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.py2436 # 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.py1218 # Create a new, default exploration whose snapshots should not beCOMMENT
MEDIUMcore/jobs/batch_jobs/exp_migration_jobs_test.py1685 # 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.py390 # Create a new exploration 'exp_2' with non-empty content.COMMENT
MEDIUM…tch_jobs/translation_opportunity_backfill_jobs_test.py523 # 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.py170 # Create a user to test redirect behavior for the learner.COMMENT
MEDIUMcore/controllers/base_test.py186 # Create a new user but do not submit their registration form.COMMENT
MEDIUMcore/controllers/base_test.py914 # 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.py1599 # Create a learner group.COMMENT
MEDIUMcore/controllers/suggestion_test.py3367 # Create a mock suggestion with a different suggestion_type.COMMENT
MEDIUMcore/controllers/suggestion_test.py4011 # Create a new exploration and linked story.COMMENT
MEDIUMcore/controllers/suggestion_test.py4031 # Create a translation suggestion for the Continue button text.COMMENT
MEDIUMcore/controllers/suggestion_test.py4121 # Create a new exploration, link a new story, and create a correspondingCOMMENT
MEDIUMcore/controllers/admin_test.py2516 # 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
MEDIUMcore/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.py381 # Create a translation suggestion so that the reviewer has somethingCOMMENT
MEDIUMcore/controllers/cron_test.py645 # Create a translation suggestion so that the reviewer has somethingCOMMENT
MEDIUMcore/controllers/android_test.py741 # Create a skill and two questions, linking each question to that skill.COMMENT
MEDIUMcore/controllers/android_test.py824 # 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.py1145 # Create a default arc covering all nodes.COMMENT
MEDIUMcore/controllers/admin.py1618 # Create a default arc covering all nodes.COMMENT
MEDIUMcore/controllers/contributor_dashboard_test.py523 # Create a translation suggestion for exploration 0.COMMENT
MEDIUMcore/controllers/contributor_dashboard_test.py2141 # Create a topic.COMMENT
MEDIUMcore/controllers/contributor_dashboard_test.py340 # Create a new topic.COMMENT
MEDIUMcore/controllers/contributor_dashboard_test.py399 # Create a new topic.COMMENT
MEDIUMcore/controllers/contributor_dashboard_test.py557 # Create a translation suggestion in Hindi.COMMENT
MEDIUMcore/controllers/contributor_dashboard_test.py576 # Create a translation suggestion in Spanish.COMMENT
MEDIUMcore/controllers/contributor_dashboard_test.py642 # Create a translation suggestion in Hindi.COMMENT
MEDIUMcore/controllers/contributor_dashboard_test.py661 # Create a translation suggestion in Spanish.COMMENT
74 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
MEDIUMcore/domain/exp_domain_test.py815 # ┌────────────────┐COMMENT
MEDIUMcore/domain/exp_domain_test.py817 # └──┬───────────┬─┘COMMENT
MEDIUMcore/domain/exp_domain_test.py820 # ┌────────┴──┐ ┌─┴─────────┐COMMENT
MEDIUMcore/domain/exp_domain_test.py822 # └───────────┘ └─┬─────────┘COMMENT
MEDIUMcore/domain/exp_domain_test.py824 # ┌─────────────┴─┐COMMENT
MEDIUMcore/domain/exp_domain_test.py826 # └───────────────┘.COMMENT
MEDIUMcore/domain/exp_domain_test.py990 # ┌────────────────┐COMMENT
MEDIUMcore/domain/exp_domain_test.py992 # └──┬───────────┬─┘COMMENT
MEDIUMcore/domain/exp_domain_test.py995 # ┌────────┴──┐ ┌─┴─────────┐COMMENT
MEDIUMcore/domain/exp_domain_test.py997 # └────────┬──┘ └───────────┘COMMENT
MEDIUMcore/domain/exp_domain_test.py999 # ┌─┴─────────────┐COMMENT
MEDIUMcore/domain/exp_domain_test.py1001 # └───────────────┘.COMMENT
MEDIUMcore/domain/exp_domain_test.py1050 # ┌────────────────┐COMMENT
MEDIUMcore/domain/exp_domain_test.py1052 # └─┬─────┬──────┬─┘COMMENT
MEDIUMcore/domain/exp_domain_test.py1053 # ┌───────────┐ │ │ │ ┌────────────┐COMMENT
MEDIUMcore/domain/exp_domain_test.py1054 # │ A ├────┘ │ └─────┤ C │COMMENT
MEDIUMcore/domain/exp_domain_test.py1055 # └────┬──────┘ │ └─────┬──────┘COMMENT
MEDIUMcore/domain/exp_domain_test.py1056 # │ ┌────┴─────┐ │COMMENT
MEDIUMcore/domain/exp_domain_test.py1058 # │ └──┬───────┘ │COMMENT
MEDIUMcore/domain/exp_domain_test.py1059 # └─────────┐ │ │COMMENT
MEDIUMcore/domain/exp_domain_test.py1060 # ┌──────┴─────┴─┐ ┌─────────────┘COMMENT
MEDIUMcore/domain/exp_domain_test.py1062 # └─────────────┬┘ │COMMENT
MEDIUMcore/domain/exp_domain_test.py1064 # ┌──┴─────┴──┐COMMENT
MEDIUMcore/domain/exp_domain_test.py1066 # └───────────┘.COMMENT
24 more matches not shown…
Deep Nesting292 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.py328CODE
LOWcore/tests/test_utils.py814CODE
LOWcore/tests/test_utils.py3162CODE
LOWcore/storage/base_model/gae_models.py368CODE
LOWcore/storage/suggestion/gae_models.py678CODE
LOWcore/storage/suggestion/gae_models.py867CODE
LOWcore/storage/suggestion/gae_models.py1027CODE
LOWcore/storage/suggestion/gae_models.py2515CODE
LOWcore/storage/suggestion/gae_models.py2941CODE
LOWcore/storage/suggestion/gae_models.py3279CODE
LOWcore/storage/suggestion/gae_models.py3571CODE
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.py197CODE
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…bs/batch_jobs/translation_opportunity_backfill_jobs.py68CODE
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.py103CODE
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.py388CODE
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.py1885CODE
LOWcore/jobs/batch_jobs/contributor_admin_stats_jobs.py2028CODE
LOWcore/controllers/base_test.py1074CODE
LOWcore/controllers/base_test.py1161CODE
LOWcore/controllers/base_test.py1204CODE
LOWcore/controllers/base_test.py1413CODE
LOWcore/controllers/base_test.py1847CODE
LOWcore/controllers/payload_validator.py66CODE
LOWcore/controllers/voiceover.py387CODE
LOWcore/controllers/profile.py353CODE
LOWcore/controllers/profile.py684CODE
LOWcore/controllers/topic_viewer.py80CODE
LOWcore/controllers/cron_test.py996CODE
LOWcore/controllers/reader.py150CODE
LOWcore/controllers/skill_editor.py175CODE
232 more matches not shown…
Excessive Try-Catch Wrapping144 hits · 139 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
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.py1558 except Exception as e:CODE
LOWcore/tests/test_utils_test.py650 except Exception as e:CODE
LOWcore/jobs/jobs_manager.py218 except Exception as e:CODE
LOWcore/jobs/jobs_manager.py274 except Exception:CODE
LOWcore/jobs/jobs_manager.py301 except Exception:CODE
LOWcore/jobs/io/gcs_io.py85 except Exception: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.py189 except Exception:CODE
LOWcore/jobs/batch_jobs/voiceover_synthesis_jobs.py423 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.py513 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/release_coordinator.py266 except Exception as e:CODE
LOWcore/controllers/skill_editor.py331 except Exception as e:CODE
LOWcore/controllers/topic_editor.py973 except Exception as e:CODE
84 more matches not shown…
Hallucination Indicators11 hits · 110 pts
SeverityFileLineSnippetContext
CRITICAL…ctives/navigation-bars/top-navigation-bar.component.ts232 this.windowRef.nativeWindow.location.pathname.split('/')[1];CODE
CRITICAL…ommon-elements/classroom-navigation-links.component.ts82 this.windowRef.nativeWindow.location.pathname.split('/')[1];CODE
CRITICAL…templates/pages/library-page/library-page.component.ts387 this.windowRef.nativeWindow.location.pathname.split('/');CODE
CRITICAL…s/library-page/search-bar/search-bar.component.spec.ts423 windowRef.nativeWindow.history.pushState.calls.reset();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…/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
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.py342 # Check if entity_type is valid.COMMENT
LOWcore/storage/user/gae_models_test.py3634 # Check if passing a non-existent user_id does not fail.COMMENT
LOWcore/storage/user/gae_models_test.py3267 # 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
LOWcore/controllers/voice_artist_test.py346 # 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.py518 # Check if the language preference is default.COMMENT
LOWcore/controllers/library_test.py690 # Check if the language preference is default.COMMENT
LOWcore/controllers/library_test.py784 # Assign rating to exploration to test handler for top ratedCOMMENT
LOWcore/controllers/library_test.py816 # Assign rating to exploration to test handler for top ratedCOMMENT
LOWcore/domain/feedback_services_test.py747 # Check if the number of unread messages match.COMMENT
LOWcore/domain/feedback_services_test.py775 # Check if the number of unread messages is equal to 1.COMMENT
LOWcore/domain/feedback_services_test.py850 # Check if the message is added to the read section of the viewer.COMMENT
LOWcore/domain/exp_domain.py2176 # Check if first state is a checkpoint or not.COMMENT
LOWcore/domain/exp_domain.py2184 # Check if terminal states are checkpoints.COMMENT
LOWcore/domain/exp_domain.py2196 # Check if checkpoint count is between 1 and 8, inclusive.COMMENT
LOWcore/domain/exp_domain.py2207 # 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
LOWcore/domain/state_domain.py4045 # Check if the state_dict can be converted to a State.COMMENT
LOWcore/domain/state_domain.py3395 # Check if there are input keys which are not rule parameters.COMMENT
LOWcore/domain/state_domain.py3402 # Check if there are missing parameters.COMMENT
LOWcore/domain/question_domain.py984 # Assign values to html fields.COMMENT
LOWcore/domain/learner_goals_services_test.py356 # Check if the removed topic is not present in the learner goals.COMMENT
LOWcore/domain/learner_goals_services_test.py362 # Check if the remaining topic is still present in the learner goals.COMMENT
LOWcore/domain/learner_goals_services_test.py371 # Check if both topics are not present in the learner goals.COMMENT
LOWcore/domain/topic_services.py833 # Check if study guide already exists in our modified collection.COMMENT
LOWcore/domain/wipeout_service.py737 # 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.py319 # Set constant to provide everything to frontend.COMMENT
LOWscripts/build_test.py355 # Set constant to provide everything to frontend.COMMENT
LOWscripts/servers.py417 # Check if a redis dump file currently exists. This file contains residualCOMMENT
LOWscripts/servers.py610 # Check if a socket file exists. This file can exist when previous instanceCOMMENT
LOWscripts/run_lighthouse_tests.py330 # 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/run_lint_checks.py319 # Check if 'js' and 'ts' both are present in file_extensions_to_lint.COMMENT
LOWscripts/linters/pylint_extensions.py1769 # Check if variable name is used.COMMENT
LOWscripts/linters/pylint_extensions.py1775 # Check if allowed prefix is used.COMMENT
LOWscripts/linters/pylint_extensions.py1781 # Check if comment contains any excluded phrase.COMMENT
LOWscripts/linters/pylint_extensions.py131 # Check if token type is an operator and is either aCOMMENT
8 more matches not shown…
Modern Structural Boilerplate85 hits · 94 pts
SeverityFileLineSnippetContext
LOWmypy_imports.py90__all__ = [CODE
LOWcore/tests/test_utils.py2896 def set_question_admins(self, question_admin_usernames: List[str]) -> None:CODE
LOWcore/tests/test_utils.py2926 def set_moderators(self, moderator_usernames: List[str]) -> None:CODE
LOWcore/tests/test_utils.py2935 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.py1187def update_feedback_email_retries_transactional(user_id: str) -> None:CODE
LOWcore/domain/exp_services.py4287def set_exploration_edits_allowed(exp_id: str, edits_are_allowed: bool) -> None:CODE
LOWcore/domain/story_domain.py2425 def update_description(self, description: str) -> None:CODE
LOWcore/domain/story_domain.py2433 def update_notes(self, notes: str) -> None:CODE
LOWcore/domain/story_domain.py2441 def update_language_code(self, language_code: str) -> None:CODE
LOWcore/domain/story_domain.py2449 def update_url_fragment(self, url_fragment: str) -> None:CODE
LOWcore/domain/story_domain.py2457 def update_meta_tag_content(self, new_meta_tag_content: str) -> None:CODE
LOWcore/domain/story_domain.py2379 def update_title(self, title: str) -> None:CODE
LOWcore/domain/story_domain.py2539 def update_node_outline(self, node_id: str, new_outline: str) -> None:CODE
LOWcore/domain/story_domain.py2549 def update_node_title(self, node_id: str, new_title: str) -> None:CODE
LOWcore/domain/story_domain.py2669 def update_node_status(self, node_id: str, new_status: str) -> None:CODE
LOWcore/domain/story_domain.py2893 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
LOWcore/domain/exp_domain.py2526 def update_title(self, title: str) -> None:CODE
LOWcore/domain/exp_domain.py2534 def update_category(self, category: str) -> None:CODE
LOWcore/domain/exp_domain.py2542 def update_objective(self, objective: str) -> None:CODE
LOWcore/domain/exp_domain.py2550 def update_language_code(self, language_code: str) -> None:CODE
LOWcore/domain/exp_domain.py2558 def update_tags(self, tags: List[str]) -> None:CODE
LOWcore/domain/exp_domain.py2566 def update_blurb(self, blurb: str) -> None:CODE
LOWcore/domain/exp_domain.py2574 def update_author_notes(self, author_notes: str) -> None:CODE
LOWcore/domain/exp_domain.py2628 def update_auto_tts_enabled(self, auto_tts_enabled: bool) -> None:CODE
LOWcore/domain/exp_domain.py2637 def update_next_content_id_index(self, next_content_id_index: int) -> None:CODE
LOWcore/domain/exp_domain.py2607 def update_init_state_name(self, init_state_name: str) -> None:CODE
LOWcore/domain/recommendations_services.py290def update_topic_similarities(csv_data: str) -> None:CODE
LOWcore/domain/suggestion_registry.py198 def set_suggestion_status_to_accepted(self) -> None:CODE
LOWcore/domain/suggestion_registry.py202 def set_suggestion_status_to_in_review(self) -> None:CODE
LOWcore/domain/suggestion_registry.py206 def set_suggestion_status_to_rejected(self) -> None:CODE
LOWcore/domain/suggestion_registry.py210 def set_final_reviewer_id(self, reviewer_id: str) -> None:CODE
LOWcore/domain/suggestion_registry.py970 def _update_change_to_latest_state_schema_version(self) -> None:CODE
LOWcore/domain/cloud_task_domain.py333 def update_remaining_content_status_as_succeeded(self) -> None:CODE
LOWcore/domain/blog_domain.py367 def update_title(self, new_title: str) -> None:CODE
LOWcore/domain/blog_domain.py376 def update_url_fragment(self, new_url_fragment: str) -> None:CODE
LOWcore/domain/blog_domain.py398 def update_content(self, content: str) -> None:CODE
LOWcore/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
LOWcore/domain/topic_domain.py1969 def update_abbreviated_name(self, new_abbreviated_name: str) -> None:CODE
LOWcore/domain/topic_domain.py1978 def update_url_fragment(self, new_url_fragment: str) -> None:CODE
LOWcore/domain/topic_domain.py2010 def update_description(self, new_description: str) -> None:CODE
LOWcore/domain/topic_domain.py2018 def update_language_code(self, new_language_code: str) -> None:CODE
LOWcore/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
LOWcore/domain/skill_domain.py1682 def update_description(self, description: str) -> None:CODE
LOWcore/domain/skill_domain.py1690 def update_language_code(self, language_code: str) -> None:CODE
LOWcore/domain/skill_domain.py1698 def update_superseding_skill_id(self, superseding_skill_id: str) -> None:CODE
LOWcore/domain/skill_domain.py1832 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.py609 def update_name(self, updated_name: str) -> None:CODE
LOWcore/domain/user_services.py1610def set_username(user_id: str, new_username: str) -> None:CODE
LOWcore/domain/user_services.py2406def update_dashboard_stats_log(user_id: str) -> None:CODE
LOWcore/domain/user_services.py2998def set_user_has_viewed_lesson_info_modal_once(user_id: str) -> None:CODE
LOWcore/domain/state_domain.py4053 def update_content(self, content: SubtitledHtml) -> None:CODE
25 more matches not shown…
Cross-Language Confusion9 hits · 68 pts
SeverityFileLineSnippetContext
HIGHcore/domain/caching_services_test.py151 '"interaction": {"solution": null, "answer_gr'CODE
HIGHcore/domain/caching_services_test.py152 'oups": [{"tagged_skill_misconception_id": null, "outcome": {"param_cha'CODE
HIGHcore/domain/caching_services_test.py155 '_stuck": null, "refresher_exploration_id": null, "missing_prerequisite'CODE
HIGHcore/domain/caching_services_test.py156 '_skill_id": null, "labelled_as_correct": false}, "training_data": [], 'CODE
HIGHcore/domain/caching_services_test.py162 ' null, "refresher_exploration_id": null, "missing_prerequisite_skill_i'CODE
HIGHcore/domain/caching_services_test.py163 'd": null, "labelled_as_correct": false}, "customization_args": {"rows"'CODE
HIGHcore/domain/caching_services_test.py169 'is a copyright character \\u00a9.</p>"}}]}, "linked_skill_id": null, 'CODE
HIGHcore/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
AI Slop Vocabulary18 hits · 37 pts
SeverityFileLineSnippetContext
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.ts260 // 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.py2406 # If the strings are identical, simply return truncated versions.COMMENT
MEDIUMcore/domain/state_domain.py2273 # name to InteractionCustomizationArg, so that we can utilizeCOMMENT
MEDIUMcore/domain/voiceover_regeneration_services.py369 # cache fails; otherwise, utilize the cached voiceovers.COMMENT
LOWscripts/servers.py640 # can just return immediately.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
AI Structural Patterns10 hits · 8 pts
SeverityFileLineSnippetContext
LOWcore/platform/storage/cloud_storage_services.py77CODE
LOW…rm/speech_synthesis/azure_speech_synthesis_services.py210CODE
LOWcore/tests/test_utils.py4198CODE
LOWcore/tests/test_utils.py4587CODE
LOWcore/domain/user_domain.py103CODE
LOWcore/domain/user_domain.py1597CODE
LOWcore/domain/user_services.py2162CODE
LOWscripts/scripts_test_utils.py59CODE
LOWscripts/servers.py159CODE
LOWscripts/run_backend_tests.py282CODE
Synthetic Comment Markers1 hit · 8 pts
SeverityFileLineSnippetContext
HIGHcore/storage/translation/gae_models.py475 # The AI-generated translation of the source text into the target language.COMMENT
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.txt2166# 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.py346 # 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