code: def fetch_guilds(self, *, limit=100, before=None, after=None):
          
          return GuildIterator(self, limit=limit, before=before, after=after)
docs: |coro|
  
          Retrieves an :class:`.AsyncIterator` that enables receiving your guilds.
  
          .. note::
  
              Using this, you will only receive :attr:`.Guild.owner`, :attr:`.Guild.icon`,
              :attr:`.Guild.id`, and :attr:`.Guild.name` per :class:`.Guild`.
  
          .. note::
  
              This method is an API call. For general usage, consider :attr:`guilds` instead.
  
          All parameters are optional.
  
          Parameters
          -----------
          limit: Optional[:class:`int`]
              The number of guilds to retrieve.
              If ``None``, it retrieves every guild you have access to. Note, however,
              that this would make it a slow operation.
              Defaults to 100.
          before: :class:`.abc.Snowflake` or :class:`datetime.datetime`
              Retrieves guilds before this date or object.
              If a date is provided it must be a timezone-naive datetime representing UTC time.
          after: :class:`.abc.Snowflake` or :class:`datetime.datetime`
              Retrieve guilds after this date or object.
              If a date is provided it must be a timezone-naive datetime representing UTC time.
  
          Raises
          ------
          HTTPException
              Getting the guilds failed.
  
          Yields
          --------
          :class:`.Guild`
              The guild with the guild data parsed.
  
          Examples
          ---------
  
          Usage ::
  
              async for guild in client.fetch_guilds(limit=150):
                  print(guild.name)
  
          Flattening into a list ::
  
              guilds = await client.fetch_guilds(limit=150).flatten()
              # guilds is now a list of Guild...