Nginx 配置解析器
项目描述
一个使用 Pyparsing 的 nginx 配置解析器。
您可以使用load或loading方法解析 nginx 配置文件 :
>>> from nginxparser_eb import load
>>> load(open("/etc/nginx/sites-enabled/foo.conf"))
[['server'], [
['listen', '80'],
['server_name', 'foo.com'],
['root', '/home/ubuntu/sites/foo/']]]]
与其他序列化模块相同,您也可以导出配置
>>> from nginxparser_eb import load
>>> load(open("/etc/nginx/sites-enabled/foo.conf"))
[['server'], [
['listen', '80'],
['server_name', 'foo.com'],
['root', '/home/ubuntu/sites/foo/']]]]
与其他序列化模块一样,您也可以使用dump和dumps方法导出配置。
>>> from nginxparser_eb import dumps
>>> dumps([['server'], [
['listen', '80'],
['server_name', 'foo.com'],
['root', '/home/ubuntu/sites/foo/']]])
'server {
listen 80;
server_name foo.com;
root /home/ubuntu/sites/foo/;
}'
安装
Nginx 解析器现在可以通过 pip 获得:
pip install nginxparser_eb
故障排除
可能会出现这样的异常:
ParseException: Expected {Group:({W:(ABCD...) [{Suppress:(<SPC><TAB><CR><LF>) !W:({};)}] Suppress:(";")}) | Forward: ...} (at char 0), (line:1, col:1)
这可能是由于导入了修改 pyparsing 全局变量的 Cmd2 包引起的。特别是,以下代码会导致问题:
pyparsing.ParserElement.setDefaultWhitespaceChars(' \t')
在此设置中,pyparser 解析器在换行后停止解析。
由于这个原因,导入 pyparsing 会将设置的空白字符修改回
pyparsing.ParserElement.setDefaultWhitespaceChars(" \n\t\r")
学分
基于https://github.com/fatiherikli/nginxparser和 CertBot Nginx 解析器。
项目详情
关
nginxparser_eb -0.0.9.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | e3fb2a237dd0d3738887a764ade567770d37d2af70409b1c0fda57ff3a6f11b1 |
|
| MD5 | 02e65770ee86263f0cde1df972ab3411 |
|
| 布莱克2-256 | 1f97a176ab33d8c6bdcae00d6e20204281f9361941dccfc6cdf2aafc37509334 |