jctconv (Japanese Character Type Converter) はひらがな・カタカナ・全角・半角の文字種変換を高速に行います。 Pythonのみで実装されているので、Cコンパイラが使えない環境でも利用できます。
normalizeメソッドは、unicodedata.normalize を日本語処理向けに特化した拡張を行っています。 具体的には以下のように変換します。
u'〜' -> u'ー',
u'~' -> u'ー',
u"’" -> "'",
u'”' -> '"',
u'―' -> '-',
u'‐' -> '-'
$ pip install jctconv
import jctconv
jctconv.hira2kata(u'ともえまみ')
# => u'トモエマミ'
jctconv.hira2hkata(u'ともえまみ')
# => u'トモエマミ'
jctconv.kata2hira(u'巴マミ')
# => u'巴まみ'
jctconv.h2z(u'ティロ・フィナーレ')
# => u'ティロ・フィナーレ'
jctconv.h2z(u'abc', ascii=True)
# => u'abc'
jctconv.h2z(u'123', digit=True)
# => u'123'
jctconv.h2z(u'アabc123', kana=False, digit=True, ascii=True)
# => u'アabc123'
jctconv.z2h(u'ティロ・フィナーレ')
# => u'ティロ・フィナーレ'
jctconv.z2h(u'abc', ascii=True)
# => u'abc'
jctconv.z2h(u'123', digit=True)
# => u'123'
jctconv.z2h(u'アabc123', kana=False, digit=True, ascii=True)
# => u'アabc123'
jctconv.normalize(u'ティロ・フィナ〜レ', 'NFKC')
# => u'ティロ・フィナーレ'