什么是最有趣的Python模块
在这篇文章中,我们将学习Python中最有趣的模块。 以下是Python中一些有趣的库。
HTTPX
HTTPX是由Tom Christine开发的,他是一个专注于API设计和开发的软件开发者。
目前高性能的应用程序越来越多地使用异步模式,然而在这样做的同时,Requests库却在努力有效地完成它的工作。
因此,HTTPX被提出来以克服这个问题。基于Requests著名的可用性,HTTPX是一个异步的HTTP客户端,支持HTTP/2和HTTP/1.1。它对超时有严格的控制,并提供一个与Requests库尽可能相似的API。通过ASGI协议,具有完整类型注释的HTTPX也可以直接调用到Python web应用程序中。所有常见的Requests特性,包括作为国际域名和URL,保持在线和连接池,具有cookie持久性的会话,以及其他,也都包含在该库中。
此外,对于高性能的异步网络框架,你可以使用asyncio或trio的HTTPX。正因为如此,HTTPX可以处理大量的查询。
Arrow
正如许多Python开发者所知道的,Python标准库和其他某些低级模块中不完善的日期、时间和时区方法提供了一种与日期和时间对象交互的方式。然而,它们在性能和可用性方面存在不足;例如,它们包含了过多的模块和类别,这使得用户很难回忆和区分它们。在时区和时间戳之间也存在耗时的转换。
幸运的是,用户可以在逻辑性强、平易近人的 Python 模块 Arrow 的帮助下创建、操作、格式化和转换日期。它的主要目的是减少你为处理日期和时间而导入的代码量。
Arrow适用于ISO 8301和Python 2.7, 3.5, 3.6, 3.7, 和3.8版本。时区转换很简单,因为时间戳本身就是一个属性。
Arrow的功能可以从它的几个方面收集。Arrow中的DateTime替换会自动考虑到用户的时区。用户可以为一系列常见的数据输入情况获得快速而简单的设计替代方案。对于相对偏移,如周数偏移,移位的方法效果很好。字符串可以被自动格式化和解析,这是一个巨大的时间节省者。为从微秒到年的任何时间间隔设置周期、范围、下限和上限的能力是Arrow的另一个强项。
FastAPI
顾名思义,FastAPI是一个非常快速和强大的Python框架,用于开发应用程序编程接口。它是一个完整的网络应用程序框架。使用FastAPI,你可能会节省200%到300%的开发时间。有超过200个贡献者和28.6K的启动,FastAPI在Python社区越来越受欢迎。
FastAPI是一个基于ASGI规范的异步Web应用框架。它的一些特点如下。
- OpenAPI、JSON格式和自动客户端代码创建–都是基于开放标准的。
-
一个swagger用户界面,允许你从浏览器中调用和测试API。
-
互动式API文档
-
将开发人员在代码中的错误造成的错误数量减少40%。
-
尽量减少代码的重复。
-
它有集成的安全和认证。
-
一个依赖性注入系统,自动管理所有的依赖性。
-
提供对插件的无限支持。
-
与《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
Mypy “是一个用Python编写的静态类型检查器,它的目标是将动态(或 “鸭子”)类型和静态检查的最佳特性结合起来。Mypy将一个强大的类型系统和编译时类型检查融入到Python已经令人印象深刻的表达能力和用户友好性中。
当使用Mypy时,程序员可以自由地创建他们自己的流程。通过Mypy,我们希望将动态类型和静态类型的最佳功能汇集在一起,用于开发软件。因此,用户可以在静态键入失败的情况下依靠动态键入,如遗留的代码。Mypy的错误报告是按照编译器的结构设计的,因此它非常适合作为一个linter使用。有了Mypy,开发者就有了一个可靠的、一致的工具来测试他们的项目和他们的依赖关系。
Immutables
Python 的 Immutables 模块为语言增加了一个不可变的映射类型。Hash Array Mapped Trie (HAMT),在Clojure、Scala和Haskell等函数式语言中很流行。在基于HAMT的不可变映射上,像set()和get()这样的操作对于合理的小型映射来说几乎是O(1)效率(O(log N))。
Expiring Dict
Python的Expiring Dict是一个强大的缓存模块。提供了一个带有排序和自动失效值的字典,用于缓存。每个字典的查找包括对元素的TTL(最大年龄)和最大长度的检查。
结论
在这篇文章中,我们了解了八个不同的耐人寻味的Python模块,以简单、直接、高效的方式执行任务