'Return the source code of the file as a string.'

def source(self):

    if os.path.exists(self.filename):
        with open_source_file(self.filename) as f:
            return f.read()
    else:
        return '\n'.join(((tokens[0][1] if tokens else '') for tokens in self._iter_source_tokens()))
