Run Windows software and games on Linux
This report presents the forensic synthetic code analysis of bottlesdevs/Bottles, a Python project with 8,751 GitHub stars. SynthScan v2.0 examined 72,786 lines of code across 376 source files, recording 1253 pattern matches distributed across 15 syntactic categories. The overall adjusted score of 17.6 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).
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.
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.
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.
The scanner identified 1253 distinct pattern matches across 15 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/conftest.py | 11 | def _add_repo_root_to_syspath() -> None: | CODE |
| LOW | tests/test_funding.py | 8 | def test_paypal_donation_url_contains_selected_amount(): | CODE |
| LOW | tests/test_funding.py | 23 | def test_paypal_donation_url_rejects_amount_below_minimum(): | CODE |
| LOW | bottles/frontend/utils/gtk.py | 73 | def _on_system_setting_changed(self, _display, setting): | CODE |
| LOW | bottles/frontend/utils/gtk.py | 80 | def create_full_width_string_list_factory() -> Gtk.SignalListItemFactory: | CODE |
| LOW | bottles/frontend/utils/localization.py | 71 | def get_ui_language_environment(language): | CODE |
| LOW | bottles/frontend/utils/flatpak.py | 33 | def get_filesystem_override_command(path: str) -> Optional[str]: | CODE |
| LOW | bottles/frontend/utils/flatpak.py | 64 | def show_external_folder_access_dialog(parent, path: str) -> None: | CODE |
| LOW | bottles/frontend/utils/flatpak.py | 119 | def resolve_bottles_directory(parent, path: str) -> Optional[str]: | CODE |
| LOW | bottles/frontend/cli/utils.py | 4 | def _quote_command_placeholder(argument: str) -> str: | CODE |
| LOW | bottles/frontend/windows/dependency_install.py | 69 | def __mark_last_step_completed(self) -> None: | CODE |
| LOW | bottles/frontend/windows/funding.py | 33 | def build_paypal_donation_url(amount: int) -> str: | CODE |
| LOW | bottles/frontend/windows/window.py | 332 | def __maybe_prompt_winebridge_update(self): | CODE |
| LOW | bottles/frontend/windows/window.py | 610 | def show_download_preferences_view(self, widget=False): | CODE |
| LOW | bottles/frontend/windows/window.py | 613 | def show_runners_preferences_view(self, widget=False): | CODE |
| LOW | bottles/frontend/windows/window.py | 628 | def __continue_startup_dialogs(self): | CODE |
| LOW | bottles/frontend/windows/window.py | 659 | def __maybe_show_funding_dialog(self): | CODE |
| LOW | bottles/frontend/windows/window.py | 682 | def __maybe_show_eagle_intel_dialog(self): | CODE |
| LOW | bottles/frontend/windows/envvars.py | 246 | def __populate_inherited_list(self): | CODE |
| LOW | bottles/frontend/windows/envvars.py | 260 | def __update_inherited_placeholder(self): | CODE |
| LOW | bottles/frontend/windows/umu.py | 1501 | def __update_installed_dependencies(self): | CODE |
| LOW | bottles/frontend/windows/umu.py | 1681 | def __choose_working_directory(self, *_args): | CODE |
| LOW | bottles/frontend/windows/umu.py | 1694 | def __reset_working_directory(self, *_args): | CODE |
| LOW | bottles/frontend/windows/umu.py | 1698 | def __update_working_directory(self): | CODE |
| LOW | bottles/frontend/windows/umu.py | 1838 | def __dependency_tool_changed(self, *_args): | CODE |
| LOW | bottles/frontend/windows/sandbox.py | 123 | def __populate_hidraw_devices(self): | CODE |
| LOW | bottles/frontend/windows/sandbox.py | 162 | def __update_device_permissions(self): | CODE |
| LOW | bottles/frontend/windows/launchoptions.py | 452 | def __update_automatic_backup(self): | CODE |
| LOW | bottles/frontend/windows/dlloverrides.py | 152 | def __populate_overrides_list(self): | CODE |
| LOW | bottles/frontend/windows/vkbasalt.py | 195 | def __change_edge_detection_type(self, widget, edge_detection_type): | CODE |
| LOW | bottles/frontend/windows/drives.py | 177 | def __populate_combo_and_drives(self): | CODE |
| LOW | bottles/frontend/views/list.py | 368 | def update_component_updates_banner(self) -> None: | CODE |
| LOW | bottles/frontend/views/bottle_versioning.py | 135 | def show_manage_branches_dialog(self, widget): | CODE |
| LOW⚡ | bottles/frontend/views/preferences.py | 714 | def __on_audio_driver_setting_changed(self, *_args): | CODE |
| LOW⚡ | bottles/frontend/views/preferences.py | 717 | def __on_ui_language_setting_changed(self, *_args): | CODE |
| LOW⚡ | bottles/frontend/views/preferences.py | 720 | def __sync_ui_language_selection(self, *_args): | CODE |
| LOW | bottles/frontend/views/preferences.py | 365 | def __update_eagle_security_style(self, *_args): | CODE |
| LOW | bottles/frontend/views/preferences.py | 377 | def __funding_setting_changed(self, switch, _pspec): | CODE |
| LOW | bottles/frontend/views/preferences.py | 407 | def __toggle_component_updates(self, *_args): | CODE |
| LOW | bottles/frontend/views/preferences.py | 593 | def __on_umu_dependency_selected(self, combo, _pspec): | CODE |
| LOW | bottles/frontend/views/preferences.py | 662 | def __on_personal_repo_changed(self, row, repo_name): | CODE |
| LOW | bottles/frontend/views/preferences.py | 678 | def __persist_personal_repositories(self): | CODE |
| LOW | bottles/frontend/views/preferences.py | 690 | def __on_font_scale_setting_changed(self, *_args): | CODE |
| LOW | bottles/frontend/views/preferences.py | 693 | def __sync_font_scale_selection(self, *_args): | CODE |
| LOW | bottles/frontend/views/preferences.py | 731 | def __on_ui_language_selected(self, combo, _pspec): | CODE |
| LOW | bottles/frontend/views/preferences.py | 748 | def __sync_audio_driver_selection(self, *_args): | CODE |
| LOW | bottles/frontend/views/preferences.py | 759 | def __on_audio_driver_selected(self, combo, _pspec): | CODE |
| LOW | bottles/frontend/views/preferences.py | 774 | def __display_unstable_candidate(self, component=["", {"Channel": "unstable"}]): | CODE |
| LOW | bottles/frontend/views/preferences.py | 779 | def __populate_component_list( | CODE |
| LOW | bottles/frontend/views/preferences.py | 836 | def __populate_runners_helper( | CODE |
| LOW | bottles/frontend/views/preferences.py | 1074 | def __populate_template_cache_rows(self, templates: list[dict]): | CODE |
| LOW | bottles/frontend/views/preferences.py | 1122 | def __format_template_subtitle(self, template: dict) -> str: | CODE |
| LOW | bottles/frontend/views/preferences.py | 1147 | def __confirm_clear_all_caches(self, widget): | CODE |
| LOW | bottles/frontend/views/preferences.py | 1158 | def __confirm_clear_temp_cache(self, widget): | CODE |
| LOW | bottles/frontend/views/preferences.py | 1169 | def __confirm_clear_templates_cache(self, widget): | CODE |
| LOW | bottles/frontend/views/bottle_preferences.py | 390 | def __create_unavailable_popover( | CODE |
| LOW | bottles/frontend/views/bottle_preferences.py | 437 | def __add_unavailable_indicator( | CODE |
| LOW | bottles/frontend/views/bottle_preferences.py | 459 | def __copy_command_to_clipboard(self, _widget, command: str): | CODE |
| LOW | bottles/frontend/views/bottle_preferences.py | 533 | def __update_working_directory_row(self, working_dir=None): | CODE |
| LOW | bottles/frontend/views/bottle_preferences.py | 803 | def __update_adaptive_launch_support(self) -> None: | CODE |
| 745 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | bottles/frontend/bottles.py | 1 | #!@PYTHON@ | COMMENT |
| LOW | bottles/frontend/operation.py | 1 | # operation.py | COMMENT |
| LOW | bottles/frontend/main.py | 1 | # main.py | COMMENT |
| LOW | bottles/frontend/utils/gtk.py | 1 | # gtk.py | COMMENT |
| LOW | bottles/frontend/utils/sh.py | 1 | # sh.py | COMMENT |
| LOW | bottles/frontend/utils/sandbox_guard.py | 1 | # sandbox_guard.py | COMMENT |
| LOW | bottles/frontend/utils/umu.py | 1 | # umu.py | COMMENT |
| LOW | bottles/frontend/utils/playtime.py | 1 | # playtime.py | COMMENT |
| LOW | bottles/frontend/utils/common.py | 1 | # utils.py | COMMENT |
| LOW | bottles/frontend/utils/flatpak.py | 1 | # flatpak.py | COMMENT |
| LOW | bottles/frontend/utils/filters.py | 1 | # filters.py: File for providing common GtkFileFilters | COMMENT |
| LOW | bottles/frontend/cli/cli.py | 1 | #!@PYTHON@ | COMMENT |
| LOW | bottles/frontend/windows/onboard.py | 1 | # onboard.py | COMMENT |
| LOW | bottles/frontend/windows/mangohud.py | 1 | # mangohud.py | COMMENT |
| LOW | bottles/frontend/windows/upgradeversioning.py | 1 | # duplicate.py | COMMENT |
| LOW | bottles/frontend/windows/dependency_install.py | 1 | # dependency_install.py | COMMENT |
| LOW | bottles/frontend/windows/funding.py | 1 | # funding.py | COMMENT |
| LOW | bottles/frontend/windows/depscheck.py | 1 | # depscheck.py | COMMENT |
| LOW | bottles/frontend/windows/journal.py | 1 | # journal.py | COMMENT |
| LOW | bottles/frontend/windows/crash.py | 1 | # crash.py | COMMENT |
| LOW | bottles/frontend/windows/versioning_manage_branches.py | 1 | # versioning_manage_branches.py | COMMENT |
| LOW | bottles/frontend/windows/bottlepicker.py | 1 | # bottlepicker.py | COMMENT |
| LOW | bottles/frontend/windows/window.py | 1 | # window.py | COMMENT |
| LOW | bottles/frontend/windows/rename.py | 1 | # rename.py | COMMENT |
| LOW | bottles/frontend/windows/lsfgvk.py | 1 | # lsfgvk.py | COMMENT |
| LOW | bottles/frontend/windows/bulkupdate.py | 1 | # bulkupdate.py | COMMENT |
| LOW | bottles/frontend/windows/versioning_commit.py | 1 | # versioning_commit.py | COMMENT |
| LOW | bottles/frontend/windows/versioning_branch.py | 1 | # versioning_branch.py | COMMENT |
| LOW | bottles/frontend/windows/fileassociations.py | 1 | # fileassociations.py | COMMENT |
| LOW | bottles/frontend/windows/programbackups.py | 1 | # programbackups.py | COMMENT |
| LOW | bottles/frontend/windows/generic.py | 1 | # generic.py | COMMENT |
| LOW | bottles/frontend/windows/envvars.py | 1 | # envvars.py | COMMENT |
| LOW | bottles/frontend/windows/gamescope.py | 1 | # gamescope.py | COMMENT |
| LOW | bottles/frontend/windows/umu.py | 1 | # umu.py | COMMENT |
| LOW | bottles/frontend/windows/display.py | 1 | # display.py | COMMENT |
| LOW | bottles/frontend/windows/installer.py | 1 | # installer.py | COMMENT |
| LOW | bottles/frontend/windows/sandbox.py | 1 | # sandbox.py | COMMENT |
| LOW | bottles/frontend/windows/duplicate.py | 1 | # duplicate.py | COMMENT |
| LOW | bottles/frontend/windows/exclusionpatterns.py | 1 | # envvars.py | COMMENT |
| LOW | bottles/frontend/windows/vmtouch.py | 1 | # vmtouch.py | COMMENT |
| LOW | bottles/frontend/windows/launchoptions.py | 1 | # launchoptions.py | COMMENT |
| LOW | bottles/frontend/windows/playtimegraph.py | 1 | # playtimegraph.py | COMMENT |
| LOW | bottles/frontend/windows/versioning_settings.py | 1 | # versioning_settings.py | COMMENT |
| LOW | bottles/frontend/windows/eagleintel.py | 1 | # eagleintel.py | COMMENT |
| LOW | bottles/frontend/windows/dlloverrides.py | 1 | # dlloverrides.py | COMMENT |
| LOW | bottles/frontend/windows/protonalert.py | 1 | # protonalert.py | COMMENT |
| LOW | bottles/frontend/windows/registry_rules.py | 1 | # | COMMENT |
| LOW | bottles/frontend/windows/vkbasalt.py | 1 | # vkbasalt.py | COMMENT |
| LOW | bottles/frontend/windows/drives.py | 1 | # drive.py | COMMENT |
| LOW | bottles/frontend/views/loading.py | 1 | # loading.py | COMMENT |
| LOW | bottles/frontend/views/library.py | 1 | # library.py | COMMENT |
| LOW | bottles/frontend/views/importer.py | 1 | # importer.py | COMMENT |
| LOW | bottles/frontend/views/list.py | 1 | # list.py | COMMENT |
| LOW | bottles/frontend/views/bottle_versioning.py | 1 | # bottle_versioning.py | COMMENT |
| LOW | bottles/frontend/views/preferences.py | 1 | # preferences.py | COMMENT |
| LOW | bottles/frontend/views/bottle_installers.py | 1 | # bottle_installers.py | COMMENT |
| LOW | bottles/frontend/views/bottle_dependencies.py | 1 | # bottle_installers.py | COMMENT |
| LOW | bottles/frontend/views/details.py | 1 | # details.py | COMMENT |
| LOW | bottles/frontend/views/bottle_taskmanager.py | 1 | # taskmanager.py | COMMENT |
| LOW | bottles/frontend/views/bottle_preferences.py | 1 | # bottle_preferences.py | COMMENT |
| 74 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | bottles/frontend/main.py | 239 | except Exception as e: | CODE |
| LOW | bottles/frontend/main.py | 272 | except Exception as e: | CODE |
| LOW | bottles/frontend/main.py | 307 | except Exception as e: | CODE |
| LOW | bottles/frontend/utils/playtime.py | 173 | except Exception as e: | CODE |
| LOW | bottles/frontend/utils/playtime.py | 222 | except Exception as e: | CODE |
| LOW | bottles/frontend/utils/playtime.py | 286 | except Exception: | CODE |
| LOW | bottles/frontend/utils/playtime.py | 329 | except Exception: | CODE |
| LOW | bottles/frontend/utils/playtime.py | 370 | except Exception: | CODE |
| LOW | bottles/frontend/utils/playtime.py | 393 | except Exception as e: | CODE |
| LOW | bottles/frontend/utils/playtime.py | 412 | except Exception as e: | CODE |
| LOW | bottles/frontend/utils/playtime.py | 431 | except Exception as e: | CODE |
| LOW | bottles/frontend/windows/envvars.py | 75 | except Exception as e: | CODE |
| LOW | bottles/frontend/windows/playtimegraph.py | 261 | except Exception as e: | CODE |
| LOW | bottles/frontend/views/bottle_versioning.py | 107 | except Exception: | CODE |
| MEDIUM | bottles/frontend/views/bottle_versioning.py | 102 | def _refresh_details_badge(self): | CODE |
| LOW | bottles/frontend/views/bottle_dependencies.py | 157 | except Exception as exception: | CODE |
| LOW | bottles/frontend/views/bottle_details.py | 238 | except Exception: | CODE |
| MEDIUM | bottles/frontend/views/bottle_details.py | 232 | def _fetch(): | CODE |
| LOW | bottles/frontend/widgets/program.py | 233 | except Exception as e: | CODE |
| LOW | bottles/frontend/widgets/program.py | 919 | except Exception as e: | CODE |
| LOW | …nd/integration/playtime/test_wine_executor_playtime.py | 30 | except Exception: | CODE |
| LOW | …/backend/integration/playtime/test_playtime_signals.py | 34 | except Exception: | CODE |
| LOW | bottles/backend/cabextract.py | 164 | except Exception as exception: | CODE |
| LOW | bottles/backend/managers/library.py | 98 | except Exception as e: | CODE |
| LOW | bottles/backend/managers/steamgriddb.py | 65 | except Exception: | CODE |
| LOW | bottles/backend/managers/playtime.py | 157 | except Exception: | CODE |
| LOW⚡ | bottles/backend/managers/playtime.py | 249 | except Exception: | CODE |
| LOW⚡ | bottles/backend/managers/playtime.py | 252 | except Exception: | CODE |
| LOW⚡ | bottles/backend/managers/playtime.py | 260 | except Exception: | CODE |
| LOW | bottles/backend/managers/playtime.py | 481 | except Exception as e: | CODE |
| LOW | bottles/backend/managers/playtime.py | 746 | except Exception: | CODE |
| LOW | bottles/backend/managers/playtime.py | 848 | except Exception: | CODE |
| LOW | bottles/backend/managers/playtime.py | 920 | except Exception: | CODE |
| LOW | bottles/backend/managers/playtime.py | 968 | except Exception as e: | CODE |
| LOW | bottles/backend/managers/playtime.py | 1006 | except Exception as e: | CODE |
| LOW | bottles/backend/managers/playtime.py | 1044 | except Exception as e: | CODE |
| MEDIUM | bottles/backend/managers/playtime.py | 257 | def _atexit_shutdown(self) -> None: | CODE |
| LOW⚡ | bottles/backend/managers/eagle.py | 542 | except Exception: | CODE |
| LOW⚡ | bottles/backend/managers/eagle.py | 547 | except Exception: | CODE |
| LOW⚡ | bottles/backend/managers/eagle.py | 555 | except Exception as e: | CODE |
| LOW | bottles/backend/managers/eagle.py | 139 | except Exception as e: | CODE |
| LOW | bottles/backend/managers/eagle.py | 174 | except Exception as e: | CODE |
| LOW | bottles/backend/managers/eagle.py | 262 | except Exception as e: | CODE |
| LOW | bottles/backend/managers/eagle.py | 290 | except Exception as e: | CODE |
| LOW | bottles/backend/managers/eagle.py | 316 | except Exception: | CODE |
| LOW | bottles/backend/managers/eagle.py | 351 | except Exception as e: | CODE |
| LOW | bottles/backend/managers/eagle.py | 503 | except Exception as e: | CODE |
| LOW | bottles/backend/managers/eagle.py | 510 | except Exception as e: | CODE |
| LOW | bottles/backend/managers/eagle.py | 566 | except Exception as e: | CODE |
| LOW | bottles/backend/managers/eagle.py | 969 | except Exception as e: | CODE |
| LOW | bottles/backend/managers/eagle.py | 1139 | except Exception as e: | CODE |
| LOW | bottles/backend/managers/versioning.py | 178 | except Exception as e: | CODE |
| LOW | bottles/backend/managers/versioning.py | 406 | except Exception as e: | CODE |
| LOW | bottles/backend/managers/versioning.py | 417 | except Exception as e: | CODE |
| LOW | bottles/backend/managers/versioning.py | 429 | except Exception as e: | CODE |
| LOW | bottles/backend/managers/versioning.py | 441 | except Exception as e: | CODE |
| LOW | bottles/backend/managers/versioning.py | 468 | except Exception as e: | CODE |
| LOW | bottles/backend/managers/dependency.py | 843 | except Exception as e: | CODE |
| LOW | bottles/backend/managers/dependency.py | 924 | except Exception as e: | CODE |
| LOW | bottles/backend/managers/component.py | 714 | except Exception as e: | CODE |
| 37 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | bottles/frontend/cli/cli.py | 321 | CODE | |
| LOW | bottles/frontend/cli/cli.py | 611 | CODE | |
| LOW | bottles/frontend/cli/cli.py | 805 | CODE | |
| LOW | bottles/frontend/cli/cli.py | 975 | CODE | |
| LOW | bottles/frontend/windows/crash.py | 81 | CODE | |
| LOW | bottles/frontend/windows/window.py | 90 | CODE | |
| LOW | bottles/frontend/windows/bulkupdate.py | 166 | CODE | |
| LOW | bottles/frontend/windows/umu.py | 835 | CODE | |
| LOW | bottles/frontend/windows/umu.py | 868 | CODE | |
| LOW | bottles/frontend/windows/playtimegraph.py | 120 | CODE | |
| LOW | bottles/frontend/windows/playtimegraph.py | 334 | CODE | |
| LOW | bottles/frontend/windows/vkbasalt.py | 85 | CODE | |
| LOW | bottles/frontend/views/preferences.py | 836 | CODE | |
| LOW | bottles/frontend/views/details.py | 121 | CODE | |
| LOW | bottles/frontend/views/bottle_preferences.py | 1238 | CODE | |
| LOW | bottles/frontend/views/eagle.py | 205 | CODE | |
| LOW | bottles/frontend/views/eagle.py | 674 | CODE | |
| LOW | bottles/frontend/views/eagle.py | 773 | CODE | |
| LOW | bottles/fvs/repo.py | 73 | CODE | |
| LOW | bottles/fvs/repo.py | 208 | CODE | |
| LOW | bottles/fvs/repo.py | 319 | CODE | |
| LOW | bottles/fvs/repo.py | 370 | CODE | |
| LOW | bottles/fvs/repo.py | 417 | CODE | |
| LOW | bottles/fvs/repo.py | 253 | CODE | |
| LOW | bottles/backend/downloader.py | 60 | CODE | |
| LOW | bottles/backend/cabextract.py | 97 | CODE | |
| LOW | bottles/backend/health.py | 107 | CODE | |
| LOW | bottles/backend/managers/intel.py | 192 | CODE | |
| LOW | bottles/backend/managers/intel.py | 502 | CODE | |
| LOW | bottles/backend/managers/backup.py | 69 | CODE | |
| LOW | bottles/backend/managers/backup.py | 459 | CODE | |
| LOW | bottles/backend/managers/backup.py | 584 | CODE | |
| LOW | bottles/backend/managers/backup.py | 766 | CODE | |
| LOW | bottles/backend/managers/journal.py | 138 | CODE | |
| LOW | bottles/backend/managers/library.py | 277 | CODE | |
| LOW | bottles/backend/managers/importer.py | 37 | CODE | |
| LOW | bottles/backend/managers/conf.py | 38 | CODE | |
| LOW | bottles/backend/managers/conf.py | 113 | CODE | |
| LOW | bottles/backend/managers/ubisoftconnect.py | 53 | CODE | |
| LOW | bottles/backend/managers/installer.py | 90 | CODE | |
| LOW | bottles/backend/managers/installer.py | 174 | CODE | |
| LOW | bottles/backend/managers/playtime.py | 263 | CODE | |
| LOW | bottles/backend/managers/playtime.py | 754 | CODE | |
| LOW | bottles/backend/managers/eagle.py | 185 | CODE | |
| LOW | bottles/backend/managers/eagle.py | 295 | CODE | |
| LOW | bottles/backend/managers/eagle.py | 452 | CODE | |
| LOW | bottles/backend/managers/eagle.py | 514 | CODE | |
| LOW | bottles/backend/managers/eagle.py | 569 | CODE | |
| LOW | bottles/backend/managers/eagle.py | 473 | CODE | |
| LOW | bottles/backend/managers/versioning.py | 195 | CODE | |
| LOW | bottles/backend/managers/versioning.py | 258 | CODE | |
| LOW | bottles/backend/managers/dependency.py | 313 | CODE | |
| LOW | bottles/backend/managers/dependency.py | 585 | CODE | |
| LOW | bottles/backend/managers/dependency.py | 762 | CODE | |
| LOW | bottles/backend/managers/dependency.py | 872 | CODE | |
| LOW | bottles/backend/managers/component.py | 115 | CODE | |
| LOW | bottles/backend/managers/component.py | 229 | CODE | |
| LOW | bottles/backend/managers/component.py | 377 | CODE | |
| LOW | bottles/backend/managers/component.py | 504 | CODE | |
| LOW | bottles/backend/managers/component.py | 617 | CODE | |
| 48 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_fvs.py | 8 | CODE | |
| LOW | bottles/frontend/utils/playtime.py | 22 | CODE | |
| LOW | bottles/frontend/cli/cli.py | 59 | CODE | |
| LOW | bottles/frontend/windows/upgradeversioning.py | 18 | CODE | |
| LOW | bottles/frontend/windows/dependency_install.py | 17 | CODE | |
| LOW | bottles/frontend/windows/window.py | 27 | CODE | |
| LOW | bottles/frontend/windows/window.py | 30 | CODE | |
| LOW | bottles/frontend/windows/window.py | 50 | CODE | |
| LOW | bottles/frontend/windows/versioning_commit.py | 18 | CODE | |
| LOW | bottles/frontend/windows/versioning_branch.py | 18 | CODE | |
| LOW | bottles/frontend/windows/envvars.py | 18 | CODE | |
| LOW | bottles/frontend/windows/versioning_settings.py | 19 | CODE | |
| LOW | bottles/frontend/views/list.py | 22 | CODE | |
| LOW | bottles/frontend/views/list.py | 26 | CODE | |
| LOW | bottles/frontend/views/bottle_versioning.py | 25 | CODE | |
| LOW | bottles/frontend/views/new_bottle_dialog.py | 32 | CODE | |
| LOW | bottles/frontend/views/new_bottle_dialog.py | 32 | CODE | |
| LOW | bottles/frontend/widgets/program.py | 21 | CODE | |
| LOW | bottles/frontend/widgets/playtimechart_hourly.py | 31 | CODE | |
| LOW | bottles/frontend/widgets/playtimechart_hourly.py | 32 | CODE | |
| LOW | bottles/backend/runner.py | 31 | CODE | |
| LOW | bottles/backend/globals.py | 23 | CODE | |
| LOW | bottles/backend/managers/registry_rule.py | 12 | CODE | |
| LOW | bottles/backend/managers/playtime.py | 5 | CODE | |
| LOW | bottles/backend/managers/playtime.py | 15 | CODE | |
| LOW | bottles/backend/umu/__init__.py | 1 | CODE | |
| LOW | bottles/backend/umu/__init__.py | 1 | CODE | |
| LOW | bottles/backend/umu/__init__.py | 1 | CODE | |
| LOW | bottles/backend/umu/__init__.py | 1 | CODE | |
| LOW | bottles/backend/umu/__init__.py | 1 | CODE | |
| LOW | bottles/backend/umu/__init__.py | 1 | CODE | |
| LOW | bottles/backend/umu/__init__.py | 9 | CODE | |
| LOW | bottles/backend/umu/__init__.py | 9 | CODE | |
| LOW | bottles/backend/umu/__init__.py | 13 | CODE | |
| LOW | bottles/backend/umu/__init__.py | 13 | CODE | |
| LOW | bottles/backend/umu/__init__.py | 13 | CODE | |
| LOW | bottles/backend/umu/__init__.py | 13 | CODE | |
| LOW | bottles/backend/umu/__init__.py | 13 | CODE | |
| LOW | bottles/backend/umu/__init__.py | 13 | CODE | |
| LOW | bottles/backend/umu/__init__.py | 21 | CODE | |
| LOW | bottles/backend/umu/__init__.py | 21 | CODE | |
| LOW | bottles/backend/umu/__init__.py | 21 | CODE | |
| LOW | bottles/backend/umu/__init__.py | 21 | CODE | |
| LOW | bottles/backend/umu/__init__.py | 21 | CODE | |
| LOW | bottles/backend/umu/__init__.py | 21 | CODE | |
| LOW | bottles/backend/umu/__init__.py | 21 | CODE | |
| LOW | bottles/backend/umu/__init__.py | 30 | CODE | |
| LOW | bottles/backend/umu/__init__.py | 31 | CODE | |
| LOW | bottles/backend/umu/__init__.py | 31 | CODE | |
| LOW | bottles/backend/umu/__init__.py | 31 | CODE | |
| LOW | bottles/backend/umu/__init__.py | 31 | CODE | |
| LOW | bottles/backend/umu/__init__.py | 37 | CODE | |
| LOW | bottles/backend/umu/__init__.py | 37 | CODE | |
| LOW | bottles/backend/umu/__init__.py | 37 | CODE | |
| LOW | bottles/backend/umu/__init__.py | 37 | CODE | |
| LOW | bottles/backend/umu/__init__.py | 43 | CODE | |
| LOW | bottles/backend/umu/__init__.py | 43 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | bottles/frontend/widgets/playtimechart_monthly.py | 0 | get the current font scale factor from gtk settings. | STRING |
| HIGH | bottles/frontend/widgets/playtimechart_weekly.py | 0 | get the current font scale factor from gtk settings. | STRING |
| HIGH | bottles/frontend/widgets/playtimechart_hourly.py | 0 | get the current font scale factor from gtk settings. | STRING |
| HIGH | bottles/frontend/widgets/playtimechart_monthly.py | 0 | show tooltip with time value when hovering over bars. | STRING |
| HIGH | bottles/frontend/widgets/playtimechart_weekly.py | 0 | show tooltip with time value when hovering over bars. | STRING |
| HIGH | bottles/frontend/widgets/playtimechart_hourly.py | 0 | show tooltip with time value when hovering over bars. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | bottles/frontend/windows/playtimegraph.py | 202 | # Check if there's sub-minute playtime for today | COMMENT |
| LOW | bottles/frontend/windows/playtimegraph.py | 290 | # Check if we have required IDs | COMMENT |
| LOW⚡ | bottles/frontend/windows/vkbasalt.py | 104 | # Check if configuration file exists; parse the configuration file if it exists | COMMENT |
| LOW⚡ | bottles/frontend/windows/vkbasalt.py | 110 | # Check if effects are used | COMMENT |
| LOW⚡ | bottles/frontend/windows/vkbasalt.py | 119 | # Check if subeffects are used | COMMENT |
| LOW | bottles/frontend/views/importer.py | 215 | # Check if this is an import task | COMMENT |
| LOW | bottles/frontend/views/bottle_details.py | 541 | # Check if this is a backup task for our bottle | COMMENT |
| LOW | bottles/frontend/widgets/playtimechart_monthly.py | 152 | # Check if width changed - re-render if needed | COMMENT |
| LOW | bottles/frontend/widgets/playtimechart_weekly.py | 151 | # Check if width changed - re-render if needed | COMMENT |
| LOW | bottles/frontend/widgets/playtimechart_hourly.py | 142 | # Check if width changed - re-render if needed | COMMENT |
| LOW | bottles/backend/globals.py | 153 | # Check if some tools are available | COMMENT |
| LOW | bottles/backend/managers/backup.py | 473 | # Check if this directory should be excluded | COMMENT |
| LOW | bottles/backend/managers/manager.py | 1472 | # Check if the path in the bottle config corresponds to the folder name | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | bottles/frontend/views/preferences.py | 631 | subprocess.Popen("sleep 1 && bottles & disown", shell=True, env=environment) | CODE |
| HIGH | bottles/tests/fvs/test_repo.py | 31 | (meta_path / "index.json").write_text('{"commits": null}\n') | CODE |
| HIGH | bottles/backend/utils/terminal.py | 80 | f"command -v {terminal[0]} > /dev/null && echo 1 || echo 0", | CODE |
| HIGH | bottles/backend/utils/terminal.py | 80 | f"command -v {terminal[0]} > /dev/null && echo 1 || echo 0", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | bottles/tests/backend/wine/test_executor.py | 62 | CODE | |
| LOW | bottles/backend/managers/sandbox.py | 43 | CODE | |
| LOW | bottles/backend/managers/manager.py | 1766 | CODE | |
| LOW | bottles/backend/utils/vulkan.py | 119 | CODE | |
| LOW | bottles/backend/models/config.py | 329 | CODE | |
| LOW | bottles/backend/wine/xcopy.py | 14 | CODE | |
| LOW | bottles/backend/wine/wineprogram.py | 89 | CODE | |
| LOW | bottles/backend/wine/wineprogram.py | 39 | CODE | |
| LOW | bottles/backend/wine/msiexec.py | 33 | CODE | |
| LOW | bottles/backend/wine/start.py | 15 | CODE | |
| LOW | bottles/backend/wine/explorer.py | 13 | CODE | |
| LOW | bottles/backend/wine/executor.py | 72 | CODE | |
| LOW | bottles/backend/wine/winecommand.py | 298 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | bottles/frontend/windows/playtimegraph.py | 258 | totals_data = self.parent.window.manager.playtime_tracker.get_totals( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | bottles/backend/models/config.py | 93 | # share_host_ro: bool = True # TODO: implement, requires the Bottles runtime (next) for a minimal sandbox | COMMENT |
| LOW⚡ | bottles/backend/models/config.py | 94 | # share_gpu: bool = True # TODO: implement | COMMENT |
| LOW⚡ | bottles/backend/models/config.py | 95 | # share_paths_ro: List[str] = field(default_factory=lambda: []) # TODO: implement | COMMENT |
| LOW⚡ | bottles/backend/models/config.py | 96 | # share_paths_rw: List[str] = field(default_factory=lambda: []) # TODO: implement | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | bottles/frontend/windows/dependency_install.py | 100 | def update_progress(self, fraction: Optional[float]) -> None: | CODE |
| LOW | bottles/frontend/views/list.py | 249 | def update_bottles_list(self, *args, refresh_updates=True) -> None: | CODE |
| LOW | bottles/frontend/views/list.py | 368 | def update_component_updates_banner(self) -> None: | CODE |
| LOW | bottles/frontend/views/new_bottle_dialog.py | 273 | def update_output(self, text: str) -> None: | CODE |
| LOW | bottles/backend/managers/steam.py | 288 | def _set_shortcut_value(shortcut: dict, key: str, value) -> None: | CODE |
| LOW | bottles/backend/utils/gsettings_stub.py | 23 | def set_string(key: str, value: str) -> None: | CODE |
| LOW | bottles/backend/utils/manager.py | 216 | def set_external_runner_paths(runners: dict[str, str]) -> None: | CODE |
| LOW | bottles/backend/umu/__init__.py | 45 | __all__ = [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | bottles/backend/wine/winecommand.py | 872 | # Create the sh script where Gamescope will execute it | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | bottles/frontend/views/bottle_preferences.py | 970 | def run_task(status=True): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | bottles/backend/managers/eagle.py | 570 | """Perform comprehensive PE analysis with YARA pattern matching.""" | STRING |