mirror of
https://github.com/arsenetar/dupeguru.git
synced 2026-01-28 17:31:38 +00:00
Compare commits
9 Commits
as/pyproje
...
5d67511315
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5d67511315 | ||
|
|
cd70c99c67 | ||
|
|
7eafb86c2b | ||
|
|
71672bc2c9 | ||
|
|
f4e6768caf | ||
|
|
8ce4080c4e | ||
|
|
f191b64cca | ||
|
|
a714a0860c | ||
|
|
5fb8caefa9 |
@@ -96,8 +96,6 @@ class FilenameCategory(CriterionCategory):
|
|||||||
DOESNT_END_WITH_NUMBER = 1
|
DOESNT_END_WITH_NUMBER = 1
|
||||||
LONGEST = 2
|
LONGEST = 2
|
||||||
SHORTEST = 3
|
SHORTEST = 3
|
||||||
LONGEST_PATH = 4
|
|
||||||
SHORTEST_PATH = 5
|
|
||||||
|
|
||||||
def format_criterion_value(self, value):
|
def format_criterion_value(self, value):
|
||||||
return {
|
return {
|
||||||
@@ -105,8 +103,6 @@ class FilenameCategory(CriterionCategory):
|
|||||||
self.DOESNT_END_WITH_NUMBER: tr("Doesn't end with number"),
|
self.DOESNT_END_WITH_NUMBER: tr("Doesn't end with number"),
|
||||||
self.LONGEST: tr("Longest"),
|
self.LONGEST: tr("Longest"),
|
||||||
self.SHORTEST: tr("Shortest"),
|
self.SHORTEST: tr("Shortest"),
|
||||||
self.LONGEST_PATH: tr("Longest Path"),
|
|
||||||
self.SHORTEST_PATH: tr("Shortest Path"),
|
|
||||||
}[value]
|
}[value]
|
||||||
|
|
||||||
def extract_value(self, dupe):
|
def extract_value(self, dupe):
|
||||||
@@ -120,10 +116,6 @@ class FilenameCategory(CriterionCategory):
|
|||||||
return 0 if ends_with_digit else 1
|
return 0 if ends_with_digit else 1
|
||||||
else:
|
else:
|
||||||
return 1 if ends_with_digit else 0
|
return 1 if ends_with_digit else 0
|
||||||
elif crit_value == self.LONGEST_PATH:
|
|
||||||
return len(str(dupe.folder_path)) * -1
|
|
||||||
elif crit_value == self.SHORTEST_PATH:
|
|
||||||
return len(str(dupe.folder_path))
|
|
||||||
else:
|
else:
|
||||||
value = len(value)
|
value = len(value)
|
||||||
if crit_value == self.LONGEST:
|
if crit_value == self.LONGEST:
|
||||||
@@ -138,8 +130,6 @@ class FilenameCategory(CriterionCategory):
|
|||||||
self.DOESNT_END_WITH_NUMBER,
|
self.DOESNT_END_WITH_NUMBER,
|
||||||
self.LONGEST,
|
self.LONGEST,
|
||||||
self.SHORTEST,
|
self.SHORTEST,
|
||||||
self.LONGEST_PATH,
|
|
||||||
self.SHORTEST_PATH,
|
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ msgstr "Размеры"
|
|||||||
|
|
||||||
#: core\pe\result_table.py:21 core\se\result_table.py:21
|
#: core\pe\result_table.py:21 core\se\result_table.py:21
|
||||||
msgid "Size (KB)"
|
msgid "Size (KB)"
|
||||||
msgstr "Размер (КБ)"
|
msgstr "Размер (кБ)"
|
||||||
|
|
||||||
#: core\pe\result_table.py:24
|
#: core\pe\result_table.py:24
|
||||||
msgid "EXIF Timestamp"
|
msgid "EXIF Timestamp"
|
||||||
|
|||||||
@@ -100,15 +100,15 @@ msgstr ""
|
|||||||
|
|
||||||
#: core\app.py:469
|
#: core\app.py:469
|
||||||
msgid "Select a directory to copy marked files to"
|
msgid "Select a directory to copy marked files to"
|
||||||
msgstr "Выберите каталог, в который вы хотите скопировать отмеченные файлы"
|
msgstr "Выберите каталог, в который Вы хотите скопировать отмеченные файлы"
|
||||||
|
|
||||||
#: core\app.py:471
|
#: core\app.py:471
|
||||||
msgid "Select a directory to move marked files to"
|
msgid "Select a directory to move marked files to"
|
||||||
msgstr "Выберите каталог, в который вы хотите переместить отмеченные файлы"
|
msgstr "Выберите каталог для перемещения отмеченных файлов"
|
||||||
|
|
||||||
#: core\app.py:510
|
#: core\app.py:510
|
||||||
msgid "Select a destination for your exported CSV"
|
msgid "Select a destination for your exported CSV"
|
||||||
msgstr "Выберите назначение для экспортируемого "
|
msgstr "Выберите назначение для Вашего экспортируемого CSV"
|
||||||
|
|
||||||
#: core\app.py:516 core\app.py:777 core\app.py:787
|
#: core\app.py:516 core\app.py:777 core\app.py:787
|
||||||
msgid "Couldn't write to file: {}"
|
msgid "Couldn't write to file: {}"
|
||||||
@@ -124,7 +124,7 @@ msgstr "Вы собираетесь удалить %d файлов из резу
|
|||||||
|
|
||||||
#: core\app.py:749
|
#: core\app.py:749
|
||||||
msgid "{} duplicate groups were changed by the re-prioritization."
|
msgid "{} duplicate groups were changed by the re-prioritization."
|
||||||
msgstr "{} групп дубликатов было изменено при реприоритезации."
|
msgstr "{} групп дубликатов было изменено при обновлении приоритета."
|
||||||
|
|
||||||
#: core\app.py:797
|
#: core\app.py:797
|
||||||
msgid "The selected directories contain no scannable file."
|
msgid "The selected directories contain no scannable file."
|
||||||
@@ -136,7 +136,7 @@ msgstr "Сбор файлов для сканирования"
|
|||||||
|
|
||||||
#: core\app.py:863
|
#: core\app.py:863
|
||||||
msgid "%s (%d discarded)"
|
msgid "%s (%d discarded)"
|
||||||
msgstr "%s. (%d отменено)"
|
msgstr "%s (%d отменено)"
|
||||||
|
|
||||||
#: core\directories.py:191
|
#: core\directories.py:191
|
||||||
msgid "Collected {} files to scan"
|
msgid "Collected {} files to scan"
|
||||||
@@ -148,7 +148,7 @@ msgstr "Собрано {} каталогов для сканирования"
|
|||||||
|
|
||||||
#: core\engine.py:27
|
#: core\engine.py:27
|
||||||
msgid "%d matches found from %d groups"
|
msgid "%d matches found from %d groups"
|
||||||
msgstr "Найдено %d совпадений из %d групп"
|
msgstr "%d совпадений найдено из %d групп"
|
||||||
|
|
||||||
#: core\gui\deletion_options.py:71
|
#: core\gui\deletion_options.py:71
|
||||||
msgid "You are sending {} file(s) to the Trash."
|
msgid "You are sending {} file(s) to the Trash."
|
||||||
@@ -262,3 +262,4 @@ msgstr "Почти готово! Вожусь с результатами..."
|
|||||||
#: core\se\scanner.py:18
|
#: core\se\scanner.py:18
|
||||||
msgid "Folders"
|
msgid "Folders"
|
||||||
msgstr "Папки"
|
msgstr "Папки"
|
||||||
|
|
||||||
|
|||||||
@@ -93,7 +93,7 @@ msgid ""
|
|||||||
"Instead of sending files to trash, delete them directly. This option is "
|
"Instead of sending files to trash, delete them directly. This option is "
|
||||||
"usually used as a workaround when the normal deletion method doesn't work."
|
"usually used as a workaround when the normal deletion method doesn't work."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Удалить файлы с диска вместо отправки в Корзину. Используйте если нормальный"
|
"Удалить файлы с диска вместо отправки в Корзину. Используйте, если нормальный "
|
||||||
"метод удаления не работает."
|
"метод удаления не работает."
|
||||||
|
|
||||||
#: qt/deletion_options.py:59 cocoa/en.lproj/Localizable.strings:0
|
#: qt/deletion_options.py:59 cocoa/en.lproj/Localizable.strings:0
|
||||||
@@ -189,7 +189,7 @@ msgstr "Несохранённые результаты"
|
|||||||
|
|
||||||
#: qt/directories_dialog.py:231 cocoa/en.lproj/Localizable.strings:0
|
#: qt/directories_dialog.py:231 cocoa/en.lproj/Localizable.strings:0
|
||||||
msgid "You have unsaved results, do you really want to quit?"
|
msgid "You have unsaved results, do you really want to quit?"
|
||||||
msgstr "Имеются несохранённые результаты, вы действительно хотите выйти?"
|
msgstr "Имеются несохранённые результаты, Вы действительно хотите выйти?"
|
||||||
|
|
||||||
#: qt/directories_dialog.py:239 cocoa/en.lproj/Localizable.strings:0
|
#: qt/directories_dialog.py:239 cocoa/en.lproj/Localizable.strings:0
|
||||||
msgid "Select a folder to add to the scanning list"
|
msgid "Select a folder to add to the scanning list"
|
||||||
@@ -213,7 +213,7 @@ msgstr "Начать новую проверку"
|
|||||||
|
|
||||||
#: qt/directories_dialog.py:279 cocoa/en.lproj/Localizable.strings:0
|
#: qt/directories_dialog.py:279 cocoa/en.lproj/Localizable.strings:0
|
||||||
msgid "You have unsaved results, do you really want to continue?"
|
msgid "You have unsaved results, do you really want to continue?"
|
||||||
msgstr "Имеются несохранённые результаты, вы действительно хотите продолжить?"
|
msgstr "Имеются несохранённые результаты, Вы действительно хотите продолжить?"
|
||||||
|
|
||||||
#: qt/directories_model.py:23 cocoa/en.lproj/Localizable.strings:0
|
#: qt/directories_model.py:23 cocoa/en.lproj/Localizable.strings:0
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
@@ -256,7 +256,7 @@ msgstr "Теги для проверки:"
|
|||||||
|
|
||||||
#: qt/me/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
#: qt/me/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||||
msgid "Track"
|
msgid "Track"
|
||||||
msgstr "Трек"
|
msgstr "Дорожка"
|
||||||
|
|
||||||
#: qt/me/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
#: qt/me/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||||
msgid "Artist"
|
msgid "Artist"
|
||||||
@@ -323,7 +323,7 @@ msgstr "Уровень фильтрации:"
|
|||||||
|
|
||||||
#: qt/preferences_dialog.py:69
|
#: qt/preferences_dialog.py:69
|
||||||
msgid "More Results"
|
msgid "More Results"
|
||||||
msgstr "Дополнительные результаты"
|
msgstr "Больше результатов"
|
||||||
|
|
||||||
#: qt/preferences_dialog.py:74
|
#: qt/preferences_dialog.py:74
|
||||||
msgid "Fewer Results"
|
msgid "Fewer Results"
|
||||||
@@ -379,7 +379,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: qt/problem_dialog.py:33 cocoa/en.lproj/Localizable.strings:0
|
#: qt/problem_dialog.py:33 cocoa/en.lproj/Localizable.strings:0
|
||||||
msgid "Problems!"
|
msgid "Problems!"
|
||||||
msgstr "Проблемка!"
|
msgstr "Проблема!"
|
||||||
|
|
||||||
#: qt/problem_dialog.py:37 cocoa/en.lproj/Localizable.strings:0
|
#: qt/problem_dialog.py:37 cocoa/en.lproj/Localizable.strings:0
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -409,15 +409,15 @@ msgstr "Показать значения разницы"
|
|||||||
|
|
||||||
#: qt/result_window.py:60
|
#: qt/result_window.py:60
|
||||||
msgid "Send Marked to Recycle Bin..."
|
msgid "Send Marked to Recycle Bin..."
|
||||||
msgstr "Переместить отмеченные в Корзину…"
|
msgstr "Переместить отмеченные в Корзину..."
|
||||||
|
|
||||||
#: qt/result_window.py:61 cocoa/en.lproj/Localizable.strings:0
|
#: qt/result_window.py:61 cocoa/en.lproj/Localizable.strings:0
|
||||||
msgid "Move Marked to..."
|
msgid "Move Marked to..."
|
||||||
msgstr "Переместить отмеченные в…"
|
msgstr "Переместить отмеченные в..."
|
||||||
|
|
||||||
#: qt/result_window.py:62 cocoa/en.lproj/Localizable.strings:0
|
#: qt/result_window.py:62 cocoa/en.lproj/Localizable.strings:0
|
||||||
msgid "Copy Marked to..."
|
msgid "Copy Marked to..."
|
||||||
msgstr "Скопировать отмеченные в…"
|
msgstr "Скопировать отмеченные в..."
|
||||||
|
|
||||||
#: qt/result_window.py:63 cocoa/en.lproj/Localizable.strings:0
|
#: qt/result_window.py:63 cocoa/en.lproj/Localizable.strings:0
|
||||||
msgid "Remove Marked from Results"
|
msgid "Remove Marked from Results"
|
||||||
@@ -477,7 +477,7 @@ msgstr "Экспорт в CSV"
|
|||||||
|
|
||||||
#: qt/result_window.py:89 cocoa/en.lproj/Localizable.strings:0
|
#: qt/result_window.py:89 cocoa/en.lproj/Localizable.strings:0
|
||||||
msgid "Save Results..."
|
msgid "Save Results..."
|
||||||
msgstr "Сохранить результаты…"
|
msgstr "Сохранить результаты..."
|
||||||
|
|
||||||
#: qt/result_window.py:90 cocoa/en.lproj/Localizable.strings:0
|
#: qt/result_window.py:90 cocoa/en.lproj/Localizable.strings:0
|
||||||
msgid "Invoke Custom Command"
|
msgid "Invoke Custom Command"
|
||||||
@@ -509,15 +509,15 @@ msgstr "Значения разницы"
|
|||||||
|
|
||||||
#: qt/result_window.py:310 cocoa/en.lproj/Localizable.strings:0
|
#: qt/result_window.py:310 cocoa/en.lproj/Localizable.strings:0
|
||||||
msgid "Select a file to save your results to"
|
msgid "Select a file to save your results to"
|
||||||
msgstr "Выберите файл, чтобы сохранить ваши результаты"
|
msgstr "Выберите файл для сохранения Ваших результатов"
|
||||||
|
|
||||||
#: qt/se/preferences_dialog.py:41
|
#: qt/se/preferences_dialog.py:41
|
||||||
msgid "Ignore files smaller than"
|
msgid "Ignore files smaller than"
|
||||||
msgstr "Игнорировать файлы меньше чем"
|
msgstr "Игнорировать файлы меньше, чем"
|
||||||
|
|
||||||
#: qt/se/preferences_dialog.py:52 cocoa/en.lproj/Localizable.strings:0
|
#: qt/se/preferences_dialog.py:52 cocoa/en.lproj/Localizable.strings:0
|
||||||
msgid "KB"
|
msgid "KB"
|
||||||
msgstr "КБ"
|
msgstr "кБ"
|
||||||
|
|
||||||
#: cocoa/en.lproj/Localizable.strings:0
|
#: cocoa/en.lproj/Localizable.strings:0
|
||||||
msgid "%@ Results"
|
msgid "%@ Results"
|
||||||
@@ -549,7 +549,7 @@ msgstr "Все на передний план"
|
|||||||
|
|
||||||
#: cocoa/en.lproj/Localizable.strings:0
|
#: cocoa/en.lproj/Localizable.strings:0
|
||||||
msgid "Check for update..."
|
msgid "Check for update..."
|
||||||
msgstr "Проверка обновлений…"
|
msgstr "Проверка обновлений..."
|
||||||
|
|
||||||
#: cocoa/en.lproj/Localizable.strings:0
|
#: cocoa/en.lproj/Localizable.strings:0
|
||||||
msgid "Close Window"
|
msgid "Close Window"
|
||||||
@@ -626,7 +626,7 @@ msgstr "Уровень фильтрации:"
|
|||||||
|
|
||||||
#: cocoa/en.lproj/Localizable.strings:0
|
#: cocoa/en.lproj/Localizable.strings:0
|
||||||
msgid "Filter Results..."
|
msgid "Filter Results..."
|
||||||
msgstr "Отфильтровать результаты…"
|
msgstr "Отфильтровать результаты..."
|
||||||
|
|
||||||
#: cocoa/en.lproj/Localizable.strings:0
|
#: cocoa/en.lproj/Localizable.strings:0
|
||||||
msgid "Folder Selection Window"
|
msgid "Folder Selection Window"
|
||||||
@@ -646,11 +646,11 @@ msgstr "Скрыть остальные"
|
|||||||
|
|
||||||
#: cocoa/en.lproj/Localizable.strings:0
|
#: cocoa/en.lproj/Localizable.strings:0
|
||||||
msgid "Ignore files smaller than:"
|
msgid "Ignore files smaller than:"
|
||||||
msgstr "Пропускать файлы меньше чем:"
|
msgstr "Пропускать файлы меньше, чем:"
|
||||||
|
|
||||||
#: cocoa/en.lproj/Localizable.strings:0
|
#: cocoa/en.lproj/Localizable.strings:0
|
||||||
msgid "Load from file..."
|
msgid "Load from file..."
|
||||||
msgstr "Загрузить из файла…"
|
msgstr "Загрузить из файла..."
|
||||||
|
|
||||||
#: cocoa/en.lproj/Localizable.strings:0
|
#: cocoa/en.lproj/Localizable.strings:0
|
||||||
msgid "Minimize"
|
msgid "Minimize"
|
||||||
@@ -674,7 +674,7 @@ msgstr "Вставить"
|
|||||||
|
|
||||||
#: cocoa/en.lproj/Localizable.strings:0
|
#: cocoa/en.lproj/Localizable.strings:0
|
||||||
msgid "Preferences..."
|
msgid "Preferences..."
|
||||||
msgstr "Настройки…"
|
msgstr "Настройки..."
|
||||||
|
|
||||||
#: cocoa/en.lproj/Localizable.strings:0
|
#: cocoa/en.lproj/Localizable.strings:0
|
||||||
msgid "Quick Look"
|
msgid "Quick Look"
|
||||||
@@ -686,7 +686,7 @@ msgstr "Выйти из dupeGuru"
|
|||||||
|
|
||||||
#: cocoa/en.lproj/Localizable.strings:0
|
#: cocoa/en.lproj/Localizable.strings:0
|
||||||
msgid "Reset to Default"
|
msgid "Reset to Default"
|
||||||
msgstr "Восстановить значения по умолчанию"
|
msgstr "Восстановить значение по умолчанию"
|
||||||
|
|
||||||
#: cocoa/en.lproj/Localizable.strings:0
|
#: cocoa/en.lproj/Localizable.strings:0
|
||||||
msgid "Reset To Defaults"
|
msgid "Reset To Defaults"
|
||||||
@@ -706,7 +706,7 @@ msgstr "Выбрать все"
|
|||||||
|
|
||||||
#: cocoa/en.lproj/Localizable.strings:0
|
#: cocoa/en.lproj/Localizable.strings:0
|
||||||
msgid "Send Marked to Trash..."
|
msgid "Send Marked to Trash..."
|
||||||
msgstr "Переместить отмеченные в Корзину…"
|
msgstr "Переместить отмеченные в Корзину..."
|
||||||
|
|
||||||
#: cocoa/en.lproj/Localizable.strings:0
|
#: cocoa/en.lproj/Localizable.strings:0
|
||||||
msgid "Services"
|
msgid "Services"
|
||||||
@@ -754,11 +754,11 @@ msgstr "Выберите файл каталогов для загрузки"
|
|||||||
|
|
||||||
#: qt\directories_dialog.py:338
|
#: qt\directories_dialog.py:338
|
||||||
msgid "dupeGuru Results (*.dupegurudirs)"
|
msgid "dupeGuru Results (*.dupegurudirs)"
|
||||||
msgstr "Каталоги dupeGuru (*.dupegurudirs)"
|
msgstr "Результаты dupeGuru (*.dupegurudirs)"
|
||||||
|
|
||||||
#: qt\directories_dialog.py:347
|
#: qt\directories_dialog.py:347
|
||||||
msgid "Select a file to save your directories to"
|
msgid "Select a file to save your directories to"
|
||||||
msgstr "Выберите файл для сохранения каталогов"
|
msgstr "Выберите файл для сохранения Ваших каталогов"
|
||||||
|
|
||||||
#: qt\directories_dialog.py:348
|
#: qt\directories_dialog.py:348
|
||||||
msgid "dupeGuru Directories (*.dupegurudirs)"
|
msgid "dupeGuru Directories (*.dupegurudirs)"
|
||||||
@@ -835,7 +835,7 @@ msgstr "Переопределить значки темы на панели и
|
|||||||
#: qt\pe\preferences_dialog.py:58
|
#: qt\pe\preferences_dialog.py:58
|
||||||
msgid ""
|
msgid ""
|
||||||
"Use our own internal icons instead of those provided by the theme engine"
|
"Use our own internal icons instead of those provided by the theme engine"
|
||||||
msgstr "Используйте внутренние значки вместо значков, встроенных в тему"
|
msgstr "Использовать наши внутренние значки вместо значков, встроенных в тему"
|
||||||
|
|
||||||
#: qt\pe\preferences_dialog.py:66
|
#: qt\pe\preferences_dialog.py:66
|
||||||
msgid "Show scrollbars in image viewers"
|
msgid "Show scrollbars in image viewers"
|
||||||
@@ -965,7 +965,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: qt\se\preferences_dialog.py:68
|
#: qt\se\preferences_dialog.py:68
|
||||||
msgid "Ignore files larger than"
|
msgid "Ignore files larger than"
|
||||||
msgstr "Игнорировать файлы больше чем"
|
msgstr "Игнорировать файлы больше, чем"
|
||||||
|
|
||||||
#: qt\app.py:135 qt\app.py:293
|
#: qt\app.py:135 qt\app.py:293
|
||||||
msgid "Clear Cache"
|
msgid "Clear Cache"
|
||||||
@@ -981,7 +981,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: qt\app.py:299
|
#: qt\app.py:299
|
||||||
msgid "Cache cleared."
|
msgid "Cache cleared."
|
||||||
msgstr "Кэш очищен "
|
msgstr "Кэш очищен."
|
||||||
|
|
||||||
#: qt\preferences_dialog.py:173
|
#: qt\preferences_dialog.py:173
|
||||||
msgid "Use dark style"
|
msgid "Use dark style"
|
||||||
@@ -994,8 +994,7 @@ msgstr "Сохранить профиль сканирования"
|
|||||||
#: qt\preferences_dialog.py:242
|
#: qt\preferences_dialog.py:242
|
||||||
msgid "Profile the scan operation and save logs for optimization."
|
msgid "Profile the scan operation and save logs for optimization."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"В папке установленной или портативной программы, есть папка Data в которую "
|
"Настройте операцию сканирования и сохраните журналы для оптимизации."
|
||||||
"сохраняется логи и файл с раширением *.profile для оптимизации."
|
|
||||||
|
|
||||||
#: qt\preferences_dialog.py:246
|
#: qt\preferences_dialog.py:246
|
||||||
msgid "Logs located in: <a href=\"{}\">{}</a>"
|
msgid "Logs located in: <a href=\"{}\">{}</a>"
|
||||||
@@ -1023,11 +1022,11 @@ msgstr "Под лицензией GPLv3"
|
|||||||
|
|
||||||
#: qt\about_box.py:68
|
#: qt\about_box.py:68
|
||||||
msgid "No update available."
|
msgid "No update available."
|
||||||
msgstr "У вас самая свежая версия"
|
msgstr "Обновления недоступны."
|
||||||
|
|
||||||
#: qt\about_box.py:71
|
#: qt\about_box.py:71
|
||||||
msgid "New version {} available, download <a href=\"{}\">here</a>."
|
msgid "New version {} available, download <a href=\"{}\">here</a>."
|
||||||
msgstr "Обнаружена новая {} версия, загружать <a href=\"{}\">тут</a>."
|
msgstr "Обнаружена новая {} версия, загрузить <a href=\"{}\">тут</a>."
|
||||||
|
|
||||||
#: qt\error_report_dialog.py:50
|
#: qt\error_report_dialog.py:50
|
||||||
msgid "Error Report"
|
msgid "Error Report"
|
||||||
|
|||||||
@@ -1,86 +1,9 @@
|
|||||||
[build-system]
|
[build-system]
|
||||||
requires = ["setuptools >= 75.3.1"]
|
requires = ["setuptools"]
|
||||||
build-backend = "setuptools.build_meta"
|
build-backend = "setuptools.build_meta"
|
||||||
|
|
||||||
[project]
|
|
||||||
name = "dupeGuru"
|
|
||||||
description = "dupeGuru is a tool to find duplicate files on your computer."
|
|
||||||
authors = [
|
|
||||||
{name = "Andrew Senetar", email = "arsenetar@voltaicideas.net"}
|
|
||||||
]
|
|
||||||
readme = "README.md"
|
|
||||||
license = "GPL-3.0-or-later"
|
|
||||||
license-files = ["LICENSE"]
|
|
||||||
keywords = ["deduplication"]
|
|
||||||
classifiers = [
|
|
||||||
"Development Status :: 5 - Production/Stable",
|
|
||||||
"Intended Audience :: End Users/Desktop",
|
|
||||||
"Operating System :: MacOS :: MacOS X",
|
|
||||||
"Operating System :: Microsoft :: Windows",
|
|
||||||
"Operating System :: POSIX",
|
|
||||||
"Programming Language :: Python :: 3 :: Only",
|
|
||||||
"Programming Language :: Python :: 3.7",
|
|
||||||
"Programming Language :: Python :: 3.8",
|
|
||||||
"Programming Language :: Python :: 3.9",
|
|
||||||
"Programming Language :: Python :: 3.10",
|
|
||||||
"Programming Language :: Python :: 3.11",
|
|
||||||
"Programming Language :: Python :: 3.12",
|
|
||||||
"Topic :: Desktop Environment :: File Managers",
|
|
||||||
]
|
|
||||||
requires-python = ">=3.7, <3.13"
|
|
||||||
|
|
||||||
dynamic = ["version"]
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
"distro>=1.8.0,<2.0.0",
|
|
||||||
"mutagen>=1.46.0,<2.0.0",
|
|
||||||
"polib>=1.1.0,<2.0.0",
|
|
||||||
"PyQt5 >=5.15.0,<6.0; sys_platform != 'linux'",
|
|
||||||
"pywin32>=304; sys_platform == 'win32'",
|
|
||||||
"semantic-version>=2.0.0,<3.0.0",
|
|
||||||
"Send2Trash>=1.8.2",
|
|
||||||
"xxhash>=3.0.0,<4.0.0",
|
|
||||||
]
|
|
||||||
|
|
||||||
[project.optional-dependencies]
|
|
||||||
dev = [
|
|
||||||
"pytest>=7,<8",
|
|
||||||
"flake8",
|
|
||||||
"black",
|
|
||||||
]
|
|
||||||
build = [
|
|
||||||
"dupeGuru[dev]",
|
|
||||||
"sphinx>=5.3.0,<8.0.0",
|
|
||||||
"pyinstaller>=5.6,<6.0; sys_platform != 'linux'"
|
|
||||||
]
|
|
||||||
|
|
||||||
[project.urls]
|
|
||||||
Homepage = "https://dupeguru.voltaicideas.net/"
|
|
||||||
Documentation = "https://dupeguru.voltaicideas.net/help/en/"
|
|
||||||
Repository = "https://github.com/arsenetar/dupeguru.git"
|
|
||||||
Issues = "https://github.com/arsenetar/dupeguru/issues"
|
|
||||||
Releases = "https://github.com/arsenetar/dupeguru/releases"
|
|
||||||
|
|
||||||
[project.gui-scripts]
|
|
||||||
dupeguru = "dupeguru.__main__:main"
|
|
||||||
|
|
||||||
[tool.black]
|
[tool.black]
|
||||||
line-length = 120
|
line-length = 120
|
||||||
|
|
||||||
[tool.isort]
|
[tool.isort]
|
||||||
# make it compatible with black
|
# make it compatible with black
|
||||||
profile = "black"
|
profile = "black"
|
||||||
skip_gitignore = true
|
skip_gitignore = true
|
||||||
|
|
||||||
[tool.setuptools.packages.find]
|
|
||||||
include = ["core", "hscommon", "qt"]
|
|
||||||
|
|
||||||
[tool.setuptools.dynamic]
|
|
||||||
version = {attr = "core.__version__"}
|
|
||||||
|
|
||||||
[tool.setuptools]
|
|
||||||
ext-modules = [
|
|
||||||
{name = "core.pe._block", sources = ["core/pe/modules/block.c", "core/pe/modules/common.c"], include-dirs = ["core/pe/modules"]},
|
|
||||||
{name = "core.pe._cache", sources = ["core/pe/modules/cache.c", "core/pe/modules/common.c"], include-dirs = ["core/pe/modules"]},
|
|
||||||
{name = "qt.pe._block_qt", sources = ["qt/pe/modules/block.c"]},
|
|
||||||
]
|
|
||||||
|
|||||||
4
requirements-extra.txt
Normal file
4
requirements-extra.txt
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
pytest>=7,<8
|
||||||
|
flake8
|
||||||
|
black
|
||||||
|
pyinstaller>=5.6,<6.0; sys_platform != 'linux'
|
||||||
9
requirements.txt
Normal file
9
requirements.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
distro>=1.8.0,<2.0.0
|
||||||
|
mutagen>=1.46.0,<2.0.0
|
||||||
|
polib>=1.1.0,<2.0.0
|
||||||
|
PyQt5 >=5.15.0,<6.0; sys_platform != 'linux'
|
||||||
|
pywin32>=304; sys_platform == 'win32'
|
||||||
|
semantic-version>=2.0.0,<3.0.0
|
||||||
|
Send2Trash>=1.8.2,<2.0.0
|
||||||
|
sphinx>=5.3.0,<8.0.0
|
||||||
|
xxhash>=3.0.0,<4.0.0
|
||||||
48
setup.cfg
Normal file
48
setup.cfg
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
[metadata]
|
||||||
|
name = dupeGuru
|
||||||
|
version = attr: core.__version__
|
||||||
|
url = https://github.com/arsenetar/dupeguru
|
||||||
|
project_urls =
|
||||||
|
Bug Reports = https://github.com/arsenetar/dupeguru/issues
|
||||||
|
author = Andrew Senetar
|
||||||
|
author_email = arsenetar@voltaicideas.net
|
||||||
|
license = GPLv3
|
||||||
|
license_files = license
|
||||||
|
description = dupeGuru is a tool to find duplicate files on your computer.
|
||||||
|
long_description = file:README.md
|
||||||
|
long_description_content_type = text/markdown
|
||||||
|
classifiers =
|
||||||
|
Development Status :: 5 - Production/Stable
|
||||||
|
Intended Audience :: End Users/Desktop
|
||||||
|
License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
||||||
|
Operating System :: MacOS :: MacOS X
|
||||||
|
Operating System :: Microsoft :: Windows
|
||||||
|
Operating System :: POSIX
|
||||||
|
Programming Language :: Python :: 3.7
|
||||||
|
Programming Language :: Python :: 3.8
|
||||||
|
Programming Language :: Python :: 3.9
|
||||||
|
Programming Language :: Python :: 3.10
|
||||||
|
Programming Language :: Python :: 3 :: Only
|
||||||
|
Topic :: Desktop Environment :: File Managers
|
||||||
|
|
||||||
|
[options]
|
||||||
|
packages = find:
|
||||||
|
python_requires = >=3.7
|
||||||
|
install_requires =
|
||||||
|
Send2Trash>=1.8.2,<2.0.0
|
||||||
|
mutagen>=1.46.0,<2.0.0
|
||||||
|
distro>=1.8.0,<2.0.0
|
||||||
|
PyQt5 >=5.15.0,<6.0; sys_platform != 'linux'
|
||||||
|
pywin32>=228; sys_platform == 'win32'
|
||||||
|
semantic-version>=2.0.0,<3.0.0
|
||||||
|
xxhash>=3.0.0,<4.0.0
|
||||||
|
setup_requires =
|
||||||
|
sphinx>=3.0.0
|
||||||
|
polib>=1.1.0
|
||||||
|
tests_require =
|
||||||
|
pytest >=6,<7
|
||||||
|
include_package_data = true
|
||||||
|
|
||||||
|
[options.entry_points]
|
||||||
|
console_scripts =
|
||||||
|
dupeguru = run.py
|
||||||
26
setup.py
Normal file
26
setup.py
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
from setuptools import setup, Extension
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
exts = [
|
||||||
|
Extension(
|
||||||
|
"core.pe._block",
|
||||||
|
[
|
||||||
|
str(Path("core", "pe", "modules", "block.c")),
|
||||||
|
str(Path("core", "pe", "modules", "common.c")),
|
||||||
|
],
|
||||||
|
include_dirs=[str(Path("core", "pe", "modules"))],
|
||||||
|
),
|
||||||
|
Extension(
|
||||||
|
"core.pe._cache",
|
||||||
|
[
|
||||||
|
str(Path("core", "pe", "modules", "cache.c")),
|
||||||
|
str(Path("core", "pe", "modules", "common.c")),
|
||||||
|
],
|
||||||
|
include_dirs=[str(Path("core", "pe", "modules"))],
|
||||||
|
),
|
||||||
|
Extension("qt.pe._block_qt", [str(Path("qt", "pe", "modules", "block.c"))]),
|
||||||
|
]
|
||||||
|
|
||||||
|
headers = [str(Path("core", "pe", "modules", "common.h"))]
|
||||||
|
|
||||||
|
setup(ext_modules=exts, headers=headers)
|
||||||
Reference in New Issue
Block a user