class_docstr: This splitter greedily selects training triples such that each entity is covered and then splits the rest.
code: def split_absolute_size(
      self,
      mapped_triples: MappedTriples,
      sizes: Sequence[int],
      random_state: torch.Generator,
  ) -> Sequence[MappedTriples]:  # noqa: D102
      seed_mask = _get_cover_deterministic(triples=mapped_triples)
      train_seed = mapped_triples[seed_mask]
      remaining_triples = mapped_triples[~seed_mask]
      if train_seed.shape[0] > sizes[0]:
          raise ValueError(
              f"Could not find a coverage of all entities and relation with only {sizes[0]} triples."
          )
      remaining_sizes = (sizes[0] - train_seed.shape[0],) + tuple(
          sizes[1:]
      )
      train, *rest = _split_triples(
          mapped_triples=remaining_triples,
          sizes=remaining_sizes,
          random_state=random_state,
      )
      return [torch.cat([train_seed, train], dim=0), *rest]
  
imports: import logging
  import typing
  from abc import abstractmethod
  from typing import Collection, Optional, Sequence, Set, Tuple, Type, Union
  import numpy
  import pandas
  import torch
  from class_resolver.api import ClassResolver, HintOrType
  from ..constants import COLUMN_LABELS
  from ..typing import LABEL_HEAD, LABEL_RELATION, LABEL_TAIL, MappedTriples, Target, TorchRandomHint
  from ..utils import ensure_torch_random_state
label_desc: Use image node_id 1 for calling the CoverageSplitter obj's underlying member method code with example usage: obj.split_absolute_size(mapped_triples, sizes, random_state) and returns: list