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

pyo3_special_method_derive_0_21

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

1 个不稳定版本

0.4.2 2024 年 7 月 20 日

#2041Rust 模式

Download history 155/week @ 2024-07-20 3/week @ 2024-07-27 4/week @ 2024-08-03

162 每月下载量

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.21", features = ["multiple-pymethods"] }

依赖项

~4–9.5MB
~101K SLoC