#pyo3 #automatic #derive #methods #python #repr #attributes

pyo3_special_method_derive_macro

自动为您的 Rust 代码生成 Python dunder 方法

3 个版本

0.4.2 2024 年 7 月 20 日
0.4.1 2024 年 7 月 19 日
0.4.0 2024 年 7 月 19 日

1819过程宏

Download history 139/week @ 2024-07-13 250/week @ 2024-07-20 7/week @ 2024-07-27

每月 396 次下载
pyo3_special_method_deriv… 中使用

MIT 许可证

49KB
959

pyo3-special-method-derive

此存储库允许您使用 PyO3 自动为您的 Rust 存储库生成 Python dunder 方法。

主要功能

  • 以下方法可以自动在结构和枚举上生成
    • __str__
    • __repr__
    • __dir__
    • __getattr__
    • __dict__
  • 支持结构和枚举(由于 PyO3 限制,仅支持单元和复杂枚举)
  • 支持使用 #[pyo3_smd(skip)] 属性跳过变体或字段
  • 自动跳过不是 pub 的结构字段
  • 支持使用 #[pyo3_smd_str(skip)]#[pyo3_smd_str(repr)] 属性以不同的方式跳过 __str____repr__ 的变体或字段

示例

#[pyclass]
#[derive(Dir, Str, Repr)]
struct Person {
    pub name: String,
    occupation: String,
    #[pyo3_smd(skip)]
    pub phone_num: String,
}

PyO3 功能说明

要使用 pyo3-special-method-derive,您应在 PyO3 上启用 multiple-pymethods 功能

pyo3 = { version = "0.22", features = ["multiple-pymethods"] }

依赖项

~3.5MB
~77K SLoC