Skip to content

Commit

Permalink
Improve character table generation
Browse files Browse the repository at this point in the history
  • Loading branch information
zensoup committed May 8, 2019
1 parent 61ba0db commit af0421e
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 36 deletions.
49 changes: 49 additions & 0 deletions generate_character_list.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
"""
Download the latest unicode tables from https://www.unicode.org and create a .txt file
containing all the names, blocks and character codes
"""


def main():
indices = []
blocks = []
with open("Blocks.txt", "r") as block_file:
for line in block_file.readlines():
if line.startswith("#"):
continue
l, name = line.split(";")
start, stop = l.split("..")
indices.append((int(start, 16), int(stop, 16)))
blocks.append(name.strip())

def locate_block(code):
for index, [start, stop] in enumerate(indices):
if code > stop:
continue
else:
if code >= start:
return index

with open("unicode_list.txt", "w") as target:
with open("Index.txt", "r") as names:
for line in names.readlines():
if line.startswith("#"):
continue
name, code = line.strip().split("\t")
try:
num = int(code, 16)
except ValueError:
print("could not convert " + code)
continue
index = locate_block(num)
if index is not None:
target.write(name + "\t" + code + "\t" + blocks[index] + "\n")
else:
print(
"Code " + str(num) + " not found in block, char: " + unichr(num)
)
target.write(name + "\t" + code + "\t" + "\n")


if __name__ == "__main__":
main()
36 changes: 0 additions & 36 deletions generate_master_file.py

This file was deleted.

0 comments on commit af0421e

Please sign in to comment.