fmr的python包装器
pyfmr的Python项目详细描述
pyfmr:fmr的python包装器
用法
通过pip
安装pyfmrpip install pyfmr
语法文件
将以下语法内容保存到文件sf.grammar
<flight> = <departure> <arrival> {nf.flight($1, $2)}; [flight] = <arrival> <departure> {nf.flight($2, $1)}; <departure> = <from> <city> {nf.I($2)}; <arrival> = <to> <city> {nf.I($2)}; [arrival] = <arrival> {nf.arrival($1)}; <from> = "从" ; <to> = "到" | "去" | "飞"; <city> = "北京" {nf.I($@)} | "天津" {nf.I($@)} | "上海" {nf.I($@)} | "重庆" {nf.I($@)} | `.(?:城|都)` {nf.I($@)} ; <city_ext> = <city> {nf.I($1)} | (any{1,1}) <city> {nf.I($2)} ; <cities> = "直辖市:" (list<city_ext>) {nf.I($@)};
python示例代码
importpyfmrp=pyfmr.Parser("./sf.grammar")strs=["直辖市:北京、上海、天津","直辖市:帝都、津城、魔都","中国现在有四个直辖市:帝都、魔都、天津、重庆。","中国曾经的直辖市:帝都、魔都、天津、重庆、旧都。","天津大学",]forlinstrs:ret=p.extract(l,"cities")foriteminret:print(item)print("="*80)
如何构建
交叉编译由xgo完成。
先决条件
- 码头工人
- 高朗
步骤
# 1. clone the git repo git clone https://github.com/liuzl/pyfmr &&cd pyfmr # 2. pull xgo docker image docker pull karalabe/xgo-latest # 3. install xgo go get github.com/karalabe/xgo # 4. build shared libraries xgo --targets=*/amd64 -buildmode=c-shared -out pyfmr/lib/fmr github.com/liuzl/pyfmr/src # 5. build wheel python3 setup.py sdist bdist_wheel # 6. upload to pypi.org python3 -m twine upload dist/*