Python 的静态数据流图生成器?

问题描述 投票:0回答:2

我花了很长一段时间才找到一个适用于 Python 的静态数据流图生成器。

这是我的理想: 给定一个小Python脚本

example.py
(用Python3编写),返回数据流图的一些表示。

我能够使用 IBM 的 pyflowgraph 实现此结果,https://github.com/IBM/pyflowgraph,它以

graph.ml
格式输出数据,不幸的是这个包仅执行动态分析。

我想知道是否有人知道可以为 Python 进行此类静态数据流分析的 DFG 工具?

python programming-languages static-analysis dataflow graphml
2个回答
0
投票

@startuml 开始 ' 程序开始 :导入必要的库; ' 导入 OpenCV 和 HandDetector

分区“初始化”{ :初始化摄像头(cv2.VideoCapture); ' 打开默认相机 :设置相机分辨率; ' 设置视频帧的宽度和高度 :初始化手部探测器; ' 初始化手部追踪模块; :定义虚拟键盘的按键; ' 指定键盘布局的键 :定义关键尺寸、外观等参数; ' 设置颜色、大小和透明度等属性 }

分区“辅助函数”{ :定义draw_keys(img,key_list,hovered_key); ' 绘制虚拟键盘的函数 :定义 get_hovered_key(lmList); ' 确定哪个键被悬停的函数 :定义去抖动(key); ' 防止重复检测同一按键的功能 :定义handle_backspace(); ' 处理退格功能的函数 }

分区“主循环”{ 而(真){ :从相机中捕获一帧; ' 从视频源中读取一帧 if (抓帧失败?) then (是) 停止; ' 如果无法捕获帧则退出循环 结束

    :Detect hands using HandDetector; ' Detect hands and landmarks in the frame
    if (Hands detected?) then (Yes)
        :Get hand landmarks; ' Extract hand landmarks from detection
        :Determine hovered key; ' Find out which key is being hovered by the fingertip
        if (Hovered key detected and debounce successful?) then (Yes)
            if (Hovered key == "Back") then (Yes)
                :Call handle_backspace(); ' Remove the last character from the input
            else (No)
                :Append hovered key to pressed_keys; ' Add the detected key to the list of pressed keys
            endif
            :Print pressed key; ' Output the key that was pressed
        endif
    endif

    :Draw keyboard with transparency; ' Overlay the keyboard on the video feed
    :Display pressed keys on screen; ' Show recently pressed keys on the frame
    :Show the image using cv2.imshow; ' Display the frame with the virtual keyboard

    if (Key 'q' pressed?) then (Yes)
        stop; ' Exit the loop if the 'q' key is pressed
    endif
}

}

:释放相机并摧毁所有窗户; ' 清理资源并关闭窗口 结尾 @enduml


-1
投票

我刚刚发现这个开源项目专注于 Python 数据流分析。一探究竟! https://github.com/SMAT-Lab/Scalpel/

它也是用 Python 编写的;没用过,但是看起来很有趣!

这是他们论文的预印本: https://arxiv.org/pdf/2202.11840.pdf

© www.soinside.com 2019 - 2024. All rights reserved.