#!/usr/bin/env python
# -*-coding: utf-8 -*-
# vim: sw=4 ts=4 expandtab ai
+# pylint: disable-msg=C0301
import gtk
import gobject
from sys import platform
try:
- import hildon; hildonFound = True
-except: ImportError
+ import hildon
+ hildonFound = True
+except ImportError:
hildonFound = False
try:
#langRU = gettext.translation('findit', sys.path[0], languages=['ru'])
langRU = gettext.translation('findit')
langRU.install()
-except: IOError
+except IOError:
# Закомментировать перед использованием pygettext
def _(text):
return text
# Функция которая возвращает строку из числа и единиц для столбца "Размер"("Size")
def size_convert(size):
+ """This function return string with file size in
+ b or Kb or Mb or Gb or Tb
+ """
for i, unit in enumerate(['%d b', '%.1f Kb', '%.2f Mb', '%.3f Gb', '%.4f Tb']):
if size < 1024**(i+1):
return unit % (size/1024.**i)
return '>1024 Tb'
# Функция поставляющая размер файла и путь к нему
-def filegetter(startpath, obj):
+def filegetter(startdir, obj):
+ """This function-generator return size
+ and path for all files in start directory
+ """
# Список игнорируемых каталогов:
ignore_dirs = ['/dev', '/proc', '/sys', '/mnt']
# Проходим по всем папкам вглубь от заданного пути
- for dirpath, dirnames, fnames in walk(startpath):
+ for dirpath, dirnames, fnames in walk(startdir):
# Исключаем каталоги из поиска в соответствии со списком исключений
for ign_dir in ignore_dirs[:]:
for dirname in dirnames[:]:
# Проверяем можем ли мы определить размер файла - иначе пропускаем его
try:
flsize = getsize(flpath)
- except: OSError
+ # Возвращаем размер и полный путь файла
+ yield flsize, flpath
+ except OSError:
continue
- # Возвращаем размер и полный путь файла
- yield flsize, flpath
# Fullscreen
def toggle_fullscreen(obj):
+ """This function switch and unswitch to fullscreen"""
if obj.fullscreen:
obj.window.unfullscreen()
else:
# Нажатие на кнопку клавиатуры
def on_key_press(obj, event):
+ """This function start then FullScreen button on N8xx pressed"""
if hildonFound and event.keyval == gtk.keysyms.F6:
toggle_fullscreen(obj)
### Properties dialog ##########################################################
class PropertiesDialog(gtk.Dialog):
+ """This class describe property window"""
def __init__(self, path, size, bytesize):
+ """Creating new object of PropertiesDialog class"""
gtk.Dialog.__init__(self)
self.set_title( _('File properties') )
self.set_transient_for(app)
### Main window ################################################################
class MainWindow(gtk.Window):
+ """This class describe main window of FindIT"""
# Окно сообщения заданного типа с заданным текстом
def mess_window(self, mestype, content):
+ """This function show popup message window"""
dialog = gtk.MessageDialog(parent=self, flags=gtk.DIALOG_MODAL,
type=mestype, buttons=gtk.BUTTONS_OK,
message_format=content)
# Функция выполняющаяся при нажатии на кнопку "Показать"
def start_print(self, widget):
+ """This function start then "Go" button pressed.
+ Starting file search.
+ """
self.start_path = self.srch_p_entr.get_text()
# Проверяем правильное ли значение введено
if isdir(self.start_path):
# кто увидит скажите - нужна статистика
try:
self.treestore.append(None, [fpath, size_convert(fsize), fsize])
- except: SystemError
+ except SystemError:
# print 'error', fpath, size_convert(fsize), fsize
self.mess_window('error','Error in %s' % fpath)
self.butt_start.set_sensitive(True)
# Функция выполняющаяся при нажатии на кнопку "Стоп"
def stop_print(self, widget):
+ """This function start then "Stop" button pressed.
+ Stoping file search.
+ """
self.stopit = True
# Функция выполняющаяся при нажатии на кнопку "Свойства файла"
def show_properties_dialog(self, *args):
+ """This function show property window"""
selection = self.treeview.get_selection()
(model, it) = selection.get_selected()
try:
path = model.get_value(it, 0)
size = model.get_value(it, 1)
bytesize = model.get_value(it, 2)
- except: TypeError, ValueError
+ except (TypeError, ValueError):
self.mess_window('error', _('Please select file') )
return
PropertiesDialog(path, size, bytesize)
### Window initialization ##################################################
def __init__(self, win_width, win_height, st_path):
+ """Creating new object of MainWindow class"""
# Создаем новое окно
gtk.Window.__init__(self)
self.set_default_size(win_width, win_height)
self.treeview.set_headers_visible(1)
self.treeview.connect('row-activated', self.show_properties_dialog)
- self.treestore.append(None, ['','', 0])
+ self.treestore.append(None, ['', '', 0])
# Создаем и настраиваем колонку с размером файла
size_col = gtk.TreeViewColumn( _('Size') )
self.add(main_Vbox)
def run(self):
+ """This function show main window of FindIT"""
self.show_all()
gtk.main()