parameters: (only=None, managers=False)
docstring: iterator of tuples of ((mid, fid), info)
  
      Can filter output with "M.F" or "M" format, e.g. "2.3" for manager 2 fiber 3
      or "1" for all fibers from manager 1.  If "fid" is None, then the value is
      a gdb.Value of a fiber manager, and if it's non-None, then it's of a FiberInfo.
      Guaranteed to return values in ascending order, managers before their fibers.
      Manager output only occurs when `managers` is set to True.
  
      Implemented as iterators for interactive speed purposes. A binary can have
      very many fibers, so we don't want to process everything before printing
      some data to the user.  Results of full fiber managers are cached.
docstring_summary: iterator of tuples of ((mid, fid), info)
docstring_tokens: iterator of tuples of (( mid fid ) info )
function: def get_fiber_info(only=None, managers=False):
      """iterator of tuples of ((mid, fid), info)
  
      Can filter output with "M.F" or "M" format, e.g. "2.3" for manager 2 fiber 3
      or "1" for all fibers from manager 1.  If "fid" is None, then the value is
      a gdb.Value of a fiber manager, and if it's non-None, then it's of a FiberInfo.
      Guaranteed to return values in ascending order, managers before their fibers.
      Manager output only occurs when `managers` is set to True.
  
      Implemented as iterators for interactive speed purposes. A binary can have
      very many fibers, so we don't want to process everything before printing
      some data to the user.  Results of full fiber managers are cached.
      """
      for mid, manager in get_fiber_managers(only):
          if managers:
              yield ((mid, None), manager)
  
          # first check if pre-cached
          if mid in get_fiber_info.cache:
              for (fid, info) in get_fiber_info.cache[mid].items():
                  fiber_id = "{}.{}".format(mid, fid)
                  if not only or str(mid) in only or fiber_id in only:
                      yield ((mid, fid), info)
              continue
  
          # list fibers from the manager
          fibers = collections.OrderedDict()
          fid = 1
          for fiber in fiber_manager_active_fibers(manager):
              # look up/create cached info
              info = FiberInfo(fiber)
              # associate mid.fid with info
              info.mid = mid
              info.fid = fid
              fibers[fid] = info
              # output only if matching the filter
              fiber_id = "{}.{}".format(mid, fid)
              if not only or str(mid) in only or fiber_id in only:
                  yield ((mid, fid), info)
              fid += 1
          get_fiber_info.cache[mid] = fibers
function_tokens: def get_fiber_info ( only = None , managers = False ) : for mid , manager in get_fiber_managers ( only ) : if managers : yield ( ( mid , None ) , manager ) # first check if pre-cached if mid in get_fiber_info . cache : for ( fid , info ) in get_fiber_info . cache [ mid ] . items ( ) : fiber_id = "{}.{}" . format ( mid , fid ) if not only or str ( mid ) in only or fiber_id in only : yield ( ( mid , fid ) , info ) continue # list fibers from the manager fibers = collections . OrderedDict ( ) fid = 1 for fiber in fiber_manager_active_fibers ( manager ) : # look up/create cached info info = FiberInfo ( fiber ) # associate mid.fid with info info . mid = mid info . fid = fid fibers [ fid ] = info # output only if matching the filter fiber_id = "{}.{}" . format ( mid , fid ) if not only or str ( mid ) in only or fiber_id in only : yield ( ( mid , fid ) , info ) fid += 1 get_fiber_info . cache [ mid ] = fibers