summaryrefslogtreecommitdiffstats
path: root/share/extensions/text_randomcase.py
diff options
context:
space:
mode:
Diffstat (limited to 'share/extensions/text_randomcase.py')
-rwxr-xr-xshare/extensions/text_randomcase.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/share/extensions/text_randomcase.py b/share/extensions/text_randomcase.py
new file mode 100755
index 0000000..5a917ec
--- /dev/null
+++ b/share/extensions/text_randomcase.py
@@ -0,0 +1,32 @@
+#!/usr/bin/env python
+"""Randomise the case of the letters."""
+
+import random
+import inkex
+
+
+class RandomCase(inkex.TextExtension):
+ """Randomise the case of the text (with bias)"""
+
+ previous_case = 1
+
+ def map_char(self, char):
+ # bias the randomness towards inversion of the previous case:
+ # We use this weird way to get from a random set because
+ # python2 and python3 have different ways of seeding
+ if self.previous_case > 0:
+ case = [-2, -1, 1][int(random.random() * 3)]
+ else:
+ case = [-1, 1, 2][int(random.random() * 3)]
+
+ if char.isalpha():
+ self.previous_case = case
+ if case > 0:
+ return char.upper()
+ elif case < 0:
+ return char.lower()
+ return char
+
+
+if __name__ == "__main__":
+ RandomCase().run()