Ignore:
Timestamp:
Mar 19, 2014, 11:31:01 PM (11 years ago)
Author:
dmik
Message:

python: Merge vendor 2.7.6 to trunk.

Location:
python/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • python/trunk

  • python/trunk/Lib/timeit.py

    r2 r391  
    1010
    1111Command line usage:
    12     python timeit.py [-n N] [-r N] [-s S] [-t] [-c] [-h] [statement]
     12    python timeit.py [-n N] [-r N] [-s S] [-t] [-c] [-h] [--] [statement]
    1313
    1414Options:
     
    2020  -v/--verbose: print raw timing results; repeat for more digits precision
    2121  -h/--help: print this usage message and exit
     22  --: separate options from statement, use when statement starts with -
    2223  statement: statement to be timed (default 'pass')
    2324
     
    127128                setup = reindent(setup, 4)
    128129                src = template % {'stmt': stmt, 'setup': setup}
    129             elif callable(setup):
     130            elif hasattr(setup, '__call__'):
    130131                src = template % {'stmt': stmt, 'setup': '_setup()'}
    131132                ns['_setup'] = setup
     
    136137            exec code in globals(), ns
    137138            self.inner = ns["inner"]
    138         elif callable(stmt):
     139        elif hasattr(stmt, '__call__'):
    139140            self.src = None
    140141            if isinstance(setup, basestring):
     
    142143                def setup():
    143144                    exec _setup in globals(), ns
    144             elif not callable(setup):
     145            elif not hasattr(setup, '__call__'):
    145146                raise ValueError("setup is neither a string nor callable")
    146147            self.inner = _template_func(setup, stmt)
     
    191192        gcold = gc.isenabled()
    192193        gc.disable()
    193         timing = self.inner(it, self.timer)
    194         if gcold:
    195             gc.enable()
     194        try:
     195            timing = self.inner(it, self.timer)
     196        finally:
     197            if gcold:
     198                gc.enable()
    196199        return timing
    197200
Note: See TracChangeset for help on using the changeset viewer.