Skip to main content

Nginx 配置解析器

项目描述

一个使用 Pyparsing 的 nginx 配置解析器。

您可以使用loadloading方法解析 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/']]]]

与其他序列化模块一样,您也可以使用dumpdumps方法导出配置。

>>> 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 (12.4 kB 查看哈希

已上传 source