@@ -83,28 +83,23 @@ def extract_metric_name(line):
83
83
return line .split ('{' )[0 ].strip ()
84
84
return line .strip ()
85
85
86
- def get_raw_diff_sample (raw_sections , max_lines = 7 ):
86
+ def get_raw_diff_sample (raw_lines , max_lines = 7 ):
87
87
"""
88
88
Get sample raw diff lines, preserving original diff formatting.
89
89
"""
90
- if not raw_sections :
90
+ if not raw_lines :
91
91
return []
92
92
93
- # Take first section and limit lines
94
- sample_lines = []
95
- for section in raw_sections [:1 ]: # Just take first section to keep it concise
96
- lines = section .split ('\n ' )
97
- for i , line in enumerate (lines ):
98
- if i >= max_lines :
99
- sample_lines .append ("..." )
100
- break
101
- sample_lines .append (line )
93
+ # Take up to max_lines
94
+ sample_lines = raw_lines [:max_lines ]
95
+ if len (raw_lines ) > max_lines :
96
+ sample_lines .append ("..." )
102
97
103
98
return sample_lines
104
99
105
- def generate_diff_summary (changes ):
100
+ def generate_diff_summary (changes , raw_diff_sections ):
106
101
"""
107
- Generates a markdown summary from the parsed diff changes with sample lines .
102
+ Generates a markdown summary from the parsed diff changes with raw diff samples .
108
103
"""
109
104
summary = ["## 📊 Metrics Diff Summary\n " ]
110
105
@@ -123,13 +118,13 @@ def generate_diff_summary(changes):
123
118
summary .append ("\n ### 🆕 Added Metrics" )
124
119
for metric , samples in changes ['added' ].items ():
125
120
summary .append (f"- `{ metric } ` ({ len (samples )} variants)" )
126
- sample_lines = get_sample_lines ( samples )
127
- if sample_lines :
121
+ raw_samples = get_raw_diff_sample ( raw_diff_sections . get ( metric , []) )
122
+ if raw_samples :
128
123
summary .append ("<details>" )
129
- summary .append ("<summary>View samples </summary>" )
124
+ summary .append ("<summary>View diff sample </summary>" )
130
125
summary .append ("" )
131
- summary .append ("```" )
132
- summary .extend (sample_lines )
126
+ summary .append ("```diff " )
127
+ summary .extend (raw_samples )
133
128
summary .append ("```" )
134
129
summary .append ("</details>" )
135
130
@@ -138,13 +133,13 @@ def generate_diff_summary(changes):
138
133
summary .append ("\n ### ❌ Removed Metrics" )
139
134
for metric , samples in changes ['removed' ].items ():
140
135
summary .append (f"- `{ metric } ` ({ len (samples )} variants)" )
141
- sample_lines = get_sample_lines ( samples )
142
- if sample_lines :
136
+ raw_samples = get_raw_diff_sample ( raw_diff_sections . get ( metric , []) )
137
+ if raw_samples :
143
138
summary .append ("<details>" )
144
- summary .append ("<summary>View samples </summary>" )
139
+ summary .append ("<summary>View diff sample </summary>" )
145
140
summary .append ("" )
146
- summary .append ("```" )
147
- summary .extend (sample_lines )
141
+ summary .append ("```diff " )
142
+ summary .extend (raw_samples )
148
143
summary .append ("```" )
149
144
summary .append ("</details>" )
150
145
@@ -156,31 +151,15 @@ def generate_diff_summary(changes):
156
151
summary .append (f" - Added variants: { len (versions ['added' ])} " )
157
152
summary .append (f" - Removed variants: { len (versions ['removed' ])} " )
158
153
159
- # Show samples of added variants
160
- if versions ['added' ]:
161
- added_samples = get_sample_lines (versions ['added' ], max_lines = 3 )
162
- if added_samples :
163
- summary .append (" - Sample added:" )
164
- summary .append (" <details>" )
165
- summary .append (" <summary>View added samples</summary>" )
166
- summary .append ("" )
167
- summary .append (" ```" )
168
- summary .extend ([f" { line } " for line in added_samples ])
169
- summary .append (" ```" )
170
- summary .append (" </details>" )
171
-
172
- # Show samples of removed variants
173
- if versions ['removed' ]:
174
- removed_samples = get_sample_lines (versions ['removed' ], max_lines = 3 )
175
- if removed_samples :
176
- summary .append (" - Sample removed:" )
177
- summary .append (" <details>" )
178
- summary .append (" <summary>View removed samples</summary>" )
179
- summary .append ("" )
180
- summary .append (" ```" )
181
- summary .extend ([f" { line } " for line in removed_samples ])
182
- summary .append (" ```" )
183
- summary .append (" </details>" )
154
+ raw_samples = get_raw_diff_sample (raw_diff_sections .get (metric , []))
155
+ if raw_samples :
156
+ summary .append (" <details>" )
157
+ summary .append (" <summary>View diff sample</summary>" )
158
+ summary .append ("" )
159
+ summary .append (" ```diff" )
160
+ summary .extend ([f" { line } " for line in raw_samples ])
161
+ summary .append (" ```" )
162
+ summary .append (" </details>" )
184
163
185
164
return "\n " .join (summary )
186
165
0 commit comments