timedMacro: measure the execution time of a Macro

#!/usr/bin/env python

"""measures the execution time of another macro"""

from sardana.macroserver.macro import *
from sardana.macroserver.macro import macro
import time

class timedMacro(Macro):
    """
    measures the execution time of another macro, e.g.: 
      timedMacro 'ascan exp_dmy01 0 10 100 0.1'
    """
    
    param_def = [
       ['cmd', Type.String, None, "the command, in parentheses"],
       ['rest', Type.String, "Empty", "must be empty"],
    ]
    result_def = [[ "result", Type.Float, None, "the execution time" ]]

    def run(self, cmd, rest):
        
        self.writer = self.output
        if self.mwTest().getResult():
            self.writer = self.mwOutput

        if rest != "Empty":
            self.output( "timedMacro: supply the command as one token")
            return 0.
        lst = cmd.split( ' ')

        startTime = time.time()
        self.execMacro( lst)
        totalTime = time.time() - startTime
        return totalTime



2019-11-13