'Return the Unicode block of the given Unicode character'

@classmethod
def get(cls, uni_char):

    uni_char = unicod(uni_char)
    code_point = ord(uni_char)
    if (Block._RANGE_KEYS is None):
        Block._RANGE_KEYS = sorted(Block._RANGES.keys())
    idx = bisect.bisect_left(Block._RANGE_KEYS, code_point)
    if ((idx > 0) and (code_point >= Block._RANGES[Block._RANGE_KEYS[(idx - 1)]].start) and (code_point <= Block._RANGES[Block._RANGE_KEYS[(idx - 1)]].end)):
        return Block._RANGES[Block._RANGE_KEYS[(idx - 1)]]
    elif ((idx < len(Block._RANGES)) and (code_point >= Block._RANGES[Block._RANGE_KEYS[idx]].start) and (code_point <= Block._RANGES[Block._RANGE_KEYS[idx]].end)):
        return Block._RANGES[Block._RANGE_KEYS[idx]]
    else:
        return Block.UNKNOWN
