code: def _iter_builder_names(
      ns2data_dir: Dict[str, List[epath.Path]],
  ) -> Iterator[str]:
      """Yields the `ns:name` dataset names."""
      FILTERED_DIRNAME = frozenset(
          ("downloads",)
      )  # pylint: disable=invalid-name
  
      def _is_valid_dataset_name(dataset_name: str) -> bool:
          return (
              dataset_name not in FILTERED_DIRNAME
              and naming.is_valid_dataset_name(dataset_name)
          )
  
      # For better performance, load all namespaces asynchronously
      def _get_builder_names_single_namespace(
          ns_name: str,
          data_dir: epath.Path,
      ) -> List[str]:
          # Note: `data_dir` might contain non-dataset folders, but checking
          # individual dataset would have significant performance drop, so
          # this is an acceptable trade-of.
          return [
              str(
                  naming.DatasetName(
                      namespace=ns_name, name=builder_dir.name
                  )
              )
              for builder_dir in _maybe_iterdir(data_dir)
              if _is_valid_dataset_name(builder_dir.name)
          ]
  
      with concurrent.futures.ThreadPoolExecutor(max_workers=10) as ex:
          builder_names_futures = []
          for ns_name, data_dirs in ns2data_dir.items():
              for data_dir in data_dirs:
                  future = ex.submit(
                      _get_builder_names_single_namespace,
                      ns_name,
                      data_dir,
                  )
                  builder_names_futures.append(future)
  
          for future in concurrent.futures.as_completed(
              builder_names_futures
          ):
              yield from future.result()
  
imports: import concurrent.futures
  import difflib
  import functools
  import os
  from typing import Any, Dict, FrozenSet, Iterable, Iterator, List, Type
  from absl import flags
  from absl import logging
  from etils import epath
  from tensorflow_datasets.core import dataset_builder
  from tensorflow_datasets.core import naming
  from tensorflow_datasets.core import read_only_builder
  from tensorflow_datasets.core import registered
  from tensorflow_datasets.core.community import register_base
  from tensorflow_datasets.core.utils import file_utils
  from tensorflow_datasets.core.utils.lazy_imports_utils import tensorflow
label_desc: Use image node_id 2 for calling a global function with example usage: _iter_builder_names(ns2data_dir) and returns: unknown, unknown