4 from ui
.ascii
import ui_ascii
5 from ui
.curses
import ui_curses
6 from ui
.gtk
import ui_gtk
7 from core
.sigquit_traceback
import install_sigquit_traceback
9 def _ui_auto(options
, args
):
10 """Automatically choose the best available UI."""
11 if ui_gtk
.is_available():
12 return ui_gtk
.run(options
, args
)
14 if ui_curses
.is_available():
15 return ui_curses
.run(options
, args
)
17 if ui_ascii
.is_available():
18 return ui_ascii
.run(options
, args
)
20 print 'No UI available'
22 UI
= {'ascii': ui_ascii
.run
, 'curses': ui_curses
.run
,
23 'gtk': ui_gtk
.run
, 'auto': _ui_auto
}
26 install_sigquit_traceback()
27 parser
= optparse
.OptionParser(usage
='pysize [OPTIONS] DIRECTORY')
28 parser
.add_option('--ui', type='choice', choices
=UI
.keys(), default
='auto')
29 parser
.add_option('--max-depth', type='int', dest
='max_depth', default
=5)
30 (options
, args
) = parser
.parse_args()
32 print parser
.error('A single argument is expected')
34 UI
[options
.ui
](options
, args
)
40 cProfile
.run('_main()', 'pysize.prof')
41 stats
= pstats
.Stats('pysize.prof')
45 prof
= hotshot
.Profile('pysize.prof')
48 stats
= hotshot
.stats
.load('pysize.prof')
50 stats
.sort_stats('time', 'calls')
53 if __name__
== '__main__':
55 # Try to use psyco if available