'Write `data` to `filename` or delete if empty
If `data` is non-empty, this routine is the same as ``write_file()``.
If `data` is empty but not ``None``, this is the same as calling
``delete_file(filename)`.  If `data` is ``None``, then this is a no-op
unless `filename` exists, in which case a warning is issued about the
orphaned file (if `force` is false), or deleted (if `force` is true).'

def write_or_delete_file(self, what, filename, data, force=False):

    if data:
        self.write_file(what, filename, data)
    elif os.path.exists(filename):
        if ((data is None) and (not force)):
            log.warn('%s    not    set    in    setup(),    but    %s    exists', what, filename)
            return
        else:
            self.delete_file(filename)
