class_docstr: Enumerates in parallel over discrete sample sites marked
  ``infer={"enumerate": "parallel"}``.
  
  :param int first_available_dim: The first tensor dimension (counting
      from the right) that is available for parallel enumeration. This
      dimension and all dimensions left may be used internally by Pyro.
      This should be a negative integer or None.
class_docstr_tok: ["Enumerates","in","parallel","over","discrete","sample","sites","marked","``","infer=","{","``","enumerate","''",":","``","parallel","''","}","``",".",":","param","int","first_available_dim",":","The","first","tensor","dimension","(","counting","from","the","right",")","that","is","available","for","parallel","enumeration",".","This","dimension","and","all","dimensions","left","may","be","used","internally","by","Pyro",".","This","should","be","a","negative","integer","or","None","."]
code: def __enter__(self) -> Self:
      if self.first_available_dim is not None:
          _ENUM_ALLOCATOR.set_first_available_dim(
              self.first_available_dim
          )
      self._markov_depths: Dict[
          str, int
      ] = {}  # site name -> depth (nonnegative integer)
      self._param_dims: Dict[
          str, Dict[int, int]
      ] = {}  # site name -> (enum dim -> unique id)
      self._value_dims: Dict[
          str, Dict[int, int]
      ] = {}  # site name -> (enum dim -> unique id)
      return super().__enter__()
  
file_path: pyro/pyro/poutine/enum_messenger.py
imports: from typing import Any, Dict, List, Optional
  import torch
  from typing_extensions import Self
  from pyro.distributions.torch import Categorical
  from pyro.distributions.torch_distribution import TorchDistributionMixin
  from pyro.ops.indexing import Vindex
  from pyro.poutine.messenger import Messenger
  from pyro.poutine.runtime import _ENUM_ALLOCATOR, Message
  from pyro.util import ignore_jit_warnings
label_desc: Use image node_id 2 for calling the EnumMessenger obj's underlying member method code with example usage: obj.__enter__() and returns: super