Repository navigation
Expand file tree
/
Copy pathtest.py
More file actions
72 lines (57 loc) · 2.08 KB
/
Copy pathtest.py
File metadata and controls
72 lines (57 loc) · 2.08 KB
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import logging
import os
from json import dumps
from os.path import join
from typing import Any
from tree_diff import NgramListMatcher, diff_files, save_to_file
base_filename: str = os.environ.get("BASE_FILENAME", "")
compare_filename: str = os.environ.get("COMPARE_FILENAME", "")
output_directory: str = os.environ.get("OUTPUT_DIRECTORY", "")
log_level_name: str = os.environ.get("LOG_LEVEL", "WARNING").upper()
log_level = getattr(logging, log_level_name, None)
if not isinstance(log_level, int):
raise ValueError(
"LOG_LEVEL must be a valid Python logging level, e.g. DEBUG, INFO, WARNING, ERROR."
)
logging.basicConfig(level=log_level, format="%(levelname)s:%(name)s:%(message)s")
if not base_filename or not compare_filename or not output_directory:
raise ValueError(
"Set BASE_FILENAME, COMPARE_FILENAME, and OUTPUT_DIRECTORY in .env or the environment."
)
diffs: list[dict[str, Any]] = sorted(
diff_files(NgramListMatcher, base_filename, compare_filename),
key=lambda diff: dumps(diff, sort_keys=True, separators=(",", ":")),
)
save_to_file(
diffs,
join(output_directory, "diff_paths.json"),
keep=["diffs", "op", "path_base", "path_compare"],
)
save_to_file(
diffs,
join(output_directory, "diff_summary.json"),
keep=["diffs", "op", "path_base", "path_compare"],
)
save_to_file(
diffs,
join(output_directory, "diff_detailed.json"),
keep=["diffs", "op", "path_base", "path_compare", "value_base", "value_compare"],
)
# base_values = set(all_values(base))
# compare_values = set(all_values(compare))
# pairs = pair_arrays(base_values, compare_values)
# save_to_file(
# {
# "pairs": sorted(
# [pair for pair in pairs if pair[0] != pair[1]],
# key=lambda pair: pair[0],
# ),
# "base": sorted([*base_values]),
# "comp": sorted([*compare_values]),
# },
# f"{out_dir}pairs_halves.json",
# )
# 3055, 61-3072, 68-3081, 63-3081, 59-3112
# scores = diff_scores(base, compare)
# save_to_file(scores, f"{out_dir}out.json")
# pair_arrays_quick_ratio(base_values, compare_values)