根据德国标准对术语进行排序。
dinsort的Python项目详细描述
根据德国DIN5007对术语进行排序。
小python库支持根据din对术语进行排序 (德国标准协会)标准5007。
本标准描述了如何按字母顺序对德语术语进行排序。它 提供两种变体:
变型1:
- ^{tt1}$ equals ^{tt2}$
- ^{tt3}$ equals ^{tt4}$
- …
变型2:
- ^{tt1}$ equals ^{tt6}$
- ^{tt3}$ equals ^{tt4}$
- …
在这两个变体中,其他变音符号都被删除。所以'é'和'ç' 分别变成'e'和'c'。
用法
dinsort是一个Python库。
规范化术语
主要功能是dinsort.normalize。它生成一个规范化的表单 任何给定的字符串项:
>>> from dinsort import normalize >>> normalize("Löblich") 'loblich'
变量定义为常量:
>>> from dinsort import VARIANT1, VARIANT2 >>> normalize("Müßig", variant=VARIANT1) 'mussig' >>> normalize("Müßig", variant=VARIANT2) 'muessig'
默认情况下,术语规范化为小写。你可以要求 区分大小写:
>>> normalize("Maße", case_sensitive=True) 'Masse'
排序
规范化术语可以很容易地用于对术语列表进行排序:
>>> sorted(["fas", "fair", "fär"], key=lambda x: normalize(x)) ['fair', 'fär', 'fas']
我们提供了一个避免(有时不容易阅读)的快捷方式lambda 代码中包含normalize的语句为此使用sort_func:
>>> from dinsort import sort_func >>> sorted(["fas", "fair", "fär"], key=sort_func()) ['fair', 'fär', 'fas']
sort_func接受normalize的关键字:
>>> sorted(["Muße", "muß"], key=sort_func()) ['muß', 'Muße'] >>> sorted(["Muße", "muß"], key=sort_func(case_sensitive=True)) ['Muße', 'muß'] >>> sorted(["far", "fähre"], key=sort_func()) ['fähre', 'far'] >>> sorted(["far", "färe", "fast"], key=sort_func()) ['far', 'färe', 'fast'] >>> sorted(["far", "färe", "fast"], key=sort_func(variant=VARIANT2)) ['färe', 'far', 'fast']
安装
开发者安装
开发人员从github克隆源代码:
$ git clone https://github.com/ulif/dinsort.git
创建虚拟环境(支持Python版本>;=2.6):
$ cd dinsort $ virtualenv py27 $ source py27/bin/activate
和安装依赖项:
(py27) python setup py dev
您可以使用py.test:
运行测试(py27) py.test
或使用tox:
(py27) pip install tox (py27) tox
变化
0.2(2015-10-14)
- 添加sort_func它作为lambda表达式的快捷方式 normalize。
- 正式支持Pypy。
0.1(2015-10-13)
- 初始版本