summaryrefslogtreecommitdiffstats
path: root/Tools/scripts/find-uname.py
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2010-12-30 17:22:33 (GMT)
committerGeorg Brandl <georg@python.org>2010-12-30 17:22:33 (GMT)
commit4cf83f4d128bd40ebe3b6e59ced4895f554d18de (patch)
treeccc6e4c3e03a711c45f4badf811314231d646d95 /Tools/scripts/find-uname.py
parentd1fc34d563a9fd06a78226b1bb4e56286c70e035 (diff)
downloadcpython-4cf83f4d128bd40ebe3b6e59ced4895f554d18de.zip
cpython-4cf83f4d128bd40ebe3b6e59ced4895f554d18de.tar.gz
cpython-4cf83f4d128bd40ebe3b6e59ced4895f554d18de.tar.bz2
Remove some of the old demos. (Put a few somewhere else.)
Diffstat (limited to 'Tools/scripts/find-uname.py')
-rwxr-xr-xTools/scripts/find-uname.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/Tools/scripts/find-uname.py b/Tools/scripts/find-uname.py
new file mode 100755
index 0000000..b6ec1b6
--- /dev/null
+++ b/Tools/scripts/find-uname.py
@@ -0,0 +1,40 @@
+#!/usr/bin/env python3
+
+"""
+For each argument on the command line, look for it in the set of all Unicode
+names. Arguments are treated as case-insensitive regular expressions, e.g.:
+
+ % find-uname 'small letter a$' 'horizontal line'
+ *** small letter a$ matches ***
+ LATIN SMALL LETTER A (97)
+ COMBINING LATIN SMALL LETTER A (867)
+ CYRILLIC SMALL LETTER A (1072)
+ PARENTHESIZED LATIN SMALL LETTER A (9372)
+ CIRCLED LATIN SMALL LETTER A (9424)
+ FULLWIDTH LATIN SMALL LETTER A (65345)
+ *** horizontal line matches ***
+ HORIZONTAL LINE EXTENSION (9135)
+"""
+
+import unicodedata
+import sys
+import re
+
+def main(args):
+ unicode_names = []
+ for ix in range(sys.maxunicode+1):
+ try:
+ unicode_names.append((ix, unicodedata.name(chr(ix))))
+ except ValueError: # no name for the character
+ pass
+ for arg in args:
+ pat = re.compile(arg, re.I)
+ matches = [(y,x) for (x,y) in unicode_names
+ if pat.search(y) is not None]
+ if matches:
+ print("***", arg, "matches", "***")
+ for match in matches:
+ print("%s (%d)" % match)
+
+if __name__ == "__main__":
+ main(sys.argv[1:])