Как добавить Python Pickle в комплексную ржавчину PYO3?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как добавить Python Pickle в комплексную ржавчину PYO3?

Сообщение Anonymous »

Вопрос
Я использую pyo3 в качестве привязки для использования ржавчины из Python.
pyo3 дает две категоризации для использования #[pyclass] on enum : простой и Complect>. Enum Иметь пробелы в функциональности или доступных решения в Интернете.
Я не могу понять, как использовать python pickle на сложном переводе .
Кто -нибудь смог реализовать Pailling для комплекса enum с PYO3? Enums можно маризовать
При реализации Python Pickle for простых перечислений
я обычно использую предварительно обсуждаемые методы __getnewargs __ или настройки состояния, предпочитая __getnewargs __ , поскольку он не находит на внешний выбор сериализатора. /> getNewargs < /h3>
#[pyclass(eq)]
#[derive(Copy, Clone, PartialEq)]
pub enum MyEnum2 {
Value0 = 0,
Value1 = 1,
}

#[pymethods]
impl MyEnum2 {
// Pickling
#[new]
fn new_py(item: usize) -> MyEnum {
match item {
_ if item == MyEnum2::Value0 as usize => MyEnum2::Value0,
_ if item == MyEnum2::Value1 as usize => MyEnum2::Value1,
_ => MyEnum2::Value0,
}
}
pub fn __getnewargs__) -> PyResult {
*self = decode_from_slice(state.as_bytes(), legacy()).unwrap().0;
Ok(())
}
pub fn __getstate__) -> PyResult) -> PyResult {
*self = decode_from_slice(state.as_bytes(), legacy()).unwrap().0;
Ok(())
}
pub fn __getstate__) -> PyResult) -> PyResult {
| ^ expected `False`, found `True`
104 | pub fn extract_pyclass_ref_mut(&self) -> PyResult {
match self {
TestEnum::Value0{} => Ok((0_usize, None)),
TestEnum::Value1{val: n} => Ok((1_usize, Some(*n))),
}
}
}
< /code>
Gets: < /p>
>>> pickled = pickle.dumps(TestEnum.Value0())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E _pickle.PicklingError: Can't pickle : attribute lookup TestEnum_Value0 on module failed.
< /code>
Кто -нибудь может пролить свет на это? Возможно, я также допустил тривиальную ошибку ...


Подробнее здесь: https://stackoverflow.com/questions/797 ... -rust-enum
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Есть ли ошибка в том, как Python вычисляет комплексную степень? [дубликат]
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Есть ли ошибка в том, как Python вычисляет комплексную степень? [дубликат]
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Есть ли ошибка в том, как Python вычисляет комплексную степень? [дубликат]
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Как заставить ржавчину отправлять системный вызов сброса при записи данных?
    Anonymous » » в форуме Linux
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Как связать ржавчину с флаттером в Linux [закрыто]
    Anonymous » » в форуме C++
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»