这里是按照「分类」阅读往期的 HelloGitHub 月刊内容, 您目前在查看 HelloGitHub Python 项目 集合。
开源的 IaC 静态代码分析工具。这是一款基础设施即代码(IaC)的静态代码分析工具,旨在帮助开发者在构建阶段及时发现和防止云基础设施配置错误及安全漏洞。支持对 AWS、Azure、GCP、Kubernetes 等多种云平台的 IaC 文件(如 Terraform、CloudFormation、Kubernetes YAML 等)进行静态检测,同时可分析容器镜像和开源依赖包中的安全风险。

多格式文档解析和导出工具。这是一个由 IBM 开源的 Python 工具,专门用于将各类文档转化为适合生成式 AI 使用的格式。它能够将 PDF、DOCX、PPTX、图片、HTML、Markdown 等多种流行文档格式,导出为 Markdown 和 JSON 格式,支持多种 OCR 引擎(PDF)、统一的文档对象(DoclingDocument),轻松集成检索增强生成(RAG)和问答应用,适用于需要将文档作为生成式 AI 模型输入的场景。
from docling.document_converter import DocumentConverter source = "https://arxiv.org/pdf/2408.09869" # PDF path or URL converter = DocumentConverter() result = converter.convert(source) print(result.document.export_to_markdown()) # output: "### Docling Technical Report[...]"

实时的 NVIDIA GPU 网页监控面板。这是一个基于 FastAPI 开发的实时 NVIDIA GPU 监控仪表盘,支持利用率、内存、温度、功耗、风扇转速等多项 GPU 指标。它通过 WebSocket 实时推送数据,支持多 GPU、单机和 GPU 集群环境,并可通过 Docker 一键部署。

基于 PyQt5 的跨平台无边框窗口。该项目是基于 PyQt/PySide 的跨平台无边框窗口组件,在实现无边框窗口效果的同时,保留窗口的基本功能,兼容 Windows、Linux 和 macOS,并支持 Acrylic、Mica 等窗口特效。
import sys from PyQt5.QtWidgets import QApplication from qframelesswindow import FramelessWindow class Window(FramelessWindow): def __init__(self, parent=None): super().__init__(parent=parent) self.setWindowTitle("PyQt-Frameless-Window") self.titleBar.raise_() if __name__ == '__main__': app = QApplication(sys.argv) demo = Window() demo.show() sys.exit(app.exec_())

夸克网盘自动转存工具。这是一款基于 Python 开发的夸克网盘自动化工具,支持网盘签到、自动转存、文件命名整理、推送提醒和自动刷新 Emby 媒体库等功能。

开源的 Linux 游戏平台。这是一款专为 Linux 用户设计的游戏管理平台,采用 Python 编写。它提供了友好的用户界面,极大地简化了 Linux 上的游戏安装和配置过程,让用户能够轻松安装和管理各种游戏,支持连接 Steam、GOG、Humble Bundle 等多种游戏平台,以及运行 Windows 游戏的功能。

轻松提取 PDF 文本和表格的 Python 库。该项目是基于 Python 的 PDF 解析与数据提取库,可轻松提取文本和表格。它能够精确获取 PDF 文档中每个字符、线条、矩形等元素的详细位置、尺寸和字体信息,并支持一键生成页面快照,方便调试。

无需 WebDriver 的浏览器自动化 Python 库。这是一个用于自动化操作 Chromium 内核浏览器的 Python 库。它通过原生 DevTools 协议(CDP)直接控制浏览器,无需依赖 WebDriver,支持绕过验证码、模拟真人交互、网页截图等功能。
import asyncio from pydoll.browser import Chrome from pydoll.constants import Key async def baidu_search(query: str): async with Chrome() as browser: tab = await browser.start() await tab.go_to('https://www.baidu.com') search_box = await tab.find(tag_name='textarea', id='chat-textarea') await search_box.insert_text(query) await search_box.press_keyboard_key(Key.ENTER) await asyncio.sleep(5) asyncio.run(baidu_search('HelloGitHub'))
直接在浏览器中用 Python 创建应用程序。该项目可以让开发者在 HTML 文件中直接使用 Python 编程语言,像 JavaScript 文件一样引入和执行 Python 代码,支持更小的 MicroPython、常见第三方库和操作页面元素等功能,适用于快速创建交互的数据可视化、网站原型和在线教育等 Web 应用场景。
<head> <link rel="stylesheet" href="./core.css"/> <script type="module" src="./core.js"></script> </head> <body> <script type="py" terminal> from pyscript import display display("HelloGitHub!") # this goes to the DOM print("Hello terminal") # this goes to the terminal </script> </body>

极简易用的 Python 事件循环库。这是一个仅约 300 行代码的轻量级 Python 事件循环库,为开发者提供比 asyncio 更加简洁易用的异步编程体验。
import tinyio def slow_add_one(x: int): yield tinyio.sleep(1) return x + 1 def foo(): four, five = yield [slow_add_one(3), slow_add_one(4)] return four, five loop = tinyio.Loop() out = loop.run(foo()) assert out == (4, 5)