跳转到主要内容

从__init__中为您的Python类创建一个__repr__

项目描述

crepr

为您的Python类创建一个__repr__

crepr是一个Python脚本,它接受一个文件名作为命令行参数,导入指定的模块,然后为模块中定义的每个类添加或删除一个__repr__方法。它使用类中__init__方法中的定义来创建一个有用的对象表示。发音为/kɹeɪpr/,类似于🇳🇿 crêpe。

请参阅博客文章Love Your Representation ,了解此包的动机。

Tests codecov pre-commit MyPy Black MIT License Python Version PyPI - Version Status

功能

  • 自动为Python文件中的所有类生成__repr__方法
  • 使用__init__方法的参数创建有意义的表示
  • 可以添加或删除__repr__方法
  • 提供选项以显示差异或直接将更改应用于文件

安装

pip install crepr

用法

要将__repr__方法添加到文件中的所有类中

crepr add <file_name> [--kwarg-splat "..."] [--diff/--inline]

要从文件中的所有类中删除__repr__方法

crepr remove <file_name> [--diff/--inline]

选项

  • <file_name>:要处理的Python文件名称。
  • --kwarg-splat:用于**kwargs splat的字符串(默认为"...")。
  • --diff:显示更改的差异。
  • --inline:直接将更改应用于文件。

示例

给定文件 tests/classes/kw_only_test.py 的内容

class KwOnly:
    def __init__(self, name: str, *, age: int) -> None:
        self.name = name
        self.age = age

命令

 crepr add tests/classes/kw_only_test.py

产生

class KwOnly:
    def __init__(self, name: str, *, age: int) -> None:
        self.name = name
        self.age = age

    def __repr__(self) -> str:
        """Create a string (c)representation for KwOnly."""
        return (f'{self.__class__.__module__}.{self.__class__.__name__}('
            f'name={self.name!r}, '
            f'age={self.age!r}, '
        ')')

该类的实例的 repr() 将是

>>> from tests.classes.kw_only_test import KwOnly
>>> kwo = KwOnly('Christian', age=25)
>>> kwo
tests.classes.kw_only_test.KwOnly(name='Christian', age=25, )

使用以下命令将更改应用于文件

 crepr add tests/classes/kw_only_test.py --inline

给你的表示一些爱。

❤️.__repr__(self) -> str:

项目详情


下载文件

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

源分布

crepr-0.4.0.tar.gz (8.1 kB 查看哈希值)

上传时间

构建分布

crepr-0.4.0-py3-none-any.whl (7.4 kB 查看哈希值)

上传时间 Python 3

由...

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面