报告给定一组Unicode值的覆盖率
smorgasbord的Python项目详细描述
smórg_sbord测试unicode字符集的覆盖率。
Smorgasbord类继承自UnicodeSet,并支持the same features。
支持Python2.6–3.x
$ pip install smorgasbord
fromsmorgasbordimportSmorgasbord# Provide a path to a file or folder of character setsSmorgasbord.paths.prepend("/my/path/to/language/en.txt")>>>bord=Smorgasbord([97,"b","c",u"ü",u"\u0660"])Smorgasbord([u"a",u"c",u"b",u"\xfc",u"\u0660"])# Reports are accessed though the "reports" dict using the language code>>>en=bord.reports["en"]# Basic information about the report's language is accessible>>>en.language.code"en">>>en.language.name"English">>>en.language.charactersFrozenUnicodeSet([u"a",u"b",u"c",...])# Amount of coverage is availbe as float and string representations>>>en.coverage0.057>>>en.coverage.percentageu"5.7%"# Sets of glyphs can be accessed>>>en.coveredFrozenUnicodeSet([u"a",u"b",u"c"])>>>en.uncoveredFrozenUnicodeSet([u"d",u"e",u"f",...])# Reports can also return a boolean value for completeness:>>>en.completeFalse>>>en.incompleteTrue
字符集文件
每个字符集在文本文件中定义。字符由空格分隔,以#开头的行作为注释被忽略。换行符可以并且应该用来换行最多80个字符。
例如,英语覆盖字符集的en.txt定义:
# Language: EnglishabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
第一行是一个特殊的注释,将被解析为语言名。以后可能会添加其他特殊注释,但目前只支持Language。
提供字符集
字符集通过提供到文件夹的路径或直接到语言文件而可用。
Smorgasbord.paths.prepend("/my/path/to/language/files/dir")Smorgasbord.paths.prepend("/my/path/to/language/file.txt")
使用第一个匹配的文件在每个后续文件夹中搜索字符集文件。
或者,可以完全替换paths数组:
Smorgasbord.paths=["/my/path/to/language/files/dir"]
路线图
这是一个在不久的将来需要添加的特性的快速列表(可能包含1.0版本)。
- 懒散地评估报告。当前,库在初始化自燃命令时加载所有语言文件,这将变得缓慢、快速。这应该在最晚的可能时刻发生。
- 语言文件中的Unicode范围。对于具有大型字符集的语言,可能需要添加对Unicode范围的支持。