一种小型、安全的进口分拣机

usort的Python项目详细描述


μ排序

Safe,Python项目的最小导入排序。

versionchangeloglicensecode style

μsort是一种安全、最小的进口分拣机。它的首要目标是不制造“危险” 更改代码,并且不更改代码样式。这是通过检测 最有可能安全互换的不同进口“区块”,以及 只对这些块中的导入重新排序,而不更改格式。代码样式 留作线头和造型师练习。在

在一个块中,µsort将遵循基于导入分组的常见Python约定 源代码(标准库、第三方、第一方或相关方),然后排序 每个组内的词典。这通常看起来像:

importrefrompathlibimportPathfromtypingimportIterableimportaiohttpfromaiosqliteimportconnectimportfoofrombarimportbarfrom.mainimportmain

块是从许多实际条件中推断出来的,包括任何中间条件 进口之间的声明:

^{pr2}$

在这种情况下,µsort检测到两个块–通过调用filterwarnings()分隔开, 并且只对每个块内部的导入进行排序。正在对此代码运行µsort 不会生成任何更改,因为每个块都已排序。在

可以使用# usort:skip指令或 # isort:skip以与现有的代码库兼容。µsort将离开 这些导入保持不变,并将其视为块分隔符。在

有关如何检测块的详细信息,请参见User Guide, 以及如何进行排序。在

安装

µsort需要Python 3.6或更高版本才能运行。安装µsort:

$ pip install usort

使用

要就地格式化一个或多个文件或目录:

$ usort format <path> [<path> ...]

要在不修改文件的情况下生成更改差异,请执行以下操作:

$ usort diff <path>

要验证文件的格式是否正确,如在CI期间:

$ usort check <path>

许可证

μsort是MIT授权的,如LICENSE文件中所示。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
实现接口方法时不允许java@Override   使用BuffereImage加载映像时java高ram使用率   java For循环混乱,为什么不是循环?   java Android网格视图字符串对齐问题   java如何将方法与比较类型的附加功能进行比较?   在Java Swing中放置JSepator后的间隙大小   java如何避免并发访问我的网站中的支付链接   java如何从现有的Unix服务器连接到FTP服务器?   Spring中的java用户相关bean定义   带有scribesjava库的wordpress Woocommerce REST API返回消费者密钥参数缺失错误消息   java我可以自动检测特定设备连接的串行端口吗?   Javafx棋盘游戏   java使用JTextPane显示HTML,支持SVG吗?   SpringBoot如何在java中将映射转换为实体对象?   如何使用java代码对xls文件进行密码保护   Java JPA(EclipseLink)如何在持久化实际实体之前接收下一个生成的值?   Javaservlet启动外部进程