Semgrep:寻找错误的导入

tur*_*ing 3 python django gettext python-3.x semgrep

我将如何继续让 Semgrep 检查我的代码库是否从错误的位置导入函数?例如在我的 django 项目中:

from gettext import gettext但我们确实应该这样做from django.utils.translation import gettext

关于如何使用 semgrep 实现这一目标有什么想法吗?

ine*_*ine 7

这是你想要的吗?这是一个实时示例链接:https://semgrep.dev/s/0n0w

rules:
- id: import-from-wrong-module
  patterns:
    - pattern: |
        from $X import gettext
    - pattern-not: |
        from my.special.module import gettext
  message: Please import gettext from my.special.module
  severity: ERROR
Run Code Online (Sandbox Code Playgroud)