code: def _ProcessImportBySuffix(name, fromlist, globals):
    
    _import_local.nest_level -= 1
  
    # To improve common code path performance, compute the loaded modules only
    # if there are any import callbacks.
    if _import_callbacks:
      # Collect the names of all modules that might be newly loaded as a result
      # of this import. Add them in a thread-local list.
      _import_local.names |= _GenerateNames(name, fromlist, globals)
  
      # Invoke the callbacks only on the top-level import call.
      if _import_local.nest_level == 0:
        _InvokeImportCallbackBySuffix(_import_local.names)
  
    # To be safe, we clear the names set every time we exit a top level import.
    if _import_local.nest_level == 0:
      _import_local.names.clear()
docs: Processes an import.
  
    Calculates the possible names generated from an import and invokes
    registered callbacks if needed.
  
    Args:
      name: Argument as passed to the importer.
      fromlist: Argument as passed to the importer.
      globals: Argument as passed to the importer.