code: def _hash_targets(
      targets: Iterable[Optional[str]],
      **kwargs: Any,
  ) -> int:
      return hash(
          (
              frozenset(targets),
              kwargs.get("with_deps", False),
              kwargs.get("recursive", False),
          )
      )
  
imports: import logging
  import time
  from collections import defaultdict
  from functools import partial
  from itertools import chain
  from typing import TYPE_CHECKING, Any, Callable, Dict, Iterable, Iterator, List, NamedTuple, Optional, Set, Tuple, Union
  from funcy.debug import format_time
  from dvc.dependency import ParamsDependency
  from dvc.fs import LocalFileSystem
  from dvc.fs.callbacks import DEFAULT_CALLBACK
  from dvc.log import logger
  from dvc.utils.objects import cached_property
label_desc: Use image node_id 25 for calling the Index obj's underlying member method code with example usage: obj._hash_targets(targets) and returns: hash