'A wrapper around the main loop of the utility which handles opening and
closing files.'

def run(self):

    if ('f' not in self.override_flags):
        self.input_file = self._open_input_file(self.args.input_path)
    try:
        self.main()
    finally:
        if ('f' not in self.override_flags):
            self.input_file.close()
