跳转到主要内容

未提供项目描述

项目描述

Craftier

  ___  ____   __   ____  ____  __  ____  ____ (pre-α)
 / __)(  _ \ / _\ (  __)(_  _)(  )(  __)(  _ \
( (__  )   //    \ ) _)   )(   )(  ) _)  )   /
 \___)(__\_)\_/\_/(__)   (__) (__)(____)(__\_)

      Your personal Python code reviewer

是什么?

Craftier是一个用于轻松编写Python代码重构的框架。在不久的将来,它还将附带一组预定义的重构规则。

它基于libcst,并通过让您通过编写Python代码来编写重构来简化其API的使用。

它还通过添加必要的括号来保留相关注释,并确保修改后的代码正确无误。

入门

使用pip install craftier安装后,您可以使用craftier refactor <python files>运行默认规则。

配置

默认情况下,我们寻找.craftier.ini文件,如果没有找到,将使用默认配置。

您还可以使用--config CONFIG_PATH指定配置文件。

配置格式

[craftier]
packages=craftier.refactors,
excluded=A,
         B

编写自己的规则

就像这样

import craftier

class SquareTransformer(craftier.CraftierTransformer):
    def square_before(self, x):
        x * x

    def square_after(self, x):
        x ** 2


class IfTrueTransformer(craftier.CraftierTransformer):
    def if_true_before(self, x, y):
        x if True else y

    def if_true_after(self, x):
        x

待办事项:编写有关自定义匹配器和类型声明的说明

路线图和待办事项

  • 在转换器中支持多个表达式
  • 添加对语句的支持
  • 完整重构集
  • 支持输入元数据
  • 根据表达式生成RE2过滤。这可以用来预先过滤文件列表,并在代码库搜索工具(如https://grep.app)中测试模式。
  • 广泛的验证测试

局限性

这是一个正在进行中的项目,有些边缘处理可能不够完善。

鉴于我们是基于实际Python代码进行匹配的,一些重构可能不易表达,甚至可能根本无法表达。

历史

TODO:描述我是如何想出这个想法的。

名称

最初我想将这个包命名为pythonista,但不幸的是,有人抢注了这个名字(以及几个其他名字),并且没有按照程序发布这个名称。此外,该问题已被锁定。

这给了我重新思考名称的机会,所以我从单词refactor的字母重组开始,当然这是不成功的。因此,经过一些实验,我将字母o替换为i,得到refactir,它是单词craftier的字母重组。

我喜欢这个名字,因为它就像是“重构”了单词refactor,而craftier传达了这个工具的实际用途。

额外的好处是,这个名字听起来有些像我的姓氏。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

craftier-0.1.0.tar.gz (22.2 kB 查看哈希值)

上传时间 源代码

构建分发

craftier-0.1.0-py3-none-any.whl (25.7 kB 查看哈希值)

上传时间 Python 3

支持者