def read_morph_rules(file_path: str) -> Dict[str, Dict[str, str]]:
  """Reads the suffix substitution rules from the file.

  Note that the file can be edited manually or created from scratch by a
  different process, but it should be included in the package.

  Args:
    file_path: Path to file containing the morphology rules in the following
      format - PART_OF_SPEECH(SUFFIX1:SUBSTITION1,...,SUFFIX_N:SUBSTITUTION_N)

  Returns:
    Dictionary of part of speech to a dictionary of suffix substitutions
  """
  pos_to_morph_rules = {}
  with open(file_path) as fr:
    for line in fr:
      if not line.strip():
        continue
      pos, morphs = line.split("(")
      morphs = morphs[:-1]  # Remove trailing final paren
      pos_to_morph_rules[pos] = dict(
          suffix_pair.split(":")
          for suffix_pair in morphs.split(",")
          if "'" not in suffix_pair)
  return pos_to_morph_rules
Reads the suffix substitution rules from the file.

  Note that the file can be edited manually or created from scratch by a
  different process, but it should be included in the package.

  Args:
    file_path: Path to file containing the morphology rules in the following
      format - PART_OF_SPEECH(SUFFIX1:SUBSTITION1,...,SUFFIX_N:SUBSTITUTION_N)

  Returns:
    Dictionary of part of speech to a dictionary of suffix substitutions
  
language/wino_dict/create_new_words.py