小编Bri*_*tow的帖子

在大型python项目中查找死代码

我见过如何在Python代码中找到未使用的函数?但那真的很旧,并没有真正回答我的问题.

我有一个包含多个库的大型python项目,这些库由多个入口点脚本共享.多年来,这个项目已经吸引了许多作者,所以有很多死代码.你知道该怎么做.

我知道找到所有死代码是不可判定的.我所需要的只是一个工具,可以找到所有未被调用的函数.我们没有根据函数名称的字符串调用函数做任何事情,所以我并不担心任何病态......

我刚刚安装了pylint,但它似乎是基于文件的,并没有太多关注文件间依赖关系,甚至是函数依赖关系.

很明显,我可以在所有文件中使用gre,从中获取所有函数名称,并为每个函数名称执行grep.我只是希望有一些比那里更聪明的东西.

ETA:请注意,我不希望或想要完美的东西.我知道我的停止问题证明就像任何人一样(当我看到递归可枚举的东西时,我真的没有教过计算理论).任何试图通过实际运行代码来逼近它的东西都会花费太长时间.我只是想要在语法上通过代码的东西并说"这个函数是肯定使用的.可以使用这个函数,这个函数绝对不使用,其他人甚至似乎都不知道它存在!" 前两个类别并不重要.

python pylint code-cleanup

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

输出子进程调用的命令行?

我正在使用这个subprocess.Popen调用,在另一个问题中,我发现我误解了Python是如何为命令行生成参数的.

我的问题
有没有办法找出实际的命令行是什么?

示例代码: -

proc = subprocess.popen(....)
print "the commandline is %s" % proc.getCommandLine()
Run Code Online (Sandbox Code Playgroud)

你会怎么写getCommandLine

python command-line subprocess popen

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

在pandas中设置切片值的正确方法

我有一个pandas数据帧:数据.它有列["名称","A","B"]

我想做(和工作)的是:

d2 = data[data['name'] == 'fred'] #This gives me multiple rows
d2['A'] = 0
Run Code Online (Sandbox Code Playgroud)

这会将fred行上的A列设置为0.我也做了:

indexes = d2.index
data['A'][indexes] = 0
Run Code Online (Sandbox Code Playgroud)

但是,两人都给了我同样的警告:

/Users/brianp/work/cyan/venv/lib/python2.7/site-packages/pandas/core/indexing.py:128: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
Run Code Online (Sandbox Code Playgroud)

大熊猫是怎么想让我这样做的?

python pandas chained-assignment

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

Objective C默认参数?

可能重复:
Objective-C 2.0中的可选参数?
Objective-C默认参数值

我正在Objective C中编写一个C函数.我想要一个我最后一个参数的默认值.

我试过了:

foo(int a, int b, int c = 0);
Run Code Online (Sandbox Code Playgroud)

但那是C++

我也试过了

foo(int a, int b, int c)
{
    ...
}

foo(int a, int b)
{
   foo(a, b, 0);
}
Run Code Online (Sandbox Code Playgroud)

但这也是C++.

有没有办法在Objective C中做到这一点?

parameters function objective-c default-value

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

如何用sed中的另一个路径替换路径?

我有一个csh脚本(虽然我可以更改语言,如果它有任何相关性)我必须:

sed s/AAA/BBB/ file
Run Code Online (Sandbox Code Playgroud)

问题是AAA和BBB是路径,因此包含'/'.AAA是固定的,所以我可以说:

sed s/\\\/A\\\/A\\\A/BBB/ file
Run Code Online (Sandbox Code Playgroud)

但是,BBB基于变量,包括$ PWD.如何逃避$ PWD中的'/'?

还有其他方法我应该完全这样做吗?

csh sed path

37
推荐指数
4
解决办法
7万
查看次数

线端不可知差异?

我正在使用一些相当旧的文件.不同的程序创建了不同的文件,因此其中一些以\ r(mac)结尾,一些以\n(unix)结尾.我希望能够在这些文件上运行diff,grep等命令,但将\ r \n的命令视为一个巨行.有没有人知道一个版本的diff,grep等可以正常使用所有新行?

ETA:我也希望它们是unix实用程序,所以我可以在脚本,emacs等中使用它们......

unix macos diff utilities

20
推荐指数
3
解决办法
1万
查看次数

XCode自动停用断点

我在C++中使用xcode.我正在尝试调试我的项目,但是随机间隔,它似乎忽略了我的断点.它有三件事:

1)有时,当我跑步时,它会自动切换到"取消激活断点"模式.(相关按钮亮起并显示"激活")

2)有时当我跑步时,我的所有断点都变为"找不到"模式,黄色内部.我需要在它们上面点击两次才能让它们变成深蓝色(一次亮蓝色=无效,一次亮蓝色=激活)

3)有时,当我跑步时,我的断点是深蓝色,按钮显示"停用",它仍然只是忽略我的断点,直接跑过它.

这使我很难调试我的程序......

我应该补充一点,我在OSX 10.5.6上使用XCode 3.1 beta,以防万一.

谢谢.

c++ macos xcode

15
推荐指数
1
解决办法
3082
查看次数

将NSImage*转换为CGImageRef?

有一种简单的方法可以在10.5中运行吗?

在10.6中,我可以使用nsImage CGImageForProposedRect:NULL上下文:NULL提示:NULL

如果我不使用1b黑白图像(如Group 4 TIFF),我可以使用位图,但cgbitmaps似乎不喜欢这种设置...有没有一般的方法这样做?

我需要这样做,因为我有一个看似只想添加CGImages的IKImageView,但我所拥有的只是NSImages.目前,我正在使用一个私有的setImage:(NSImage*)方法,我真的不会使用...

cocoa core-graphics objective-c nsimage cgimage

15
推荐指数
4
解决办法
3万
查看次数

plist bundle版本值

我想在我的plist中设置Bundle Version.但是,当您查看更多信息时,finder实际上看到的值是"捆绑版本字符串,简短",但是,编辑此内容需要打开plist文件,而不是仅仅编辑"版本" "在目标设置中.

有没有办法要么a)使捆绑版本始终等于捆绑版本短,b)使查找器查看捆绑版本而不是短串或c)使短版本出现在编辑目标设置窗口中?

或者,有什么更好的方法我应该处理这个?

谢谢.

macos xcode plist

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

如何使 pytest 因警告而崩溃?

这是如何找到“因非串联而排序”警告的来源的扩展?。

在我的 pytest 中,我仍然收到相同的警告。我在这里查看了几个问题并完成了:

import warnings
warnings.filterwarnings('error')
Run Code Online (Sandbox Code Playgroud)

这是在如何捕获 numpy 警告中建议的,就像它是一个异常(不仅仅是为了测试)?

然而,当我运行 pytest 时,它仍然给我错误,但实际上没有任何错误......

python warnings pytest

14
推荐指数
1
解决办法
3660
查看次数