Skip to content

Latest commit

 

History

History
148 lines (95 loc) · 5.96 KB

13-pyhubweekly.md

File metadata and controls

148 lines (95 loc) · 5.96 KB

前言

PyHubWeekly每周定期更新,精选GitHub上优质的Python项目/小工具。

我把PyHubWeekly托管到了Github,感兴趣的可以搜索Github项目PyHubWeekly,如果喜欢,麻烦给个Star支持一下吧。此外,欢迎大家通过提交issue来投稿和推荐自己的项目~

本期为大家推荐GitHub上5个优质的Python项目,它们分别是:

  • mitmproxy
  • pygame
  • pytudes
  • httpx
  • prefect

下面分别来介绍一下上述5个GitHub项目。

mitmproxy

Star:18.4k

mitmproxy是一款可以用来拦截、修改、保存 HTTP/HTTPS 请求中间代理工具,可以用于开发过程中的正向代理,反向代理,透明代理等。

安装mitmproxy之后会包含3个工具,mitmproxy、mitmdump、mitmweb。

mitmproxy是一个交互式的、支持SSL/TLS的拦截代理,具有HTTP/1、HTTP/2和WebSockets的控制台接口。

mitmdump是mitmproxy的命令行版本。

mitmweb是mitmproxy的一个基于web的接口。

安装

mitmproxy支持macos、linux、windows等多个平台的安装,也支持使用pip命令直接安装,

pip install mitmproxy

pygame

Star:1.9k

pygame是一款跨平台,用于开发各种多媒体软件(例如游戏)的一个Python库。

img

pygame是一个利用SDL库的写就的游戏库,它支持的功能包括但不限于,

  • 访问光驱
  • 访问显示设备
  • 绘制形状
  • 管理事件
  • 使用字体
  • 加载和存储图片
  • 使用手柄
  • 读取键盘
  • ...

通过使用pygame,你可以很容易开发一款多媒体应用,当然,你可以使用它来开发一款游戏。

pytudes

Star:13.6k

pytudes是一个汇聚Python编程技巧的github项目。

目前github有很多有关Python的编程小技巧,但是大多数都是围绕着基础语法和单点的知识在展开。

img

和大多数汇集编程技巧的项目,pytudes更多的是由某个事件而发起的,为了解决一个问题而给出一个具体的实现过程,在这个过程中会展示很多Python编程技巧,我想,这样能够让学习者理解的更加深刻。

httpx

Star:4.3k

httpx是一款用于Python3、功能齐全的http客户端,它提供同步和异步api,并支持HTTP/1.1和HTTP/2。

它不仅拥有requests具备的功能,它还具备更多更强大的功能,例如,

  • 兼容的API
  • 标准同步和异步接口
  • 支持HTTP/1.1和HTTP/2
  • 能够直接向WSGI应用程序或ASGI应用程序发出请求
  • ...

例如,

>>> import httpx
>>> r = httpx.get('https://www.example.org/')
>>> r
<Response [200 OK]>
>>> r.status_code
200
>>> r.headers['content-type']
'text/html; charset=UTF-8'
>>> r.text
'<!doctype html>\n<html>\n<head>\n<title>Example Domain</title>...'

prefect

Star:2k

prefect是一款面向数据科学的工作流自动化管理系统。

prefect是一个新的工作流管理系统,它是为现代基础设施而设计的,由开源的Prefect核心工作流引擎提供支持。用户将任务组织成流程,而prefect就可以负责其余的各种管理工作。

示例

from prefect import task, Flow, Parameter


@task(log_stdout=True)
def say_hello(name):
    print("Hello, {}!".format(name))


with Flow("My First Flow") as flow:
    name = Parameter('name')
    say_hello(name)


flow.run(name='world') # "Hello, world!"
flow.run(name='Marvin') # "Hello, Marvin!"

启动prefect的本地用户界面来协调和管理工作流:

prefect server start

然后就可以跳转到http://localhost:8080打开管理页面。


推荐阅读