~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/commands.py

  • Committer: Robert Collins
  • Date: 2005-10-04 03:35:31 UTC
  • mfrom: (1393.1.30)
  • Revision ID: robertc@robertcollins.net-20051004033531-f057603b470ca4a2
merge from mpool

Show diffs side-by-side

added added

removed removed

Lines of Context:
24
24
# Those objects can specify the expected type of the argument, which
25
25
# would help with validation and shell completion.
26
26
 
27
 
 
28
 
# TODO: Help messages for options.
29
 
 
30
 
# TODO: Define arguments by objects, rather than just using names.
31
 
# Those objects can specify the expected type of the argument, which
32
 
# would help with validation and shell completion.
33
 
 
34
 
 
35
 
# TODO: Help messages for options.
36
 
 
37
 
# TODO: Define arguments by objects, rather than just using names.
38
 
# Those objects can specify the expected type of the argument, which
39
 
# would help with validation and shell completion.
40
 
 
41
 
 
 
27
# TODO: "--profile=cum", to change sort order.  Is there any value in leaving
 
28
# the profile output behind so it can be interactively examined?
42
29
 
43
30
import sys
44
31
import os
532
519
def apply_profiled(the_callable, *args, **kwargs):
533
520
    import hotshot
534
521
    import tempfile
 
522
    import hotshot.stats
535
523
    pffileno, pfname = tempfile.mkstemp()
536
524
    try:
537
525
        prof = hotshot.Profile(pfname)
539
527
            ret = prof.runcall(the_callable, *args, **kwargs) or 0
540
528
        finally:
541
529
            prof.close()
542
 
 
543
 
        import hotshot.stats
544
530
        stats = hotshot.stats.load(pfname)
545
 
        #stats.strip_dirs()
546
 
        stats.sort_stats('time')
 
531
        stats.strip_dirs()
 
532
        stats.sort_stats('cum')   # 'time'
547
533
        ## XXX: Might like to write to stderr or the trace file instead but
548
534
        ## print_stats seems hardcoded to stdout
549
535
        stats.print_stats(20)
550
 
 
551
536
        return ret
552
537
    finally:
553
538
        os.close(pffileno)