我见过如何在Python代码中找到未使用的函数?但那真的很旧,并没有真正回答我的问题.
我有一个包含多个库的大型python项目,这些库由多个入口点脚本共享.多年来,这个项目已经吸引了许多作者,所以有很多死代码.你知道该怎么做.
我知道找到所有死代码是不可判定的.我所需要的只是一个工具,可以找到所有未被调用的函数.我们没有根据函数名称的字符串调用函数做任何事情,所以我并不担心任何病态......
我刚刚安装了pylint,但它似乎是基于文件的,并没有太多关注文件间依赖关系,甚至是函数依赖关系.
很明显,我可以在所有文件中使用gre,从中获取所有函数名称,并为每个函数名称执行grep.我只是希望有一些比那里更聪明的东西.
ETA:请注意,我不希望或想要完美的东西.我知道我的停止问题证明就像任何人一样(当我看到递归可枚举的东西时,我真的没有教过计算理论).任何试图通过实际运行代码来逼近它的东西都会花费太长时间.我只是想要在语法上通过代码的东西并说"这个函数是肯定使用的.可以使用这个函数,这个函数绝对不使用,其他人甚至似乎都不知道它存在!" 前两个类别并不重要.
我正在使用这个subprocess.Popen
调用,在另一个问题中,我发现我误解了Python是如何为命令行生成参数的.
我的问题
有没有办法找出实际的命令行是什么?
示例代码: -
proc = subprocess.popen(....)
print "the commandline is %s" % proc.getCommandLine()
Run Code Online (Sandbox Code Playgroud)
你会怎么写getCommandLine
?
我有一个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)
大熊猫是怎么想让我这样做的?
我正在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中做到这一点?
我有一个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中的'/'?
还有其他方法我应该完全这样做吗?
我正在使用一些相当旧的文件.不同的程序创建了不同的文件,因此其中一些以\ r(mac)结尾,一些以\n(unix)结尾.我希望能够在这些文件上运行diff,grep等命令,但将\ r \n的命令视为一个巨行.有没有人知道一个版本的diff,grep等可以正常使用所有新行?
ETA:我也希望它们是unix实用程序,所以我可以在脚本,emacs等中使用它们......
我在C++中使用xcode.我正在尝试调试我的项目,但是随机间隔,它似乎忽略了我的断点.它有三件事:
1)有时,当我跑步时,它会自动切换到"取消激活断点"模式.(相关按钮亮起并显示"激活")
2)有时当我跑步时,我的所有断点都变为"找不到"模式,黄色内部.我需要在它们上面点击两次才能让它们变成深蓝色(一次亮蓝色=无效,一次亮蓝色=激活)
3)有时,当我跑步时,我的断点是深蓝色,按钮显示"停用",它仍然只是忽略我的断点,直接跑过它.
这使我很难调试我的程序......
我应该补充一点,我在OSX 10.5.6上使用XCode 3.1 beta,以防万一.
谢谢.
有一种简单的方法可以在10.5中运行吗?
在10.6中,我可以使用nsImage CGImageForProposedRect:NULL上下文:NULL提示:NULL
如果我不使用1b黑白图像(如Group 4 TIFF),我可以使用位图,但cgbitmaps似乎不喜欢这种设置...有没有一般的方法这样做?
我需要这样做,因为我有一个看似只想添加CGImages的IKImageView,但我所拥有的只是NSImages.目前,我正在使用一个私有的setImage:(NSImage*)方法,我真的不会使用...
我想在我的plist中设置Bundle Version.但是,当您查看更多信息时,finder实际上看到的值是"捆绑版本字符串,简短",但是,编辑此内容需要打开plist文件,而不是仅仅编辑"版本" "在目标设置中.
有没有办法要么a)使捆绑版本始终等于捆绑版本短,b)使查找器查看捆绑版本而不是短串或c)使短版本出现在编辑目标设置窗口中?
或者,有什么更好的方法我应该处理这个?
谢谢.
这是如何找到“因非串联而排序”警告的来源的扩展?。
在我的 pytest 中,我仍然收到相同的警告。我在这里查看了几个问题并完成了:
import warnings
warnings.filterwarnings('error')
Run Code Online (Sandbox Code Playgroud)
这是在如何捕获 numpy 警告中建议的,就像它是一个异常(不仅仅是为了测试)?
然而,当我运行 pytest 时,它仍然给我错误,但实际上没有任何错误......
python ×4
macos ×3
objective-c ×2
xcode ×2
c++ ×1
cgimage ×1
cocoa ×1
code-cleanup ×1
command-line ×1
csh ×1
diff ×1
function ×1
nsimage ×1
pandas ×1
parameters ×1
path ×1
plist ×1
popen ×1
pylint ×1
pytest ×1
sed ×1
subprocess ×1
unix ×1
utilities ×1
warnings ×1