12345678910111213141516171819202122232425262728293031323334 |
- from __future__ import absolute_import, unicode_literals
- import string
- from jaraco.text import FoldedCase
- class IRCFoldedCase(FoldedCase):
- """
- A version of FoldedCase that honors the IRC specification for lowercased
- strings (RFC 1459).
- >>> IRCFoldedCase('Foo^').lower()
- 'foo~'
- >>> IRCFoldedCase('[this]') == IRCFoldedCase('{THIS}')
- True
- >>> IRCFoldedCase().lower()
- ''
- """
- translation = dict(zip(
- map(ord, string.ascii_uppercase + r"[]\^"),
- map(ord, string.ascii_lowercase + r"{}|~"),
- ))
- def lower(self):
- return (
- self.translate(self.translation) if self
- # bypass translate, which returns self
- else super(IRCFoldedCase, self).lower()
- )
- def lower(str):
- return IRCFoldedCase(str).lower()
|