File: compile_data.py

package info (click to toggle)
python-friendly-traceback 0.7.62%2Bgit20240811.d7dbff6-1.1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 9,264 kB
  • sloc: python: 21,500; makefile: 4
file content (46 lines) | stat: -rw-r--r-- 1,115 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
"""Docstring to be written"""

import pprint
import sys
import os

cur_dir = os.getcwd()
sys.path.append(os.path.join(cur_dir, ".."))
sys.path.append(os.path.join(cur_dir, "..", ".."))
import friendly_traceback

import catch_syntax_error

major = sys.version_info.major
minor = sys.version_info.minor

out_file = f"data_{major}_{minor}.py"

results = {"version": (major, minor)}


def _formatter(info, include=None):
    items = {"cause": None}
    for key in info:
        if key in ("message", "parsing_error_source", "cause"):
            if key in info:
                items[key] = info[key]

    return str(items)  # formatter expect a string


friendly_traceback.set_formatter(formatter=_formatter)

info = {}

for filename in catch_syntax_error.descriptions:
    try:
        exec("import %s" % filename)
    except Exception:
        friendly_traceback.explain_traceback(redirect="capture")
    out = eval(friendly_traceback.get_output())  # convert back to dict.
    info[filename] = out

with open(out_file, "w", encoding="utf8") as f:
    f.write("info = ")
    pprint.pprint(info, stream=f, width=100)