Repository Analysis

OpenShot/openshot-qt

OpenShot Video Editor is an award-winning free and open-source video editor for Linux, Mac, and Windows, and is dedicated to delivering high quality video editing and animation solutions to the world.

20.1 Moderate AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of OpenShot/openshot-qt, a Python project with 6,058 GitHub stars. SynthScan v2.0 examined 152,314 lines of code across 384 source files, recording 2220 pattern matches distributed across 14 syntactic categories. The overall adjusted score of 20.1 places this repository in the Moderate 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).

20.1
Adjusted Score
20.1
Raw Score
100%
Time Factor
2026-06-29
Last Push
6.1K
Stars
Python
Language
152.3K
Lines of Code
384
Files
2.2K
Pattern Hits
2026-07-14
Scan Date
0.54
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

Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.

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

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 0HIGH 209MEDIUM 155LOW 1856

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 2220 distinct pattern matches across 14 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.

Cross-File Repetition196 hits · 980 pts
SeverityFileLineSnippetContext
HIGHsetup.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHfreeze.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHimages/generate_cache.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHinstaller/deploy.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHinstaller/prune_daily_builds.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHinstaller/build_server.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHinstaller/version_parser.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHinstaller/test-framerates.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/__init__.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/waveform.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/metrics.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/keyframe_scaler.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/generation_queue.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/timeline.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/effect_init.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/version.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/query.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/json_data.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/logger_libopenshot.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/convert_framerate.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/generation_service.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/time_parts.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/updates.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/project_data.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/conversion.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/thumbnail.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/clip_utils.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/logger.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/style_tools.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/assets.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/qt_types.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/proxy_service.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/language.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/settings.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/app.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/exceptions.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/ui_util.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/comfy_client.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/clipboard.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/sentry.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/info.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/title_bar.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/path_utils.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/image_types.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/importers/edl.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/importers/final_cut_pro.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/exporters/edl.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/exporters/final_cut_pro.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/legacy/openshot/classes/sequences.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/legacy/openshot/classes/files.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/legacy/openshot/classes/timeline.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/legacy/openshot/classes/track.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/legacy/openshot/classes/keyframe.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/legacy/openshot/classes/transition.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/legacy/openshot/classes/marker.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/legacy/openshot/classes/clip.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/legacy/openshot/classes/effect.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/classes/legacy/openshot/classes/project.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/tests/test_color_grade_editor.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
HIGHsrc/tests/test_files_model_import.py0@file @brief this file contains the base theme. each theme starts with these settings and overrides certain things. @autSTRING
136 more matches not shown…
Hyper-Verbose Identifiers933 hits · 798 pts
SeverityFileLineSnippetContext
LOWfreeze.py249def find_required_windows_opencv_dlls(seed_binaries, opencv_dlls_by_name):CODE
LOWfreeze.py288def should_package_source_file(filename):CODE
LOWdoc/conf.py572 def _builder_configure_latex_fonts(app):STRING
LOWdoc/conf.py575 def _builder_configure_html_context(app):STRING
LOWinstaller/build_server.py244def run_command_with_exit_code(command, working_dir=None):CODE
LOWinstaller/fix_opencv_rpath.py56def opencv_rpath_dependencies(path):CODE
LOWinstaller/fix_opencv_rpath.py82def rewrite_opencv_dependencies(path, stage_dir):CODE
LOWsrc/qt_api.py1035 def _patch_point_event_methods(cls):CODE
LOWsrc/qt_api.py239 def _request_storage_permission(self):CODE
LOWsrc/qt_api.py786def request_android_storage_permission_if_needed():CODE
LOWsrc/qt_api.py869def get_font_dialog_selection(initial_font=None, parent=None, title=""):CODE
LOWsrc/classes/ui_trace_recorder.py259 def _make_dock_visibility_slot(self, dock):CODE
LOWsrc/classes/ui_trace_recorder.py265 def _on_dock_visibility_changed(self, dock, visible):CODE
LOWsrc/classes/generation_queue.py56 def _is_unfinished_meta_batch(history_entry):CODE
LOWsrc/classes/generation_queue.py84 def _allow_unfiltered_output_fallback(template_id):CODE
LOWsrc/classes/generation_queue.py97 def _find_related_meta_batch_outputs(self, client, history_entry, save_node_ids, template_id=""):CODE
LOWsrc/classes/generation_queue.py824 def _on_progress_detail_changed(self, job_id, detail):CODE
LOWsrc/classes/json_data.py228 def replace_string_to_absolute(self, match):CODE
LOWsrc/classes/json_data.py270 def convert_paths_to_absolute(self, file_path, data):CODE
LOWsrc/classes/json_data.py287 def replace_string_to_relative(self, match):CODE
LOWsrc/classes/json_data.py371 def convert_paths_to_relative(self, file_path, previous_path, data):CODE
LOWsrc/classes/http_client.py50def configure_ssl_environment():CODE
LOWsrc/classes/generation_service.py255 def _strip_workflow_display_suffix(name):CODE
LOWsrc/classes/generation_service.py262 def _reserved_generation_stems(self):CODE
LOWsrc/classes/generation_service.py604 def _is_reference_image_placeholder_value(path_text):CODE
LOWsrc/classes/generation_service.py612 def _is_prompt_placeholder_value(text_value):CODE
LOWsrc/classes/generation_service.py616 def _is_lyrics_placeholder_value(text_value):CODE
LOWsrc/classes/generation_service.py620 def _replace_prompt_placeholders(text_value):CODE
LOWsrc/classes/generation_service.py125 def refresh_comfy_availability_async(self, timeout=0.5, callback=None):CODE
LOWsrc/classes/generation_service.py201 def _prepare_generation_source_path(self, source_file, template_id):CODE
LOWsrc/classes/generation_service.py298 def _source_display_root_name(self, source_file):CODE
LOWsrc/classes/generation_service.py499 def _prepare_template_workflow(CODE
LOWsrc/classes/generation_service.py529 def _resolve_template_local_file(path_text):CODE
LOWsrc/classes/generation_service.py631 def _replace_lyrics_placeholders(text_value):CODE
LOWsrc/classes/generation_service.py1024 def _selected_generation_targets(self, source_file=None):CODE
LOWsrc/classes/generation_service.py1038 def _enqueue_generation_for_file(self, source_file, payload):CODE
LOWsrc/classes/generation_service.py1175 def on_generation_job_finished(self, job_id, status):CODE
LOWsrc/classes/generation_service.py1220 def _import_generation_outputs(self, job):CODE
LOWsrc/classes/generation_service.py1376 def _extract_video_paths_from_text(self, text_payload):CODE
LOWsrc/classes/generation_service.py1387 def _looks_like_filesystem_path(self, text_payload):CODE
LOWsrc/classes/generation_service.py1396 def _extract_scene_ranges_from_text(self, text_payload):CODE
LOWsrc/classes/generation_service.py1433 def _create_scene_split_files(self, source_file_id, scene_ranges):CODE
LOWsrc/classes/generation_service.py1553 def _seconds_to_compact_timecode(self, seconds_value, fps_fraction, include_hours=False, include_minutes=False):CODE
LOWsrc/classes/generation_service.py1579 def _apply_scene_segment_metadata(self, source_file_id, saved_paths):CODE
LOWsrc/classes/generation_service.py1632 def _comfy_output_ref_from_path(self, path_text):CODE
LOWsrc/classes/updates.py485 def apply_last_action_to_history(self, previous_value):CODE
LOWsrc/classes/project_data.py75 def _effect_has_reader_source(self, effect):CODE
LOWsrc/classes/project_data.py87 def _migrate_optimized_asset_paths(self):CODE
LOWsrc/classes/project_data.py119 def _drop_obsolete_effect_resource(self, effect):CODE
LOWsrc/classes/project_data.py787 def upgrade_project_data_structures(self):CODE
LOWsrc/classes/project_data.py990 def _should_move_runtime_assets(self, source_root, default_name):CODE
LOWsrc/classes/project_data.py1065 def move_temp_paths_to_project_folder(self, file_path, previous_path=None):CODE
LOWsrc/classes/project_data.py1342 def _collect_effect_path_refs(effect):CODE
LOWsrc/classes/project_data.py1382 def _first_missing_effect_path(effect):CODE
LOWsrc/classes/project_data.py1573 def apply_default_audio_settings(self):CODE
LOWsrc/classes/clip_utils.py39def apply_file_caption_to_clip(clip_data: Any, file_obj: Any, *, dedupe: bool = True) -> bool:CODE
LOWsrc/classes/clip_utils.py172def video_length_to_project_frames(CODE
LOWsrc/classes/clip_utils.py266def _time_curve_length_frames(clip_data: Any, existing_clip: Any) -> Optional[int]:CODE
LOWsrc/classes/tabstops.py34def _dock_uses_auto_tab_order(dock):CODE
LOWsrc/classes/tabstops.py194def _prepare_focusable_containers(root):CODE
873 more matches not shown…
Excessive Try-Catch Wrapping506 hits · 477 pts
SeverityFileLineSnippetContext
LOWfreeze.py512 except Exception as ex:CODE
LOWimages/generate_cache.py125 except Exception as exc:CODE
LOWimages/generate_cache.py326 except Exception as exc:CODE
LOWdoc/conf.py581 except Exception:STRING
LOWinstaller/deploy.py367 except Exception as ex:CODE
MEDIUMinstaller/build_server.py98 print("Error: %s" % line)CODE
LOWinstaller/build_server.py208 except Exception as ex:CODE
LOWinstaller/build_server.py229 except Exception as ex:CODE
LOWinstaller/build_server.py738 except Exception as ex:CODE
MEDIUMsrc/qt_api.py207def open(self):CODE
MEDIUMsrc/qt_api.py579def open(self):CODE
LOWsrc/qt_api.py63 except Exception:CODE
LOWsrc/qt_api.py69 except Exception:CODE
LOWsrc/qt_api.py72 except Exception:CODE
LOWsrc/qt_api.py78 except Exception:CODE
LOWsrc/qt_api.py127 except Exception:CODE
LOWsrc/qt_api.py130 except Exception:CODE
LOWsrc/qt_api.py139 except Exception as exc:CODE
LOWsrc/qt_api.py660 except Exception:CODE
LOWsrc/qt_api.py662 except Exception:CODE
LOWsrc/qt_api.py972 except Exception:CODE
LOWsrc/qt_api.py982 except Exception:CODE
LOWsrc/qt_api.py987 except Exception:CODE
LOWsrc/qt_api.py1018 except Exception:CODE
LOWsrc/qt_api.py1026 except Exception:CODE
LOWsrc/qt_api.py1032 except Exception:CODE
LOWsrc/qt_api.py1053 except Exception:CODE
LOWsrc/qt_api.py1057 except Exception:CODE
LOWsrc/qt_api.py1062 except Exception:CODE
LOWsrc/qt_api.py1075 except Exception:CODE
LOWsrc/qt_api.py1082 except Exception:CODE
LOWsrc/qt_api.py1089 except Exception:CODE
LOWsrc/qt_api.py1096 except Exception:CODE
LOWsrc/qt_api.py1103 except Exception:CODE
LOWsrc/qt_api.py1112 except Exception:CODE
LOWsrc/qt_api.py1128 except Exception:CODE
LOWsrc/qt_api.py1137 except Exception:CODE
LOWsrc/qt_api.py1146 except Exception:CODE
LOWsrc/qt_api.py1155 except Exception:CODE
LOWsrc/qt_api.py1164 except Exception:CODE
LOWsrc/qt_api.py1184 except Exception:CODE
LOWsrc/qt_api.py1193 except Exception:CODE
LOWsrc/qt_api.py1202 except Exception:CODE
LOWsrc/qt_api.py1211 except Exception:CODE
LOWsrc/qt_api.py1220 except Exception:CODE
LOWsrc/qt_api.py1229 except Exception:CODE
LOWsrc/qt_api.py1441 except Exception:CODE
LOWsrc/qt_api.py1450 except Exception:CODE
LOWsrc/qt_api.py1459 except Exception:CODE
LOWsrc/qt_api.py1468 except Exception:CODE
LOWsrc/qt_api.py1477 except Exception:CODE
LOWsrc/qt_api.py1486 except Exception:CODE
LOWsrc/qt_api.py1495 except Exception:CODE
LOWsrc/qt_api.py1504 except Exception:CODE
LOWsrc/qt_api.py1513 except Exception:CODE
LOWsrc/qt_api.py1522 except Exception:CODE
LOWsrc/qt_api.py1533 except Exception:CODE
LOWsrc/qt_api.py1542 except Exception:CODE
LOWsrc/qt_api.py1551 except Exception:CODE
LOWsrc/qt_api.py1560 except Exception:CODE
446 more matches not shown…
Decorative Section Separators87 hits · 272 pts
SeverityFileLineSnippetContext
MEDIUMsetup.py106# -------------------------------------COMMENT
MEDIUMsetup.py114# -------------------------------------COMMENT
MEDIUMsrc/classes/animation_presets.py61 # ── Attention seekers ─────────────────────────────────────────────────────COMMENT
MEDIUMsrc/classes/animation_presets.py143 # ── Back entrances ────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/classes/animation_presets.py174 # ── Back exits ────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/classes/animation_presets.py205 # ── Bouncing entrances ────────────────────────────────────────────────────COMMENT
MEDIUMsrc/classes/animation_presets.py256 # ── Bouncing exits ────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/classes/animation_presets.py289 # ── Fading entrances ──────────────────────────────────────────────────────COMMENT
MEDIUMsrc/classes/animation_presets.py360 # ── Fading exits ──────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/classes/legacy/openshot/classes/sequences.py33 # ----------------------------------------------------------------------COMMENT
MEDIUMsrc/classes/legacy/openshot/classes/files.py34 # ----------------------------------------------------------------------COMMENT
MEDIUMsrc/classes/legacy/openshot/classes/files.py65 # ----------------------------------------------------------------------COMMENT
MEDIUMsrc/classes/legacy/openshot/classes/timeline.py32 # ----------------------------------------------------------------------COMMENT
MEDIUMsrc/classes/legacy/openshot/classes/track.py34 # ----------------------------------------------------------------------COMMENT
MEDIUMsrc/classes/legacy/openshot/classes/keyframe.py34 # ----------------------------------------------------------------------COMMENT
MEDIUMsrc/classes/legacy/openshot/classes/transition.py34 # ----------------------------------------------------------------------COMMENT
MEDIUMsrc/classes/legacy/openshot/classes/marker.py32 # ----------------------------------------------------------------------COMMENT
MEDIUMsrc/classes/legacy/openshot/classes/clip.py35 # ----------------------------------------------------------------------COMMENT
MEDIUMsrc/classes/legacy/openshot/classes/effect.py34 # ----------------------------------------------------------------------COMMENT
MEDIUMsrc/classes/legacy/openshot/classes/project.py37 # ----------------------------------------------------------------------COMMENT
MEDIUMsrc/tests/test_timeline_helpers.py4691 # ---------------------------------------------------------------------------COMMENT
MEDIUMsrc/tests/test_timeline_helpers.py4694 # ---------------------------------------------------------------------------COMMENT
MEDIUMsrc/windows/scope_panel.py41# ─── Persistent settings keys ────────────────────────────────────────────────COMMENT
MEDIUMsrc/windows/scope_panel.py286# ─── Waveform painter ────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/windows/scope_panel.py314 # ── helpers ──────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/windows/scope_panel.py345 # ── paint ────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/windows/scope_panel.py426# ─── Histogram painter ───────────────────────────────────────────────────────COMMENT
MEDIUMsrc/windows/scope_panel.py517# ─── Vectorscope painter ─────────────────────────────────────────────────────COMMENT
MEDIUMsrc/windows/scope_panel.py760# ─── Audio meter painter ─────────────────────────────────────────────────────COMMENT
MEDIUMsrc/windows/scope_panel.py827# ─── Filter toolbar helpers ──────────────────────────────────────────────────COMMENT
MEDIUMsrc/windows/scope_panel.py845# ─── Waveform dock content (painter + toolbar) ───────────────────────────────COMMENT
MEDIUMsrc/windows/scope_panel.py929# ─── Histogram dock content (painter + toolbar) ──────────────────────────────COMMENT
MEDIUMsrc/windows/video_widget.py2076 # ==================================================================================COMMENT
MEDIUMsrc/windows/views/timeline.py2955 # ── helpers ───────────────────────────────────────────────────COMMENT
MEDIUMsrc/windows/views/timeline.py3278 # ── BLUR IN — blur 50→0 + alpha fade ─────────────────────COMMENT
MEDIUMsrc/windows/views/timeline.py3285 # ── BLUR OUT — alpha fade + blur 0→50 ─────────────────────COMMENT
MEDIUMsrc/windows/views/timeline.py3292 # ── WIPE IN — Mask effect, brightness 1 → -1 ──────────────COMMENT
MEDIUMsrc/windows/views/timeline.py3300 # ── WIPE OUT — Mask effect, brightness -1 → 1 ─────────────COMMENT
MEDIUMsrc/windows/views/timeline.py3308 # ── FOCUS WIPE IN — blur 50→0, then wipe reveals ──────────COMMENT
MEDIUMsrc/windows/views/timeline.py3316 # ── FOCUS WIPE OUT — wipe hides, blur 0→50 ───────────────COMMENT
MEDIUMsrc/windows/views/timeline.py3324 # ── POP ───────────────────────────────────────────────────COMMENT
MEDIUMsrc/windows/views/timeline.py182# ── Animation preset helpers ──────────────────────────────────────────────────COMMENT
MEDIUMsrc/windows/views/timeline.py1576 # ── Motion Menu ───────────────────────────────────────────────────────COMMENT
MEDIUMsrc/windows/views/timeline.py1592 # ── In ▶ ───────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/windows/views/timeline.py1634 # ── Out ▶ ──────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/windows/views/timeline.py1676 # ── Emphasis ▶ ─────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/windows/views/timeline.py1691 # ── Camera ▶ ───────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/windows/views/timeline.py1722 # ── Credits ▶ ──────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/windows/views/timeline.py2992 # ── RESET (always runs first for non-NONE actions) ─────────────COMMENT
MEDIUMsrc/windows/views/timeline.py3242 # ── SLIDE IN ──────────────────────────────────────────────COMMENT
MEDIUMsrc/windows/views/timeline.py3260 # ── SLIDE OUT ─────────────────────────────────────────────COMMENT
MEDIUMsrc/windows/views/timeline.py3346 # ── SPIRAL ────────────────────────────────────────────────COMMENT
MEDIUMsrc/windows/views/timeline.py3379 # ── CAMERA: PUSH IN / PULL OUT (zoom, SCALE_CROP) ──────────COMMENT
MEDIUMsrc/windows/views/timeline.py3385 # ── CAMERA: PAN (axis-aware SCALE_CROP framing) ───────────COMMENT
MEDIUMsrc/windows/views/timeline.py3398 # ── CAMERA: KEN BURNS (axis-aware zoom + drift) ───────────COMMENT
MEDIUMsrc/windows/views/timeline.py3429 # ── CREDITS (full scroll, SCALE_CROP) ─────────────────────COMMENT
MEDIUMsrc/windows/views/timeline_backend/enums.py66 # ── In ───────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/windows/views/timeline_backend/enums.py96 # ── Out ──────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/windows/views/timeline_backend/enums.py126 # ── Emphasis ─────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/windows/views/timeline_backend/enums.py138 # ── Camera ───────────────────────────────────────────────────────────────COMMENT
27 more matches not shown…
Deep Nesting271 hits · 185 pts
SeverityFileLineSnippetContext
LOWsetup.py86CODE
LOWfreeze.py169CODE
LOWfreeze.py738CODE
LOWimages/generate_cache.py290CODE
LOWdoc/conf.py354CODE
LOWinstaller/deploy.py57CODE
LOWinstaller/fix_qt5_rpath.py14CODE
LOWinstaller/fix_qt5_rpath.py56CODE
LOWinstaller/build_server.py167CODE
LOWinstaller/build_server.py311CODE
LOWsrc/qt_api.py678CODE
LOWsrc/qt_api.py957CODE
LOWsrc/qt_api.py2480CODE
LOWsrc/qt_api.py2608CODE
LOWsrc/qt_api.py280CODE
LOWsrc/qt_api.py384CODE
LOWsrc/qt_api.py579CODE
LOWsrc/qt_api.py313CODE
LOWsrc/qt_api.py618CODE
LOWsrc/launch.py120CODE
LOWsrc/classes/color_presets.py109CODE
LOWsrc/classes/ui_trace_recorder.py279CODE
LOWsrc/classes/ui_trace_recorder.py352CODE
LOWsrc/classes/keyframe_scaler.py57CODE
LOWsrc/classes/generation_queue.py166CODE
LOWsrc/classes/query.py297CODE
LOWsrc/classes/query.py387CODE
LOWsrc/classes/json_data.py228CODE
LOWsrc/classes/json_data.py287CODE
LOWsrc/classes/http_client.py145CODE
LOWsrc/classes/http_client.py174CODE
LOWsrc/classes/generation_service.py499CODE
LOWsrc/classes/generation_service.py990CODE
LOWsrc/classes/generation_service.py1108CODE
LOWsrc/classes/generation_service.py1175CODE
LOWsrc/classes/generation_service.py1220CODE
LOWsrc/classes/updates.py288CODE
LOWsrc/classes/project_data.py126CODE
LOWsrc/classes/project_data.py203CODE
LOWsrc/classes/project_data.py377CODE
LOWsrc/classes/project_data.py444CODE
LOWsrc/classes/project_data.py540CODE
LOWsrc/classes/project_data.py787CODE
LOWsrc/classes/project_data.py1065CODE
LOWsrc/classes/project_data.py1294CODE
LOWsrc/classes/project_data.py1486CODE
LOWsrc/classes/project_data.py1573CODE
LOWsrc/classes/project_data.py1342CODE
LOWsrc/classes/project_data.py1361CODE
LOWsrc/classes/thumbnail.py60CODE
LOWsrc/classes/clip_utils.py39CODE
LOWsrc/classes/clip_utils.py295CODE
LOWsrc/classes/tabstops.py170CODE
LOWsrc/classes/tabstops.py380CODE
LOWsrc/classes/assets.py34CODE
LOWsrc/classes/proxy_service.py55CODE
LOWsrc/classes/proxy_service.py127CODE
LOWsrc/classes/proxy_service.py206CODE
LOWsrc/classes/proxy_service.py303CODE
LOWsrc/classes/proxy_service.py364CODE
211 more matches not shown…
Self-Referential Comments42 hits · 110 pts
SeverityFileLineSnippetContext
MEDIUMdoc/conf.py7# This file is execfile()d with the current directory set to itsCOMMENT
MEDIUMinstaller/deploy.py185 # Create a new release if one if missing (for each repo)COMMENT
MEDIUMsrc/classes/timeline.py52 # Create an instance of a libopenshot Timeline objectCOMMENT
MEDIUMsrc/classes/convert_framerate.py34 # Define a tolerance in frames (e.g., 1 to 3 frames)COMMENT
MEDIUMsrc/classes/project_data.py536 # Create a scaler instance, and scale all key-framesCOMMENT
MEDIUMsrc/classes/app.py254 # Create main windowCOMMENT
MEDIUMsrc/classes/legacy/openshot/classes/keyframe.py32 """This class represents a media clip on the timeline."""STRING
MEDIUMsrc/classes/legacy/openshot/classes/transition.py32 """This class represents a media clip on the timeline."""STRING
MEDIUMsrc/classes/legacy/openshot/classes/marker.py30 """This class represents a marker (i.e. a reference point) on the timeline."""STRING
MEDIUMsrc/classes/legacy/openshot/classes/clip.py33 """This class represents a media clip on the timeline."""STRING
MEDIUMsrc/classes/legacy/openshot/classes/effect.py32 """This class represents a media clip on the timeline."""STRING
MEDIUMsrc/language/generate_translations.py392header_text = header_text + '# This file is distributed under the same license as OpenShot.\n'CODE
MEDIUMsrc/windows/main_window.py2165 # Create a list of QKeySequence objects from the partsCOMMENT
MEDIUMsrc/windows/main_window.py3719 # Create a new recent menuCOMMENT
MEDIUMsrc/windows/main_window.py3797 # Create a new restore menuCOMMENT
MEDIUMsrc/windows/main_window.py5038 # Create main window base classCOMMENT
MEDIUMsrc/windows/main_window.py5140 # Create the timeline sync object (used for previewing timeline)COMMENT
MEDIUMsrc/windows/title_editor.py263 # Create a temp file for the thumbnail imageCOMMENT
MEDIUMsrc/windows/title_editor.py267 # Create a clip object and get the readerCOMMENT
MEDIUMsrc/windows/title_editor.py302 # Create the final pixmap filled with the label's background colorCOMMENT
MEDIUMsrc/windows/title_editor.py861 # Define the title and both platform-specific messagesCOMMENT
MEDIUMsrc/windows/region.py399 # Create an instance of a libopenshot Timeline objectCOMMENT
MEDIUMsrc/windows/preferences.py70 # Define the custom category orderCOMMENT
MEDIUMsrc/windows/add_to_timeline.py228 # Create a clipCOMMENT
MEDIUMsrc/windows/export.py1403 # Create a list to store the settings in orderCOMMENT
MEDIUMsrc/windows/video_widget.py294 # This method is invoked by the UpdateManager each time a change happens (i.e UpdateInterface)COMMENT
MEDIUMsrc/windows/preview_thread.py585 # Create an instance of a libopenshot Timeline objectCOMMENT
MEDIUMsrc/windows/models/files_model.py266 # This method is invoked by the UpdateManager each time a change happens (i.e UpdateInterface)COMMENT
MEDIUMsrc/windows/models/properties_model.py406 # This method is invoked by the UpdateManager each time a change happens (i.e UpdateInterface)COMMENT
MEDIUMsrc/windows/views/timeline.py613 # This method is invoked by the UpdateManager each time a change happens (i.e UpdateInterface)COMMENT
MEDIUMsrc/windows/views/timeline.py752 # Create a new clip (if not exists)COMMENT
MEDIUMsrc/windows/views/timeline.py1198 # Create a new transition (if not exists)COMMENT
MEDIUMsrc/windows/views/timeline.py3796 # Create a transaction ID for all operations in this function (if not provided)COMMENT
MEDIUMsrc/windows/views/timeline.py5400 # Create a new Clip object with the file pathCOMMENT
MEDIUMsrc/windows/views/files_treeview.py329 # Create a composite pixmap to hold the icons in a rowCOMMENT
MEDIUMsrc/windows/views/zoom_slider.py64 # This method is invoked by the UpdateManager each time a change happens (i.e UpdateInterface)COMMENT
MEDIUMsrc/windows/views/properties_tableview.py471 # Create a fake event object that provides the position we wantCOMMENT
MEDIUMsrc/windows/views/files_listview.py347 # Create a composite pixmap to hold the icons in a rowCOMMENT
MEDIUMsrc/windows/views/blender_listview.py273 # Create a folder (if it does not exist)COMMENT
MEDIUMsrc/windows/views/timeline_backend/qwidget/base.py902 # This method is invoked by the UpdateManager each time a change happens (i.e UpdateInterface)COMMENT
MEDIUMsrc/themes/base.py224 # Create a dividerCOMMENT
MEDIUMsrc/themes/cosmic/theme.py792 # Create a transparent spacer widgetSTRING
Cross-Language Confusion13 hits · 75 pts
SeverityFileLineSnippetContext
HIGHsrc/qt_api.py659 uri_str = new_uri.toString()CODE
HIGHsrc/qt_api.py343 uri_strings = [u.toString() for u in uris]CODE
HIGHsrc/qt_api.py631 uri_str = uri.toString()CODE
HIGHsrc/tests/test_optimized_preview_menu.py68 self.actionOptimizedPreviewDeleteAndUnlink = QAction("Delete && Unlink", self)CODE
HIGHsrc/windows/main_window.py2220 log.warning(f"Duplicate shortcut {key_seq_obj.toString()} detected for {base_method_name}. SCODE
HIGHsrc/windows/main_window.py4366 self.actionOptimizedPreviewDeleteAndUnlink = QAction(_("Delete && Unlink"), self)CODE
HIGHsrc/windows/views/timeline.py5119 self.run_js(JS_SCOPE_SELECTOR + ".selectClip('{}', {}, null);".format(item_id, clear_js))CODE
HIGHsrc/windows/views/timeline.py5121 self.run_js(JS_SCOPE_SELECTOR + ".selectTransition('{}', {}, null);".format(item_id, clear_js))CODE
HIGHsrc/windows/views/timeline.py5123 self.run_js(JS_SCOPE_SELECTOR + ".selectEffect('{}', {}, null);".format(item_id, clear_js))CODE
HIGHsrc/windows/views/timeline.py1981 (_("Freeze && Zoom"), MenuTime.FREEZE_ZOOM)CODE
HIGHsrc/windows/views/timeline.py5104 self.run_js(JS_SCOPE_SELECTOR + ".selectClipRipple('{}', false, null);".format(item_id))CODE
HIGHsrc/windows/views/timeline.py5106 self.run_js(JS_SCOPE_SELECTOR + ".selectTransitionRipple('{}', false, null);".format(item_id))CODE
HIGHsrc/windows/views/optimized_preview_menu.py103 optimized_menu, win, "actionOptimizedPreviewDeleteAndUnlink", _("Delete && Unlink"),CODE
Unused Imports82 hits · 72 pts
SeverityFileLineSnippetContext
LOWsetup.py33CODE
LOWfreeze.py754CODE
LOWdoc/youtube_directive.py10CODE
LOWdoc/youtube_directive.py16CODE
LOWdoc/youtube_directive.py17CODE
LOWdoc/youtube_directive.py22CODE
LOWdoc/youtube_directive.py22CODE
LOWdoc/youtube_directive.py22CODE
LOWdoc/youtube_directive.py22CODE
LOWdoc/youtube_directive.py23CODE
LOWdoc/youtube_directive.py24CODE
LOWdoc/conf.py43CODE
LOWdoc/conf.py52CODE
LOWsrc/launch.py63CODE
LOWsrc/launch.py94CODE
LOWsrc/classes/metrics.py29CODE
LOWsrc/classes/project_data.py31CODE
LOWsrc/classes/language.py38CODE
LOWsrc/classes/settings.py35CODE
LOWsrc/classes/ui_util.py48CODE
LOWsrc/classes/info.py141CODE
LOWsrc/classes/camera_motion.py20CODE
LOWsrc/windows/main_window.py3677CODE
LOWsrc/windows/region.py29CODE
LOWsrc/windows/region.py30CODE
LOWsrc/windows/region.py41CODE
LOWsrc/windows/region.py41CODE
LOWsrc/windows/region.py45CODE
LOWsrc/windows/profile.py29CODE
LOWsrc/windows/profile.py33CODE
LOWsrc/windows/preferences.py44CODE
LOWsrc/windows/animated_title.py33CODE
LOWsrc/windows/export.py53CODE
LOWsrc/windows/process_effect.py51CODE
LOWsrc/windows/color_picker.py31CODE
LOWsrc/windows/video_widget.py46CODE
LOWsrc/windows/models/credits_model.py35CODE
LOWsrc/windows/models/properties_model.py40CODE
LOWsrc/windows/models/effects_model.py30CODE
LOWsrc/windows/models/effects_model.py34CODE
LOWsrc/windows/views/timeline.py42CODE
LOWsrc/windows/views/timeline.py134CODE
LOWsrc/windows/views/timeline.py134CODE
LOWsrc/windows/views/timeline.py134CODE
LOWsrc/windows/views/timeline.py134CODE
LOWsrc/windows/views/tutorial.py30CODE
LOWsrc/windows/views/add_to_timeline_treeview.py28CODE
LOWsrc/windows/views/blender_listview.py44CODE
LOWsrc/windows/views/blender_listview.py47CODE
LOWsrc/windows/views/blender_listview.py51CODE
LOWsrc/windows/views/blender_listview.py51CODE
LOWsrc/windows/views/timeline_backend/__init__.py12CODE
LOWsrc/windows/views/timeline_backend/__init__.py27CODE
LOWsrc/windows/views/timeline_backend/__init__.py39CODE
LOWsrc/windows/views/timeline_backend/paint/__init__.py28CODE
LOWsrc/windows/views/timeline_backend/paint/__init__.py29CODE
LOWsrc/windows/views/timeline_backend/paint/__init__.py30CODE
LOWsrc/windows/views/timeline_backend/paint/__init__.py31CODE
LOWsrc/windows/views/timeline_backend/paint/__init__.py32CODE
LOWsrc/windows/views/timeline_backend/paint/__init__.py33CODE
22 more matches not shown…
Redundant / Tautological Comments38 hits · 53 pts
SeverityFileLineSnippetContext
LOWinstaller/build-mac-dmg.sh12# Set path to app bundleCOMMENT
LOWsrc/classes/waveform.py112 # Open file and access audio data (if audio data is found, otherwise return)COMMENT
LOWsrc/classes/metrics.py178 # Check if the user wants to send metrics and errorsCOMMENT
LOWsrc/classes/project_data.py280 # Set parent to the last set obj (if not final iteration)COMMENT
LOWsrc/classes/project_data.py503 # Check if paths are all validCOMMENT
LOWsrc/classes/tabstops.py52 # Check if this tab bar contains dock titlesCOMMENT
LOWsrc/classes/language.py89 # Check if the language preference is something other than "Default"COMMENT
LOWsrc/profiles/definitions/manage.py269 # Check if spherical attribute should be includedCOMMENT
LOWsrc/profiles/definitions/manage.py285 # Write fileCOMMENT
LOWsrc/profiles/definitions/manage.py301 # Write file with description updated for uniquenessCOMMENT
LOWsrc/windows/main_window.py317 # Check if it already existsCOMMENT
LOWsrc/windows/main_window.py483 # Check if filesView has focusCOMMENT
LOWsrc/windows/main_window.py700 # Set cursor to waitingCOMMENT
LOWsrc/windows/main_window.py1643 # Set MaxSize to full project resolution and clear cache so we get a full resolution frameCOMMENT
LOWsrc/windows/main_window.py1648 # Check if file exists, if it does, get the lastModified timeCOMMENT
LOWsrc/windows/main_window.py4472 # Check if filesView has focusCOMMENT
LOWsrc/windows/main_window.py4725 # Check if event type is a shortcut override (keyboard shortcut triggered)COMMENT
LOWsrc/windows/title_editor.py223 # Check if the requested font is availableCOMMENT
LOWsrc/windows/add_to_timeline.py102 # Check if selected_index is within valid rangeCOMMENT
LOWsrc/windows/add_to_timeline.py135 # Check if selected_index is within valid rangeCOMMENT
LOWsrc/windows/export.py1068 # Check if filename is valid (by creating a blank file in a temporary place)COMMENT
LOWsrc/windows/export.py1304 # Check if we need to bail outCOMMENT
LOWsrc/windows/export.py1427 # Append the setting to the listCOMMENT
LOWsrc/windows/export.py1446 # Iterate over the list of settings and apply them in orderCOMMENT
LOWsrc/windows/cutting.py633 # Check if starting frame less than end frameCOMMENT
LOWsrc/windows/cutting.py670 # Check if ending frame greater than start frameCOMMENT
LOWsrc/windows/preview_thread.py70 # Check if we are at the end of the timelineCOMMENT
LOWsrc/windows/models/blender_model.py98 # Check if thumb existsCOMMENT
LOWsrc/windows/models/properties_model.py1619 # Check if filter was changed (if so, wipe previous model data)COMMENT
LOWsrc/windows/views/timeline.py1375 # Check if the current clip starts after the found_end, indicating a gapCOMMENT
LOWsrc/windows/views/timeline.py4770 # Check if there is a gap between the end of the last clip/transition and the start of the current oneCOMMENT
LOWsrc/windows/views/find_file.py173 # Check if path existsCOMMENT
LOWsrc/windows/views/files_treeview.py307 # Check if there are any selected itemsCOMMENT
LOWsrc/windows/views/files_treeview.py380 # Set cursor to waitingCOMMENT
LOWsrc/windows/views/properties_tableview.py451 # Check if this is a dropdown/choice propertyCOMMENT
LOWsrc/windows/views/properties_tableview.py1844 # Check if the list needs to be divided into sub-menusCOMMENT
LOWsrc/windows/views/files_listview.py325 # Check if there are any selected itemsCOMMENT
LOWsrc/windows/views/files_listview.py398 # Set cursor to waitingCOMMENT
Over-Commented Block20 hits · 20 pts
SeverityFileLineSnippetContext
LOWfreeze.py21 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theCOMMENT
LOWfreeze.py41# sudo dylibbundler -od -of -b -x ~/apps/rsvg/rsvg-convert -d ./rsvg-libs/ -p @executable_path/rsvg-libs/COMMENT
LOWdoc/conf.py1#!/usr/bin/env python3COMMENT
LOWdoc/conf.py81master_doc = 'index'COMMENT
LOWdoc/conf.py101# Usually you set "language" from the command line for these cases.COMMENT
LOWdoc/conf.py121#COMMENT
LOWdoc/conf.py161# Theme options are theme-specific and customize the look and feel of a themeCOMMENT
LOWdoc/conf.py181#COMMENT
LOWdoc/conf.py201# directly to the root of the documentation.COMMENT
LOWdoc/conf.py221# template names.COMMENT
LOWdoc/conf.py241# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.COMMENT
LOWdoc/conf.py261# 'nl', 'no', 'pt', 'ro', 'r', 'sv', 'tr', 'zh'COMMENT
LOWdoc/conf.py281latex_elements = {COMMENT
LOWdoc/conf.py401COMMENT
LOWdoc/conf.py421#COMMENT
LOWdoc/conf.py461#COMMENT
LOWdoc/conf.py481epub_author = authorCOMMENT
LOWdoc/conf.py501# epub_scheme = ''COMMENT
LOWdoc/conf.py521# The format is a list of tuples containing the path and title.COMMENT
LOWdoc/conf.py541# Choose between 'default' and 'includehidden'.COMMENT
Fake / Example Data22 hits · 14 pts
SeverityFileLineSnippetContext
LOW…/windows/views/timeline_backend/paint/keyframepanel.py253 can_add = isinstance(prop, dict) and not prop.get("placeholder")CODE
LOW…/windows/views/timeline_backend/paint/keyframepanel.py274 if prop.get("placeholder") or not draw_timeline:CODE
LOW…ndows/views/timeline_backend/qwidget/keyframe_panel.py94 props = [{"display_name": label, "points": [], "placeholder": True}]CODE
LOW…ndows/views/timeline_backend/qwidget/keyframe_panel.py99 "context": {"placeholder": reason},CODE
LOW…ndows/views/timeline_backend/qwidget/keyframe_panel.py43 if isinstance(context, dict) and context.get("placeholder"):CODE
LOW…ndows/views/timeline_backend/qwidget/keyframe_panel.py470 if prop.get("placeholder"):CODE
LOW…ndows/views/timeline_backend/qwidget/keyframe_panel.py625 if isinstance(prop, dict) and not prop.get("placeholder"):CODE
LOW…ndows/views/timeline_backend/qwidget/keyframe_panel.py1720 if not isinstance(prop, dict) or prop.get("placeholder"):CODE
LOW…ndows/views/timeline_backend/qwidget/keyframe_panel.py2182 and target_info.get("context", {}).get("placeholder")CODE
LOW…ndows/views/timeline_backend/qwidget/keyframe_panel.py2269 if isinstance(track_context, dict) and track_context.get("placeholder"):CODE
LOW…ndows/views/timeline_backend/qwidget/keyframe_panel.py2379 if isinstance(context, dict) and context.get("placeholder"):CODE
LOW…ndows/views/timeline_backend/qwidget/keyframe_panel.py2391 if not isinstance(prop, dict) or prop.get("placeholder"):CODE
LOW…ndows/views/timeline_backend/qwidget/keyframe_panel.py3173 props = [{"display_name": label_text, "points": [], "placeholder": True}]CODE
LOW…ndows/views/timeline_backend/qwidget/keyframe_panel.py3178 "context": {"placeholder": reason},CODE
LOW…ndows/views/timeline_backend/qwidget/keyframe_panel.py3292 placeholder_context["placeholder"] = "no-keyframes"CODE
LOW…ndows/views/timeline_backend/qwidget/keyframe_panel.py3297 "placeholder": True,CODE
LOW…ndows/views/timeline_backend/qwidget/keyframe_panel.py3441 placeholder_prop = {"display_name": placeholder_label, "points": [], "placeholder": True}CODE
LOW…ndows/views/timeline_backend/qwidget/keyframe_panel.py3446 "context": {"item_type": "multi", "track": key, "placeholder": "no-keyframes"},CODE
LOW…ndows/views/timeline_backend/qwidget/keyframe_panel.py3482 if context.get("placeholder"):CODE
LOW…ndows/views/timeline_backend/qwidget/keyframe_panel.py3486 context.get("placeholder"),CODE
LOW…ndows/views/timeline_backend/qwidget/keyframe_panel.py3514 if isinstance(context, dict) and context.get("placeholder"):CODE
LOWsrc/windows/views/timeline_backend/qwidget/base.py3665 if isinstance(prop, dict) and prop.get("key") is not None and not prop.get("placeholder")CODE
Modern Structural Boilerplate8 hits · 7 pts
SeverityFileLineSnippetContext
LOWsrc/qt_api.py15logger = logging.getLogger(__name__)CODE
LOWsrc/qt_api.py2666__all__ = [CODE
LOWsrc/launch.py69logger = logging.getLogger(__name__)CODE
LOWsrc/classes/clip_utils.py36logger = logging.getLogger(__name__)CODE
LOWsrc/windows/views/menu.py38logger = logging.getLogger(__name__)CODE
LOWsrc/windows/views/timeline_backend/paint/__init__.py41__all__ = [CODE
LOWsrc/windows/views/timeline_backend/qwidget/__init__.py51__all__ = [CODE
LOWsrc/windows/views/timeline_backend/geometry/__init__.py45__all__ = ["Geometry"]CODE
Overly Generic Function Names1 hit · 1 pts
SeverityFileLineSnippetContext
LOWimages/generate_cache.py253def run_task(task, skip_existing=False):CODE
AI Structural Patterns1 hit · 0 pts
SeverityFileLineSnippetContext
LOWsrc/classes/generation_service.py499CODE