docs: def sandbox(cls, path):
          '''Ensures path exists before yielding, cleans up after'''
          # Ensure the path exists and is clean
          try:
              os.makedirs(path)
              logger.debug('Making %s' % path)
          except OSError:
              if not os.path.isdir(path):
                  raise
          finally:
              cls.clean(path)
          # Then yield, but make sure to clean up the directory afterwards
          try:
              yield
          finally:
              cls.clean(path)