>E 6 d dl Z ddlmZ G d de ZdS ) N )method_cachec n e Zd ZdZd Zd Zd Zd Zd Z fdZ d Z e fd Zd Z dd Z xZS ) FoldedCasea{ A case insensitive string class; behaves just like str except compares equal when the only variation is case. >>> s = FoldedCase('hello world') >>> s == 'Hello World' True >>> 'Hello World' == s True >>> s != 'Hello World' False >>> s.index('O') 4 >>> s.split('O') ['hell', ' w', 'rld'] >>> sorted(map(FoldedCase, ['GAMMA', 'alpha', 'Beta'])) ['alpha', 'Beta', 'GAMMA'] Sequence membership is straightforward. >>> "Hello World" in [s] True >>> s in ["Hello World"] True You may test for set inclusion, but candidate and elements must both be folded. >>> FoldedCase("Hello World") in {s} True >>> s in {FoldedCase("Hello World")} True String inclusion works as long as the FoldedCase object is on the right. >>> "hello" in FoldedCase("Hello World") True But not if the FoldedCase object is on the left: >>> FoldedCase('hello') in 'Hello World' False In that case, use in_: >>> FoldedCase('hello').in_('Hello World') True >>> FoldedCase('hello') > FoldedCase('Hello') False c V | | k S Nlowerselfothers ?/opt/alt/python311/lib64/python3.11/importlib/metadata/_text.py__lt__zFoldedCase.__lt__C zz||ekkmm++ c V | | k S r r r s r __gt__zFoldedCase.__gt__F r r c V | | k S r r r s r __eq__zFoldedCase.__eq__I zz||u{{}},,r c V | | k S r r r s r __ne__zFoldedCase.__ne__L r r c D t | S r )hashr )r s r __hash__zFoldedCase.__hash__O s DJJLL!!!r c t | S r )superr __contains__)r r __class__s r r zFoldedCase.__contains__R s+ ww}}++EKKMM:::r c $ | t | v S )zDoes self appear in other?)r r s r in_zFoldedCase.in_U s z%((((r c D t S r )r r )r r s r r zFoldedCase.lowerZ s ww}}r c t | | S r )r index)r subs r r$ zFoldedCase.index^ s&