class_docstr: The pooling operator from the `"An End-to-End Deep Learning
  Architecture for Graph Classification"
  <https://www.cse.wustl.edu/~muhan/papers/AAAI_2018_DGCNN.pdf>`_ paper,
  where node features are sorted in descending order based on their last
  feature channel. The first :math:`k` nodes form the output of the layer.
  
  .. note::
  
      :class:`SortAggregation` requires sorted indices :obj:`index` as input.
      Specifically, if you use this aggregation as part of
      :class:`~torch_geometric.nn.conv.MessagePassing`, ensure that
      :obj:`edge_index` is sorted by destination nodes, either by manually
      sorting edge indices via :meth:`~torch_geometric.utils.sort_edge_index`
      or by calling :meth:`torch_geometric.data.Data.sort`.
  
  Args:
      k (int): The number of nodes to hold for each graph.
code: def __init__(self, k: int):
      super().__init__()
      self.k = k
  
file_path: pytorch_geometric/torch_geometric/nn/aggr/sort.py
imports: from typing import Optional
  import torch
  from torch import Tensor
  from torch_geometric.experimental import disable_dynamic_shapes
  from torch_geometric.nn.aggr import Aggregation
label_desc: Use image node_id 1 to create a new SortAggregation object from inherited base classes: Aggregation with example: obj = SortAggregation(k)