]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Tachyon: Fix unesecarry plural when there is a single file/sample (#142478)
authorStan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Tue, 9 Dec 2025 17:45:52 +0000 (17:45 +0000)
committerGitHub <noreply@github.com>
Tue, 9 Dec 2025 17:45:52 +0000 (17:45 +0000)
Lib/profiling/sampling/heatmap_collector.py

index e1454f0663a43952fdba75bd03ba4a581581db49..f705fbe3a32eb9285cdf340f78b40568700761ad 100644 (file)
@@ -335,12 +335,14 @@ class _HtmlRenderer:
             icon = '▶' if is_collapsed else '▼'
             content_style = ' style="display: none;"' if is_collapsed else ''
 
+            file_word = "file" if tree.count == 1 else "files"
+            sample_word = "sample" if tree.samples == 1 else "samples"
             section_html = f'''
 <div class="type-section">
   <div class="type-header" onclick="toggleTypeSection(this)">
     <span class="type-icon">{icon}</span>
     <span class="type-title">{type_names[module_type]}</span>
-    <span class="type-stats">({tree.count} files, {tree.samples:,} samples)</span>
+    <span class="type-stats">({tree.count} {file_word}, {tree.samples:,} {sample_word})</span>
   </div>
   <div class="type-content"{content_style}>
 '''
@@ -380,11 +382,14 @@ class _HtmlRenderer:
         parts = []
 
         # Render folder header (collapsed by default)
+        file_word = "file" if node.count == 1 else "files"
+        sample_word = "sample" if node.samples == 1 else "samples"
         parts.append(f'{indent}<div class="folder-node collapsed" data-level="{level}">')
         parts.append(f'{indent}  <div class="folder-header" onclick="toggleFolder(this)">')
         parts.append(f'{indent}    <span class="folder-icon">▶</span>')
         parts.append(f'{indent}    <span class="folder-name">📁 {html.escape(name)}</span>')
-        parts.append(f'{indent}    <span class="folder-stats">({node.count} files, {node.samples:,} samples)</span>')
+        parts.append(f'{indent}    <span class="folder-stats">'
+                     f'({node.count} {file_word}, {node.samples:,} {sample_word})</span>')
         parts.append(f'{indent}  </div>')
         parts.append(f'{indent}  <div class="folder-content" style="display: none;">')