Python 中哪些模块最有趣?
在本文中,我们将学习 Python 中最有趣的模块。以下是一些 Python 中有趣的库。
HTTPX
HTTPX 由 Tom Christine 开发,他是一位专注于 API 设计和开发的软件开发人员。
高性能的当前应用程序越来越多地使用异步范式,但在这样做的同时,Requests 库难以有效地完成其工作。
因此,提出 HTTPX 来克服这个问题。HTTPX 基于 Requests 的著名易用性,是一个支持 HTTP/2 和 HTTP/1.1 的异步 HTTP 客户端。它严格控制超时,并提供了一个尽可能类似于 Requests 库的 API。使用 ASGI 协议,具有完整类型注释的 HTTPX 还可以直接调用 Python Web 应用程序。库中还包含所有常见的 Requests 功能,例如国际域名和 URL、保持活动和连接池、具有 cookie 持久性的会话等。
此外,使用高性能异步 Web 框架,您可以为 HTTPX 使用 asyncio 或 trio。因此,HTTPX 可以处理大量查询。
Arrow
许多 Python 开发人员都知道,Python 标准库和某些其他低级模块中不足的日期、时间和时区方法提供了一种与日期和时间对象交互的方式。但是,它们在性能和可用性方面存在不足;例如,它们包含过多的模块和类别,这使得用户难以记住和区分它们。还存在时区和时间戳之间耗时的转换。
幸运的是,用户可以在名为 Arrow 的逻辑且易于使用的 Python 模块的帮助下创建、操作、格式化和转换日期。其主要目标是减少导入以处理日期和时间的代码量。
Arrow 与 ISO 8301 和 Python 版本 2.7、3.5、3.6、3.7 和 3.8 兼容。时区转换很简单,因为时间戳本身就是一个属性。
可以从 Arrow 的几个方面收集其功能。Arrow 中的 DateTime 替换会自动考虑用户的时区。用户将能够获得针对各种常见数据输入场景的快速简便的设计替代方案。对于诸如周偏移量之类的相对偏移量,shift 方法效果很好。字符串可以自动格式化和解析,这节省了大量时间。能够为从微秒到年的任何时间间隔设置周期、范围、底数和上限是 Arrow 的另一个优势。
FastAPI
顾名思义,FastAPI 是一个非常快速且强大的 Python 框架,用于开发应用程序编程接口。它是一个完整的 Web 应用程序框架。使用 FastAPI 可以节省 200% 到 300% 的开发时间。FastAPI 拥有超过 200 位贡献者和 28.6K 的启动次数,在 Python 社区中越来越受欢迎。
FastAPI 是一个基于 ASGI 规范的异步 Web 应用程序框架。它的一些功能如下。
OpenAPI、JSON 格式和自动客户端代码创建 - 全部基于开放标准。
一个 Swagger 用户界面,允许您从浏览器调用和测试 API。
交互式 API 文档
将开发人员错误导致的代码错误数量减少 40%。
代码重复性降到最低。
具有自动完成功能的直观编辑器支持 (VSCode/PyCharm)。
它集成了安全性和身份验证。
一个依赖注入系统,用于自动管理所有依赖项。
提供无限的插件支持。
完全兼容 Starlette 和 Pydantic。
使用 PyTest 测试应用程序。
支持 SQL 数据库、NoSQL 数据库和 GraphQL。
Python Fire
Python Fire 能够为任何给定的项目自动生成 CLI。该库改进了 CLI 的创建。所需的 CLI 可以通过首先在命令行创建必要的函数、模块或类作为函数,然后使用 Fire 来获得。
在创建 Python 库时,应尽快开始测试。为了获得所需的功能,必须在没有 Python Fire 的情况下定义一个主要测试方法。虽然这种方法可以完成工作,但每次需要测试新功能时都需要切换到一个新的主要方法,这很麻烦并且浪费时间。如果您使用 Fire 测试命令行,则无需不断更新主要测试方法。
如果某个函数是由其他人构建的,则仅通过查看其代码可能难以理解。您应该改为在模块上调用 Fire。通过使用此函数,测试模块中的每个方法和函数都很简单。
Starlette
在开发强大的 asyncio 服务方面,Starlette 是您可以信赖的轻量级 ASGI 框架或工具包。
此库适合生产使用,并包含许多有用的功能,例如 WebSocket 和 GraphQL 集成。Starlette 支持进程内后台任务、跨源资源共享、GZip、静态文件和流式响应。所有这些功能都经过了广泛的测试,并且代码库完全是类型注释的,并且没有硬依赖项。
Starlette 可以完整地用作框架,也可以单独用作 ASGI 工具集。此外,组件可以在所有 ASGI 框架中重复使用,从而形成一个兼容的中间件和可安装应用程序的社区。
Mypy
用 Python 编写的静态类型检查器“Mypy”的目标是将动态(或“鸭子”)类型和静态检查的最佳功能结合在一起。Mypy 将强大的类型系统和编译时类型检查融入到 Python 已经令人印象深刻的表达能力和用户友好性中。
使用 Mypy 时,程序员可以自由创建自己的流程。使用 Mypy,我们希望将动态和静态类型的最佳功能结合起来用于开发软件。因此,用户可以在静态类型失败的情况下(例如在遗留代码中)依靠动态类型。Mypy 的错误报告以编译器为基础,使其成为理想的 lint 工具。使用 Mypy,开发人员拥有一个可靠且一致的工具来测试他们的项目及其依赖项。
Immutables
Python 的 Immutables 模块向该语言添加了一种不可变映射类型。一种哈希数组映射 Trie (HAMT),在 Clojure、Scala 和 Haskell 等函数式语言中很流行。在基于 HAMT 的不可变映射上执行 set() 和 get() 等操作的效率几乎为 O(1)(对于合理小的映射为 O(log N))。
Expiring Dict
Python 的 Expiring Dict 是一个强大的缓存模块。提供了一个带有排序和自动过期值的字典,用于缓存。每个字典查找都包括检查元素的 TTL(最大年龄)和最大长度。
结论
在本文中,我们学习了八个不同的有趣 Python 模块,以简单、直接和高效的方式执行任务。