code: def by_category(self):
          
          grouped = defaultdict(list)
          for channel in self._channels.values():
              if isinstance(channel, CategoryChannel):
                  continue
  
              grouped[channel.category_id].append(channel)
  
          def key(t):
              k, v = t
              return ((k.position, k.id) if k else (-1, -1), v)
  
          _get = self._channels.get
          as_list = [(_get(k), v) for k, v in grouped.items()]
          as_list.sort(key=key)
          for _, channels in as_list:
              channels.sort(key=lambda c: (c._sorting_bucket, c.position, c.id))
          return as_list
docs: Returns every :class:`CategoryChannel` and their associated channels.
  
          These channels and categories are sorted in the official Discord UI order.
  
          If the channels do not have a category, then the first element of the tuple is
          ``None``.
  
          Returns
          --------
          List[Tuple[Optional[:class:`CategoryChannel`], List[:class:`abc.GuildChannel`]]]:
              The categories and their associated channels.