MCPcopy
hub / github.com/commaai/openpilot / print_car_docs_diff

Function print_car_docs_diff

selfdrive/debug/print_docs_diff.py:60–113  ·  view source on GitHub ↗
(path)

Source from the content-addressed store, hash-verified

58
59
60def print_car_docs_diff(path):
61 base_car_docs = defaultdict(list)
62 new_car_docs = defaultdict(list)
63
64 for car in load_base_car_docs(path):
65 base_car_docs[car.car_fingerprint].append(car)
66 for car in get_all_car_docs():
67 new_car_docs[car.car_fingerprint].append(car)
68
69 # Add new platforms to base cars so we can detect additions and removals in one pass
70 base_car_docs.update({car: [] for car in new_car_docs if car not in base_car_docs})
71
72 changes = defaultdict(list)
73 for base_car_model, base_cars in base_car_docs.items():
74 # Match car info changes, and get additions and removals
75 new_cars = new_car_docs[base_car_model]
76 car_changes, car_additions, car_removals = match_cars(base_cars, new_cars)
77
78 # Removals
79 for car_docs in car_removals:
80 changes["removals"].append(format_row([car_docs.get_column(column, STAR_ICON, VIDEO_ICON, FOOTNOTE_TAG) for column in Column]))
81
82 # Additions
83 for car_docs in car_additions:
84 changes["additions"].append(format_row([car_docs.get_column(column, STAR_ICON, VIDEO_ICON, FOOTNOTE_TAG) for column in Column]))
85
86 for new_car, base_car in car_changes:
87 # Column changes
88 row_diff = build_column_diff(base_car, new_car)
89 if ARROW_SYMBOL in row_diff:
90 changes["column"].append(row_diff)
91
92 # Detail sentence changes
93 if base_car.detail_sentence != new_car.detail_sentence:
94 changes["detail"].append(f"- Sentence for {base_car.name} changed!\n" +
95 " ```diff\n" +
96 f" - {base_car.detail_sentence}\n" +
97 f" + {new_car.detail_sentence}\n" +
98 " ```")
99
100 # Print diff
101 if any(len(c) for c in changes.values()):
102 markdown_builder = ["### ⚠️ This PR makes changes to [CARS.md](../blob/master/docs/CARS.md) ⚠️"]
103
104 for title, category in (("## 🔀 Column Changes", "column"), ("## ❌ Removed", "removals"),
105 ("## ➕ Added", "additions"), ("## 📖 Detail Sentence Changes", "detail")):
106 if len(changes[category]):
107 markdown_builder.append(title)
108 if category not in ("detail",):
109 markdown_builder.append(COLUMNS)
110 markdown_builder.append(COLUMN_HEADER)
111 markdown_builder.extend(changes[category])
112
113 print("\n".join(markdown_builder))
114
115
116if __name__ == "__main__":

Callers 2

test_docs_diffMethod · 0.90
print_docs_diff.pyFile · 0.85

Calls 8

load_base_car_docsFunction · 0.85
match_carsFunction · 0.85
format_rowFunction · 0.85
build_column_diffFunction · 0.85
appendMethod · 0.80
itemsMethod · 0.80
joinMethod · 0.80
updateMethod · 0.45

Tested by 1

test_docs_diffMethod · 0.72