language-tags 0.0.2

Language tags for Rust
Documentation
import json

with open('registry.json') as f:
    registry = json.load(f)

def process_group(name):
    items = [v["Subtag"] for v in registry if v["Type"] == name and (len(v["Subtag"]) < 5 or name == "variant")]
    items.sort()
    with open("src/data/" + name + ".rs", "w") as o:
        o.write("enoom! {\n")
        o.write("    pub enum " + name.title() + ";\n")
        o.write("    " + name.upper() + "_KEYWORDS;\n")
        o.write("    Unregistered;\n")
        for item in items:
            if not item[0].isdigit():
                o.write("    " + item.title() + ', "' + item + '", "' + item.lower() + '";\n')
            elif name == "region":
                o.write("    R" + item.title() + ', "' + item + '", "' + item.lower() + '";\n')
            else:
                o.write("    V" + item.title() + ', "' + item + '", "' + item.lower() + '";\n')
        o.write("}\n")


process_group("extlang")
process_group("language")
process_group("region")
process_group("script")
process_group("variant")