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.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/share/extensions/text_randomcase.py b/share/extensions/text_randomcase.py
new file mode 100755
index 0000000..208cade
--- /dev/null
+++ b/share/extensions/text_randomcase.py
@@ -0,0 +1,29 @@
+#!/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()