summaryrefslogtreecommitdiff
path: root/raphodo/utilities.py
diff options
context:
space:
mode:
authorAntoine Beaupré <anarcat@debian.org>2018-03-14 12:25:11 -0400
committerAntoine Beaupré <anarcat@debian.org>2018-03-14 12:25:11 -0400
commit19c038a39f39ca58ec9eda218f412856fa149fb4 (patch)
tree16bee584700903300b29518d9a7f0c6c3c916b50 /raphodo/utilities.py
parentd1098f6cc37c5b7b98a28470781f3c4dd5d046d5 (diff)
parent0a297829eaf3912c939e1b43a3ef6ddeb7607b38 (diff)
Merge tag 'upstream/0.9.9'
Upstream version 0.9.9
Diffstat (limited to 'raphodo/utilities.py')
-rw-r--r--raphodo/utilities.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/raphodo/utilities.py b/raphodo/utilities.py
index a70fb56..838709c 100644
--- a/raphodo/utilities.py
+++ b/raphodo/utilities.py
@@ -833,3 +833,36 @@ def arrow_locale() -> str:
return lang
except (ValueError, AttributeError):
return default
+
+
+def letters(x: int) -> str:
+ """
+ Return a letter representation of a positive number.
+
+ Adapted from algorithm at
+ http://en.wikipedia.org/wiki/Hexavigesimal
+
+ >>> letters(0)
+ 'a'
+ >>> letters(1)
+ 'b'
+ >>> letters(2)
+ 'c'
+ >>> letters(25)
+ 'z'
+ >>> letters(26)
+ 'aa'
+ >>> letters(27)
+ 'ab'
+ >>> letters(28)
+ 'ac'
+ """
+
+ v = ''
+ while x > 25:
+ r = x % 26
+ x = x // 26 - 1
+ v = string.ascii_lowercase[r] + v
+ v = string.ascii_lowercase[x] + v
+
+ return v