from typing import Union
from typing import Iterable


def upper_hex(src: Union[int, Iterable[int]]) -> str:
    """
    Return uppercase hex of an int or byte source

    :param src: an integer
    :return: the number as uppercase hex, minus
    """
    if isinstance(src, int):
        s = hex(src)[2:].upper()
        if len(s) < 2:
            return "0" + s
        return s

    return "".join((upper_hex(i) for i in src))