为什么python看不到我对代码所做的更改?

时间:2014-05-20 18:46:14

标签: python python-3.x python-sphinx

我试图为httpdomain Sphinx doc扩展程序自定义解析器/词法分析器。我安装在给定的目录中,并将dir添加到sys.path中,如文档中所述。

然后我编译了Sphinx doc并正确地突出显示了http。

现在,我需要对扩展程序进行一些小改动。我首先对扩展程序的目录中的httpdomain.py文件进行了随机更改,这正确地导致了无效语法的错误。

接下来,我通过用HTTTP(一个额外的T)替换HTTP令牌来改变词法分析器。我的想法是看看现在包含HTTTP的文档中的条目是否突出显示而不是HTTP。

问题在于,我所做的一切似乎都没有改变输出。 HTTP继续变色,并忽略HTTTP。

以下是包含我的更改的词法分析器部分:

tokens = {
    'root': [
        (r'(GET|POST|PUT|PATCH|DELETE|HEAD|OPTIONS|TRACE)( +)([^ ]+)( +)'
         r'(HTTTPS?)(/)(1\.[013])(\r?\n|$)',
         bygroups(Name.Function, Text, Name.Namespace, Text,
                  Keyword.Reserved, Operator, Number, Text),
         'headers'),
        (r'(HTTTPS?)(/)(1\.[013])( +)(\d{3})( +)([^\r\n]+)(\r?\n|$)',
         bygroups(Keyword.Reserved, Operator, Number, Text, Number,
                  Text, Name.Exception, Text),
         'headers'),

         (r'([^\s:]+)( *)(:)( *)([^\r\n]+)(\r?\n|$)', header_callback),
         (r'([\t ]+)([^\r\n]+)(\r?\n|$)', continuous_header_callback),
         (r'\r?\n', Text, 'content')
    ],
    'headers': [
        (r'([^\s:]+)( *)(:)( *)([^\r\n]+)(\r?\n|$)', header_callback),
        (r'([\t ]+)([^\r\n]+)(\r?\n|$)', continuous_header_callback),
        (r'\r?\n', Text, 'content')
    ],
    'content': [
        (r'.+', content_callback)
    ]
}

请注意" HTTP"更改为" HTTTP",所以我希望现在包含HTTTP的文档中的条目被着色,但没有任何改变。

我对doc文本进行了更改,看到它们已在页面中更新,因此没有缓存问题。

我还删除了一个名为__pycache__的Python文件夹,但没有对结果进行任何更改。我也试着评论词法分析器中的所有标记,没有变化。如果我插入无效语法,则失败。如果语法正确,似乎它使用原始代码而没有我的更改。

我应该清理其他缓存吗?

我对Python完全陌生,所以我在这里有点迷失。

PS:这个HTTTP只是一个测试。一旦我开始工作,我就会做出真正的改变。

2 个答案:

答案 0 :(得分:1)

事实证明代码更改正在被看到,但是lexer从未被使用过,因为Pygments也注册了一个名为html的词法分析器。所以我用我的app.add_lexer('http', HTTPLexer())替换了它,我开始看到我的更改会影响生成的文档。

答案 1 :(得分:-1)

尝试删除* .pyc文件并重新启动扩展程序

相关问题