def _characterize_set(sample: Union[(List[int], List[Tuple[(int, float)]])]):
    '\n    None-robust helper function to characterize a sample set by its length, nature of items in\n    teh sample and eventual distribution of weights within the sample.\n\n    :param sample: sample to characterize\n    :return: set length (0 if None), 1 if items are ids, 2 if ids and weights (0 if\n    None), rounded distribution ([] if None or items are ids)\n    '
    if (sample is None):
        return (0, 0, [])
    if (len(sample) == 1):
        if _is_int(sample[0]):
            return (1, 1, [])
        else:
            return (1, 2, [])
    if _is_int(sample[0]):
        rounded_hist = ([1] * 100)
        rounded_hist = np.array(rounded_hist).astype(np.int)
        return (len(sample), 1, rounded_hist.tolist())
    else:
        rounded_hist = _reduce_distribution(np.array(sample).astype(np.float)[:, 1])
        return (len(sample), 2, rounded_hist.tolist())
None-robust helper function to characterize a sample set by its length, nature of items in
teh sample and eventual distribution of weights within the sample.

:param sample: sample to characterize
:return: set length (0 if None), 1 if items are ids, 2 if ids and weights (0 if
None), rounded distribution ([] if None or items are ids)
def _characterize_set(sample: Union[(List[int], List[Tuple[(int, float)]])]):
    '\n    None-robust helper function to characterize a sample set by its length, nature of items in\n    teh sample and eventual distribution of weights within the sample.\n\n    :param sample: sample to characterize\n    :return: set length (0 if None), 1 if items are ids, 2 if ids and weights (0 if\n    None), rounded distribution ([] if None or items are ids)\n    '
    if (sample is None):
        return (0, 0, [])
    if (len(sample) == 1):
        if _is_int(sample[0]):
            return (1, 1, [])
        else:
            return (1, 2, [])
    if _is_int(sample[0]):
        rounded_hist = ([1] * 100)
        rounded_hist = np.array(rounded_hist).astype(np.int)
        return (len(sample), 1, rounded_hist.tolist())
    else:
        rounded_hist = _reduce_distribution(np.array(sample).astype(np.float)[:, 1])
        return (len(sample), 2, rounded_hist.tolist())