将diff util与--show函数行一起用于Python文件

将diff util与--show函数行一起用于Python文件,python,regex,diff,Python,Regex,Diff,我喜欢将Python源代码与diffutil进行比较,我看到git diff以大块或块的形式向我显示函数名(对于某些文件,但也不适用于Python)?标题。这就是为什么我搜索了normaldiff做同样的事情 然后我发现有一个-p,--show-c-functionparam,它不能很好地处理Python文件(我只得到类名)。因此,我还在手册页中找到了参数:-F,--show function line=RE 现在我搜索了一个很好的RE来匹配python函数,以便将它们包含在我的diff输出中

我喜欢将Python源代码与
diff
util进行比较,我看到
git diff
以大块或块的形式向我显示函数名(对于某些文件,但也不适用于Python)?标题。这就是为什么我搜索了normal
diff
做同样的事情

然后我发现有一个
-p,--show-c-function
param,它不能很好地处理Python文件(我只得到类名)。因此,我还在手册页中找到了参数:
-F,--show function line=RE

现在我搜索了一个很好的RE来匹配python函数,以便将它们包含在我的diff输出中

我知道我们有
def myname():
异步def myname():
。。。也许更多

有人有好的正则表达式吗

I,但它不适用于diff util(输出没有函数名):

diff-Nru-F'(?P\w+)\s?\(?P(?P\w+(,\s?)+)”模块/websocket/uu init_u.py.old模块/websocket/u init_u.py
问候,,
托马斯

我很惊讶你说它对Python不起作用。我刚刚在Python repo上做了一个
git log-p
,它使用了与
git diff
相同的diff,它为我找到了非常可靠的类或函数,除了那些之外的代码。您使用的是什么版本的Git?我刚刚测试了2.25.1。哎呀,我看错了你的问题,你问的是在
diff
中,而不是在
git diff
中。值得一提的是,如果
git diff
输出恰好是您更喜欢的,您可以执行
git diff path1 path2
对repo上下文之外的文件调用
git diff
,或者忽略它们所处的repo。问题是,我没有一直在我的手指下拥有git存储库:)-但是在我使用git diff进行的测试中,我只得到了类名,而没有得到函数名。可能是因为异步def funcname()语法。。。不知道……刚刚发现的是,
git diff file1 file2
也可以在git repo之外工作——您只需要安装git软件。但是如果它不能输出你想要的,那就别担心!
diff -Nru -F '(?P<function>\w+)\s?\((?P<arg>(?P<args>\w+(,\s?)?)+)\)' modules/websocket/__init__.py.old modules/websocket/__init__.py