小编joe*_*tde的帖子

Pylint仅显示警告和错误

我想使用pylint来检查我的代码,但我只对错误和警告级别感兴趣.有没有办法在命令行或pylintrc中执行此操作?

我对过滤给定的问题不感兴趣(比如在MESSAGE CONTROL中列出所有消息),我只想让pylint忽略所有约定和重构消息.

注意:我不认为这是使用Pylint显示错误和警告的重复

python pylint

32
推荐指数
2
解决办法
2万
查看次数

Callgrind:描述我的代码的特定部分

我试图通过去除我不关心的噪音和计算来描述(使用Callgrind)我的代码的特定部分.这是我想要做的一个例子:

for (int i=0; i<maxSample; ++i) {
    //Prepare data to be processed...
    //Method to be profiled with these data
    //Post operation on the data
}
Run Code Online (Sandbox Code Playgroud)

我的用例是一个回归测试,我想确保所讨论的方法仍然足够快(类似于自上次实现以来少于10%的额外指令).这就是为什么我想从Callgrind获得更清晰的输出.(我需要一个for循环才能处理大量数据,以便对我想要分析的方法的行为有一个很好的估计)

我的第一次尝试是将代码更改为:

for (int i=0; i<maxSample; ++i) {
    //Prepare data to be processed...
    CALLGRIND_START_INSTRUMENTATION;
    //Method to be profiled with these data
    CALLGRIND_STOP_INSTRUMENTATION;
    //Post operation on the data
}
CALLGRIND_DUMP_STATS;
Run Code Online (Sandbox Code Playgroud)

添加Callgrind宏来控制检测.我还添加了--instr-atstart = no选项,以确保我只分析我想要的部分代码...

不幸的是,当我开始使用callgrind启动我的可执行文件时,这种配置永远不会结束......这不是一个缓慢的问题,因为完整的仪器运行持续不到一分钟.

我也试过了

for (int i=0; i<maxSample; ++i) {
    //Prepare data to be processed...
    CALLGRIND_TOGGLE_COLLECT;
    //Method to be profiled with these data
    CALLGRIND_TOGGLE_COLLECT;
    //Post …
Run Code Online (Sandbox Code Playgroud)

c++ profiling valgrind callgrind

15
推荐指数
2
解决办法
6123
查看次数

virtualenv,可以找到重定位的库(如MySQLdb的mysqlclient库)

我希望能够共享一个自包含的virtualenv,即确保安装的所有脚本都能够直接运行而无需设置任何内容.例如,我在使用MySQL-python的virtualenv中安装了一个脚本.不幸的是,导入MySQLdb会查找一个共享库(libmysqlclient.so),该库被移动到我系统上的标准目录以外的地方.有没有办法保证我的virtualenv每次有人使用它时都会找到它?

python mysql shared-libraries virtualenv mysql-python

8
推荐指数
2
解决办法
2805
查看次数

用PLY解析python,如何编码缩进和缩进部分

我试图用 PLY 解析 python 语言的函数定义。我遇到了与缩进相关的问题。例如对于 for 语句,我希望能够知道块何时结束。我在这里阅读了 python 语法:http : //docs.python.org/2/reference/grammar.html 而这部分的语法是:

for_stmt: 'for' exprlist 'in' testlist ':' suite ['else' ':' suite]
suite: simple_stmt | NEWLINE INDENT stmt+ DEDENT
Run Code Online (Sandbox Code Playgroud)

我不知道如何用 PLY 描述 INDENT 和 DEDENT 令牌。我正在尝试类似的东西:

def t_indentation(t):
    r'    |\t'
    #some special treatment for the indentation.
Run Code Online (Sandbox Code Playgroud)

但似乎 PLY 认为带有空格的正则表达式匹配空字符串并且不构建词法分析器......即使我已经设法拥有 INDENT 令牌,我也不确定如何获得 DEDENT 令牌......

有没有办法用 PLY 做到这一点?

python grammar ply indentation

6
推荐指数
1
解决办法
2363
查看次数

Cygwin 的 cmake 与 CMAKE_SYSTEM_NAME 不匹配

我在使用 cmake 的 cygwin 上有一个奇怪的行为。我尝试检查 CMakeLists.txt 中的操作系统,但似乎这种特殊情况不起作用...这是一个引发我的问题的示例:

set (FOO "BAR")

message(${CMAKE_SYSTEM_NAME})

if (${CMAKE_SYSTEM_NAME} STREQUAL "CYGWIN")
    message("EQUALS CYGWIN")
endif()

if (${CMAKE_SYSTEM_NAME} MATCHES "CYGWIN")
    message("MATCHES CYGWIN")
endif()

if (${FOO} MATCHES "BAR")
    message("MATCHES BAR")
endif()
Run Code Online (Sandbox Code Playgroud)

CMake 打印:

CYGWIN
EQUALS CYGWIN
MATCHES BAR
Run Code Online (Sandbox Code Playgroud)

而不是预期的“MATCHES CYGWIN”。我觉得很奇怪,它适用于其他变量(比如这里的 FOO)。我做错了什么吗?

配置:

  • cmake 版本 2.8.11.2
  • 命名 CYGWIN_NT-6.1

PS:我还检查了 FOO =“CYGWIN”,两者都不匹配。似乎这个特定的字符串不适用于 MATCHES...

c++ regex cygwin cmake match

5
推荐指数
1
解决办法
4444
查看次数