From 9b7a24d8ed2ac0524b4781e648f96e65b3a10702 Mon Sep 17 00:00:00 2001
From: abram axel booth <boothaa@gmail.com>
Date: Wed, 11 Dec 2024 16:01:16 -0500
Subject: [PATCH] fix: rendering numbers in csv/tsv

---
 trove/render/simple_csv.py | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/trove/render/simple_csv.py b/trove/render/simple_csv.py
index ed909212f..d3694aa71 100644
--- a/trove/render/simple_csv.py
+++ b/trove/render/simple_csv.py
@@ -77,10 +77,14 @@ def _row_values(self, osfmap_json: dict) -> list[str]:
         ]
 
     def _row_field_value(self, osfmap_json: dict, field_path: Jsonpath) -> str:
-        return _MULTIVALUE_DELIMITER.join(
+        _rendered_values = [
             _render_tabularly(_obj)
             for _obj in _iter_values(osfmap_json, field_path)
-        )
+        ]
+        if len(_rendered_values) == 1:
+            return _rendered_values[0]  # preserve type for single numbers
+        # for multiple values, can only be a string
+        return _MULTIVALUE_DELIMITER.join(map(str, _rendered_values))
 
 
 def _osfmap_jsonpath(iri_path: typing.Iterable[str]) -> Jsonpath: