SYMBOL INDEX (2144 symbols across 133 files) FILE: build.py function parse_args (line 23) | def parse_args(): function build_one_help (line 63) | def build_one_help(language): function build_help (line 84) | def build_help(): function build_localizations (line 91) | def build_localizations(): function build_updatepot (line 99) | def build_updatepot(): function build_mergepot (line 109) | def build_mergepot(): function build_normpo (line 114) | def build_normpo(): function build_pe_modules (line 118) | def build_pe_modules(): function build_normal (line 124) | def build_normal(): function main (line 138) | def main(): FILE: core/app.py class DestType (line 52) | class DestType: class JobType (line 58) | class JobType: class AppMode (line 66) | class AppMode: class DupeGuru (line 81) | class DupeGuru(Broadcaster): method __init__ (line 129) | def __init__(self, view, portable=False): method _recreate_result_table (line 172) | def _recreate_result_table(self): method _get_picture_cache_path (line 184) | def _get_picture_cache_path(self): method _get_dupe_sort_key (line 188) | def _get_dupe_sort_key(self, dupe, get_group, key, delta): method _get_group_sort_key (line 214) | def _get_group_sort_key(self, group, key): method _do_delete (line 226) | def _do_delete(self, j, link_deleted, use_hardlinks, direct_deletion): method _do_delete_dupe (line 234) | def _do_delete_dupe(self, dupe, link_deleted, use_hardlinks, direct_de... method _create_file (line 253) | def _create_file(self, path): method _get_file (line 257) | def _get_file(self, str_path): method _get_export_data (line 268) | def _get_export_data(self): method _results_changed (line 280) | def _results_changed(self): method _start_job (line 284) | def _start_job(self, jobid, func, args=()): method _job_completed (line 295) | def _job_completed(self, jobid): method _job_error (line 324) | def _job_error(self, jobid, err): method _remove_hardlink_dupes (line 333) | def _remove_hardlink_dupes(files): method _select_dupes (line 347) | def _select_dupes(self, dupes): method _get_fileclasses (line 354) | def _get_fileclasses(self): method _prioritization_categories (line 362) | def _prioritization_categories(self): method add_directory (line 371) | def add_directory(self, d): method add_selected_to_ignore_list (line 386) | def add_selected_to_ignore_list(self): method apply_filter (line 403) | def apply_filter(self, result_filter): method clean_empty_dirs (line 415) | def clean_empty_dirs(self, path): method clear_picture_cache (line 420) | def clear_picture_cache(self): method clear_hash_cache (line 426) | def clear_hash_cache(self): method copy_or_move (line 429) | def copy_or_move(self, dupe, copy: bool, destination: str, dest_type: ... method copy_or_move_marked (line 451) | def copy_or_move_marked(self, copy): method delete_marked (line 478) | def delete_marked(self): method export_to_xhtml (line 493) | def export_to_xhtml(self): method export_to_csv (line 504) | def export_to_csv(self): method get_display_info (line 518) | def get_display_info(self, dupe, group, delta=False): method invoke_custom_command (line 530) | def invoke_custom_command(self): method load (line 566) | def load(self): method load_directories (line 582) | def load_directories(self, filepath): method load_from (line 588) | def load_from(self, filename): method make_selected_reference (line 599) | def make_selected_reference(self): method mark_all (line 631) | def mark_all(self): method mark_none (line 636) | def mark_none(self): method mark_invert (line 641) | def mark_invert(self): method mark_dupe (line 646) | def mark_dupe(self, dupe, marked): method open_selected (line 659) | def open_selected(self): method purge_ignore_list (line 666) | def purge_ignore_list(self): method remove_directories (line 671) | def remove_directories(self, indexes): method remove_duplicates (line 685) | def remove_duplicates(self, duplicates): method remove_marked (line 696) | def remove_marked(self): method remove_selected (line 707) | def remove_selected(self): method rename_selected (line 718) | def rename_selected(self, newname): method reprioritize_groups (line 733) | def reprioritize_groups(self, sort_key): method reveal_selected (line 752) | def reveal_selected(self): method save (line 756) | def save(self): method close (line 766) | def close(self): method save_as (line 769) | def save_as(self, filename): method save_directories_as (line 779) | def save_directories_as(self, filename): method start_scanning (line 789) | def start_scanning(self, profile_scan=False): method toggle_selected_mark_state (line 829) | def toggle_selected_mark_state(self): method without_ref (line 841) | def without_ref(self, dupes): method get_default (line 845) | def get_default(self, key, fallback_value=None): method set_default (line 855) | def set_default(self, key, value): method stat_line (line 860) | def stat_line(self): method fileclasses (line 867) | def fileclasses(self): method SCANNER_CLASS (line 871) | def SCANNER_CLASS(self): method METADATA_TO_READ (line 880) | def METADATA_TO_READ(self): FILE: core/directories.py class DirectoryState (line 26) | class DirectoryState: class AlreadyThereError (line 39) | class AlreadyThereError(Exception): class InvalidPathError (line 43) | class InvalidPathError(Exception): class Directories (line 47) | class Directories: method __init__ (line 58) | def __init__(self, exclude_list=None): method __contains__ (line 64) | def __contains__(self, path): method __delitem__ (line 70) | def __delitem__(self, key): method __getitem__ (line 73) | def __getitem__(self, key): method __len__ (line 76) | def __len__(self): method _default_state_for_path (line 80) | def _default_state_for_path(self, path): method _get_files (line 93) | def _get_files(self, from_path, fileclasses, j): method _get_folders (line 134) | def _get_folders(self, from_folder, j): method add_path (line 148) | def add_path(self, path): method get_subfolders (line 166) | def get_subfolders(path): method get_files (line 179) | def get_files(self, fileclasses=None, j=job.nulljob): method get_folders (line 194) | def get_folders(self, folderclass=None, j=job.nulljob): method get_state (line 210) | def get_state(self, path): method has_any_file (line 230) | def has_any_file(self): method load_from_file (line 243) | def load_from_file(self, infile): method save_to_file (line 269) | def save_to_file(self, outfile): method set_state (line 286) | def set_state(self, path, state): FILE: core/engine.py function getwords (line 30) | def getwords(s): function getfields (line 49) | def getfields(s): function unpack_fields (line 54) | def unpack_fields(fields): function compare (line 64) | def compare(first, second, flags=()): function compare_fields (line 97) | def compare_fields(first, second, flags=()): function build_word_dict (line 125) | def build_word_dict(objects, j=job.nulljob): function merge_similar_words (line 140) | def merge_similar_words(word_dict): function reduce_common_words (line 161) | def reduce_common_words(word_dict, threshold): class Match (line 188) | class Match(namedtuple("Match", "first second percentage")): function get_match (line 211) | def get_match(first, second, flags=()): function getmatches (line 217) | def getmatches( function getmatches_by_contents (line 282) | def getmatches_by_contents(files, bigsize=0, j=job.nulljob): class Group (line 319) | class Group: method __init__ (line 348) | def __init__(self): method __contains__ (line 351) | def __contains__(self, item): method __getitem__ (line 354) | def __getitem__(self, key): method __iter__ (line 357) | def __iter__(self): method __len__ (line 360) | def __len__(self): method _clear (line 364) | def _clear(self): method _get_matches_for_ref (line 372) | def _get_matches_for_ref(self): method add_match (line 379) | def add_match(self, match): method discard_matches (line 408) | def discard_matches(self): method get_match_of (line 418) | def get_match_of(self, item): method prioritize (line 426) | def prioritize(self, key_func, tie_breaker=None): method remove_dupe (line 452) | def remove_dupe(self, item, discard_matches=True): method switch_ref (line 466) | def switch_ref(self, with_dupe): method percentage (line 482) | def percentage(self): method ref (line 492) | def ref(self): function get_groups (line 497) | def get_groups(matches): FILE: core/exclude.py function timer (line 31) | def timer(func): function memoize (line 43) | def memoize(func): class AlreadyThereException (line 55) | class AlreadyThereException(Exception): method __init__ (line 58) | def __init__(self, arg="Expression is already in excluded list."): class ExcludeList (line 62) | class ExcludeList(Markable): method __init__ (line 74) | def __init__(self, union_regex=True): method __iter__ (line 82) | def __iter__(self): method __contains__ (line 88) | def __contains__(self, item): method __len__ (line 91) | def __len__(self): method __getitem__ (line 95) | def __getitem__(self, key): method __setitem__ (line 102) | def __setitem__(self, key, value): method __delitem__ (line 106) | def __delitem__(self, key): method get_compiled (line 110) | def get_compiled(self, key): method is_markable (line 114) | def is_markable(self, regex): method _is_markable (line 117) | def _is_markable(self, regex): method _did_mark (line 124) | def _did_mark(self, regex): method _did_unmark (line 127) | def _did_unmark(self, regex): method _add_compiled (line 130) | def _add_compiled(self, regex): method _remove_compiled (line 141) | def _remove_compiled(self, regex): method _do_compile (line 152) | def _do_compile(self, expr): method compile_re (line 157) | def compile_re(self, regex): method error (line 165) | def error(self, regex): method build_compiled_caches (line 172) | def build_compiled_caches(self, union=False): method compiled (line 202) | def compiled(self): method compiled_files (line 211) | def compiled_files(self): method compiled_paths (line 221) | def compiled_paths(self): method add (line 228) | def add(self, regex, forced=False): method _do_add (line 245) | def _do_add(self, regex, iscompilable, exception, compiled): method marked_count (line 250) | def marked_count(self): method has_entry (line 254) | def has_entry(self, regex): method is_excluded (line 260) | def is_excluded(self, dirname, filename): method remove (line 275) | def remove(self, regex): method rename (line 281) | def rename(self, regex, newregex): method restore_defaults (line 309) | def restore_defaults(self): method load_from_xml (line 318) | def load_from_xml(self, infile): method save_to_xml (line 351) | def save_to_xml(self, outfile): class ExcludeDict (line 365) | class ExcludeDict(ExcludeList): method __init__ (line 373) | def __init__(self, union_regex=False): method __iter__ (line 388) | def __iter__(self): method __getitem__ (line 393) | def __getitem__(self, key): method get_compiled (line 397) | def get_compiled(self, key): method is_markable (line 401) | def is_markable(self, regex): method _is_markable (line 404) | def _is_markable(self, regex): method _add_compiled (line 411) | def _add_compiled(self, regex): method is_compilable (line 421) | def is_compilable(self, regex): method error (line 425) | def error(self, regex): method _do_add (line 430) | def _do_add(self, regex, iscompilable, exception, compiled): method has_entry (line 437) | def has_entry(self, regex): method remove (line 442) | def remove(self, regex): method rename (line 456) | def rename(self, regex, newregex): method save_to_xml (line 474) | def save_to_xml(self, outfile): function ordered_keys (line 493) | def ordered_keys(_dict): function has_sep (line 507) | def has_sep(regexp): function has_sep (line 512) | def has_sep(regexp): FILE: core/export.py function export_to_xhtml (line 118) | def export_to_xhtml(colnames, rows): function export_to_csv (line 147) | def export_to_csv(dest, colnames, rows): FILE: core/fs.py class FSError (line 62) | class FSError(Exception): method __init__ (line 65) | def __init__(self, fsobject, parent=None): class AlreadyExistsError (line 77) | class AlreadyExistsError(FSError): class InvalidPath (line 82) | class InvalidPath(FSError): class InvalidDestinationError (line 87) | class InvalidDestinationError(FSError): class OperationError (line 93) | class OperationError(FSError): class FilesDB (line 100) | class FilesDB: method __init__ (line 117) | def __init__(self): method connect (line 121) | def connect(self, path: Union[AnyStr, os.PathLike]) -> None: method _check_upgrade (line 129) | def _check_upgrade(self) -> None: method clear (line 147) | def clear(self) -> None: method get (line 152) | def get(self, path: Path, key: str) -> Union[bytes, None]: method put (line 177) | def put(self, path: Path, key: str, value: Any) -> None: method commit (line 190) | def commit(self) -> None: method close (line 194) | def close(self) -> None: class File (line 202) | class File: method __init__ (line 211) | def __init__(self, path): method __repr__ (line 223) | def __repr__(self): method __getattribute__ (line 226) | def __getattribute__(self, attrname): method _calc_digest (line 238) | def _calc_digest(self): method _calc_digest_partial (line 253) | def _calc_digest_partial(self): method _calc_digest_samples (line 260) | def _calc_digest_samples(self) -> bytes: method _read_info (line 279) | def _read_info(self, field): method _read_all_info (line 310) | def _read_all_info(self, attrnames=None): method can_handle (line 322) | def can_handle(cls, path): method exists (line 326) | def exists(self) -> bool: method rename (line 334) | def rename(self, newname): method get_display_info (line 348) | def get_display_info(self, group, delta): method extension (line 354) | def extension(self): method name (line 358) | def name(self): method folder_path (line 362) | def folder_path(self): class Folder (line 366) | class Folder(File): method __init__ (line 374) | def __init__(self, path): method _all_items (line 379) | def _all_items(self): method _read_info (line 384) | def _read_info(self, field): method subfolders (line 406) | def subfolders(self): method can_handle (line 414) | def can_handle(cls, path): function get_file (line 418) | def get_file(path, fileclasses=[File]): function get_files (line 431) | def get_files(path, fileclasses=[File]): FILE: core/gui/base.py class DupeGuruGUIObject (line 12) | class DupeGuruGUIObject(Listener): method __init__ (line 13) | def __init__(self, app): method directories_changed (line 17) | def directories_changed(self): method dupes_selected (line 21) | def dupes_selected(self): method marking_changed (line 25) | def marking_changed(self): method results_changed (line 29) | def results_changed(self): method results_changed_but_keep_selection (line 33) | def results_changed_but_keep_selection(self): FILE: core/gui/deletion_options.py class DeletionOptionsView (line 14) | class DeletionOptionsView: method update_msg (line 31) | def update_msg(self, msg: str): method show (line 34) | def show(self): method set_hardlink_option_enabled (line 40) | def set_hardlink_option_enabled(self, is_enabled: bool): class DeletionOptions (line 44) | class DeletionOptions(GUIObject): method __init__ (line 51) | def __init__(self): method show (line 60) | def show(self, mark_count): method supports_links (line 75) | def supports_links(self): method link_deleted (line 93) | def link_deleted(self): method link_deleted (line 103) | def link_deleted(self, value): FILE: core/gui/details_panel.py class DetailsPanel (line 13) | class DetailsPanel(GUIObject, DupeGuruGUIObject): method __init__ (line 14) | def __init__(self, app): method _view_updated (line 19) | def _view_updated(self): method _refresh (line 24) | def _refresh(self): method row_count (line 39) | def row_count(self): method row (line 42) | def row(self, row_index): method dupes_selected (line 46) | def dupes_selected(self): FILE: core/gui/directory_tree.py class DirectoryNode (line 18) | class DirectoryNode(Node): method __init__ (line 19) | def __init__(self, tree, path, name): method __len__ (line 26) | def __len__(self): method _load (line 31) | def _load(self): method update_all_states (line 38) | def update_all_states(self): method state (line 45) | def state(self): method state (line 49) | def state(self, value): class DirectoryTree (line 58) | class DirectoryTree(Tree, DupeGuruGUIObject): method __init__ (line 63) | def __init__(self, app): method _view_updated (line 67) | def _view_updated(self): method _refresh (line 71) | def _refresh(self): method add_directory (line 76) | def add_directory(self, path): method remove_selected (line 79) | def remove_selected(self): method select_all (line 95) | def select_all(self): method update_all_states (line 99) | def update_all_states(self): method directories_changed (line 105) | def directories_changed(self): FILE: core/gui/exclude_list_dialog.py class ExcludeListDialogCore (line 14) | class ExcludeListDialogCore: method __init__ (line 15) | def __init__(self, app): method restore_defaults (line 20) | def restore_defaults(self): method refresh (line 24) | def refresh(self): method remove_selected (line 27) | def remove_selected(self): method rename_selected (line 33) | def rename_selected(self, newregex): method add (line 48) | def add(self, regex): method test_string (line 53) | def test_string(self, test_string): method is_match (line 67) | def is_match(self, test_string, compiled_regex): method reset_rows_highlight (line 85) | def reset_rows_highlight(self): method show (line 89) | def show(self): FILE: core/gui/exclude_list_table.py class ExcludeListTable (line 13) | class ExcludeListTable(GUITable, DupeGuruGUIObject): method __init__ (line 16) | def __init__(self, exclude_list_dialog, app): method rename_selected (line 22) | def rename_selected(self, newname): method _do_add (line 30) | def _do_add(self, regex): method _do_delete (line 36) | def _do_delete(self): method add (line 40) | def add(self, regex): method _fill (line 45) | def _fill(self): method refresh (line 49) | def refresh(self, refresh_view=True): class ExcludeListRow (line 59) | class ExcludeListRow(Row): method __init__ (line 60) | def __init__(self, table, enabled, regex): method data (line 69) | def data(self): method markable (line 75) | def markable(self): method marked (line 79) | def marked(self): method marked (line 83) | def marked(self, value): method error (line 90) | def error(self): FILE: core/gui/ignore_list_dialog.py class IgnoreListDialog (line 12) | class IgnoreListDialog: method __init__ (line 17) | def __init__(self, app): method clear (line 22) | def clear(self): method refresh (line 30) | def refresh(self): method remove_selected (line 33) | def remove_selected(self): method show (line 38) | def show(self): FILE: core/gui/ignore_list_table.py class IgnoreListTable (line 16) | class IgnoreListTable(GUITable): method __init__ (line 23) | def __init__(self, ignore_list_dialog): method _fill (line 30) | def _fill(self): class IgnoreListRow (line 35) | class IgnoreListRow(Row): method __init__ (line 36) | def __init__(self, table, path1, path2): FILE: core/gui/prioritize_dialog.py class CriterionCategoryList (line 13) | class CriterionCategoryList(GUISelectableList): method __init__ (line 14) | def __init__(self, dialog): method _update_selection (line 18) | def _update_selection(self): class PrioritizationList (line 23) | class PrioritizationList(GUISelectableList): method __init__ (line 24) | def __init__(self, dialog): method _refresh_contents (line 28) | def _refresh_contents(self): method move_indexes (line 31) | def move_indexes(self, indexes, dest_index): method remove_selected (line 40) | def remove_selected(self): class PrioritizeDialog (line 47) | class PrioritizeDialog(GUIObject): method __init__ (line 48) | def __init__(self, app): method _view_updated (line 59) | def _view_updated(self): method _sort_key (line 63) | def _sort_key(self, dupe): method select_category (line 67) | def select_category(self, category): method add_selected (line 71) | def add_selected(self): method remove_selected (line 81) | def remove_selected(self): method perform_reprioritization (line 85) | def perform_reprioritization(self): FILE: core/gui/problem_dialog.py class ProblemDialog (line 14) | class ProblemDialog: method __init__ (line 15) | def __init__(self, app): method refresh (line 20) | def refresh(self): method reveal_selected_dupe (line 24) | def reveal_selected_dupe(self): method select_dupe (line 28) | def select_dupe(self, dupe): FILE: core/gui/problem_table.py class ProblemTable (line 16) | class ProblemTable(GUITable): method __init__ (line 22) | def __init__(self, problem_dialog): method _update_selection (line 28) | def _update_selection(self): method _fill (line 33) | def _fill(self): class ProblemRow (line 39) | class ProblemRow(Row): method __init__ (line 40) | def __init__(self, table, dupe, msg): FILE: core/gui/result_table.py class DupeRow (line 17) | class DupeRow(Row): method __init__ (line 18) | def __init__(self, table, group, dupe): method is_cell_delta (line 27) | def is_cell_delta(self, column_name): method data (line 53) | def data(self): method data_delta (line 59) | def data_delta(self): method isref (line 65) | def isref(self): method markable (line 69) | def markable(self): method marked (line 73) | def marked(self): method marked (line 77) | def marked(self, value): class ResultTable (line 81) | class ResultTable(GUITable, DupeGuruGUIObject): method __init__ (line 82) | def __init__(self, app): method _view_updated (line 91) | def _view_updated(self): method _restore_selection (line 94) | def _restore_selection(self, previous_selection): method _update_selection (line 100) | def _update_selection(self): method _fill (line 104) | def _fill(self): method _refresh_with_view (line 115) | def _refresh_with_view(self): method get_row_value (line 120) | def get_row_value(self, index, column): method rename_selected (line 130) | def rename_selected(self, newname): method sort (line 140) | def sort(self, key, asc): method power_marker (line 150) | def power_marker(self): method power_marker (line 154) | def power_marker(self, value): method delta_values (line 163) | def delta_values(self): method delta_values (line 167) | def delta_values(self, value): method selected_dupe_count (line 174) | def selected_dupe_count(self): method marking_changed (line 178) | def marking_changed(self): method results_changed (line 181) | def results_changed(self): method results_changed_but_keep_selection (line 184) | def results_changed_but_keep_selection(self): method save_session (line 192) | def save_session(self): FILE: core/gui/stats_label.py class StatsLabel (line 12) | class StatsLabel(DupeGuruGUIObject): method _view_updated (line 13) | def _view_updated(self): method display (line 17) | def display(self): method results_changed (line 20) | def results_changed(self): FILE: core/ignore.py class IgnoreList (line 14) | class IgnoreList: method __init__ (line 22) | def __init__(self): method __iter__ (line 25) | def __iter__(self): method __len__ (line 30) | def __len__(self): method are_ignored (line 34) | def are_ignored(self, first, second): method clear (line 44) | def clear(self): method filter (line 48) | def filter(self, func): method ignore (line 59) | def ignore(self, first, second): method remove (line 75) | def remove(self, first, second): method load_from_xml (line 93) | def load_from_xml(self, infile): method save_to_xml (line 113) | def save_to_xml(self, outfile): FILE: core/markable.py class Markable (line 10) | class Markable: method __init__ (line 11) | def __init__(self): method _did_mark (line 19) | def _did_mark(self, o): method _did_unmark (line 23) | def _did_unmark(self, o): method _get_markable_count (line 27) | def _get_markable_count(self): method _is_markable (line 30) | def _is_markable(self, o): method _remove_mark_flag (line 34) | def _remove_mark_flag(self, o): method is_marked (line 42) | def is_marked(self, o): method mark (line 50) | def mark(self, o): method mark_multiple (line 57) | def mark_multiple(self, objects): method mark_all (line 61) | def mark_all(self): method mark_invert (line 65) | def mark_invert(self): method mark_none (line 68) | def mark_none(self): method mark_toggle (line 74) | def mark_toggle(self, o): method mark_toggle_multiple (line 85) | def mark_toggle_multiple(self, objects): method unmark (line 89) | def unmark(self, o): method unmark_multiple (line 94) | def unmark_multiple(self, objects): method mark_count (line 100) | def mark_count(self): method mark_inverted (line 107) | def mark_inverted(self): class MarkableList (line 111) | class MarkableList(list, Markable): method __init__ (line 112) | def __init__(self): method _get_markable_count (line 116) | def _get_markable_count(self): method _is_markable (line 119) | def _is_markable(self, o): FILE: core/me/fs.py class MusicFile (line 33) | class MusicFile(fs.File): method can_handle (line 53) | def can_handle(cls, path): method get_display_info (line 58) | def get_display_info(self, group, delta): method _read_info (line 100) | def _read_info(self, field): FILE: core/me/prioritize.py class DurationCategory (line 22) | class DurationCategory(NumericalCategory): method extract_value (line 25) | def extract_value(self, dupe): class BitrateCategory (line 29) | class BitrateCategory(NumericalCategory): method extract_value (line 32) | def extract_value(self, dupe): class SamplerateCategory (line 36) | class SamplerateCategory(NumericalCategory): method extract_value (line 39) | def extract_value(self, dupe): function all_categories (line 43) | def all_categories(): FILE: core/me/result_table.py class ResultTable (line 16) | class ResultTable(ResultTableBase): FILE: core/me/scanner.py class ScannerME (line 12) | class ScannerME(ScannerBase): method _key_func (line 14) | def _key_func(dupe): method get_scan_options (line 18) | def get_scan_options(): FILE: core/pe/block.pyi class NoBlocksError (line 5) | class NoBlocksError(Exception): ... # noqa: E302, E701 class DifferentBlockCountError (line 6) | class DifferentBlockCountError(Exception): ... # noqa E701 function getblock (line 8) | def getblock(image: object) -> Union[_block, None]: ... # noqa: E302 function getblocks2 (line 9) | def getblocks2(image: object, block_count_per_side: int) -> Union[List[_... function diff (line 10) | def diff(first: _block, second: _block) -> int: ... function avgdiff (line 11) | def avgdiff( # noqa: E302 FILE: core/pe/cache.py function colors_to_bytes (line 10) | def colors_to_bytes(colors): FILE: core/pe/cache.pyi function colors_to_bytes (line 5) | def colors_to_bytes(colors: List[_block]) -> bytes: ... # noqa: E302 function bytes_to_colors (line 6) | def bytes_to_colors(s: bytes) -> Union[List[_block], None]: ... FILE: core/pe/cache_sqlite.py class SqliteCache (line 15) | class SqliteCache: method __init__ (line 30) | def __init__(self, db=":memory:", readonly=False): method __contains__ (line 36) | def __contains__(self, key): method __delitem__ (line 41) | def __delitem__(self, key): method __getitem__ (line 48) | def __getitem__(self, key): method __iter__ (line 68) | def __iter__(self): method __len__ (line 73) | def __len__(self): method __setitem__ (line 78) | def __setitem__(self, path_str, blocks): method _create_con (line 102) | def _create_con(self, second_try=False): method _check_upgrade (line 114) | def _check_upgrade(self) -> None: method clear (line 133) | def clear(self): method close (line 139) | def close(self): method filter (line 144) | def filter(self, func): method get_id (line 149) | def get_id(self, path): method get_multiple (line 157) | def get_multiple(self, rowids): method purge_outdated (line 181) | def purge_outdated(self): FILE: core/pe/exif.py function s2n_motorola (line 164) | def s2n_motorola(bytes): function s2n_intel (line 171) | def s2n_intel(bytes): class Fraction (line 180) | class Fraction: method __init__ (line 181) | def __init__(self, num, den): method __repr__ (line 185) | def __repr__(self): class TIFF_file (line 189) | class TIFF_file: method __init__ (line 190) | def __init__(self, data): method s2n (line 195) | def s2n(self, offset, length, signed=0, debug=False): method first_IFD (line 214) | def first_IFD(self): method next_IFD (line 217) | def next_IFD(self, ifd): method list_IFDs (line 221) | def list_IFDs(self): method dump_IFD (line 229) | def dump_IFD(self, ifd): function read_exif_header (line 270) | def read_exif_header(fp): function get_fields (line 291) | def get_fields(fp): FILE: core/pe/matchblock.py function get_cache (line 53) | def get_cache(cache_path, readonly=False): function prepare_pictures (line 57) | def prepare_pictures(pictures, cache_path, with_dimensions, match_rotate... function get_chunks (line 105) | def get_chunks(pictures): function get_match (line 121) | def get_match(first, second, percentage): function async_compare (line 127) | def async_compare(ref_ids, other_ids, dbname, threshold, picinfo, match_... function getmatches (line 171) | def getmatches(pictures, cache_path, threshold, match_scaled=False, matc... FILE: core/pe/matchexif.py function getmatches (line 17) | def getmatches(files, match_scaled, j): FILE: core/pe/modules/block.c function PyObject (line 20) | static PyObject *getblock(PyObject *image) { function diff (line 67) | static int diff(PyObject *first, PyObject *second) { function PyObject (line 102) | static PyObject *block_getblocks2(PyObject *self, PyObject *args) { function PyObject (line 174) | static PyObject *block_avgdiff(PyObject *self, PyObject *args) { type PyModuleDef (line 225) | struct PyModuleDef function PyObject (line 235) | PyObject *PyInit__block(void) { FILE: core/pe/modules/cache.c function PyObject (line 12) | static PyObject *cache_bytes_to_colors(PyObject *self, PyObject *args) { type PyModuleDef (line 53) | struct PyModuleDef function PyObject (line 63) | PyObject *PyInit__cache(void) { FILE: core/pe/modules/common.c function max (line 13) | int max(int a, int b) function min (line 18) | int min(int a, int b) function PyObject (line 24) | PyObject* inttuple(int n, ...) FILE: core/pe/photo.py function format_dimensions (line 18) | def format_dimensions(dimensions): function get_delta_dimensions (line 22) | def get_delta_dimensions(value, ref_value): class Photo (line 26) | class Photo(fs.File): method _plat_get_dimensions (line 34) | def _plat_get_dimensions(self): method _plat_get_blocks (line 37) | def _plat_get_blocks(self, block_count_per_side, orientation): method get_orientation (line 40) | def get_orientation(self): method _get_exif_timestamp (line 52) | def _get_exif_timestamp(self): method can_handle (line 62) | def can_handle(cls, path): method get_display_info (line 65) | def get_display_info(self, group, delta): method _read_info (line 94) | def _read_info(self, field): method get_blocks (line 103) | def get_blocks(self, block_count_per_side, orientation: int = None): FILE: core/pe/prioritize.py class DimensionsCategory (line 22) | class DimensionsCategory(NumericalCategory): method extract_value (line 25) | def extract_value(self, dupe): method invert_numerical_value (line 28) | def invert_numerical_value(self, value): function all_categories (line 33) | def all_categories(): FILE: core/pe/result_table.py class ResultTable (line 16) | class ResultTable(ResultTableBase): FILE: core/pe/scanner.py class ScannerPE (line 14) | class ScannerPE(Scanner): method get_scan_options (line 20) | def get_scan_options(): method _getmatches (line 26) | def _getmatches(self, files, j): FILE: core/prioritize.py class CriterionCategory (line 15) | class CriterionCategory: method __init__ (line 18) | def __init__(self, results): method extract_value (line 22) | def extract_value(self, dupe): method format_criterion_value (line 25) | def format_criterion_value(self, value): method sort_key (line 28) | def sort_key(self, dupe, crit_value): method criteria_list (line 31) | def criteria_list(self): class Criterion (line 35) | class Criterion: method __init__ (line 36) | def __init__(self, category, value): method sort_key (line 41) | def sort_key(self, dupe): method display (line 45) | def display(self): class ValueListCategory (line 49) | class ValueListCategory(CriterionCategory): method sort_key (line 50) | def sort_key(self, dupe, crit_value): method criteria_list (line 58) | def criteria_list(self): class KindCategory (line 64) | class KindCategory(ValueListCategory): method extract_value (line 67) | def extract_value(self, dupe): class FolderCategory (line 74) | class FolderCategory(ValueListCategory): method extract_value (line 77) | def extract_value(self, dupe): method format_criterion_value (line 80) | def format_criterion_value(self, value): method sort_key (line 83) | def sort_key(self, dupe, crit_value): class FilenameCategory (line 93) | class FilenameCategory(CriterionCategory): method format_criterion_value (line 102) | def format_criterion_value(self, value): method extract_value (line 112) | def extract_value(self, dupe): method sort_key (line 115) | def sort_key(self, dupe, crit_value): method criteria_list (line 133) | def criteria_list(self): class NumericalCategory (line 147) | class NumericalCategory(CriterionCategory): method format_criterion_value (line 151) | def format_criterion_value(self, value): method invert_numerical_value (line 154) | def invert_numerical_value(self, value): # Virtual method sort_key (line 157) | def sort_key(self, dupe, crit_value): method criteria_list (line 163) | def criteria_list(self): class SizeCategory (line 167) | class SizeCategory(NumericalCategory): method extract_value (line 170) | def extract_value(self, dupe): class MtimeCategory (line 174) | class MtimeCategory(NumericalCategory): method extract_value (line 177) | def extract_value(self, dupe): method format_criterion_value (line 180) | def format_criterion_value(self, value): function all_categories (line 184) | def all_categories(): FILE: core/results.py class Results (line 25) | class Results(Markable): method __init__ (line 41) | def __init__(self, app): method _did_mark (line 58) | def _did_mark(self, dupe): method _did_unmark (line 61) | def _did_unmark(self, dupe): method _get_markable_count (line 64) | def _get_markable_count(self): method _is_markable (line 67) | def _is_markable(self, dupe): method mark_all (line 79) | def mark_all(self): method mark_invert (line 85) | def mark_invert(self): method mark_none (line 91) | def mark_none(self): method __get_dupe_list (line 98) | def __get_dupe_list(self): method __get_groups (line 116) | def __get_groups(self): method __get_stat_line (line 122) | def __get_stat_line(self): method __recalculate_stats (line 145) | def __recalculate_stats(self): method __set_groups (line 153) | def __set_groups(self, new_groups): method apply_filter (line 169) | def apply_filter(self, filter_str): method get_group_of_duplicate (line 206) | def get_group_of_duplicate(self, dupe): method load_from_xml (line 215) | def load_from_xml(self, infile, get_file, j=nulljob): method make_ref (line 272) | def make_ref(self, dupe): method perform_on_marked (line 289) | def perform_on_marked(self, func, remove_from_results): method remove_duplicates (line 313) | def remove_duplicates(self, dupes): method save_to_xml (line 341) | def save_to_xml(self, outfile): method sort_dupes (line 391) | def sort_dupes(self, key, asc=True, delta=False): method sort_groups (line 406) | def sort_groups(self, key, asc=True): FILE: core/scanner.py class ScanType (line 23) | class ScanType: function is_same_with_digit (line 43) | def is_same_with_digit(name, refname): function remove_dupe_paths (line 51) | def remove_dupe_paths(files): class Scanner (line 75) | class Scanner: method __init__ (line 76) | def __init__(self): method _getmatches (line 79) | def _getmatches(self, files, j): method _key_func (line 120) | def _key_func(dupe): method _tie_breaker (line 124) | def _tie_breaker(ref, dupe): method get_scan_options (line 138) | def get_scan_options(): method get_dupe_groups (line 145) | def get_dupe_groups(self, files, ignore_list=None, j=job.nulljob): FILE: core/se/fs.py function get_display_info (line 15) | def get_display_info(dupe, group, delta): class File (line 41) | class File(fs.File): method get_display_info (line 42) | def get_display_info(self, group, delta): class Folder (line 46) | class Folder(fs.Folder): method get_display_info (line 47) | def get_display_info(self, group, delta): FILE: core/se/result_table.py class ResultTable (line 16) | class ResultTable(ResultTableBase): FILE: core/se/scanner.py class ScannerSE (line 12) | class ScannerSE(ScannerBase): method get_scan_options (line 14) | def get_scan_options(): FILE: core/tests/app_test.py function add_fake_files_to_directories (line 25) | def add_fake_files_to_directories(directories, files): class TestCaseDupeGuru (line 30) | class TestCaseDupeGuru: method test_apply_filter_calls_results_apply_filter (line 31) | def test_apply_filter_calls_results_apply_filter(self, monkeypatch): method test_apply_filter_escapes_regexp (line 41) | def test_apply_filter_escapes_regexp(self, monkeypatch): method test_copy_or_move (line 55) | def test_copy_or_move(self, tmpdir, monkeypatch): method test_copy_or_move_clean_empty_dirs (line 79) | def test_copy_or_move_clean_empty_dirs(self, tmpdir, monkeypatch): method test_scan_with_objects_evaluating_to_false (line 93) | def test_scan_with_objects_evaluating_to_false(self): method test_ignore_hardlink_matches (line 107) | def test_ignore_hardlink_matches(self, tmpdir): method test_rename_when_nothing_is_selected (line 120) | def test_rename_when_nothing_is_selected(self): class TestCaseDupeGuruCleanEmptyDirs (line 129) | class TestCaseDupeGuruCleanEmptyDirs: method do_setup (line 131) | def do_setup(self, request): method test_option_off (line 142) | def test_option_off(self, do_setup): method test_option_on (line 146) | def test_option_on(self, do_setup): method test_recurse_up (line 154) | def test_recurse_up(self, do_setup, monkeypatch): class TestCaseDupeGuruWithResults (line 172) | class TestCaseDupeGuruWithResults: method do_setup (line 174) | def do_setup(self, request): method test_get_objects (line 189) | def test_get_objects(self, do_setup): method test_get_objects_after_sort (line 202) | def test_get_objects_after_sort(self, do_setup): method test_selected_result_node_paths_after_deletion (line 210) | def test_selected_result_node_paths_after_deletion(self, do_setup): method test_select_result_node_paths (line 217) | def test_select_result_node_paths(self, do_setup): method test_select_result_node_paths_with_ref (line 225) | def test_select_result_node_paths_with_ref(self, do_setup): method test_select_result_node_paths_after_sort (line 234) | def test_select_result_node_paths_after_sort(self, do_setup): method test_selected_powermarker_node_paths (line 246) | def test_selected_powermarker_node_paths(self, do_setup): method test_selected_powermarker_node_paths_after_deletion (line 253) | def test_selected_powermarker_node_paths_after_deletion(self, do_setup): method test_select_powermarker_rows_after_sort (line 261) | def test_select_powermarker_rows_after_sort(self, do_setup): method test_toggle_selected_mark_state (line 272) | def test_toggle_selected_mark_state(self, do_setup): method test_toggle_selected_mark_state_with_different_selected_state (line 286) | def test_toggle_selected_mark_state_with_different_selected_state(self... method test_refresh_details_with_selected (line 300) | def test_refresh_details_with_selected(self, do_setup): method test_make_selected_reference (line 308) | def test_make_selected_reference(self, do_setup): method test_make_selected_reference_by_selecting_two_dupes_in_the_same_group (line 317) | def test_make_selected_reference_by_selecting_two_dupes_in_the_same_gr... method test_remove_selected (line 327) | def test_remove_selected(self, do_setup): method test_add_directory_simple (line 335) | def test_add_directory_simple(self, do_setup): method test_add_directory_already_there (line 343) | def test_add_directory_already_there(self, do_setup): method test_add_directory_does_not_exist (line 351) | def test_add_directory_does_not_exist(self, do_setup): method test_ignore (line 357) | def test_ignore(self, do_setup): method test_purge_ignorelist (line 367) | def test_purge_ignorelist(self, do_setup, tmpdir): method test_only_unicode_is_added_to_ignore_list (line 382) | def test_only_unicode_is_added_to_ignore_list(self, do_setup): method test_cancel_scan_with_previous_results (line 394) | def test_cancel_scan_with_previous_results(self, do_setup): method test_selected_dupes_after_removal (line 403) | def test_selected_dupes_after_removal(self, do_setup): method test_dont_crash_on_delta_powermarker_dupecount_sort (line 413) | def test_dont_crash_on_delta_powermarker_dupecount_sort(self, do_setup): class TestCaseDupeGuruRenameSelected (line 424) | class TestCaseDupeGuruRenameSelected: method do_setup (line 426) | def do_setup(self, request): method test_simple (line 448) | def test_simple(self, do_setup): method test_none_selected (line 458) | def test_none_selected(self, do_setup, monkeypatch): method test_name_already_exists (line 471) | def test_name_already_exists(self, do_setup, monkeypatch): class TestAppWithDirectoriesInTree (line 485) | class TestAppWithDirectoriesInTree: method do_setup (line 487) | def do_setup(self, request): method test_set_root_as_ref_makes_subfolders_ref_as_well (line 499) | def test_set_root_as_ref_makes_subfolders_ref_as_well(self, do_setup): FILE: core/tests/base.py class DupeGuruView (line 20) | class DupeGuruView: method __init__ (line 23) | def __init__(self): method start_job (line 26) | def start_job(self, jobid, func, args=()): method get_default (line 32) | def get_default(self, key_name): method set_default (line 35) | def set_default(self, key_name, value): method show_message (line 38) | def show_message(self, msg): method ask_yes_no (line 41) | def ask_yes_no(self, prompt): method create_results_window (line 44) | def create_results_window(self): class ResultTable (line 48) | class ResultTable(ResultTableBase): class DupeGuru (line 61) | class DupeGuru(DupeGuruBase): method __init__ (line 65) | def __init__(self): method _prioritization_categories (line 70) | def _prioritization_categories(self): method _recreate_result_table (line 73) | def _recreate_result_table(self): class NamedObject (line 81) | class NamedObject: method __init__ (line 82) | def __init__(self, name="foobar", with_words=False, size=1, folder=None): method __bool__ (line 95) | def __bool__(self): method get_display_info (line 98) | def get_display_info(self, group, delta): method path (line 112) | def path(self): method folder_path (line 116) | def folder_path(self): method extension (line 120) | def extension(self): function GetTestGroups (line 130) | def GetTestGroups(): class TestApp (line 147) | class TestApp(TestAppBase): method __init__ (line 150) | def __init__(self): method rtable (line 174) | def rtable(self): method select_pri_criterion (line 179) | def select_pri_criterion(self, name): method add_pri_criterion (line 185) | def add_pri_criterion(self, name, index): FILE: core/tests/block_test.py function my_avgdiff (line 17) | def my_avgdiff(first, second, limit=768, min_iter=3): # this is so I do... class FakeImage (line 27) | class FakeImage: method __init__ (line 28) | def __init__(self, size, data): method getdata (line 32) | def getdata(self): method crop (line 35) | def crop(self, box): function empty (line 44) | def empty(): function single_pixel (line 48) | def single_pixel(): # one red pixel function four_pixels (line 52) | def four_pixels(): class TestCasegetblock (line 57) | class TestCasegetblock: method test_single_pixel (line 58) | def test_single_pixel(self): method test_no_pixel (line 63) | def test_no_pixel(self): method test_four_pixels (line 67) | def test_four_pixels(self): class TestCasegetblocks2 (line 76) | class TestCasegetblocks2: method test_empty_image (line 77) | def test_empty_image(self): method test_one_block_image (line 82) | def test_one_block_image(self): method test_four_blocks_all_black (line 92) | def test_four_blocks_all_black(self): method test_two_pixels_image_horizontal (line 99) | def test_two_pixels_image_horizontal(self): method test_two_pixels_image_vertical (line 109) | def test_two_pixels_image_vertical(self): class TestCaseavgdiff (line 120) | class TestCaseavgdiff: method test_empty (line 121) | def test_empty(self): method test_two_blocks (line 125) | def test_two_blocks(self): method test_blocks_not_the_same_size (line 137) | def test_blocks_not_the_same_size(self): method test_first_arg_is_empty_but_not_second (line 142) | def test_first_arg_is_empty_but_not_second(self): method test_limit (line 148) | def test_limit(self): method test_min_iterations (line 157) | def test_min_iterations(self): method test_return_at_least_1_at_the_slightest_difference (line 177) | def test_return_at_least_1_at_the_slightest_difference(self): method test_return_0_if_there_is_no_difference (line 185) | def test_return_0_if_there_is_no_difference(self): FILE: core/tests/cache_test.py class TestCaseColorsToString (line 19) | class TestCaseColorsToString: method test_no_color (line 20) | def test_no_color(self): method test_single_color (line 23) | def test_single_color(self): method test_two_colors (line 28) | def test_two_colors(self): class TestCaseStringToColors (line 32) | class TestCaseStringToColors: method test_empty (line 33) | def test_empty(self): method test_single_color (line 36) | def test_single_color(self): method test_two_colors (line 41) | def test_two_colors(self): method test_incomplete_color (line 44) | def test_incomplete_color(self): class BaseTestCaseCache (line 50) | class BaseTestCaseCache: method get_cache (line 51) | def get_cache(self, dbname=None): method test_empty (line 54) | def test_empty(self): method test_set_then_retrieve_blocks (line 60) | def test_set_then_retrieve_blocks(self): method test_delitem (line 66) | def test_delitem(self): method test_persistance (line 74) | def test_persistance(self, tmpdir): method test_filter (line 82) | def test_filter(self): method test_clear (line 93) | def test_clear(self): method test_by_id (line 104) | def test_by_id(self): class TestCaseSqliteCache (line 113) | class TestCaseSqliteCache(BaseTestCaseCache): method get_cache (line 114) | def get_cache(self, dbname=None): method test_corrupted_db (line 120) | def test_corrupted_db(self, tmpdir, monkeypatch): class TestCaseCacheSQLEscape (line 136) | class TestCaseCacheSQLEscape: method get_cache (line 137) | def get_cache(self): method test_contains (line 140) | def test_contains(self): method test_getitem (line 144) | def test_getitem(self): method test_setitem (line 149) | def test_setitem(self): method test_delitem (line 153) | def test_delitem(self): FILE: core/tests/directories_test.py function create_fake_fs (line 27) | def create_fake_fs(rootpath): function setup_module (line 52) | def setup_module(module): function teardown_module (line 64) | def teardown_module(module): function test_empty (line 68) | def test_empty(): function test_add_path (line 74) | def test_add_path(): function test_add_path_when_path_is_already_there (line 88) | def test_add_path_when_path_is_already_there(): function test_add_path_containing_paths_already_there (line 99) | def test_add_path_containing_paths_already_there(): function test_add_path_non_latin (line 108) | def test_add_path_non_latin(tmpdir): function test_del (line 119) | def test_del(): function test_states (line 132) | def test_states(): function test_get_state_with_path_not_there (line 145) | def test_get_state_with_path_not_there(): function test_states_overwritten_when_larger_directory_eat_smaller_ones (line 152) | def test_states_overwritten_when_larger_directory_eat_smaller_ones(): function test_get_files (line 166) | def test_get_files(): function test_get_files_with_folders (line 181) | def test_get_files_with_folders(): function test_get_folders (line 196) | def test_get_folders(): function test_get_files_with_inherited_exclusion (line 212) | def test_get_files_with_inherited_exclusion(): function test_save_and_load (line 220) | def test_save_and_load(tmpdir): function test_invalid_path (line 239) | def test_invalid_path(): function test_set_state_on_invalid_path (line 247) | def test_set_state_on_invalid_path(): function test_load_from_file_with_invalid_path (line 260) | def test_load_from_file_with_invalid_path(tmpdir): function test_unicode_save (line 277) | def test_unicode_save(tmpdir): function test_get_files_refreshes_its_directories (line 291) | def test_get_files_refreshes_its_directories(): function test_get_files_does_not_choke_on_non_existing_directories (line 303) | def test_get_files_does_not_choke_on_non_existing_directories(tmpdir): function test_get_state_returns_excluded_by_default_for_hidden_directories (line 311) | def test_get_state_returns_excluded_by_default_for_hidden_directories(tm... function test_default_path_state_override (line 323) | def test_default_path_state_override(tmpdir): class TestExcludeList (line 347) | class TestExcludeList: method setup_method (line 348) | def setup_method(self, method): method get_files_and_expect_num_result (line 351) | def get_files_and_expect_num_result(self, num_result): method test_exclude_recycle_bin_by_default (line 364) | def test_exclude_recycle_bin_by_default(self, tmpdir): method test_exclude_refined (line 378) | def test_exclude_refined(self, tmpdir): method test_japanese_unicode (line 500) | def test_japanese_unicode(self, tmpdir): method test_get_state_returns_excluded_for_hidden_directories_and_files (line 530) | def test_get_state_returns_excluded_for_hidden_directories_and_files(s... class TestExcludeDict (line 554) | class TestExcludeDict(TestExcludeList): method setup_method (line 555) | def setup_method(self, method): class TestExcludeListunion (line 559) | class TestExcludeListunion(TestExcludeList): method setup_method (line 560) | def setup_method(self, method): class TestExcludeDictunion (line 564) | class TestExcludeDictunion(TestExcludeList): method setup_method (line 565) | def setup_method(self, method): FILE: core/tests/engine_test.py function get_match_triangle (line 38) | def get_match_triangle(): function get_test_group (line 48) | def get_test_group(): function assert_match (line 57) | def assert_match(m, name1, name2): class TestCasegetwords (line 67) | class TestCasegetwords: method test_spaces (line 68) | def test_spaces(self): method test_unicode (line 72) | def test_unicode(self): method test_splitter_chars (line 79) | def test_splitter_chars(self): method test_joiner_chars (line 85) | def test_joiner_chars(self): method test_empty (line 88) | def test_empty(self): method test_returns_lowercase (line 91) | def test_returns_lowercase(self): method test_decompose_unicode (line 94) | def test_decompose_unicode(self): class TestCasegetfields (line 98) | class TestCasegetfields: method test_simple (line 99) | def test_simple(self): method test_empty (line 102) | def test_empty(self): method test_cleans_empty_fields (line 105) | def test_cleans_empty_fields(self): class TestCaseUnpackFields (line 111) | class TestCaseUnpackFields: method test_with_fields (line 112) | def test_with_fields(self): method test_without_fields (line 117) | def test_without_fields(self): method test_empty (line 122) | def test_empty(self): class TestCaseWordCompare (line 126) | class TestCaseWordCompare: method test_list (line 127) | def test_list(self): method test_unordered (line 131) | def test_unordered(self): method test_word_occurs_twice (line 137) | def test_word_occurs_twice(self): method test_uses_copy_of_lists (line 141) | def test_uses_copy_of_lists(self): method test_word_weight (line 148) | def test_word_weight(self): method test_similar_words (line 154) | def test_similar_words(self): method test_empty (line 164) | def test_empty(self): method test_with_fields (line 167) | def test_with_fields(self): method test_propagate_flags_with_fields (line 170) | def test_propagate_flags_with_fields(self, monkeypatch): class TestCaseWordCompareWithFields (line 178) | class TestCaseWordCompareWithFields: method test_simple (line 179) | def test_simple(self): method test_empty (line 185) | def test_empty(self): method test_different_length (line 188) | def test_different_length(self): method test_propagates_flags (line 191) | def test_propagates_flags(self, monkeypatch): method test_order (line 198) | def test_order(self): method test_no_order (line 203) | def test_no_order(self): method test_compare_fields_without_order_doesnt_alter_fields (line 214) | def test_compare_fields_without_order_doesnt_alter_fields(self): class TestCaseBuildWordDict (line 223) | class TestCaseBuildWordDict: method test_with_standard_words (line 224) | def test_with_standard_words(self): method test_unpack_fields (line 242) | def test_unpack_fields(self): method test_words_are_unaltered (line 249) | def test_words_are_unaltered(self): method test_object_instances_can_only_be_once_in_words_object_list (line 255) | def test_object_instances_can_only_be_once_in_words_object_list(self): method test_job (line 260) | def test_job(self): class TestCaseMergeSimilarWords (line 274) | class TestCaseMergeSimilarWords: method test_some_similar_words (line 275) | def test_some_similar_words(self): class TestCaseReduceCommonWords (line 286) | class TestCaseReduceCommonWords: method test_typical (line 287) | def test_typical(self): method test_dont_remove_objects_with_only_common_words (line 296) | def test_dont_remove_objects_with_only_common_words(self): method test_values_still_are_set_instances (line 305) | def test_values_still_are_set_instances(self): method test_dont_raise_keyerror_when_a_word_has_been_removed (line 314) | def test_dont_raise_keyerror_when_a_word_has_been_removed(self): method test_unpack_fields (line 327) | def test_unpack_fields(self): method test_consider_a_reduced_common_word_common_even_after_reduction (line 340) | def test_consider_a_reduced_common_word_common_even_after_reduction(se... class TestCaseGetMatch (line 357) | class TestCaseGetMatch: method test_simple (line 358) | def test_simple(self): method test_in (line 368) | def test_in(self): method test_word_weight (line 376) | def test_word_weight(self): class TestCaseGetMatches (line 381) | class TestCaseGetMatches: method test_empty (line 382) | def test_empty(self): method test_simple (line 385) | def test_simple(self): method test_null_and_unrelated_objects (line 398) | def test_null_and_unrelated_objects(self): method test_twice_the_same_word (line 411) | def test_twice_the_same_word(self): method test_twice_the_same_word_when_preworded (line 416) | def test_twice_the_same_word_when_preworded(self): method test_two_words_match (line 421) | def test_two_words_match(self): method test_match_files_with_only_common_words (line 426) | def test_match_files_with_only_common_words(self): method test_use_words_already_there_if_there (line 435) | def test_use_words_already_there_if_there(self): method test_job (line 441) | def test_job(self): method test_weight_words (line 454) | def test_weight_words(self): method test_similar_word (line 459) | def test_similar_word(self): method test_single_object_with_similar_words (line 470) | def test_single_object_with_similar_words(self): method test_double_words_get_counted_only_once (line 474) | def test_double_words_get_counted_only_once(self): method test_with_fields (line 479) | def test_with_fields(self): method test_with_fields_no_order (line 487) | def test_with_fields_no_order(self): method test_only_match_similar_when_the_option_is_set (line 495) | def test_only_match_similar_when_the_option_is_set(self): method test_dont_recurse_do_match (line 499) | def test_dont_recurse_do_match(self): method test_min_match_percentage (line 510) | def test_min_match_percentage(self): method test_memory_error (line 519) | def test_memory_error(self, monkeypatch): class TestCaseGetMatchesByContents (line 535) | class TestCaseGetMatchesByContents: method test_big_file_partial_hashing (line 536) | def test_big_file_partial_hashing(self): class TestCaseGroup (line 563) | class TestCaseGroup: method test_empty (line 564) | def test_empty(self): method test_add_match (line 570) | def test_add_match(self): method test_multiple_add_match (line 579) | def test_multiple_add_match(self): method test_len (line 605) | def test_len(self): method test_add_same_match_twice (line 611) | def test_add_same_match_twice(self): method test_in (line 621) | def test_in(self): method test_remove (line 630) | def test_remove(self): method test_remove_with_ref_dupes (line 647) | def test_remove_with_ref_dupes(self): method test_switch_ref (line 660) | def test_switch_ref(self): method test_switch_ref_from_ref_dir (line 674) | def test_switch_ref_from_ref_dir(self): method test_get_match_of (line 684) | def test_get_match_of(self): method test_percentage (line 695) | def test_percentage(self): method test_percentage_on_empty_group (line 714) | def test_percentage_on_empty_group(self): method test_prioritize (line 718) | def test_prioritize(self): method test_prioritize_with_tie_breaker (line 734) | def test_prioritize_with_tie_breaker(self): method test_prioritize_with_tie_breaker_runs_on_all_dupes (line 741) | def test_prioritize_with_tie_breaker_runs_on_all_dupes(self): method test_prioritize_with_tie_breaker_runs_only_on_tie_dupes (line 752) | def test_prioritize_with_tie_breaker_runs_only_on_tie_dupes(self): method test_prioritize_with_ref_dupe (line 765) | def test_prioritize_with_ref_dupe(self): method test_prioritize_nothing_changes (line 774) | def test_prioritize_nothing_changes(self): method test_list_like (line 782) | def test_list_like(self): method test_discard_matches (line 789) | def test_discard_matches(self): class TestCaseGetGroups (line 803) | class TestCaseGetGroups: method test_empty (line 804) | def test_empty(self): method test_simple (line 808) | def test_simple(self): method test_group_with_multiple_matches (line 818) | def test_group_with_multiple_matches(self): method test_must_choose_a_group (line 827) | def test_must_choose_a_group(self): method test_should_all_go_in_the_same_group (line 842) | def test_should_all_go_in_the_same_group(self): method test_give_priority_to_matches_with_higher_percentage (line 855) | def test_give_priority_to_matches_with_higher_percentage(self): method test_four_sized_group (line 869) | def test_four_sized_group(self): method test_referenced_by_ref2 (line 876) | def test_referenced_by_ref2(self): method test_group_admissible_discarded_dupes (line 886) | def test_group_admissible_discarded_dupes(self): FILE: core/tests/exclude_test.py class TestCaseListXMLLoading (line 23) | class TestCaseListXMLLoading: method setup_method (line 24) | def setup_method(self, method): method test_load_non_existant_file (line 27) | def test_load_non_existant_file(self): method test_save_to_xml (line 34) | def test_save_to_xml(self): method test_save_and_load (line 42) | def test_save_and_load(self, tmpdir): method test_load_xml_with_garbage_and_missing_elements (line 58) | def test_load_xml_with_garbage_and_missing_elements(self): class TestCaseDictXMLLoading (line 89) | class TestCaseDictXMLLoading(TestCaseListXMLLoading): method setup_method (line 90) | def setup_method(self, method): class TestCaseListEmpty (line 94) | class TestCaseListEmpty: method setup_method (line 95) | def setup_method(self, method): method test_add_mark_and_remove_regex (line 100) | def test_add_mark_and_remove_regex(self): method test_add_duplicate (line 116) | def test_add_duplicate(self): method test_add_not_compilable (line 125) | def test_add_not_compilable(self): method test_force_add_not_compilable (line 140) | def test_force_add_not_compilable(self): method test_rename_regex (line 160) | def test_rename_regex(self): method test_rename_regex_file_to_path (line 184) | def test_rename_regex_file_to_path(self): method test_restore_default (line 206) | def test_restore_default(self): class TestCaseListEmptyUnion (line 230) | class TestCaseListEmptyUnion(TestCaseListEmpty): method setup_method (line 233) | def setup_method(self, method): method test_add_mark_and_remove_regex (line 238) | def test_add_mark_and_remove_regex(self): method test_rename_regex_file_to_path (line 255) | def test_rename_regex_file_to_path(self): method test_restore_default (line 279) | def test_restore_default(self): class TestCaseDictEmpty (line 298) | class TestCaseDictEmpty(TestCaseListEmpty): method setup_method (line 301) | def setup_method(self, method): class TestCaseDictEmptyUnion (line 307) | class TestCaseDictEmptyUnion(TestCaseDictEmpty): method setup_method (line 310) | def setup_method(self, method): method test_add_mark_and_remove_regex (line 315) | def test_add_mark_and_remove_regex(self): method test_rename_regex_file_to_path (line 332) | def test_rename_regex_file_to_path(self): method test_restore_default (line 356) | def test_restore_default(self): function split_union (line 375) | def split_union(pattern_object): class TestCaseCompiledList (line 380) | class TestCaseCompiledList: method setup_method (line 383) | def setup_method(self, method): method test_same_number_of_expressions (line 389) | def test_same_number_of_expressions(self): method test_compiled_files (line 400) | def test_compiled_files(self): class TestCaseCompiledDict (line 428) | class TestCaseCompiledDict(TestCaseCompiledList): method setup_method (line 431) | def setup_method(self, method): FILE: core/tests/fs_test.py function create_fake_fs_with_random_data (line 29) | def create_fake_fs_with_random_data(rootpath): function test_size_aggregates_subfiles (line 53) | def test_size_aggregates_subfiles(tmpdir): function test_digest_aggregate_subfiles_sorted (line 59) | def test_digest_aggregate_subfiles_sorted(tmpdir): function test_partial_digest_aggregate_subfile_sorted (line 79) | def test_partial_digest_aggregate_subfile_sorted(tmpdir): function test_has_file_attrs (line 109) | def test_has_file_attrs(tmpdir): FILE: core/tests/ignore_test.py function test_empty (line 16) | def test_empty(): function test_simple (line 22) | def test_simple(): function test_multiple (line 32) | def test_multiple(): function test_clear (line 46) | def test_clear(): function test_add_same_twice (line 55) | def test_add_same_twice(): function test_save_to_xml (line 62) | def test_save_to_xml(): function test_save_then_load (line 80) | def test_save_then_load(): function test_load_xml_with_empty_file_tags (line 95) | def test_load_xml_with_empty_file_tags(): function test_are_ignore_works_when_a_child_is_a_key_somewhere_else (line 104) | def test_are_ignore_works_when_a_child_is_a_key_somewhere_else(): function test_no_dupes_when_a_child_is_a_key_somewhere_else (line 111) | def test_no_dupes_when_a_child_is_a_key_somewhere_else(): function test_iterate (line 119) | def test_iterate(): function test_filter (line 130) | def test_filter(): function test_save_with_non_ascii_items (line 141) | def test_save_with_non_ascii_items(): function test_len (line 151) | def test_len(): function test_nonzero (line 158) | def test_nonzero(): function test_remove (line 165) | def test_remove(): function test_remove_non_existant (line 174) | def test_remove_non_existant(): FILE: core/tests/markable_test.py function gen (line 12) | def gen(): function test_unmarked (line 18) | def test_unmarked(): function test_mark (line 24) | def test_mark(): function test_unmark (line 31) | def test_unmark(): function test_unmark_unmarked (line 38) | def test_unmark_unmarked(): function test_mark_twice_and_unmark (line 44) | def test_mark_twice_and_unmark(): function test_mark_toggle (line 52) | def test_mark_toggle(): function test_is_markable (line 62) | def test_is_markable(): function test_change_notifications (line 80) | def test_change_notifications(): function test_mark_count (line 99) | def test_mark_count(): function test_mark_none (line 108) | def test_mark_none(): function test_mark_all (line 120) | def test_mark_all(): function test_mark_invert (line 128) | def test_mark_invert(): function test_mark_while_inverted (line 136) | def test_mark_while_inverted(): function test_remove_mark_flag (line 153) | def test_remove_mark_flag(): function test_is_marked_returns_false_if_object_not_markable (line 165) | def test_is_marked_returns_false_if_object_not_markable(): FILE: core/tests/prioritize_test.py function app_with_dupes (line 18) | def app_with_dupes(dupes): function app_normal_results (line 35) | def app_normal_results(): function test_kind_subcrit (line 47) | def test_kind_subcrit(app): function test_kind_reprioritization (line 54) | def test_kind_reprioritization(app): function test_folder_subcrit (line 65) | def test_folder_subcrit(app): function test_folder_reprioritization (line 71) | def test_folder_reprioritization(app): function test_prilist_display (line 80) | def test_prilist_display(app): function test_size_subcrit (line 100) | def test_size_subcrit(app): function test_size_reprioritization (line 106) | def test_size_reprioritization(app): function test_reorder_prioritizations (line 115) | def test_reorder_prioritizations(app): function test_remove_crit_from_list (line 127) | def test_remove_crit_from_list(app): function test_add_crit_without_selection (line 139) | def test_add_crit_without_selection(app): function app_one_name_ends_with_number (line 145) | def app_one_name_ends_with_number(): function test_filename_reprioritization (line 153) | def test_filename_reprioritization(app): function app_with_subfolders (line 160) | def app_with_subfolders(): function test_folder_crit_is_sorted (line 169) | def test_folder_crit_is_sorted(app): function test_folder_crit_includes_subfolders (line 176) | def test_folder_crit_includes_subfolders(app): function test_display_something_on_empty_extensions (line 187) | def test_display_something_on_empty_extensions(app): function app_one_name_longer_than_the_other (line 194) | def app_one_name_longer_than_the_other(): function test_longest_filename_prioritization (line 202) | def test_longest_filename_prioritization(app): FILE: core/tests/result_table_test.py function app_with_results (line 12) | def app_with_results(): function test_delta_flags_delta_mode_off (line 20) | def test_delta_flags_delta_mode_off(): function test_delta_flags_delta_mode_on_delta_columns (line 30) | def test_delta_flags_delta_mode_on_delta_columns(): function test_delta_flags_delta_mode_on_non_delta_columns (line 40) | def test_delta_flags_delta_mode_on_non_delta_columns(): function test_delta_flags_delta_mode_on_non_delta_columns_case_insensitive (line 53) | def test_delta_flags_delta_mode_on_non_delta_columns_case_insensitive(): FILE: core/tests/results_test.py class TestCaseResultsEmpty (line 20) | class TestCaseResultsEmpty: method setup_method (line 21) | def setup_method(self, method): method test_apply_invalid_filter (line 25) | def test_apply_invalid_filter(self): method test_stat_line (line 30) | def test_stat_line(self): method test_groups (line 33) | def test_groups(self): method test_get_group_of_duplicate (line 36) | def test_get_group_of_duplicate(self): method test_save_to_xml (line 39) | def test_save_to_xml(self): method test_is_modified (line 47) | def test_is_modified(self): method test_is_modified_after_setting_empty_group (line 50) | def test_is_modified_after_setting_empty_group(self): method test_save_to_same_name_as_folder (line 55) | def test_save_to_same_name_as_folder(self, tmpdir): class TestCaseResultsWithSomeGroups (line 68) | class TestCaseResultsWithSomeGroups: method setup_method (line 69) | def setup_method(self, method): method test_stat_line (line 75) | def test_stat_line(self): method test_groups (line 78) | def test_groups(self): method test_get_group_of_duplicate (line 81) | def test_get_group_of_duplicate(self): method test_remove_duplicates (line 88) | def test_remove_duplicates(self): method test_remove_duplicates_with_ref_files (line 104) | def test_remove_duplicates_with_ref_files(self): method test_make_ref (line 112) | def test_make_ref(self): method test_sort_groups (line 118) | def test_sort_groups(self): method test_set_groups_when_sorted (line 128) | def test_set_groups_when_sorted(self): method test_get_dupe_list (line 138) | def test_get_dupe_list(self): method test_dupe_list_is_cached (line 141) | def test_dupe_list_is_cached(self): method test_dupe_list_cache_is_invalidated_when_needed (line 144) | def test_dupe_list_cache_is_invalidated_when_needed(self): method test_dupe_list_sort (line 154) | def test_dupe_list_sort(self): method test_dupe_list_remember_sort (line 166) | def test_dupe_list_remember_sort(self): method test_dupe_list_sort_delta_values (line 177) | def test_dupe_list_sort_delta_values(self): method test_sort_empty_list (line 187) | def test_sort_empty_list(self): method test_dupe_list_update_on_remove_duplicates (line 194) | def test_dupe_list_update_on_remove_duplicates(self): method test_is_modified (line 200) | def test_is_modified(self): method test_is_modified_after_save_and_load (line 204) | def test_is_modified_after_save_and_load(self): method test_is_modified_after_removing_all_results (line 217) | def test_is_modified_after_removing_all_results(self): method test_group_of_duplicate_after_removal (line 223) | def test_group_of_duplicate_after_removal(self): method test_dupe_list_sort_delta_values_nonnumeric (line 232) | def test_dupe_list_sort_delta_values_nonnumeric(self): method test_dupe_list_sort_delta_values_nonnumeric_case_insensitive (line 242) | def test_dupe_list_sort_delta_values_nonnumeric_case_insensitive(self): class TestCaseResultsWithSavedResults (line 251) | class TestCaseResultsWithSavedResults: method setup_method (line 252) | def setup_method(self, method): method test_is_modified (line 261) | def test_is_modified(self): method test_is_modified_after_load (line 265) | def test_is_modified_after_load(self): method test_is_modified_after_remove (line 274) | def test_is_modified_after_remove(self): method test_is_modified_after_make_ref (line 279) | def test_is_modified_after_make_ref(self): class TestCaseResultsMarkings (line 285) | class TestCaseResultsMarkings: method setup_method (line 286) | def setup_method(self, method): method test_stat_line (line 292) | def test_stat_line(self): method test_with_ref_duplicate (line 308) | def test_with_ref_duplicate(self): method test_perform_on_marked (line 315) | def test_perform_on_marked(self): method test_perform_on_marked_with_problems (line 335) | def test_perform_on_marked_with_problems(self): method test_perform_on_marked_with_ref (line 356) | def test_perform_on_marked_with_ref(self): method test_perform_on_marked_remove_objects_only_at_the_end (line 372) | def test_perform_on_marked_remove_objects_only_at_the_end(self): method test_remove_duplicates (line 385) | def test_remove_duplicates(self): method test_make_ref (line 394) | def test_make_ref(self): method test_save_xml (line 404) | def test_save_xml(self): method test_load_xml (line 421) | def test_load_xml(self): class TestCaseResultsXML (line 441) | class TestCaseResultsXML: method setup_method (line 442) | def setup_method(self, method): method get_file (line 448) | def get_file(self, path): # use this as a callback for load_from_xml method test_save_to_xml (line 451) | def test_save_to_xml(self): method test_load_xml (line 487) | def test_load_xml(self): method test_load_xml_with_filename (line 519) | def test_load_xml_with_filename(self, tmpdir): method test_load_xml_with_some_files_that_dont_exist_anymore (line 531) | def test_load_xml_with_some_files_that_dont_exist_anymore(self): method test_load_xml_missing_attributes_and_bogus_elements (line 547) | def test_load_xml_missing_attributes_and_bogus_elements(self): method test_xml_non_ascii (line 588) | def test_xml_non_ascii(self): method test_load_invalid_xml (line 613) | def test_load_invalid_xml(self): method test_load_non_existant_xml (line 623) | def test_load_non_existant_xml(self): method test_remember_match_percentage (line 630) | def test_remember_match_percentage(self): method test_save_and_load (line 655) | def test_save_and_load(self): method test_apply_filter_works_on_paths (line 663) | def test_apply_filter_works_on_paths(self): method test_save_xml_with_invalid_characters (line 668) | def test_save_xml_with_invalid_characters(self): class TestCaseResultsFilter (line 674) | class TestCaseResultsFilter: method setup_method (line 675) | def setup_method(self, method): method test_groups (line 682) | def test_groups(self): method test_dupes (line 686) | def test_dupes(self): method test_cancel_filter (line 691) | def test_cancel_filter(self): method test_dupes_reconstructed_filtered (line 696) | def test_dupes_reconstructed_filtered(self): method test_include_ref_dupes_in_filter (line 703) | def test_include_ref_dupes_in_filter(self): method test_filters_build_on_one_another (line 710) | def test_filters_build_on_one_another(self): method test_stat_line (line 715) | def test_stat_line(self): method test_mark_count_is_filtered_as_well (line 725) | def test_mark_count_is_filtered_as_well(self): method test_mark_all_only_affects_filtered_items (line 734) | def test_mark_all_only_affects_filtered_items(self): method test_sort_groups (line 741) | def test_sort_groups(self): method test_set_group (line 757) | def test_set_group(self): method test_load_cancels_filter (line 764) | def test_load_cancels_filter(self, tmpdir): method test_remove_dupe (line 777) | def test_remove_dupe(self): method test_filter_is_case_insensitive (line 788) | def test_filter_is_case_insensitive(self): method test_make_ref_on_filtered_out_doesnt_mess_stats (line 793) | def test_make_ref_on_filtered_out_doesnt_mess_stats(self): class TestCaseResultsRefFile (line 808) | class TestCaseResultsRefFile: method setup_method (line 809) | def setup_method(self, method): method test_stat_line (line 817) | def test_stat_line(self): FILE: core/tests/scanner_test.py class NamedObject (line 21) | class NamedObject: method __init__ (line 22) | def __init__(self, name="foobar", size=1, path=None): method __repr__ (line 32) | def __repr__(self): method exists (line 35) | def exists(self): function fake_fileexists (line 43) | def fake_fileexists(request): function test_empty (line 50) | def test_empty(fake_fileexists): function test_default_settings (line 56) | def test_default_settings(fake_fileexists): function test_simple_with_default_settings (line 68) | def test_simple_with_default_settings(fake_fileexists): function test_simple_with_lower_min_match (line 80) | def test_simple_with_lower_min_match(fake_fileexists): function test_trim_all_ref_groups (line 90) | def test_trim_all_ref_groups(fake_fileexists): function test_prioritize (line 107) | def test_prioritize(fake_fileexists): function test_content_scan (line 126) | def test_content_scan(fake_fileexists): function test_content_scan_compare_sizes_first (line 139) | def test_content_scan_compare_sizes_first(fake_fileexists): function test_ignore_file_size (line 151) | def test_ignore_file_size(fake_fileexists): function test_big_file_partial_hashes (line 195) | def test_big_file_partial_hashes(fake_fileexists): function test_min_match_perc_doesnt_matter_for_content_scan (line 224) | def test_min_match_perc_doesnt_matter_for_content_scan(fake_fileexists): function test_content_scan_doesnt_put_digest_in_words_at_the_end (line 241) | def test_content_scan_doesnt_put_digest_in_words_at_the_end(fake_fileexi... function test_extension_is_not_counted_in_filename_scan (line 256) | def test_extension_is_not_counted_in_filename_scan(fake_fileexists): function test_job (line 265) | def test_job(fake_fileexists): function test_mix_file_kind (line 278) | def test_mix_file_kind(fake_fileexists): function test_word_weighting (line 286) | def test_word_weighting(fake_fileexists): function test_similar_words (line 298) | def test_similar_words(fake_fileexists): function test_fields (line 311) | def test_fields(fake_fileexists): function test_fields_no_order (line 319) | def test_fields_no_order(fake_fileexists): function test_tag_scan (line 327) | def test_tag_scan(fake_fileexists): function test_tag_with_album_scan (line 340) | def test_tag_with_album_scan(fake_fileexists): function test_that_dash_in_tags_dont_create_new_fields (line 360) | def test_that_dash_in_tags_dont_create_new_fields(fake_fileexists): function test_tag_scan_with_different_scanned (line 377) | def test_tag_scan_with_different_scanned(fake_fileexists): function test_tag_scan_only_scans_existing_tags (line 395) | def test_tag_scan_only_scans_existing_tags(fake_fileexists): function test_tag_scan_converts_to_str (line 409) | def test_tag_scan_converts_to_str(fake_fileexists): function test_tag_scan_non_ascii (line 424) | def test_tag_scan_non_ascii(fake_fileexists): function test_ignore_list (line 439) | def test_ignore_list(fake_fileexists): function test_ignore_list_checks_for_unicode (line 461) | def test_ignore_list_checks_for_unicode(fake_fileexists): function test_file_evaluates_to_false (line 483) | def test_file_evaluates_to_false(fake_fileexists): function test_size_threshold (line 497) | def test_size_threshold(fake_fileexists): function test_tie_breaker_path_deepness (line 513) | def test_tie_breaker_path_deepness(fake_fileexists): function test_tie_breaker_copy (line 523) | def test_tie_breaker_copy(fake_fileexists): function test_tie_breaker_same_name_plus_digit (line 533) | def test_tie_breaker_same_name_plus_digit(fake_fileexists): function test_partial_group_match (line 553) | def test_partial_group_match(fake_fileexists): function test_dont_group_files_that_dont_exist (line 571) | def test_dont_group_files_that_dont_exist(tmpdir): function test_folder_scan_exclude_subfolder_matches (line 594) | def test_folder_scan_exclude_subfolder_matches(fake_fileexists): function test_ignore_files_with_same_path (line 619) | def test_ignore_files_with_same_path(fake_fileexists): function test_dont_count_ref_files_as_discarded (line 628) | def test_dont_count_ref_files_as_discarded(fake_fileexists): function test_prioritize_me (line 646) | def test_prioritize_me(fake_fileexists): FILE: core/util.py function format_timestamp (line 20) | def format_timestamp(t, delta): function format_words (line 30) | def format_words(w): function format_perc (line 40) | def format_perc(p): function format_dupe_count (line 44) | def format_dupe_count(c): function cmp_value (line 48) | def cmp_value(dupe, attrname): function fix_surrogate_encoding (line 53) | def fix_surrogate_encoding(s, encoding="utf-8"): function executable_folder (line 71) | def executable_folder(): function check_for_update (line 75) | def check_for_update(current_version: str, include_prerelease: bool = Fa... FILE: hscommon/build.py function print_and_do (line 29) | def print_and_do(cmd: str) -> int: function _perform (line 36) | def _perform(src: os.PathLike, dst: os.PathLike, action: Callable, actio... function copy_file_or_folder (line 49) | def copy_file_or_folder(src: os.PathLike, dst: os.PathLike) -> None: function move (line 56) | def move(src: os.PathLike, dst: os.PathLike) -> None: function copy (line 60) | def copy(src: os.PathLike, dst: os.PathLike) -> None: function _perform_on_all (line 64) | def _perform_on_all(pattern: AnyStr, dst: os.PathLike, action: Callable)... function move_all (line 73) | def move_all(pattern: AnyStr, dst: os.PathLike) -> None: function copy_all (line 77) | def copy_all(pattern: AnyStr, dst: os.PathLike) -> None: function filereplace (line 81) | def filereplace(filename: os.PathLike, outfilename: Union[os.PathLike, N... function get_module_version (line 96) | def get_module_version(modulename: str) -> str: function setup_package_argparser (line 101) | def setup_package_argparser(parser: ArgumentParser): function package_cocoa_app_in_dmg (line 128) | def package_cocoa_app_in_dmg(app_path: os.PathLike, destfolder: os.PathL... function build_dmg (line 144) | def build_dmg(app_path: os.PathLike, destfolder: os.PathLike) -> None: function add_to_pythonpath (line 169) | def add_to_pythonpath(path: os.PathLike) -> None: function copy_packages (line 182) | def copy_packages( function build_debian_changelog (line 224) | def build_debian_changelog( function read_changelog_file (line 284) | def read_changelog_file(filename: os.PathLike) -> List[Dict[str, Any]]: function fix_qt_resource_file (line 311) | def fix_qt_resource_file(path: os.PathLike) -> None: FILE: hscommon/conflict.py function get_conflicted_name (line 27) | def get_conflicted_name(other_names: List[str], name: str) -> str: function get_unconflicted_name (line 44) | def get_unconflicted_name(name: str) -> str: function is_conflicted (line 52) | def is_conflicted(name: str) -> bool: function _smart_move_or_copy (line 57) | def _smart_move_or_copy(operation: Callable, source_path: Path, dest_pat... function smart_move (line 69) | def smart_move(source_path: Path, dest_path: Path) -> None: function smart_copy (line 74) | def smart_copy(source_path: Path, dest_path: Path) -> None: FILE: hscommon/desktop.py class SpecialFolder (line 15) | class SpecialFolder(Enum): function open_url (line 20) | def open_url(url: str) -> None: function open_path (line 25) | def open_path(path: PathLike) -> None: function reveal_path (line 30) | def reveal_path(path: PathLike) -> None: function special_folder_path (line 35) | def special_folder_path(special_folder: SpecialFolder, portable: bool = ... function _open_url (line 54) | def _open_url(url: str) -> None: function _open_path (line 57) | def _open_path(path: str) -> None: function _reveal_path (line 61) | def _reveal_path(path: str) -> None: function _special_folder_path (line 69) | def _special_folder_path(special_folder: SpecialFolder, portable: bool =... function _open_url (line 84) | def _open_url(url: str) -> None: function _open_path (line 88) | def _open_path(path: str) -> None: function _reveal_path (line 92) | def _reveal_path(path: str) -> None: function _special_folder_path (line 96) | def _special_folder_path(special_folder: SpecialFolder, portable: bool =... FILE: hscommon/gui/base.py function noop (line 8) | def noop(*args, **kwargs): class NoopGUI (line 12) | class NoopGUI: method __getattr__ (line 13) | def __getattr__(self, func_name): class GUIObject (line 17) | class GUIObject: method __init__ (line 39) | def __init__(self, multibind: bool = False) -> None: method _view_updated (line 43) | def _view_updated(self) -> None: method has_view (line 51) | def has_view(self) -> bool: method view (line 55) | def view(self): method view (line 70) | def view(self, value) -> None: FILE: hscommon/gui/column.py class Column (line 16) | class Column: method __init__ (line 22) | def __init__(self, name: str, display: str = "", visible: bool = True,... class ColumnsView (line 48) | class ColumnsView: method restore_columns (line 57) | def restore_columns(self) -> None: method set_column_visible (line 64) | def set_column_visible(self, colname: str, visible: bool) -> None: class PrefAccessInterface (line 72) | class PrefAccessInterface: method get_default (line 78) | def get_default(self, key: str, fallback_value: Union[Any, None]) -> Any: method set_default (line 84) | def set_default(self, key: str, value: Any) -> None: class Columns (line 88) | class Columns(GUIObject): method __init__ (line 109) | def __init__(self, table: GUITable, prefaccess=None, savename: Union[s... method _get_colname_attr (line 122) | def _get_colname_attr(self, colname: str, attrname: str, default: Any)... method _set_colname_attr (line 128) | def _set_colname_attr(self, colname: str, attrname: str, value: Any) -... method _optional_columns (line 135) | def _optional_columns(self) -> List[Column]: method _view_updated (line 139) | def _view_updated(self) -> None: method column_by_index (line 143) | def column_by_index(self, index: int): method column_by_name (line 147) | def column_by_name(self, name: str): method columns_count (line 151) | def columns_count(self) -> int: method column_display (line 155) | def column_display(self, colname: str) -> str: method column_is_visible (line 159) | def column_is_visible(self, colname: str) -> bool: method column_width (line 163) | def column_width(self, colname: str) -> int: method columns_to_right (line 167) | def columns_to_right(self, colname: str) -> List[str]: method menu_items (line 177) | def menu_items(self) -> List[Tuple[str, bool]]: method move_column (line 189) | def move_column(self, colname: str, index: int) -> None: method reset_to_defaults (line 200) | def reset_to_defaults(self) -> None: method resize_column (line 208) | def resize_column(self, colname: str, newwidth: int) -> None: method restore_columns (line 212) | def restore_columns(self) -> None: method save_columns (line 231) | def save_columns(self) -> None: method set_column_order (line 243) | def set_column_order(self, colnames) -> None: method set_column_visible (line 253) | def set_column_visible(self, colname: str, visible: bool) -> None: method set_default_width (line 259) | def set_default_width(self, colname: str, width: int) -> None: method toggle_menu_item (line 263) | def toggle_menu_item(self, index: int) -> bool: method ordered_columns (line 277) | def ordered_columns(self) -> List[Column]: method colnames (line 282) | def colnames(self) -> List[str]: FILE: hscommon/gui/progress_window.py class ProgressWindowView (line 13) | class ProgressWindowView: method show (line 24) | def show(self) -> None: method close (line 27) | def close(self) -> None: method set_progress (line 30) | def set_progress(self, progress: int) -> None: class ProgressWindow (line 41) | class ProgressWindow(GUIObject, ThreadedJobPerformer): method __init__ (line 64) | def __init__( method cancel (line 81) | def cancel(self) -> None: method pulse (line 89) | def pulse(self) -> None: method run (line 119) | def run(self, jobid: str, title: str, target: Callable, args: Tuple = ... FILE: hscommon/gui/selectable_list.py class Selectable (line 14) | class Selectable(Sequence): method __init__ (line 21) | def __init__(self): method _check_selection_range (line 25) | def _check_selection_range(self): method _update_selection (line 35) | def _update_selection(self): method select (line 53) | def select(self, indexes): method selected_index (line 67) | def selected_index(self): method selected_index (line 78) | def selected_index(self, value): method selected_indexes (line 82) | def selected_indexes(self): method selected_indexes (line 93) | def selected_indexes(self, value): class SelectableList (line 99) | class SelectableList(MutableSequence, Selectable): method __init__ (line 105) | def __init__(self, items=None): method __delitem__ (line 112) | def __delitem__(self, key): method __getitem__ (line 117) | def __getitem__(self, key): method __len__ (line 120) | def __len__(self): method __setitem__ (line 123) | def __setitem__(self, key, value): method append (line 128) | def append(self, item): method insert (line 132) | def insert(self, index, item): method remove (line 136) | def remove(self, row): method _on_change (line 142) | def _on_change(self): method search_by_prefix (line 149) | def search_by_prefix(self, prefix): class GUISelectableListView (line 158) | class GUISelectableListView: method refresh (line 167) | def refresh(self): method update_selection (line 173) | def update_selection(self): class GUISelectableList (line 180) | class GUISelectableList(SelectableList, GUIObject): method __init__ (line 191) | def __init__(self, items=None): method _view_updated (line 195) | def _view_updated(self): method _update_selection (line 202) | def _update_selection(self): method _on_change (line 209) | def _on_change(self): FILE: hscommon/gui/table.py class Table (line 18) | class Table(MutableSequence, Selectable): method __init__ (line 34) | def __init__(self) -> None: method __delitem__ (line 41) | def __delitem__(self, key): method __getitem__ (line 50) | def __getitem__(self, key) -> Any: method __len__ (line 53) | def __len__(self) -> int: method __setitem__ (line 57) | def __setitem__(self, key, value: Any) -> None: method append (line 60) | def append(self, item: "Row") -> None: method insert (line 70) | def insert(self, index: int, item: "Row") -> None: method remove (line 82) | def remove(self, row: "Row") -> None: method sort_by (line 94) | def sort_by(self, column_name: str, desc: bool = False) -> None: method footer (line 115) | def footer(self) -> Union["Row", None]: method footer (line 138) | def footer(self, value: Union["Row", None]) -> None: method header (line 146) | def header(self) -> Union["Row", None]: method header (line 154) | def header(self, value: Union["Row", None]) -> None: method row_count (line 162) | def row_count(self) -> int: method rows (line 175) | def rows(self) -> List["Row"]: method selected_row (line 189) | def selected_row(self) -> "Row": method selected_row (line 200) | def selected_row(self, value: int) -> None: method selected_rows (line 207) | def selected_rows(self) -> List["Row"]: class GUITableView (line 215) | class GUITableView: method refresh (line 229) | def refresh(self) -> None: method start_editing (line 236) | def start_editing(self) -> None: method stop_editing (line 242) | def stop_editing(self) -> None: class GUITable (line 254) | class GUITable(Table, GUIObject): method __init__ (line 270) | def __init__(self) -> None: method _do_add (line 278) | def _do_add(self) -> Tuple["Row", int]: method _do_delete (line 285) | def _do_delete(self) -> None: method _fill (line 289) | def _fill(self) -> None: method _is_edited_new (line 296) | def _is_edited_new(self) -> bool: method _restore_selection (line 306) | def _restore_selection(self, previous_selection): method add (line 325) | def add(self) -> None: method can_edit_cell (line 344) | def can_edit_cell(self, column_name: str, row_index: int) -> bool: method cancel_edits (line 356) | def cancel_edits(self) -> None: method delete (line 374) | def delete(self) -> None: method refresh (line 387) | def refresh(self, refresh_view: bool = True) -> None: method save_edits (line 409) | def save_edits(self) -> None: method sort_by (line 420) | def sort_by(self, column_name: str, desc: bool = False) -> None: class Row (line 436) | class Row: method __init__ (line 460) | def __init__(self, table: GUITable) -> None: method _edit (line 464) | def _edit(self) -> None: method can_edit (line 471) | def can_edit(self) -> bool: method load (line 479) | def load(self) -> None: method save (line 488) | def save(self) -> None: method sort_key_for_column (line 497) | def sort_key_for_column(self, column_name: str) -> Any: method can_edit_cell (line 510) | def can_edit_cell(self, column_name: str) -> bool: method get_cell_value (line 540) | def get_cell_value(self, attrname: str) -> Any: method set_cell_value (line 550) | def set_cell_value(self, attrname: str, value: Any) -> None: FILE: hscommon/gui/text_field.py class TextFieldView (line 12) | class TextFieldView: method refresh (line 22) | def refresh(self): class TextField (line 29) | class TextField(GUIObject): method __init__ (line 41) | def __init__(self): method _parse (line 47) | def _parse(self, text): method _format (line 54) | def _format(self, value): method _update (line 61) | def _update(self, newvalue): method _view_updated (line 69) | def _view_updated(self): method refresh (line 73) | def refresh(self): method text (line 78) | def text(self): method text (line 89) | def text(self, newtext): method value (line 93) | def value(self): method value (line 104) | def value(self, newvalue): FILE: hscommon/gui/tree.py class Node (line 12) | class Node(MutableSequence): method __init__ (line 24) | def __init__(self, name): method __repr__ (line 30) | def __repr__(self): method __delitem__ (line 34) | def __delitem__(self, key): method __getitem__ (line 37) | def __getitem__(self, key): method __len__ (line 40) | def __len__(self): method __setitem__ (line 43) | def __setitem__(self, key, value): method append (line 46) | def append(self, node): method insert (line 51) | def insert(self, index, node): method clear (line 57) | def clear(self): method find (line 61) | def find(self, predicate, include_self=True): method findall (line 71) | def findall(self, predicate, include_self=True): method get_node (line 82) | def get_node(self, index_path): method get_path (line 93) | def get_path(self, target_node): method children_count (line 103) | def children_count(self): method name (line 108) | def name(self): method parent (line 113) | def parent(self): method path (line 121) | def path(self): method root (line 136) | def root(self): class Tree (line 147) | class Tree(Node, GUIObject): method __init__ (line 159) | def __init__(self): method _select_nodes (line 166) | def _select_nodes(self, nodes): method _view_updated (line 174) | def _view_updated(self): method clear (line 177) | def clear(self): method selected_node (line 183) | def selected_node(self): method selected_node (line 193) | def selected_node(self, node): method selected_nodes (line 200) | def selected_nodes(self): method selected_nodes (line 211) | def selected_nodes(self, nodes): method selected_path (line 215) | def selected_path(self): method selected_path (line 225) | def selected_path(self, index_path): method selected_paths (line 232) | def selected_paths(self): method selected_paths (line 242) | def selected_paths(self, index_paths): FILE: hscommon/jobprogress/job.py class JobCancelled (line 13) | class JobCancelled(Exception): class JobInProgressError (line 17) | class JobInProgressError(Exception): class JobCountError (line 21) | class JobCountError(Exception): class Job (line 25) | class Job: method __init__ (line 42) | def __init__(self, job_proportions: Union[List[int], int], callback: C... method _subjob_callback (line 61) | def _subjob_callback(self, progress: int, desc: str = "") -> bool: method _do_update (line 66) | def _do_update(self, desc: str) -> None: method add_progress (line 84) | def add_progress(self, progress: int = 1, desc: str = "") -> None: method check_if_cancelled (line 87) | def check_if_cancelled(self) -> None: method iter_with_progress (line 91) | def iter_with_progress( method start_job (line 116) | def start_job(self, max_progress: int = 100, desc: str = "") -> None: method start_subjob (line 131) | def start_subjob(self, job_proportions: Union[List[int], int], desc: s... method set_progress (line 141) | def set_progress(self, progress: int, desc: str = "") -> None: class NullJob (line 151) | class NullJob(Job): method __init__ (line 152) | def __init__(self, *args, **kwargs) -> None: method add_progress (line 156) | def add_progress(self, *args, **kwargs) -> None: method check_if_cancelled (line 160) | def check_if_cancelled(self) -> None: method start_job (line 164) | def start_job(self, *args, **kwargs) -> None: method start_subjob (line 168) | def start_subjob(self, *args, **kwargs) -> "NullJob": method set_progress (line 171) | def set_progress(self, *args, **kwargs) -> None: FILE: hscommon/jobprogress/performer.py class ThreadedJobPerformer (line 16) | class ThreadedJobPerformer: method create_job (line 32) | def create_job(self) -> Job: method _async_run (line 40) | def _async_run(self, *args) -> None: method reraise_if_error (line 56) | def reraise_if_error(self) -> None: method _update_progress (line 64) | def _update_progress(self, newprogress: int, newdesc: str = "") -> bool: method run_threaded (line 70) | def run_threaded(self, target: Callable, args: Tuple = ()) -> None: FILE: hscommon/loc.py function get_langs (line 14) | def get_langs(folder: str) -> List[str]: function files_with_ext (line 18) | def files_with_ext(folder: str, ext: str) -> List[str]: function generate_pot (line 22) | def generate_pot(folders: List[str], outpath: str, keywords: Any, merge:... function compile_all_po (line 43) | def compile_all_po(base_folder: str) -> None: function merge_locale_dir (line 53) | def merge_locale_dir(target: str, mergeinto: str) -> None: function merge_pots_into_pos (line 64) | def merge_pots_into_pos(folder: str) -> None: function merge_po_and_preserve (line 77) | def merge_po_and_preserve(source: str, dest: str) -> None: function normalize_all_pos (line 89) | def normalize_all_pos(base_folder: str) -> None: FILE: hscommon/notify.py class Broadcaster (line 19) | class Broadcaster: method __init__ (line 22) | def __init__(self): method add_listener (line 25) | def add_listener(self, listener: "Listener") -> None: method notify (line 28) | def notify(self, msg: str) -> None: method remove_listener (line 37) | def remove_listener(self, listener: "Listener") -> None: class Listener (line 41) | class Listener: method __init__ (line 44) | def __init__(self, broadcaster: Broadcaster) -> None: method bind_messages (line 48) | def bind_messages(self, messages: str, func: Callable) -> None: method connect (line 58) | def connect(self) -> None: method disconnect (line 62) | def disconnect(self) -> None: method dispatch (line 66) | def dispatch(self, msg: str) -> None: class Repeater (line 75) | class Repeater(Broadcaster, Listener): method __init__ (line 78) | def __init__(self, broadcaster: Broadcaster) -> None: method _repeat_message (line 82) | def _repeat_message(self, msg: str) -> None: method dispatch (line 86) | def dispatch(self, msg: str) -> None: FILE: hscommon/path.py function pathify (line 15) | def pathify(f): function log_io_error (line 43) | def log_io_error(func): FILE: hscommon/pygettext.py function usage (line 43) | def usage(code, msg=""): function make_escapes (line 53) | def make_escapes(pass_iso8859): function escape (line 74) | def escape(s): function safe_eval (line 82) | def safe_eval(s): function normalize (line 87) | def normalize(s): function containsAny (line 104) | def containsAny(str, set): function _visit_pyfiles (line 109) | def _visit_pyfiles(list, dirname, names): function getFilesForName (line 124) | def getFilesForName(name): class TokenEater (line 158) | class TokenEater: method __init__ (line 159) | def __init__(self, options): method __call__ (line 168) | def __call__(self, ttype, tstring, stup, etup, line): method __waiting (line 175) | def __waiting(self, ttype, tstring, lineno): method __suiteseen (line 194) | def __suiteseen(self, ttype, tstring, lineno): method __suitedocstring (line 199) | def __suitedocstring(self, ttype, tstring, lineno): method __keywordseen (line 208) | def __keywordseen(self, ttype, tstring, lineno): method __openseen (line 216) | def __openseen(self, ttype, tstring, lineno): method __addentry (line 242) | def __addentry(self, msg, lineno=None, isdocstring=0): method set_filename (line 249) | def set_filename(self, filename): method write (line 253) | def write(self, fp): function main (line 304) | def main(source_files, outpath, keywords=None): FILE: hscommon/sphinxgen.py function tixgen (line 22) | def tixgen(tixurl: str) -> Callable[[str], str]: function gen (line 32) | def gen( FILE: hscommon/tests/conflict_test.py class TestCaseGetConflictedName (line 22) | class TestCaseGetConflictedName: method test_simple (line 23) | def test_simple(self): method test_no_conflict (line 29) | def test_no_conflict(self): method test_fourth_digit (line 33) | def test_fourth_digit(self): method test_auto_unconflict (line 41) | def test_auto_unconflict(self): class TestCaseGetUnconflictedName (line 49) | class TestCaseGetUnconflictedName: method test_main (line 50) | def test_main(self): class TestCaseIsConflicted (line 59) | class TestCaseIsConflicted: method test_main (line 60) | def test_main(self): class TestCaseMoveCopy (line 69) | class TestCaseMoveCopy: method do_setup (line 71) | def do_setup(self, request): method test_move_no_conflict (line 78) | def test_move_no_conflict(self, do_setup): method test_copy_no_conflict (line 83) | def test_copy_no_conflict(self, do_setup): # No need to duplicate the... method test_move_no_conflict_dest_is_dir (line 88) | def test_move_no_conflict_dest_is_dir(self, do_setup): method test_move_conflict (line 93) | def test_move_conflict(self, do_setup): method test_move_conflict_dest_is_dir (line 98) | def test_move_conflict_dest_is_dir(self, do_setup): method test_copy_folder (line 107) | def test_copy_folder(self, tmpdir): FILE: hscommon/tests/notify_test.py class HelloListener (line 11) | class HelloListener(Listener): method __init__ (line 12) | def __init__(self, broadcaster): method hello (line 16) | def hello(self): class HelloRepeater (line 20) | class HelloRepeater(Repeater): method __init__ (line 21) | def __init__(self, broadcaster): method hello (line 25) | def hello(self): function create_pair (line 29) | def create_pair(): function test_disconnect_during_notification (line 35) | def test_disconnect_during_notification(): function test_disconnect (line 61) | def test_disconnect(): function test_disconnect_when_not_connected (line 70) | def test_disconnect_when_not_connected(): function test_not_connected_on_init (line 76) | def test_not_connected_on_init(): function test_notify (line 83) | def test_notify(): function test_reconnect (line 91) | def test_reconnect(): function test_repeater (line 101) | def test_repeater(): function test_repeater_with_repeated_notifications (line 112) | def test_repeater_with_repeated_notifications(): function test_repeater_doesnt_try_to_dispatch_to_self_if_it_cant (line 137) | def test_repeater_doesnt_try_to_dispatch_to_self_if_it_cant(): function test_bind_messages (line 148) | def test_bind_messages(): FILE: hscommon/tests/path_test.py function test_pathify (line 13) | def test_pathify(): function test_pathify_preserve_none (line 26) | def test_pathify_preserve_none(): FILE: hscommon/tests/selectable_list_test.py function test_in (line 13) | def test_in(): function test_selection_range (line 21) | def test_selection_range(): function test_update_selection_called (line 30) | def test_update_selection_called(): function test_guicalls (line 43) | def test_guicalls(): function test_search_by_prefix (line 65) | def test_search_by_prefix(): FILE: hscommon/tests/table_test.py class TestRow (line 13) | class TestRow(Row): method __init__ (line 16) | def __init__(self, table, index, is_new=False): method load (line 21) | def load(self): method save (line 25) | def save(self): method index (line 29) | def index(self): class TestGUITable (line 33) | class TestGUITable(GUITable): method __init__ (line 36) | def __init__(self, rowcount, viewclass=CallLogger): method _do_add (line 43) | def _do_add(self): method _is_edited_new (line 46) | def _is_edited_new(self): method _fill (line 49) | def _fill(self): method _update_selection (line 53) | def _update_selection(self): function table_with_footer (line 57) | def table_with_footer(): function table_with_header (line 65) | def table_with_header(): function test_allow_edit_when_attr_is_property_with_fset (line 74) | def test_allow_edit_when_attr_is_property_with_fset(): function test_can_edit_prop_has_priority_over_fset_checks (line 98) | def test_can_edit_prop_has_priority_over_fset_checks(): function test_in (line 118) | def test_in(): function test_footer_del_all (line 126) | def test_footer_del_all(): function test_footer_del_row (line 133) | def test_footer_del_row(): function test_footer_is_appened_to_table (line 141) | def test_footer_is_appened_to_table(): function test_footer_remove (line 148) | def test_footer_remove(): function test_footer_replaces_old_footer (line 155) | def test_footer_replaces_old_footer(): function test_footer_rows_and_row_count (line 164) | def test_footer_rows_and_row_count(): function test_footer_setting_to_none_removes_old_one (line 171) | def test_footer_setting_to_none_removes_old_one(): function test_footer_stays_there_on_append (line 178) | def test_footer_stays_there_on_append(): function test_footer_stays_there_on_insert (line 186) | def test_footer_stays_there_on_insert(): function test_header_del_all (line 194) | def test_header_del_all(): function test_header_del_row (line 201) | def test_header_del_row(): function test_header_is_inserted_in_table (line 209) | def test_header_is_inserted_in_table(): function test_header_remove (line 216) | def test_header_remove(): function test_header_replaces_old_header (line 223) | def test_header_replaces_old_header(): function test_header_rows_and_row_count (line 232) | def test_header_rows_and_row_count(): function test_header_setting_to_none_removes_old_one (line 239) | def test_header_setting_to_none_removes_old_one(): function test_header_stays_there_on_insert (line 246) | def test_header_stays_there_on_insert(): function test_refresh_view_on_refresh (line 254) | def test_refresh_view_on_refresh(): function test_restore_selection (line 264) | def test_restore_selection(): function test_restore_selection_after_cancel_edits (line 271) | def test_restore_selection_after_cancel_edits(): function test_restore_selection_with_previous_selection (line 285) | def test_restore_selection_with_previous_selection(): function test_restore_selection_custom (line 294) | def test_restore_selection_custom(): function test_row_cell_value (line 306) | def test_row_cell_value(): function test_sort_table_also_tries_attributes_without_underscores (line 315) | def test_sort_table_also_tries_attributes_without_underscores(): function test_sort_table_updates_selection (line 337) | def test_sort_table_updates_selection(): function test_sort_table_with_footer (line 349) | def test_sort_table_with_footer(): function test_sort_table_with_header (line 356) | def test_sort_table_with_header(): function test_add_with_view_that_saves_during_refresh (line 363) | def test_add_with_view_that_saves_during_refresh(): FILE: hscommon/tests/tree_test.py function tree_with_some_nodes (line 13) | def tree_with_some_nodes(): function test_selection (line 23) | def test_selection(): function test_select_one_node (line 31) | def test_select_one_node(): function test_select_one_path (line 40) | def test_select_one_path(): function test_select_multiple_nodes (line 46) | def test_select_multiple_nodes(): function test_select_multiple_paths (line 52) | def test_select_multiple_paths(): function test_select_none_path (line 58) | def test_select_none_path(): function test_select_none_node (line 65) | def test_select_none_node(): function test_clear_removes_selection (line 72) | def test_clear_removes_selection(): function test_selection_override (line 81) | def test_selection_override(): function test_findall (line 98) | def test_findall(): function test_findall_dont_include_self (line 104) | def test_findall_dont_include_self(): function test_find_dont_include_self (line 112) | def test_find_dont_include_self(): function test_find_none (line 120) | def test_find_none(): FILE: hscommon/tests/util_test.py function test_nonone (line 38) | def test_nonone(): function test_tryint (line 43) | def test_tryint(): function test_first (line 53) | def test_first(): function test_flatten (line 58) | def test_flatten(): function test_dedupe (line 63) | def test_dedupe(): function test_extract (line 68) | def test_extract(): function test_allsame (line 74) | def test_allsame(): function test_iterconsume (line 82) | def test_iterconsume(): function test_escape (line 92) | def test_escape(): function test_get_file_ext (line 98) | def test_get_file_ext(): function test_rem_file_ext (line 105) | def test_rem_file_ext(): function test_pluralize (line 112) | def test_pluralize(): function test_format_time (line 123) | def test_format_time(): function test_format_time_decimal (line 145) | def test_format_time_decimal(): function test_format_size (line 158) | def test_format_size(): function test_multi_replace (line 194) | def test_multi_replace(): class TestCaseDeleteIfEmpty (line 210) | class TestCaseDeleteIfEmpty: method test_is_empty (line 211) | def test_is_empty(self, tmpdir): method test_not_empty (line 216) | def test_not_empty(self, tmpdir): method test_with_files_to_delete (line 222) | def test_with_files_to_delete(self, tmpdir): method test_directory_in_files_to_delete (line 229) | def test_directory_in_files_to_delete(self, tmpdir): method test_delete_files_to_delete_only_if_dir_is_empty (line 235) | def test_delete_files_to_delete_only_if_dir_is_empty(self, tmpdir): method test_doesnt_exist (line 243) | def test_doesnt_exist(self): method test_is_file (line 247) | def test_is_file(self, tmpdir): method test_ioerror (line 253) | def test_ioerror(self, tmpdir, monkeypatch): class TestCaseOpenIfFilename (line 262) | class TestCaseOpenIfFilename: method test_file_name (line 265) | def test_file_name(self, tmpdir): method test_opened_file (line 273) | def test_opened_file(self): method test_mode_is_passed_to_open (line 281) | def test_mode_is_passed_to_open(self, tmpdir): class TestCaseFileOrPath (line 289) | class TestCaseFileOrPath: method test_path (line 292) | def test_path(self, tmpdir): method test_opened_file (line 298) | def test_opened_file(self): method test_mode_is_passed_to_open (line 305) | def test_mode_is_passed_to_open(self, tmpdir): FILE: hscommon/testutil.py function eq_ (line 12) | def eq_(a, b, msg=None): function callcounter (line 17) | def callcounter(): class CallLogger (line 25) | class CallLogger: method __init__ (line 31) | def __init__(self): method __getattr__ (line 34) | def __getattr__(self, func_name): method clear_calls (line 40) | def clear_calls(self): method check_gui_calls (line 43) | def check_gui_calls(self, expected, verify_order=False): method check_gui_calls_partial (line 56) | def check_gui_calls_partial(self, expected=None, not_expected=None, ve... class TestApp (line 81) | class TestApp: method __init__ (line 82) | def __init__(self): method clear_gui_calls (line 85) | def clear_gui_calls(self): method make_logger (line 89) | def make_logger(self, logger=None): method make_gui (line 95) | def make_gui(self, name, class_, view=None, parent=None, holder=None): function with_app (line 111) | def with_app(setupfunc): function app (line 120) | def app(request): function _unify_args (line 138) | def _unify_args(func, args, kwargs, args_to_ignore=None): function log_calls (line 177) | def log_calls(func): FILE: hscommon/trans.py function tr (line 25) | def tr(s: str, context: Union[str, None] = None) -> str: function trget (line 35) | def trget(domain: str) -> Callable[[str], str]: function set_tr (line 43) | def set_tr( function get_locale_name (line 53) | def get_locale_name(lang: str) -> Union[str, None]: function install_qt_trans (line 85) | def install_qt_trans(lang: str = None) -> None: function install_gettext_trans (line 114) | def install_gettext_trans(base_folder: os.PathLike, lang: str) -> None: function install_gettext_trans_under_qt (line 139) | def install_gettext_trans_under_qt(base_folder: os.PathLike, lang: str =... FILE: hscommon/util.py function nonone (line 16) | def nonone(value: Any, replace_value: Any) -> Any: function tryint (line 24) | def tryint(value: Any, default: int = 0) -> int: function dedupe (line 35) | def dedupe(iterable: Iterable[Any]) -> List[Any]: function flatten (line 50) | def flatten(iterables: Iterable[Iterable], start_with: Iterable[Any] = N... function first (line 64) | def first(iterable: Iterable[Any]): function extract (line 72) | def extract(predicate: Callable[[Any], bool], iterable: Iterable[Any]) -... function allsame (line 84) | def allsame(iterable: Iterable[Any]) -> bool: function iterconsume (line 94) | def iterconsume(seq: List[Any], reverse: bool = True) -> Generator[Any, ... function escape (line 113) | def escape(s: str, to_escape: str, escape_with: str = "\\") -> str: function get_file_ext (line 118) | def get_file_ext(filename: str) -> str: function rem_file_ext (line 127) | def rem_file_ext(filename: str) -> str: function pluralize (line 137) | def pluralize(number, word: str, decimals: int = 0, plural_word: Union[s... function format_time (line 156) | def format_time(seconds: int, with_hours: bool = True) -> str: function format_time_decimal (line 176) | def format_time_decimal(seconds: int) -> str: function format_size (line 199) | def format_size(size: int, decimal: int = 0, forcepower: int = -1, showd... function multi_replace (line 237) | def multi_replace(s: str, replace_from: Union[str, List[str]], replace_t... function delete_if_empty (line 266) | def delete_if_empty(path: Path, files_to_delete: List[str] = []) -> bool: function open_if_filename (line 279) | def open_if_filename( class FileOrPath (line 302) | class FileOrPath: method __init__ (line 311) | def __init__(self, file_or_path: Union[Path, str], mode: str = "rb") -... method __enter__ (line 317) | def __enter__(self) -> IO: method __exit__ (line 321) | def __exit__(self, exc_type, exc_value, traceback) -> None: FILE: package.py function parse_args (line 34) | def parse_args(): function check_loc_doc (line 40) | def check_loc_doc(): function copy_files_to_package (line 49) | def copy_files_to_package(destpath, packages, with_so): function package_debian_distribution (line 69) | def package_debian_distribution(distribution): function package_debian (line 113) | def package_debian(): function package_arch (line 119) | def package_arch(): function package_source_txz (line 132) | def package_source_txz(): function package_windows (line 143) | def package_windows(): function package_macos (line 198) | def package_macos(): function main (line 221) | def main(): FILE: qt/about_box.py class AboutBox (line 20) | class AboutBox(QDialog): method __init__ (line 21) | def __init__(self, parent, app, **kwargs): method _setupUi (line 30) | def _setupUi(self): method _check_for_update (line 65) | def _check_for_update(self): method showEvent (line 74) | def showEvent(self, event): FILE: qt/app.py class DupeGuru (line 44) | class DupeGuru(QObject): method __init__ (line 48) | def __init__(self, **kwargs): method _setup (line 59) | def _setup(self): method _setupActions (line 111) | def _setupActions(self): method _update_options (line 157) | def _update_options(self): method _get_details_dialog_class (line 205) | def _get_details_dialog_class(self): method _get_preferences_dialog_class (line 213) | def _get_preferences_dialog_class(self): method _set_style (line 221) | def _set_style(self, style="light"): method add_selected_to_ignore_list (line 255) | def add_selected_to_ignore_list(self): method remove_selected (line 258) | def remove_selected(self): method confirm (line 261) | def confirm(self, title, msg, default_button=QMessageBox.Yes): method invokeCustomCommand (line 267) | def invokeCustomCommand(self): method show_details (line 270) | def show_details(self): method showResultsWindow (line 277) | def showResultsWindow(self): method showDirectoriesWindow (line 287) | def showDirectoriesWindow(self): method shutdown (line 294) | def shutdown(self): method finishedLaunching (line 309) | def finishedLaunching(self): method clearCacheTriggered (line 329) | def clearCacheTriggered(self): method ignoreListTriggered (line 338) | def ignoreListTriggered(self): method excludeListTriggered (line 344) | def excludeListTriggered(self): method showTriggeredTabbedDialog (line 350) | def showTriggeredTabbedDialog(self, dialog, desc_string): method openDebugLogTriggered (line 359) | def openDebugLogTriggered(self): method preferencesTriggered (line 363) | def preferencesTriggered(self): method quitTriggered (line 375) | def quitTriggered(self): method showAboutBoxTriggered (line 384) | def showAboutBoxTriggered(self): method showHelpTriggered (line 387) | def showHelpTriggered(self): method handleSIGTERM (line 396) | def handleSIGTERM(self): method get_default (line 400) | def get_default(self, key): method set_default (line 403) | def set_default(self, key, value): method show_message (line 406) | def show_message(self, msg): method ask_yes_no (line 410) | def ask_yes_no(self, prompt): method create_results_window (line 413) | def create_results_window(self): method show_results_window (line 434) | def show_results_window(self): method show_problem_dialog (line 437) | def show_problem_dialog(self): method select_dest_folder (line 440) | def select_dest_folder(self, prompt): method select_dest_file (line 444) | def select_dest_file(self, prompt, extension): FILE: qt/column.py class Column (line 13) | class Column: method __init__ (line 14) | def __init__( class Columns (line 36) | class Columns: method __init__ (line 37) | def __init__(self, model, columns, header_view): method set_columns_width (line 68) | def set_columns_width(self, widths): method set_columns_order (line 78) | def set_columns_order(self, column_indexes): method header_section_moved (line 87) | def header_section_moved(self, logical_index, old_visual_index, new_vi... method header_section_resized (line 91) | def header_section_resized(self, logical_index, old_size, new_size): method restore_columns (line 96) | def restore_columns(self): method set_column_visible (line 108) | def set_column_visible(self, colname, visible): FILE: qt/deletion_options.py class DeletionOptions (line 18) | class DeletionOptions(QDialog): method __init__ (line 19) | def __init__(self, parent, model, **kwargs): method _setupUi (line 30) | def _setupUi(self): method linkCheckboxChanged (line 65) | def linkCheckboxChanged(self, changed: int): method update_msg (line 69) | def update_msg(self, msg: str): method show (line 72) | def show(self): method set_hardlink_option_enabled (line 82) | def set_hardlink_option_enabled(self, is_enabled: bool): FILE: qt/details_dialog.py class DetailsDialog (line 17) | class DetailsDialog(QDockWidget): method __init__ (line 18) | def __init__(self, parent, app, **kwargs): method _setupUi (line 37) | def _setupUi(self): # Virtual method show (line 40) | def show(self): method update_options (line 47) | def update_options(self): method appWillSavePrefs (line 69) | def appWillSavePrefs(self): method refresh (line 74) | def refresh(self): method showEvent (line 78) | def showEvent(self, event): FILE: qt/details_table.py class DetailsModel (line 20) | class DetailsModel(QAbstractTableModel): method __init__ (line 21) | def __init__(self, model, app, **kwargs): method columnCount (line 26) | def columnCount(self, parent): method data (line 29) | def data(self, index, role): method headerData (line 56) | def headerData(self, section, orientation, role): method rowCount (line 64) | def rowCount(self, parent): class DetailsTable (line 68) | class DetailsTable(QTableView): method __init__ (line 69) | def __init__(self, *args): method setModel (line 78) | def setModel(self, model): FILE: qt/directories_dialog.py class DirectoriesDialog (line 40) | class DirectoriesDialog(QMainWindow): method __init__ (line 41) | def __init__(self, app, **kwargs): method _setupBindings (line 62) | def _setupBindings(self): method _setupActions (line 76) | def _setupActions(self): method _setupMenu (line 103) | def _setupMenu(self): method _setupUi (line 161) | def _setupUi(self): method _setupColumns (line 230) | def _setupColumns(self): method _updateActionsState (line 237) | def _updateActionsState(self): method _updateAddButton (line 240) | def _updateAddButton(self): method _updateRemoveButton (line 246) | def _updateRemoveButton(self): method _updateLoadResultsButton (line 253) | def _updateLoadResultsButton(self): method _updateScanTypeList (line 259) | def _updateScanTypeList(self): method closeEvent (line 277) | def closeEvent(self, event): method addFolderTriggered (line 288) | def addFolderTriggered(self): method appModeButtonSelected (line 309) | def appModeButtonSelected(self, index): method appWillSavePrefs (line 319) | def appWillSavePrefs(self): method directoriesModelAddedFolders (line 322) | def directoriesModelAddedFolders(self, folders): method loadResultsTriggered (line 326) | def loadResultsTriggered(self): method loadDirectoriesTriggered (line 334) | def loadDirectoriesTriggered(self): method removeFolderButtonClicked (line 341) | def removeFolderButtonClicked(self): method saveDirectoriesTriggered (line 344) | def saveDirectoriesTriggered(self): method scanButtonClicked (line 353) | def scanButtonClicked(self): method scanTypeChanged (line 361) | def scanTypeChanged(self, index): method selectionChanged (line 366) | def selectionChanged(self, selected, deselected): FILE: qt/directories_model.py class DirectoriesDelegate (line 29) | class DirectoriesDelegate(QStyledItemDelegate): method createEditor (line 30) | def createEditor(self, parent, option, index): method paint (line 35) | def paint(self, painter, option, index): method setEditorData (line 53) | def setEditorData(self, editor, index): method setModelData (line 58) | def setModelData(self, editor, model, index): method updateEditorGeometry (line 62) | def updateEditorGeometry(self, editor, option, index): class DirectoriesModel (line 66) | class DirectoriesModel(TreeModel): method __init__ (line 69) | def __init__(self, model, view, **kwargs): method _create_node (line 78) | def _create_node(self, ref, row): method _get_children (line 81) | def _get_children(self): method columnCount (line 84) | def columnCount(self, parent=QModelIndex()): method data (line 87) | def data(self, index, role): method dropMimeData (line 107) | def dropMimeData(self, mime_data, action, row, column, parent_index): method flags (line 120) | def flags(self, index): method headerData (line 128) | def headerData(self, section, orientation, role): method mimeTypes (line 133) | def mimeTypes(self): method setData (line 136) | def setData(self, index, value, role): method supportedDropActions (line 144) | def supportedDropActions(self): method selectionChanged (line 150) | def selectionChanged(self, selected, deselected): method refresh (line 158) | def refresh(self): method refresh_states (line 161) | def refresh_states(self): FILE: qt/error_report_dialog.py class ErrorReportDialog (line 31) | class ErrorReportDialog(QDialog): method __init__ (line 32) | def __init__(self, parent, github_url, error, **kwargs): method _setupUi (line 49) | def _setupUi(self): method goToGitHub (line 86) | def goToGitHub(self): function install_excepthook (line 90) | def install_excepthook(github_url): FILE: qt/exclude_list_dialog.py class ExcludeListDialog (line 27) | class ExcludeListDialog(QDialog): method __init__ (line 28) | def __init__(self, app, parent, model, **kwargs): method _setupUI (line 50) | def _setupUI(self): method show (line 96) | def show(self): method addStringFromLineEdit (line 101) | def addStringFromLineEdit(self): method removeSelected (line 115) | def removeSelected(self): method restoreDefaults (line 118) | def restoreDefaults(self): method onTestStringButtonClicked (line 121) | def onTestStringButtonClicked(self): method reset_input_style (line 147) | def reset_input_style(self): method reset_table_style (line 153) | def reset_table_style(self): method display_help_message (line 159) | def display_help_message(self): FILE: qt/exclude_list_table.py class ExcludeListTable (line 15) | class ExcludeListTable(Table): method __init__ (line 20) | def __init__(self, app, view, **kwargs): method _getData (line 29) | def _getData(self, row, column, role): method _getFlags (line 49) | def _getFlags(self, row, column): method _setData (line 58) | def _setData(self, row, column, value, role): FILE: qt/ignore_list_dialog.py class IgnoreListDialog (line 25) | class IgnoreListDialog(QDialog): method __init__ (line 26) | def __init__(self, parent, model, **kwargs): method _setupUi (line 39) | def _setupUi(self): method show (line 63) | def show(self): FILE: qt/ignore_list_table.py class IgnoreListTable (line 12) | class IgnoreListTable(Table): FILE: qt/me/details_dialog.py class DetailsDialog (line 17) | class DetailsDialog(DetailsDialogBase): method _setupUi (line 18) | def _setupUi(self): FILE: qt/me/preferences_dialog.py class PreferencesDialog (line 26) | class PreferencesDialog(PreferencesDialogBase): method _setupPreferenceWidgets (line 27) | def _setupPreferenceWidgets(self): method _load (line 73) | def _load(self, prefs, setchecked, section): method _save (line 102) | def _save(self, prefs, ischecked): FILE: qt/me/results_model.py class ResultsModel (line 11) | class ResultsModel(ResultsModelBase): FILE: qt/pe/block.pyi function getblock (line 6) | def getblock(image: QImage) -> _block: ... # noqa: E302 function getblocks (line 7) | def getblocks(image: QImage, block_count_per_side: int) -> Union[List[_b... FILE: qt/pe/details_dialog.py class DetailsDialog (line 18) | class DetailsDialog(DetailsDialogBase): method __init__ (line 19) | def __init__(self, parent, app): method _setupUi (line 23) | def _setupUi(self): method _update (line 76) | def _update(self): method resizeEvent (line 91) | def resizeEvent(self, event): method show (line 98) | def show(self): method ensure_same_sizes (line 111) | def ensure_same_sizes(self): method refresh (line 129) | def refresh(self): class EmittingFrame (line 135) | class EmittingFrame(QFrame): method resizeEvent (line 140) | def resizeEvent(self, event): FILE: qt/pe/image_viewer.py function create_actions (line 29) | def create_actions(actions, target): class ViewerToolBar (line 42) | class ViewerToolBar(QToolBar): method __init__ (line 43) | def __init__(self, parent, controller): method setupActions (line 55) | def setupActions(self, controller): method createButtons (line 107) | def createButtons(self): class BaseController (line 147) | class BaseController(QObject): method __init__ (line 152) | def __init__(self, parent): method setupViewers (line 167) | def setupViewers(self, selected_viewer, reference_viewer): method _setupConnections (line 174) | def _setupConnections(self): method updateView (line 178) | def updateView(self, ref, dupe, group): method updateBothImages (line 204) | def updateBothImages(self, same_group=False): method _updateImage (line 217) | def _updateImage(self, pixmap, viewer, same_group=False): method resetState (line 238) | def resetState(self): method resetViewersState (line 259) | def resetViewersState(self): method zoomIn (line 288) | def zoomIn(self): method zoomOut (line 292) | def zoomOut(self): method scaleImagesBy (line 296) | def scaleImagesBy(self, factor): method scaleImagesAt (line 304) | def scaleImagesAt(self, scale): method updateButtons (line 311) | def updateButtons(self): method updateButtonsAsPerDimensions (line 317) | def updateButtonsAsPerDimensions(self, previous_same_dimensions): method zoomBestFit (line 334) | def zoomBestFit(self): method setBestFit (line 357) | def setBestFit(self, value): method zoomNormalSize (line 363) | def zoomNormalSize(self): method centerViews (line 384) | def centerViews(self, only_selected=False): method swapImages (line 391) | def swapImages(self): class QWidgetController (line 396) | class QWidgetController(BaseController): method __init__ (line 399) | def __init__(self, parent): method _updateImage (line 402) | def _updateImage(self, *args): method onDraggedMouse (line 409) | def onDraggedMouse(self, delta): method swapImages (line 418) | def swapImages(self): class ScrollAreaController (line 425) | class ScrollAreaController(BaseController): method __init__ (line 428) | def __init__(self, parent): method _setupConnections (line 431) | def _setupConnections(self): method updateBothImages (line 436) | def updateBothImages(self, same_group=False): method onDraggedMouse (line 444) | def onDraggedMouse(self, delta): method swapImages (line 461) | def swapImages(self): method onMouseWheel (line 468) | def onMouseWheel(self, scale, delta): method onVScrollBarChanged (line 475) | def onVScrollBarChanged(self, value): method onHScrollBarChanged (line 486) | def onHScrollBarChanged(self, value): method scaleImagesBy (line 497) | def scaleImagesBy(self, factor): method zoomBestFit (line 503) | def zoomBestFit(self): class GraphicsViewController (line 512) | class GraphicsViewController(BaseController): method __init__ (line 515) | def __init__(self, parent): method _setupConnections (line 518) | def _setupConnections(self): method syncCenters (line 527) | def syncCenters(self): method onMouseWheel (line 534) | def onMouseWheel(self, factor, new_center): method onVScrollBarChanged (line 544) | def onVScrollBarChanged(self, value): method onHScrollBarChanged (line 555) | def onHScrollBarChanged(self, value): method swapImages (line 566) | def swapImages(self): method zoomBestFit (line 573) | def zoomBestFit(self): method updateView (line 589) | def updateView(self, ref, dupe, group): method updateBothImages (line 614) | def updateBothImages(self, same_group=False): method _updateFitImage (line 626) | def _updateFitImage(self, pixmap, viewer): method resetState (line 634) | def resetState(self): method resetViewersState (line 655) | def resetViewersState(self): method scaleImagesBy (line 681) | def scaleImagesBy(self, factor): class QWidgetImageViewer (line 689) | class QWidgetImageViewer(QWidget): method __init__ (line 696) | def __init__(self, parent, name=""): method __repr__ (line 712) | def __repr__(self): method connectMouseSignals (line 715) | def connectMouseSignals(self): method disconnectMouseSignals (line 721) | def disconnectMouseSignals(self): method paintEvent (line 729) | def paintEvent(self, event): method resetCenter (line 736) | def resetCenter(self): method changeEvent (line 742) | def changeEvent(self, event): method contextMenuEvent (line 749) | def contextMenuEvent(self, event): method mousePressEvent (line 753) | def mousePressEvent(self, event): method mouseMoveEvent (line 769) | def mouseMoveEvent(self, event): method mouseReleaseEvent (line 780) | def mouseReleaseEvent(self, event): method wheelEvent (line 790) | def wheelEvent(self, event): method setImage (line 804) | def setImage(self, pixmap): method centerViewAndUpdate (line 817) | def centerViewAndUpdate(self): method shouldBeActive (line 822) | def shouldBeActive(self): method scaleBy (line 825) | def scaleBy(self, factor): method scaleAt (line 829) | def scaleAt(self, scale): method sizeHint (line 833) | def sizeHint(self): method scaleToNormalSize (line 837) | def scaleToNormalSize(self): method onDraggedMouse (line 843) | def onDraggedMouse(self, delta): class ScalablePixmap (line 848) | class ScalablePixmap(QWidget): method __init__ (line 851) | def __init__(self, parent): method paintEvent (line 856) | def paintEvent(self, event): method sizeHint (line 863) | def sizeHint(self): method minimumSizeHint (line 866) | def minimumSizeHint(self): class ScrollAreaImageViewer (line 870) | class ScrollAreaImageViewer(QScrollArea): method __init__ (line 876) | def __init__(self, parent, name=""): method __repr__ (line 912) | def __repr__(self): method toggleScrollBars (line 915) | def toggleScrollBars(self, force_on=False): method connectMouseSignals (line 928) | def connectMouseSignals(self): method disconnectMouseSignals (line 934) | def disconnectMouseSignals(self): method connectScrollBars (line 942) | def connectScrollBars(self): method contextMenuEvent (line 948) | def contextMenuEvent(self, event): method mousePressEvent (line 955) | def mousePressEvent(self, event): method mouseMoveEvent (line 970) | def mouseMoveEvent(self, event): method mouseReleaseEvent (line 980) | def mouseReleaseEvent(self, event): method wheelEvent (line 989) | def wheelEvent(self, event): method setImage (line 1007) | def setImage(self, pixmap): method centerViewAndUpdate (line 1019) | def centerViewAndUpdate(self): method setCachedPixmap (line 1026) | def setCachedPixmap(self): method shouldBeActive (line 1031) | def shouldBeActive(self): method scaleBy (line 1034) | def scaleBy(self, factor): method scaleAt (line 1041) | def scaleAt(self, scale): method adjustScrollBarsFactor (line 1048) | def adjustScrollBarsFactor(self, factor): method adjustScrollBarsScaled (line 1058) | def adjustScrollBarsScaled(self, delta): method adjustScrollBarsAuto (line 1063) | def adjustScrollBarsAuto(self): method adjustScrollBarCentered (line 1068) | def adjustScrollBarCentered(self): method resetCenter (line 1073) | def resetCenter(self): method setCenter (line 1079) | def setCenter(self, point): method sizeHint (line 1082) | def sizeHint(self): method scaleToNormalSize (line 1086) | def scaleToNormalSize(self): method onDraggedMouse (line 1093) | def onDraggedMouse(self, delta): class GraphicsViewViewer (line 1100) | class GraphicsViewViewer(QGraphicsView): method __init__ (line 1106) | def __init__(self, parent, name=""): method connectMouseSignals (line 1151) | def connectMouseSignals(self): method disconnectMouseSignals (line 1157) | def disconnectMouseSignals(self): method connectScrollBars (line 1165) | def connectScrollBars(self): method toggleScrollBars (line 1171) | def toggleScrollBars(self, force_on=False): method contextMenuEvent (line 1184) | def contextMenuEvent(self, event): method mousePressEvent (line 1188) | def mousePressEvent(self, event): method mouseReleaseEvent (line 1204) | def mouseReleaseEvent(self, event): method mouseMoveEvent (line 1214) | def mouseMoveEvent(self, event): method updateCenterPoint (line 1225) | def updateCenterPoint(self): method wheelEvent (line 1228) | def wheelEvent(self, event): method setImage (line 1251) | def setImage(self, pixmap): method centerViewAndUpdate (line 1260) | def centerViewAndUpdate(self): method setCenter (line 1264) | def setCenter(self, point): method resetCenter (line 1268) | def resetCenter(self): method setNewCenter (line 1273) | def setNewCenter(self, position): method setCachedPixmap (line 1277) | def setCachedPixmap(self): method scaleAt (line 1282) | def scaleAt(self, scale): method getScale (line 1288) | def getScale(self): method scaleBy (line 1291) | def scaleBy(self, factor): method resetScale (line 1295) | def resetScale(self): method fitScale (line 1300) | def fitScale(self): method scaleToNormalSize (line 1306) | def scaleToNormalSize(self): method adjustScrollBarsScaled (line 1313) | def adjustScrollBarsScaled(self, delta): method sizeHint (line 1318) | def sizeHint(self): method adjustScrollBarsFactor (line 1321) | def adjustScrollBarsFactor(self, factor): method adjustScrollBarsAuto (line 1330) | def adjustScrollBarsAuto(self): FILE: qt/pe/modules/block.c function max (line 15) | static int max(int a, int b) { return b > a ? b : a; } function min (line 17) | static int min(int a, int b) { return b < a ? b : a; } function PyObject (line 20) | static PyObject *getblock(PyObject *image, int width, int height) { function PyObject (line 88) | static PyObject *block_getblocks(PyObject *self, PyObject *args) { type PyModuleDef (line 150) | struct PyModuleDef function PyObject (line 160) | PyObject *PyInit__block_qt(void) { FILE: qt/pe/photo.py class File (line 16) | class File(PhotoBase): method _plat_get_dimensions (line 17) | def _plat_get_dimensions(self): method _plat_get_blocks (line 29) | def _plat_get_blocks(self, block_count_per_side, orientation): FILE: qt/pe/preferences_dialog.py class PreferencesDialog (line 18) | class PreferencesDialog(PreferencesDialogBase): method _setupPreferenceWidgets (line 19) | def _setupPreferenceWidgets(self): method _setupDisplayPage (line 40) | def _setupDisplayPage(self): method _load (line 60) | def _load(self, prefs, setchecked, section): method _save (line 71) | def _save(self, prefs, ischecked): FILE: qt/pe/results_model.py class ResultsModel (line 11) | class ResultsModel(ResultsModelBase): FILE: qt/preferences.py function get_langnames (line 19) | def get_langnames(): function _normalize_for_serialization (line 44) | def _normalize_for_serialization(v): function _adjust_after_deserialization (line 55) | def _adjust_after_deserialization(v): class PreferencesBase (line 71) | class PreferencesBase(QObject): method __init__ (line 74) | def __init__(self): method _load_values (line 79) | def _load_values(self, settings): method get_rect (line 83) | def get_rect(self, name, default=None): method get_value (line 90) | def get_value(self, name, default=None): method load (line 102) | def load(self): method reset (line 106) | def reset(self): method _save_values (line 110) | def _save_values(self, settings): method save (line 114) | def save(self): method set_rect (line 118) | def set_rect(self, name, r): method set_value (line 126) | def set_value(self, name, value): method saveGeometry (line 129) | def saveGeometry(self, name, widget): method restoreGeometry (line 141) | def restoreGeometry(self, name, widget): class Preferences (line 156) | class Preferences(PreferencesBase): method _load_values (line 157) | def _load_values(self, settings): method reset (line 230) | def reset(self): method _save_values (line 283) | def _save_values(self, settings): method get_scan_type (line 338) | def get_scan_type(self, app_mode): method set_scan_type (line 346) | def set_scan_type(self, app_mode, value): FILE: qt/preferences_dialog.py class Sections (line 45) | class Sections(Flag): class PreferencesDialogBase (line 55) | class PreferencesDialogBase(QDialog): method __init__ (line 56) | def __init__(self, parent, app, **kwargs): method _setupFilterHardnessBox (line 69) | def _setupFilterHardnessBox(self): method _setupBottomPart (line 108) | def _setupBottomPart(self): method _setupDisplayPage (line 124) | def _setupDisplayPage(self): method _setup_advanced_page (line 218) | def _setup_advanced_page(self): method _setupDebugPage (line 232) | def _setupDebugPage(self): method _setupAddCheckbox (line 244) | def _setupAddCheckbox(self, name, label, parent=None): method _setupPreferenceWidgets (line 251) | def _setupPreferenceWidgets(self): method _setupUi (line 255) | def _setupUi(self): method _load (line 295) | def _load(self, prefs, setchecked, section): method _save (line 299) | def _save(self, prefs, ischecked): method load (line 303) | def load(self, prefs=None, section=Sections.ALL): method save (line 351) | def save(self): method resetToDefaults (line 393) | def resetToDefaults(self, section_to_update): method buttonClicked (line 397) | def buttonClicked(self, button): method showEvent (line 410) | def showEvent(self, event): class ColorPickerButton (line 416) | class ColorPickerButton(QPushButton): method __init__ (line 417) | def __init__(self, parent): method onClicked (line 424) | def onClicked(self): method setColor (line 428) | def setColor(self, color): FILE: qt/prioritize_dialog.py class PrioritizationList (line 36) | class PrioritizationList(ListviewModel): method flags (line 37) | def flags(self, index): method dropMimeData (line 43) | def dropMimeData(self, mime_data, action, row, column, parent_index): method mimeData (line 62) | def mimeData(self, indexes): method mimeTypes (line 69) | def mimeTypes(self): method supportedDropActions (line 72) | def supportedDropActions(self): class PrioritizeDialog (line 76) | class PrioritizeDialog(QDialog): method __init__ (line 77) | def __init__(self, parent, app, **kwargs): method _setupUi (line 96) | def _setupUi(self): FILE: qt/problem_dialog.py class ProblemDialog (line 29) | class ProblemDialog(QDialog): method __init__ (line 30) | def __init__(self, parent, model, **kwargs): method _setupUi (line 41) | def _setupUi(self): method showEvent (line 75) | def showEvent(self, event): FILE: qt/problem_table.py class ProblemTable (line 13) | class ProblemTable(Table): method __init__ (line 19) | def __init__(self, model, view, **kwargs): FILE: qt/progress_window.py class ProgressWindow (line 13) | class ProgressWindow: method __init__ (line 14) | def __init__(self, parent, model): method refresh (line 25) | def refresh(self): # Labels method set_progress (line 30) | def set_progress(self, last_progress): method show (line 38) | def show(self): method _setup_ui (line 48) | def _setup_ui(self): method cancel (line 60) | def cancel(self): method close (line 75) | def close(self): FILE: qt/radio_box.py class RadioBox (line 14) | class RadioBox(QWidget): method __init__ (line 15) | def __init__(self, parent=None, items=None, spread=True, **kwargs): method _update_buttons (line 29) | def _update_buttons(self): method _update_selection (line 51) | def _update_selection(self): method buttonToggled (line 57) | def buttonToggled(self): method buttons (line 69) | def buttons(self): method items (line 73) | def items(self): method items (line 77) | def items(self, value): method selected_index (line 82) | def selected_index(self): method selected_index (line 86) | def selected_index(self, value): FILE: qt/recent.py class Recent (line 22) | class Recent(QObject): method __init__ (line 23) | def __init__(self, app, pref_name, max_item_count=10, **kwargs): method _loadFromPrefs (line 35) | def _loadFromPrefs(self): method _insertItem (line 41) | def _insertItem(self, item): method _refreshMenu (line 44) | def _refreshMenu(self, menu_entry): method _refreshAllMenus (line 58) | def _refreshAllMenus(self): method _saveToPrefs (line 62) | def _saveToPrefs(self): method addMenu (line 66) | def addMenu(self, menu): method clear (line 71) | def clear(self): method insertItem (line 76) | def insertItem(self, item): method isEmpty (line 81) | def isEmpty(self): method menuItemWasClicked (line 85) | def menuItemWasClicked(self): FILE: qt/result_window.py class ResultWindow (line 41) | class ResultWindow(QMainWindow): method __init__ (line 42) | def __init__(self, parent, app, **kwargs): method _setupActions (line 66) | def _setupActions(self): method _setupMenu (line 216) | def _setupMenu(self): method _setupUi (line 326) | def _setupUi(self): method _update_column_actions_status (line 390) | def _update_column_actions_status(self): method actionsTriggered (line 397) | def actionsTriggered(self): method addToIgnoreListTriggered (line 400) | def addToIgnoreListTriggered(self): method copyTriggered (line 403) | def copyTriggered(self): method deleteTriggered (line 406) | def deleteTriggered(self): method deltaTriggered (line 409) | def deltaTriggered(self, state=None): method detailsTriggered (line 415) | def detailsTriggered(self): method markAllTriggered (line 418) | def markAllTriggered(self): method markInvertTriggered (line 421) | def markInvertTriggered(self): method markNoneTriggered (line 424) | def markNoneTriggered(self): method markSelectedTriggered (line 427) | def markSelectedTriggered(self): method moveTriggered (line 430) | def moveTriggered(self): method openTriggered (line 433) | def openTriggered(self): method powerMarkerTriggered (line 436) | def powerMarkerTriggered(self, state=None): method preferencesTriggered (line 442) | def preferencesTriggered(self): method removeMarkedTriggered (line 445) | def removeMarkedTriggered(self): method removeSelectedTriggered (line 448) | def removeSelectedTriggered(self): method renameTriggered (line 451) | def renameTriggered(self): method reprioritizeTriggered (line 458) | def reprioritizeTriggered(self): method revealTriggered (line 464) | def revealTriggered(self): method saveResultsTriggered (line 467) | def saveResultsTriggered(self): method appWillSavePrefs (line 478) | def appWillSavePrefs(self): method columnToggled (line 483) | def columnToggled(self, action): method contextMenuEvent (line 492) | def contextMenuEvent(self, event): method resultsDoubleClicked (line 495) | def resultsDoubleClicked(self, model_index): method resultsSpacePressed (line 498) | def resultsSpacePressed(self): method searchChanged (line 501) | def searchChanged(self): method closeEvent (line 504) | def closeEvent(self, event): FILE: qt/results_model.py class ResultsModel (line 16) | class ResultsModel(Table): method __init__ (line 17) | def __init__(self, app, view, **kwargs): method _getData (line 30) | def _getData(self, row, column, role): method _getFlags (line 57) | def _getFlags(self, row, column): method _setData (line 66) | def _setData(self, row, column, value, role): method sort (line 75) | def sort(self, column, order): method power_marker (line 81) | def power_marker(self): method power_marker (line 85) | def power_marker(self, value): method delta_values (line 89) | def delta_values(self): method delta_values (line 93) | def delta_values(self, value): method appWillSavePrefs (line 97) | def appWillSavePrefs(self): method invalidate_markings (line 101) | def invalidate_markings(self): class ResultsView (line 108) | class ResultsView(QTableView): method keyPressEvent (line 110) | def keyPressEvent(self, event): method mouseDoubleClickEvent (line 116) | def mouseDoubleClickEvent(self, event): FILE: qt/se/details_dialog.py class DetailsDialog (line 17) | class DetailsDialog(DetailsDialogBase): method _setupUi (line 18) | def _setupUi(self): FILE: qt/se/preferences_dialog.py class PreferencesDialog (line 28) | class PreferencesDialog(PreferencesDialogBase): method _setupPreferenceWidgets (line 29) | def _setupPreferenceWidgets(self): method _load (line 109) | def _load(self, prefs, setchecked, section): method _save (line 126) | def _save(self, prefs, ischecked): FILE: qt/se/results_model.py class ResultsModel (line 11) | class ResultsModel(ResultsModelBase): FILE: qt/search_edit.py class LineEditButton (line 21) | class LineEditButton(QToolButton): method __init__ (line 22) | def __init__(self, parent, **kwargs): class ClearableEdit (line 33) | class ClearableEdit(QLineEdit): method __init__ (line 34) | def __init__(self, parent=None, is_clearable=True, **kwargs): method _clearSearch (line 49) | def _clearSearch(self): method _updateClearButton (line 52) | def _updateClearButton(self): method _hasClearableContent (line 55) | def _hasClearableContent(self): method resizeEvent (line 59) | def resizeEvent(self, event): method _textChanged (line 69) | def _textChanged(self, text): class SearchEdit (line 74) | class SearchEdit(ClearableEdit): method __init__ (line 75) | def __init__(self, parent=None, immediate=False): method _clearSearch (line 84) | def _clearSearch(self): method _textChanged (line 88) | def _textChanged(self, text): method keyPressEvent (line 93) | def keyPressEvent(self, event): method paintEvent (line 100) | def paintEvent(self, event): method _returnPressed (line 115) | def _returnPressed(self): FILE: qt/selectable_list.py class SelectableList (line 12) | class SelectableList(QAbstractListModel): method __init__ (line 13) | def __init__(self, model, view, **kwargs): method data (line 22) | def data(self, index, role): method rowCount (line 30) | def rowCount(self, index): method _updateSelection (line 36) | def _updateSelection(self): method _restoreSelection (line 39) | def _restoreSelection(self): method refresh (line 43) | def refresh(self): method update_selection (line 50) | def update_selection(self): class ComboboxModel (line 54) | class ComboboxModel(SelectableList): method __init__ (line 55) | def __init__(self, model, view, **kwargs): method _updateSelection (line 60) | def _updateSelection(self): method _restoreSelection (line 65) | def _restoreSelection(self): method selectionChanged (line 71) | def selectionChanged(self, index): class ListviewModel (line 76) | class ListviewModel(SelectableList): method __init__ (line 77) | def __init__(self, model, view, **kwargs): method _updateSelection (line 82) | def _updateSelection(self): method _restoreSelection (line 87) | def _restoreSelection(self): method selectionChanged (line 98) | def selectionChanged(self, index): FILE: qt/stats_label.py class StatsLabel (line 10) | class StatsLabel: method __init__ (line 11) | def __init__(self, model, view): method refresh (line 16) | def refresh(self): FILE: qt/tabbed_window.py class TabWindow (line 26) | class TabWindow(QMainWindow): method __init__ (line 27) | def __init__(self, app, **kwargs): method _setupActions (line 38) | def _setupActions(self): method _setupUi (line 53) | def _setupUi(self): method restoreGeometry (line 77) | def restoreGeometry(self): method _setupMenu (line 83) | def _setupMenu(self): method updateMenuBar (line 113) | def updateMenuBar(self, page_index=-1): method createPage (line 152) | def createPage(self, cls, **kwargs): method addTab (line 174) | def addTab(self, page, title, switch=False): method showTab (line 183) | def showTab(self, page): method indexOfWidget (line 187) | def indexOfWidget(self, widget): method setCurrentIndex (line 190) | def setCurrentIndex(self, index): method removeTab (line 193) | def removeTab(self, index): method isTabVisible (line 196) | def isTabVisible(self, index): method getCurrentIndex (line 199) | def getCurrentIndex(self): method getWidgetAtIndex (line 202) | def getWidgetAtIndex(self, index): method getCount (line 205) | def getCount(self): method appWillSavePrefs (line 209) | def appWillSavePrefs(self): method showEvent (line 217) | def showEvent(self, event): method changeEvent (line 223) | def changeEvent(self, event): method closeEvent (line 228) | def closeEvent(self, close_event): method onTabCloseRequested (line 236) | def onTabCloseRequested(self, index): method onDialogAccepted (line 246) | def onDialogAccepted(self): method toggleTabBar (line 254) | def toggleTabBar(self): class TabBarWindow (line 260) | class TabBarWindow(TabWindow): method __init__ (line 264) | def __init__(self, app, **kwargs): method _setupUi (line 267) | def _setupUi(self): method addTab (line 295) | def addTab(self, page, title, switch=True): method showTabIndex (line 306) | def showTabIndex(self, index): method indexOfWidget (line 311) | def indexOfWidget(self, widget): method setCurrentIndex (line 315) | def setCurrentIndex(self, tab_index): method setCurrentWidget (line 320) | def setCurrentWidget(self, widget): method setTabIndex (line 325) | def setTabIndex(self, index): method onRemovedWidget (line 331) | def onRemovedWidget(self, index): method removeTab (line 335) | def removeTab(self, index): method removeWidget (line 340) | def removeWidget(self, widget): method isTabVisible (line 343) | def isTabVisible(self, index): method getCurrentIndex (line 346) | def getCurrentIndex(self): method getWidgetAtIndex (line 349) | def getWidgetAtIndex(self, index): method getCount (line 352) | def getCount(self): method toggleTabBar (line 356) | def toggleTabBar(self): method onTabCloseRequested (line 362) | def onTabCloseRequested(self, index): method onDialogAccepted (line 374) | def onDialogAccepted(self): FILE: qt/table.py class Table (line 21) | class Table(QAbstractTableModel): method __init__ (line 26) | def __init__(self, model, view, **kwargs): method _updateModelSelection (line 37) | def _updateModelSelection(self): method _updateViewSelection (line 46) | def _updateViewSelection(self): method _getData (line 60) | def _getData(self, row, column, role): method _getFlags (line 69) | def _getFlags(self, row, column): method _setData (line 76) | def _setData(self, row, column, value, role): method columnCount (line 85) | def columnCount(self, index): method data (line 88) | def data(self, index, role): method flags (line 95) | def flags(self, index): method headerData (line 102) | def headerData(self, section, orientation, role): method revert (line 115) | def revert(self): method rowCount (line 118) | def rowCount(self, index): method setData (line 123) | def setData(self, index, value, role): method sort (line 130) | def sort(self, section, order): method submit (line 135) | def submit(self): method selectionChanged (line 140) | def selectionChanged(self, selected, deselected): method refresh (line 144) | def refresh(self): method show_selected_row (line 149) | def show_selected_row(self): method start_editing (line 153) | def start_editing(self): method stop_editing (line 156) | def stop_editing(self): method update_selection (line 159) | def update_selection(self): FILE: qt/tree_model.py class NodeContainer (line 14) | class NodeContainer: method __init__ (line 15) | def __init__(self): method _create_node (line 20) | def _create_node(self, ref, row): method _get_children (line 24) | def _get_children(self): method invalidate (line 29) | def invalidate(self): method subnodes (line 35) | def subnodes(self): class TreeNode (line 50) | class TreeNode(NodeContainer): method __init__ (line 51) | def __init__(self, model, parent, row): method index (line 58) | def index(self): class RefNode (line 62) | class RefNode(TreeNode): method __init__ (line 68) | def __init__(self, model, parent, ref, row): method _create_node (line 72) | def _create_node(self, ref, row): method _get_children (line 75) | def _get_children(self): class DummyNode (line 80) | class DummyNode(TreeNode): class TreeModel (line 84) | class TreeModel(QAbstractItemModel, NodeContainer): method __init__ (line 85) | def __init__(self, **kwargs): method _create_dummy_node (line 90) | def _create_dummy_node(self, parent, row): method _last_index (line 98) | def _last_index(self): method index (line 108) | def index(self, row, column, parent): method parent (line 126) | def parent(self, index): method reset (line 135) | def reset(self): method rowCount (line 142) | def rowCount(self, parent=QModelIndex()): method findIndex (line 147) | def findIndex(self, row_path): method pathForIndex (line 159) | def pathForIndex(index): method refreshData (line 166) | def refreshData(self): FILE: qt/util.py function move_to_screen_center (line 29) | def move_to_screen_center(widget): function vertical_spacer (line 46) | def vertical_spacer(size=None): function horizontal_spacer (line 53) | def horizontal_spacer(size=None): function horizontal_wrap (line 60) | def horizontal_wrap(widgets): function create_actions (line 75) | def create_actions(actions, target): function set_accel_keys (line 88) | def set_accel_keys(menu): function get_appdata (line 103) | def get_appdata(portable=False): class SysWrapper (line 110) | class SysWrapper(io.IOBase): method write (line 111) | def write(self, s): function setup_qt_logging (line 116) | def setup_qt_logging(level=logging.WARNING, log_to_stdout=False): function escape_amp (line 137) | def escape_amp(s): function create_qsettings (line 143) | def create_qsettings(): FILE: run.py function signal_handler (line 35) | def signal_handler(sig, frame): function setup_signals (line 43) | def setup_signals(): function main (line 49) | def main():