class_docstr: Represents a service, and may return a Handle for interaction with it.
class_docstr_tok: ["Represents","a","service",",","and","may","return","a","Handle","for","interaction","with","it","."]
docstr: Keeps track of created handles.
  
  MUST be called in create_handle().
  
  This is called so that the node knows about the handle it creates. The
  reason we don't automate this is because we'll lose return annotation if
  we wrap create_handle() using a base class method (i.e., the base class
  wrapper method doesn't know about the subclass return type).
  
  Args:
    handle: The handle (MUST be created by this node) to track.
  
  Returns:
    The same handle that was passed in, for the nicer syntax on call site.
docstr_tok: ["Keeps","track","of","created","handles",".","MUST","be","called","in","create_handle","(",")",".","This","is","called","so","that","the","node","knows","about","the","handle","it","creates",".","The","reason","we","do","n't","automate","this","is","because","we","'ll","lose","return","annotation","if","we","wrap","create_handle","(",")","using","a","base","class","method","(","i.e.",",","the","base","class","wrapper","method","does","n't","know","about","the","subclass","return","type",")",".","Args",":","handle",":","The","handle","(","MUST","be","created","by","this","node",")","to","track",".","Returns",":","The","same","handle","that","was","passed","in",",","for","the","nicer","syntax","on","call","site","."]
code: def _track_handle(self, handle: HandleType) -> HandleType:
      """Keeps track of created handles.
  
      MUST be called in create_handle().
  
      This is called so that the node knows about the handle it creates. The
      reason we don't automate this is because we'll lose return annotation if
      we wrap create_handle() using a base class method (i.e., the base class
      wrapper method doesn't know about the subclass return type).
  
      Args:
        handle: The handle (MUST be created by this node) to track.
  
      Returns:
        The same handle that was passed in, for the nicer syntax on call site.
      """
      self._created_handles.append(handle)
      return handle
  
imports: import abc
  import functools
  from typing import Any, Generic, List, Optional, Sequence, Set, TypeVar
  from launchpad import address
  from launchpad import context
  from launchpad.nodes import dereference
  from launchpad.program_stopper import program_stopper
label_desc: Use image node_id 4 for calling the Node obj's underlying member method code with example usage: obj._track_handle(handle) and returns: handle