PyHubWeekly每周定期更新,精选GitHub上优质的Python项目/小工具。
我把PyHubWeekly托管到了Github,感兴趣的可以搜索Github项目PyHubWeekly,如果喜欢,麻烦给个Star支持一下吧。此外,欢迎大家通过提交issue来投稿和推荐自己的项目~
本期为大家推荐GitHub上5个优质的Python项目,它们分别是:
- txtai
- Orchest
- watchdog
- Gitutor
- DearPyGui
下面分别来介绍一下上述5个GitHub项目。
Star:262
txtai是一款基于AI在文本上建立索引的工具,能够把相似的文本关联在一起,用于内容搜索。
例如,搜索feel good story,它能够根据索引相似性返回Maine man wins 25 lottery ticket。
搜索health,它能够返回US tops 5 million confirmed virus cases。
安装
可以通过pip
命令轻松安装txtai:
$ pip install txtai
示例
首先,需要创建Embeddings实例,它是txtai的主要入口点。Embeddings实例定义了用于标记文本部分并将其转换为嵌入向量的方法。
from txtai.embeddings import Embeddings
下面,就演示如何用Embeddings搜索相似概念:
import numpy as np
sections = ["US tops 5 million confirmed virus cases",
"Canada's last fully intact ice shelf has suddenly collapsed, forming a Manhattan-sized iceberg",
"Beijing mobilises invasion craft along coast as Taiwan tensions escalate",
"The National Park Service warns against sacrificing slower friends in a bear attack",
"Maine man wins $1M from $25 lottery ticket",
"Make huge profits without work, earn up to $100,000 a day"]
print("%-20s %s" % ("Query", "Best Match"))
print("-" * 50)
for query in ("feel good story", "climate change", "health", "war", "wildlife", "asia", "north america", "dishonest junk"):
# Get index of best section that best matches query
uid = np.argmax(embeddings.similarity(query, sections))
print("%-20s %s" % (query, sections[uid]))
输出结果:
Query Best Match
--------------------------------------------------
feel good story Maine man wins $1M from $25 lottery ticket
climate change Canada's last fully intact ice shelf has suddenly collapsed, forming a Manhattan-sized iceberg
health US tops 5 million confirmed virus cases
war Beijing mobilises invasion craft along coast as Taiwan tensions escalate
wildlife The National Park Service warns against sacrificing slower friends in a bear attack
asia Beijing mobilises invasion craft along coast as Taiwan tensions escalate
north america US tops 5 million confirmed virus cases
dishonest junk Make huge profits without work, earn up to $100,000 a day
Star:222
Orchest是一款用于创建数据科学工作量的工具。
Orchest是一款Web数据科学工具,可在文件系统上运行。使用Orchest,你可以实现如下功能:
- 通过其可视界面构建数据科学工作流
- 自动并行运行工作流
- 在你喜欢的编辑器中开发代码
- ...
orchest的使用依赖Docker,所以,如果你想要尝试,需要首先安装和配置Docker。
$ git clone https://github.com/orchest/orchest.git
$ cd orchest
$ ./orchest.sh start
Star:4.2k
watchdog是一款用于监控系统事件的Python工具,它在Python代码中和命令行下都可以使用。
首先,来看一下在Python中以API方式使用系统事件监控:
import sys
import time
import logging
from watchdog.observers import Observer
from watchdog.events import LoggingEventHandler
if __name__ == "__main__":
logging.basicConfig(level=logging.INFO,
format='%(asctime)s - %(message)s',
datefmt='%Y-%m-%d %H:%M:%S')
path = sys.argv[1] if len(sys.argv) > 1else'.'
event_handler = LoggingEventHandler()
observer = Observer()
observer.schedule(event_handler, path, recursive=True)
observer.start()
try:
whileTrue:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
再看一下命令行下使用,下面这个示例忽略无关的文件,只监控和py和txt相关的事件:
watchmedo log \
--patterns="*.py;*.txt" \
--ignore-directories \
--recursive \
.
Star:6
Gitutor是一款用Python开发,让git命令更加简单的工具。
git是项目开发过程中经常会用到的一种工具,它用于代码的版本控制。
但是,对于初学者它不是特别友好,代码提交、版本回退、代码比较...
而Gitutor让你通过一行命令就可以轻松实现代码版本控制,让git的门槛进一步被拉低。
安装
$ pipx install gitutor
然后,使用gt --help
命令就可以查看能够使用的命令:
gt init
:初始化本地和远程仓库gt save
:把代码变动保存到本地和远程仓库gt goback
:回退到前一个commitgt compare
:对比当前状态和前一个commitgt ignore
:忽略选中的文件gt lesson
:阅读gitutor文档
Star:273
DearPyGui是一个易于使用且功能强大的Python GUI框架,它提供了DearImGui的包装。
它与其他Python GUI框架从根本上存在不同,在后台DearPyGui使用即时模式范式,这样能够实现更加灵活的动态界面。此外,DearPyGui不使用本机窗口小部件,而是使用计算机的GPU绘制窗口小部件,它支持如下平台:
- Windows 10
- macOs
- Linux
DearPyGui提供与DearImGui相同的方式为游戏开发人员提供了一种创建工具的简单方法,DearPyGui提供了一种简单的方法为Python开发人员创建快速而强大的GUI。
给大家推荐1个宝藏公众号【七步编程】,专注于Python、AI、大数据领域内容分享。创作内容坚持原创与高质量,发表内容已经被诸多公众号大V转发,备受欢迎。现在关注,后台回复关键567就可以获得我精心整理的机器学习、深度学习、Python、推荐系统等技术方向的干货!