这里是按照「分类」阅读往期的 HelloGitHub 月刊内容, 您目前在查看 HelloGitHub Python 项目 集合。
基于终端的 CPU 监控和压测工具。这是一个 Python 写的命令行工具,可在终端中以图形方式实时显示 CPU 温度、频率、功率和利用率等信息。它还支持安装 FIRESTARTER 等工具,对 CPU 进行压力测试。

高级字典操作的 Python 库。这是一个提升 Python 字典易用性的库,兼容原生字典。它支持点表示法(dict.user.name)轻松访问和设置值,并能自动创建缺失的键,避免出现 KeyError 异常。
from box import Box hg_box = Box({ "HelloGitHub": { "star": "89k", "fork": "9.5k" } }) hg_box.HelloGitHub.star # 89k hg_box.to_json(filename="hg.json") new_box = Box.from_json(filename="hg.json") new_box.keys() # dict_keys(['HelloGitHub'])
极简的浏览器书签管理平台。该项目是基于 Django 构建的浏览器书签管理平台,它提供了简洁易用的 Web 界面和强大的搜索功能,支持标签分类、批量编辑和稍后阅读等功能,并配有 Chrome 和 Firefox 插件,方便用户随时随地保存和访问书签。

快速生成 Material 风格的文档网站。该项目是基于 MkDocs 构建的美观且功能丰富的文档网站生成器,支持 Markdown、搜索、移动端适配、多语言等功能,适用于快速创建技术文档、产品手册和教程等类型的网站。

功能全面的浏览器自动化框架。该项目是基于 Selenium 的 Python 自动化测试框架,集成了爬虫、自动化测试和生成报告等多种功能。它提供了丰富的示例,并且独特的 UC 模式,可以帮助开发者在进行浏览器自动化操作时避免被检测出来。
from seleniumbase import BaseCase BaseCase.main(__name__, __file__) class TestSimpleLogin(BaseCase): def test_simple_login(self): self.open("seleniumbase.io/simple/login") self.type("#username", "demo_user") self.type("#password", "secret_pass") self.click('a:contains("Sign in")') self.assert_exact_text("Welcome!", "h1") self.assert_element("img#image1") self.highlight("#image1") self.click_link("Sign out") self.assert_text("signed out", "#top_message")

音频转录与翻译工具。该项目是基于 Whisper 的音频转录和翻译工具,它开箱即用且操作简单,支持语音转文字、音频翻译、多种语言和离线使用,适用于 macOS、Windows 和 Linux 平台。

简化浏览器自动化的 Python 库。该项目是基于 Selenium 的轻量级 Python 库,它通过提供更高级和易用的 API,让用 Python 编写浏览器自动化脚本变得更加简单和方便,支持 Chrome 和 Firefox 浏览器。

Python 的热重载工具。这是一个专为 Python 提供热重载功能的库,它支持在程序运行时修改和更新 Python 代码,无需重启程序。
# Loop over a function jurigged --loop function_name script.py jurigged --loop module_name:function_name script.py # Only stop on exceptions jurigged --xloop function_name script.py

更好用的 Python 排序集合库。该项目提供了 SortedList、SortedDict 和 SortedSet 三种数据结构,完全兼容 List、Dict、Set 内置数据类型的 API。尽管采用纯 Python 编写,其速度却可以媲美使用 C 扩展实现的 Python 库。
from sortedcontainers import SortedList sl = SortedList(['e', 'a', 'c', 'd', 'b']) # sl: SortedList(['a', 'b', 'c', 'd', 'e']) sl *= 10_000_000 sl.count('c') # 10000000 sl[-3:] # ['e', 'e', 'e'] from sortedcontainers import SortedDict sd = SortedDict({'c': -3, 'a': 1, 'b': 2}) # sd: SortedDict({'a': 1, 'b': 2, 'c': -3}) sd.popitem(index=-1) # ('c', -3) from sortedcontainers import SortedSet ss = SortedSet('abracadabra') # ss: SortedSet(['a', 'b', 'c', 'd', 'r']) ss.bisect_left('c') # 2
