code: def setup_py_source(self):  # type: () -> Optional[str]
          
          if not self.setup_source:
              self.setup_source = self._read_file("setup.py")
          if not self.setup_source:
              self.setup_source = self._read_file("setup")  # rare case
          return self.setup_source
docs: Read setup.py to string
          :return: