From da04534343ef64649ec0f253f7d7baf987ad4421 Mon Sep 17 00:00:00 2001
From: Alice BRENON <alice.brenon@ens-lyon.fr>
Date: Thu, 21 Mar 2024 15:10:51 +0100
Subject: [PATCH] Expose label-trimming logic as a separate module for reuse

---
 GEODE/Visualisation/ConfusionMatrix.py | 13 ++-----------
 GEODE/Visualisation/__init__.py        |  1 +
 GEODE/__init__.py                      |  2 +-
 3 files changed, 4 insertions(+), 12 deletions(-)

diff --git a/GEODE/Visualisation/ConfusionMatrix.py b/GEODE/Visualisation/ConfusionMatrix.py
index af140f3..042ddca 100644
--- a/GEODE/Visualisation/ConfusionMatrix.py
+++ b/GEODE/Visualisation/ConfusionMatrix.py
@@ -1,20 +1,11 @@
 import argparse
 from GEODE.Store import prepare, tabular
+from GEODE.Visualisation.Legend import trim
 import matplotlib.pyplot as plot
 import pandas
 import seaborn
 from sklearn.metrics import confusion_matrix
 
-def trim(name, maxSize):
-    if len(name) > maxSize:
-        components = name.split(' ')
-        return components[0] + ' […]'
-    else:
-        return name
-
-def trimLabels(labels, maxWidth):
-    return labels if maxWidth is None else [trim(l, maxWidth) for l in labels]
-
 def heatmap(matrix, filePath, labels, **kwargs):
     plot.figure(figsize=(16,13))
     ax = seaborn.heatmap(
@@ -46,7 +37,7 @@ def prepareData(data, labels=None):
 def drawConfusionMatrix(data, outputFile, labels=None, maxWidth=None, **kwargs):
     truth, answers, labels = prepareData(data, labels=labels)
     matrix = confusion_matrix(truth, answers, labels=labels, normalize='true')
-    heatmap(matrix, outputFile, trimLabels(labels, maxWidth), **kwargs)
+    heatmap(matrix, outputFile, trim(labels, maxWidth), **kwargs)
 
 def getArgs(arguments):
     cli = argparse.ArgumentParser(
diff --git a/GEODE/Visualisation/__init__.py b/GEODE/Visualisation/__init__.py
index 981a917..2eb7bce 100644
--- a/GEODE/Visualisation/__init__.py
+++ b/GEODE/Visualisation/__init__.py
@@ -1,2 +1,3 @@
 from GEODE.Visualisation.ConfusionMatrix import drawConfusionMatrix, heatmap
 from GEODE.Visualisation.DensityProfile import densityProfile, drawDensityProfile, plotDensity
+from GEODE.Visualisation.Legend import trim as legend
diff --git a/GEODE/__init__.py b/GEODE/__init__.py
index 563bce7..e7735f5 100644
--- a/GEODE/__init__.py
+++ b/GEODE/__init__.py
@@ -23,7 +23,7 @@ from GEODE.ENE import eneLabels
 from GEODE.Metadata import article, articleKey, paragraph, paragraphKey, \
         fromKey, relativePath, toKey, uid
 from GEODE.Store import corpus, Directory, SelfContained, tabular, toTSV
-from GEODE.Visualisation import densityProfile, heatmap
+from GEODE.Visualisation import densityProfile, heatmap, legend
 from GEODE.Visualisation.ConfusionMatrix import drawConfusionMatrixCLI
 from GEODE.Visualisation.DensityProfile import drawDensityProfileCLI
 
-- 
GitLab