def METHOD_NAME(self) -> tuple[CPUInfo, ...]:
    """A list of CPUs on the system."""
    N = multiprocessing.cpu_count()
    if sys.platform == "darwin":
        return tuple(CPUInfo((i,)) for i in range(N))
    else:
        # This explicit else is needed for mypy to not raise a type
        # error on MacOS.
        sibling_sets: set[tuple[int, ...]] = set()
        for i in range(N):
            line = open(
                f"/sys/devices/system/cpu/cpu{i}/topology/thread_siblings_list"  # noqa E501
            ).read()
            sibling_sets.add(
                tuple(sorted(int(x) for x in line.strip().split(",")))
            )
        return tuple(
            CPUInfo(siblings) for siblings in sorted(sibling_sets)
        )