֦iv . d dl Z ddlmZ G d de Zy) N )method_cachec h e Zd ZdZd Zd Zd Zd Zd Z fdZ d Z
e fd Zd
Z
ddZ 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 D | j |j k S Nlowerselfothers 1/usr/lib64/python3.12/importlib/metadata/_text.py__lt__zFoldedCase.__lt__C zz|ekkm++ c D | j |j kD S r r r s r __gt__zFoldedCase.__gt__F r r c D | j |j k( S r r r s r __eq__zFoldedCase.__eq__I zz|u{{},,r c D | j |j k7 S r r r s r __ne__zFoldedCase.__ne__L r r c 4 t | j S r )hashr
)r s r __hash__zFoldedCase.__hash__O s DJJL!!r c Z t | j |j S r )superr
__contains__)r r
__class__s r r zFoldedCase.__contains__R s w}++EKKM::r c | t | v S )zDoes self appear in other?)r r s r in_zFoldedCase.in_U s z%(((r c t | S r )r r
)r r s r r
zFoldedCase.lowerZ s w}r c \ | j j |j S r )r
index)r subs r r$ zFoldedCase.index^ s zz|!!#))+..r c t j t j | t j }|j | | S r )recompileescapeIsplit)r splittermaxsplitpatterns r r+ zFoldedCase.splita s0 **RYYx0"$$7}}T8,,r ) r )__name__
__module____qualname____doc__r r r r r r r! r r
r$ r+
__classcell__)r s @r r r sJ 9v,,--";)
/-r r )r'
_functoolsr strr r r