summaryrefslogtreecommitdiff
path: root/git-gmi/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'git-gmi/utils.py')
-rw-r--r--git-gmi/utils.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/git-gmi/utils.py b/git-gmi/utils.py
new file mode 100644
index 0000000..c3dbd59
--- /dev/null
+++ b/git-gmi/utils.py
@@ -0,0 +1,17 @@
+import math
+
+
+def add_line_numbers(code: str) -> str:
+ lines = code.splitlines()
+ if not lines:
+ return code # empty anyway
+
+ # cannot use math.ceil() here bc lg100=2
+ max_digits = math.floor(math.log10(len(lines))) + 1
+
+ for n, l in enumerate(lines, 1):
+ digits_in_n = math.floor(math.log10(n)) + 1
+ spaces_before_number = max_digits - digits_in_n
+ lines[n - 1] = " " * spaces_before_number + str(n) + " " + l
+
+ return "\n".join(lines)