docs: def version_by_eval(self, file_path):  # type: (str) ->Dict[str,str]
          """
          Version by ast evaluation. Didn't find more versions that existing methods
          :param file_path:
          :return:
          """
          source = self.file_opener.read_this(file_path)
          sb = "{"
          for line in source.split("\n"):
              if "=" in line:
                  parts = line.split("=")
                  sb += "'" + parts[0] + "':" + parts[1]
          sb += "}"
          if sb == "{}":
              return {}
          try:
              thing = ast.literal_eval(sb)
          except:
              return {}
          for version_token in dunder_version.version_tokens:
              if version_token in thing:
                  return {"literal_eval": thing[version_token]}
          return {}