Repository Analysis

oppia/oppia

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

12.9 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of oppia/oppia, a Python project with 6,782 GitHub stars. SynthScan v2.0 examined 1,549,768 lines of code across 5750 source files, recording 19321 pattern matches distributed across 21 syntactic categories. The overall adjusted score of 12.9 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).

12.9
Adjusted Score
12.9
Raw Score
100%
Time Factor
2026-08-29
Last Push
6.8K
Stars
Python
Language
1.5M
Lines of Code
5.8K
Files
19.3K
Pattern Hits
2026-08-29
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 10HIGH 718MEDIUM 237LOW 18356

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 19321 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 Identifiers11886 hits · 9621 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.py330 def test_datetime_conversion_to_string_returns_correct_format(self) -> None:CODE
LOWcore/utils_test.py337 def test_string_to_datetime_conversion_returns_correct_datetime(CODE
LOWcore/utils_test.py347 def test_create_string_from_largest_unit_in_timedelta_raises_for_zero_diff(CODE
LOWcore/utils_test.py687 def test_get_exploration_components_from_dir_with_no_yaml_file(CODE
LOWcore/utils_test.py697 def test_get_asset_dir_prefix_with_prod_mode(self) -> None:CODE
LOWcore/utils_test.py705 def test_get_supported_audio_language_description_with_invalid_code(CODE
LOWcore/utils_test.py757 def test_snake_case_to_camel_case(self) -> None:CODE
LOWcore/utils_test.py765 def _assert_valid_thumbnail_filename(CODE
LOWcore/utils_test.py774 def test_require_valid_thumbnail_filename(self) -> None:CODE
LOWcore/utils_test.py840 def test_get_time_in_millisecs(self) -> None:CODE
11826 more matches not shown…
Over-Commented Block4288 hits · 4188 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
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# based on the their stages. Features not added in the lists above won't beCOMMENT
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.py621# publishes an exploration.COMMENT
LOWcore/feconf.py841COMMENT
LOWcore/feconf.py1221# Number of unresolved answers to be displayed in the dashboard for eachCOMMENT
LOWcore/feconf.py1481COMMENT
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
4228 more matches not shown…
Docstring Block Structure436 hits · 1985 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.py1134Returns 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.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.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.py479Mocks get_platform_parameter_value function to return the value of the platform parameter if the parameter is prSTRING
HIGHcore/tests/test_utils.py623Creates an index with the given name. Args: index: str. The name of the index to create. RSTRING
HIGHcore/tests/test_utils.py662Adds 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.py703Checks whether a document with the given ID exists in the mock database. Args: index: str. STRING
HIGHcore/tests/test_utils.py723Deletes a document from an index in the mock database. Does nothing if the document is not in the index. STRING
HIGHcore/tests/test_utils.py772Deletes documents from an index based on the given query. Note that this mock only supports a specific for the STRING
HIGHcore/tests/test_utils.py820Searches and returns documents that match the given query. Args: body: dict|None. A dictionary searSTRING
HIGHcore/tests/test_utils.py1547Updates a param dict using the given list of param_changes. Note that the list of parameter changes is ordered.STRING
HIGHcore/tests/test_utils.py1736Swap obj.attr with a CallCounter instance. Args: obj: *. The Python object whose attribute you wantSTRING
HIGHcore/tests/test_utils.py1776Swap an object's function value within the context of a 'with' statement. The object can be anything that supporSTRING
HIGHcore/tests/test_utils.py1988Asserts that the message in a raised exception matches a regex. This is a wrapper around assertRaisesRegex in unSTRING
HIGHcore/tests/test_utils.py2944Gets the user ID corresponding to the given email. Args: email: str. A valid email stored in the ApSTRING
HIGHcore/tests/test_utils.py3129Get a response, transformed to a Python object and checks for a list of status codes. Args: STRING
HIGHcore/tests/test_utils.py3738Saves a new strictly-validated exploration with a sequence of states. Args: exploration_id: str. ThSTRING
HIGHcore/tests/test_utils.py4055Creates 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.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
376 more matches not shown…
Cross-File Repetition271 hits · 1355 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
211 more matches not shown…
Unused Imports1075 hits · 937 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
1015 more matches not shown…
Fake / Example Data495 hits · 429 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.py2271 CURRICULUM_ADMIN_EMAIL: Final = 'admin@example.com'CODE
LOWcore/tests/test_utils.py2382 'placeholder': {'value': 'Enter text here'},CODE
LOWcore/tests/test_utils.py4524 'placeholder': {CODE
LOWcore/tests/test_utils.py4528 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…ght-acceptance-tests/utilities/user/logged-out-user.ts1357 return el && el.getAttribute('placeholder') === expected;CODE
LOW…eer-acceptance-tests/utilities/user/logged-out-user.ts6741 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/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.py290 'Entity for class UserSettingsModel with id fake_user not found',CODE
LOWcore/storage/user/gae_models_test.py292 user_models.UserSettingsModel.export_data('fake_user')CODE
LOWcore/storage/user/gae_models_test.py298 'email': 'user@example.com',CODE
LOWcore/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
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…contribution-opportunities-backend-api.service.spec.ts164 email: 'user@example.com',CODE
LOW…ashboard-page/learner-dashboard-page.component.spec.ts238 _email: 'tester@example.org',CODE
LOW…ashboard-page/learner-dashboard-page.component.spec.ts253 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
435 more matches not shown…
Self-Referential Comments133 hits · 380 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.py2507 # 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.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.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.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.py2515 # 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.py390 # Create a translation suggestion so that the reviewer has somethingCOMMENT
MEDIUMcore/controllers/cron_test.py669 # 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.py1145 # Create a default arc covering all nodes.COMMENT
MEDIUMcore/controllers/admin.py1632 # Create a default arc covering all nodes.COMMENT
MEDIUMcore/controllers/contributor_dashboard_test.py524 # Create a translation suggestion for exploration 0.COMMENT
MEDIUMcore/controllers/contributor_dashboard_test.py2142 # Create a topic.COMMENT
MEDIUMcore/controllers/contributor_dashboard_test.py341 # Create a new topic.COMMENT
MEDIUMcore/controllers/contributor_dashboard_test.py400 # Create a new topic.COMMENT
MEDIUMcore/controllers/contributor_dashboard_test.py558 # Create a translation suggestion in Hindi.COMMENT
MEDIUMcore/controllers/contributor_dashboard_test.py577 # Create a translation suggestion in Spanish.COMMENT
MEDIUMcore/controllers/contributor_dashboard_test.py643 # Create a translation suggestion in Hindi.COMMENT
MEDIUMcore/controllers/contributor_dashboard_test.py662 # Create a translation suggestion in Spanish.COMMENT
MEDIUMcore/controllers/contributor_dashboard_test.py763 # Create a translation suggestion in Hindi.COMMENT
73 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 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.py327CODE
LOWcore/tests/test_utils.py813CODE
LOWcore/tests/test_utils.py3122CODE
LOWcore/storage/base_model/gae_models.py368CODE
LOWcore/storage/suggestion/gae_models.py678CODE
LOWcore/storage/suggestion/gae_models.py879CODE
LOWcore/storage/suggestion/gae_models.py1047CODE
LOWcore/storage/suggestion/gae_models.py2542CODE
LOWcore/storage/suggestion/gae_models.py2968CODE
LOWcore/storage/suggestion/gae_models.py3306CODE
LOWcore/storage/suggestion/gae_models.py3598CODE
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.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.py365CODE
LOWcore/controllers/profile.py706CODE
LOWcore/controllers/topic_viewer.py80CODE
LOWcore/controllers/cron_test.py1020CODE
LOWcore/controllers/reader.py150CODE
LOWcore/controllers/skill_editor.py175CODE
LOWcore/controllers/topic_editor.py121CODE
234 more matches not shown…
Excessive Try-Catch Wrapping150 hits · 142 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.py1568 except Exception as e:CODE
LOWcore/tests/test_utils_test.py650 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
90 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.py342 # Check if entity_type is valid.COMMENT
LOWcore/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
LOWcore/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.py520 # Check if the language preference is default.COMMENT
LOWcore/controllers/library_test.py692 # Check if the language preference is default.COMMENT
LOWcore/controllers/library_test.py823 # Assign rating to exploration to test handler for top ratedCOMMENT
LOWcore/controllers/library_test.py855 # 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.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
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.py834 # Check if study guide already exists in our modified collection.COMMENT
LOWcore/domain/wipeout_service.py742 # 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.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.py1715 # Check if variable name is used.COMMENT
LOWscripts/linters/pylint_extensions.py1721 # Check if allowed prefix is used.COMMENT
LOWscripts/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…
Hallucination Indicators10 hits · 100 pts
SeverityFileLineSnippetContext
CRITICAL…ctives/navigation-bars/top-navigation-bar.component.ts233 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.ts413 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.ts118 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
Modern Structural Boilerplate85 hits · 94 pts
SeverityFileLineSnippetContext
LOWmypy_imports.py90__all__ = [CODE
LOWcore/tests/test_utils.py2856 def set_question_admins(self, question_admin_usernames: List[str]) -> None:CODE
LOWcore/tests/test_utils.py2886 def set_moderators(self, moderator_usernames: List[str]) -> None:CODE
LOWcore/tests/test_utils.py2895 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.py1186def update_feedback_email_retries_transactional(user_id: str) -> None:CODE
LOWcore/domain/exp_services.py4289def set_exploration_edits_allowed(exp_id: str, edits_are_allowed: bool) -> None:CODE
LOWcore/domain/story_domain.py2494 def update_description(self, description: str) -> None:CODE
LOWcore/domain/story_domain.py2502 def update_notes(self, notes: str) -> None:CODE
LOWcore/domain/story_domain.py2510 def update_language_code(self, language_code: str) -> None:CODE
LOWcore/domain/story_domain.py2518 def update_url_fragment(self, url_fragment: str) -> None:CODE
LOWcore/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
LOWcore/domain/exp_domain.py2541 def update_title(self, title: str) -> None:CODE
LOWcore/domain/exp_domain.py2549 def update_category(self, category: str) -> None:CODE
LOWcore/domain/exp_domain.py2557 def update_objective(self, objective: str) -> None:CODE
LOWcore/domain/exp_domain.py2565 def update_language_code(self, language_code: str) -> None:CODE
LOWcore/domain/exp_domain.py2573 def update_tags(self, tags: List[str]) -> None:CODE
LOWcore/domain/exp_domain.py2581 def update_blurb(self, blurb: str) -> None:CODE
LOWcore/domain/exp_domain.py2589 def update_author_notes(self, author_notes: str) -> None:CODE
LOWcore/domain/exp_domain.py2643 def update_auto_tts_enabled(self, auto_tts_enabled: bool) -> None:CODE
LOWcore/domain/exp_domain.py2652 def update_next_content_id_index(self, next_content_id_index: int) -> None:CODE
LOWcore/domain/exp_domain.py2622 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
LOWcore/domain/suggestion_registry.py199 def set_suggestion_status_to_accepted(self) -> None:CODE
LOWcore/domain/suggestion_registry.py203 def set_suggestion_status_to_in_review(self) -> None:CODE
LOWcore/domain/suggestion_registry.py207 def set_suggestion_status_to_rejected(self) -> None:CODE
LOWcore/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
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.py1731 def update_description(self, description: str) -> None:CODE
LOWcore/domain/skill_domain.py1739 def update_language_code(self, language_code: str) -> None:CODE
LOWcore/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
LOWcore/domain/user_services.py1623def set_username(user_id: str, new_username: str) -> None:CODE
LOWcore/domain/user_services.py2460def update_dashboard_stats_log(user_id: str) -> None:CODE
LOWcore/domain/user_services.py3052def set_user_has_viewed_lesson_info_modal_once(user_id: str) -> None:CODE
LOWcore/domain/state_domain.py4047 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 Vocabulary17 hits · 36 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.ts262 // 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.py2536 # 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
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.py4159CODE
LOWcore/tests/test_utils.py4548CODE
LOWcore/storage/general_feedback/gae_models.py402CODE
LOWcore/domain/user_domain.py104CODE
LOWcore/domain/user_domain.py1555CODE
LOWcore/domain/user_services.py2216CODE
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.py334 # 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