docs: def duration(self, name):
          """Record the time it takes to run an arbitrary code block.
  
          :param str name: The field name to record the timing in
  
          This method returns a context manager that records the amount
          of time spent inside of the context, adding the timing to the
          measurement.
  
          """
          start = time.time()
          try:
              yield
          finally:
              self.set_field(name, max(time.time(), start) - start)