code: def _parse_frde_bitext(fr_path, de_path):
      fr_sentences = read_sentences(fr_path)
      de_sentences = read_sentences(de_path)
      assert len(fr_sentences) == len(
          de_sentences
      ), "Sizes do not match: %d vs %d for %s vs %s." % (
          len(fr_sentences),
          len(de_sentences),
          fr_path,
          de_path,
      )
      for line_id, (s1, s2) in enumerate(
          zip(fr_sentences, de_sentences)
      ):
          yield line_id, {"fr": s1, "de": s2}
  
imports: import codecs
  import functools
  import gzip
  import itertools
  import os
  import re
  from typing import List
  from xml.etree import ElementTree
  from absl import logging
  from etils import epath
  from tensorflow_datasets.core.utils import tree_utils
  import tensorflow_datasets.public_api
label_desc: Use image node_id 4 for calling a global function with example usage: _parse_frde_bitext(fr_path, de_path) without return types