docs: def generate_confusables():
      """Generates the confusables JSON data file from the unicode specification.
  
      :return: True for success, raises otherwise.
      :rtype: bool
      """
      url = 'ftp://ftp.unicode.org/Public/security/latest/confusables.txt'
      file = get(url)
      confusables_matrix = defaultdict(list)
      match = re.compile(r'[0-9A-F ]+\s+;\s*[0-9A-F ]+\s+;\s*\w+\s*#'
                         r'\*?\s*\( (.+) → (.+) \) (.+) → (.+)\t#',
                         re.UNICODE)
      for line in file:
          p = re.findall(match, line)
          if p:
              char1, char2, name1, name2 = p[0]
              confusables_matrix[char1].append({
                  'c': char2,
                  'n': name2,
              })
              confusables_matrix[char2].append({
                  'c': char1,
                  'n': name1,
              })
  
      dump('confusables.json', dict(confusables_matrix))