class_docstr: This contains the data structures to track the execution order. We track
  the pre-forward order on the *first* iteration for forward prefetching
  (which thus assumes static graph) and the post-forward order on *every*
  iteration for backward prefetching (which thus does not assume static
  graph but may be provide an incorrect order).
docstr: Returns the handle indices (i.e. indices into ``self.all_handles``)
  corresponding to the handles in ``handle``. An entry in the
  returned tuple is ``None`` if the handle is invalid.
docstr_tok: ["Returns","the","handle","indices","(","i.e",".","indices","into","``","self.all_handles","``",")","corresponding","to","the","handles","in","``","handle","``",".","An","entry","in","the","returned","tuple","is","``","None","``","if","the","handle","is","invalid","."]
code: def _get_handle_indices(
      self,
      handle: FlatParamHandle,
  ) -> Tuple[Optional[int], ...]:
      """
      Returns the handle indices (i.e. indices into ``self.all_handles``)
      corresponding to the handles in ``handle``. An entry in the
      returned tuple is ``None`` if the handle is invalid.
      """
      indices: List[Optional[int]] = []
      if handle:
          indices.append(handle._handle_index)
      return tuple(indices)
  
imports: import itertools
  import warnings
  from enum import auto, Enum
  from typing import Dict, List, Optional, Tuple, Union
  import torch
  import torch.distributed
  import torch.distributed.fsdp._traversal_utils
  import torch.nn
  from torch.distributed.fsdp._common_utils import _FSDPState, _get_param_to_fqns
  from torch.distributed.fsdp._flat_param import FlatParamHandle
label_desc: Use image node_id 9 for calling the _ExecOrderData obj's underlying member method code with example usage: obj._get_handle_indices(handle) and returns: tuple