@classmethod
    def normalize(cls, ch):
        block = unicode_block(ch)
        if block == UNICODE_BASIC_LATIN:
            if ch < 'A' or ('Z' <= ch < 'a') or 'z' < ch:
                ch = ' '
        elif block == UNICODE_LATIN_1_SUPPLEMENT:
            if cls.LATIN1_EXCLUDED.find(ch) >= 0:
                ch = ' '
        elif block == UNICODE_LATIN_EXTENDED_B:
            # normalization for Romanian
            if ch == six.u('\u0219'):  # Small S with comma below => with cedilla
                ch = six.u('\u015f')
            if ch == six.u('\u021b'):  # Small T with comma below => with cedilla
                ch = six.u('\u0163')
        elif block == UNICODE_GENERAL_PUNCTUATION:
            ch = ' '
        elif block == UNICODE_ARABIC:
            if ch == six.u('\u06cc'):
                ch = six.u('\u064a')  # Farsi yeh => Arabic yeh
        elif block == UNICODE_LATIN_EXTENDED_ADDITIONAL:
            if ch >= six.u('\u1ea0'):
                ch = six.u('\u1ec3')
        elif block == UNICODE_HIRAGANA:
            ch = six.u('\u3042')
        elif block == UNICODE_KATAKANA:
            ch = six.u('\u30a2')
        elif block in (UNICODE_BOPOMOFO, UNICODE_BOPOMOFO_EXTENDED):
            ch = six.u('\u3105')
        elif block == UNICODE_CJK_UNIFIED_IDEOGRAPHS:
            ch = cls.CJK_MAP.get(ch, ch)
        elif block == UNICODE_HANGUL_SYLLABLES:
            ch = six.u('\uac00')
        return ch
dataset/ETHPy150Open Mimino666/langdetect/langdetect/utils/ngram.py/NGram.normalize/operator `<` -> `<=`