def METHOD_NAME(self):
    freqs = dict()
    res_name = None
    freq_file_exts = ["twr", "tws"]
    path = ""
    for ext in freq_file_exts:
        temp_path = os.path.join(
            self.out_dir, "impl", self.project_name + "_impl." + ext
        )
        if os.path.isfile(temp_path):
            path = temp_path
            break
    assert path, "Path to the timing report file is empty"
    with open(path, "r") as file:
        for line in file:
            line = line.strip()
            if "From" in line:
                res = line.split()
                res_name = res[1]
                freqs[res_name] = dict()
                freqs[res_name]['requested'] = float(res[8])
                line = next(file)
                res = line.split()
                freqs[res_name]['actual'] = float(res[8])
                freqs[res_name]['met'] = freqs[res_name]['actual'] > freqs[
                    res_name]['requested']
            if "Total N" in line:
                match = re.match(
                    "^Total.* *.(\d+\.\d+).* *.(\d+\.\d+).*", line
                )
                if match and res_name is not None:
                    setup_viol = float(match.groups()[0])
                    hold_viol = float(match.groups()[1])
                    freqs[res_name]['setup_violation'] = setup_viol
                    freqs[res_name]['hold_violation'] = hold_viol
    return freqs