#pyo3 #python #methods #automatic #derive #repr #dunder

pyo3_special_method_derive

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

14 个不稳定版本 (3 个破坏性更新)

0.4.2 2024年7月20日
0.4.1 2024年7月19日
0.3.1 2024年7月19日
0.3.0 2024年6月25日
0.1.3 2024年6月17日

#382 in Rust 模式

Download history 572/week @ 2024-06-11 233/week @ 2024-06-18 704/week @ 2024-06-25 198/week @ 2024-07-02 137/week @ 2024-07-09 973/week @ 2024-07-16 555/week @ 2024-07-23 146/week @ 2024-07-30 434/week @ 2024-08-06

2,182 monthly downloads

MIT 许可证

16KB
326 代码行

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
~76K SLoC