Skip to content

Approaching boost -> custom python class <-> serialize #13

@schoeller

Description

@schoeller

Dear all,

thanks for your opensource.

I am an occasional scripter and am trying to serialize a custom object from PyRx. I am banging my head doing as follows:

import traceback
from pyrx_imp import Ap, Db
from serialize import register_class
from serialize import dump, dumps

def textstyletablerecord_to_builtin(u): # take custom object and return python-builtin types
     return (u.getName())

def textstyletablerecord_from_builtin(c): # take python-builtin types and return custom object 
     tstr = Db.TextStyleTableRecord()
     tstr.setName(c[0])
     return tstr

register_class(Db.TextStyleTableRecord, textstyletablerecord_to_builtin, textstyletablerecord_from_builtin) # registering serialization class TextStyleTableRecord

@Ap.Command()
def jsontest():
    db = Db.curDb()
    tstr = Db.TextStyleTableRecord() # init the custom object
    print(tstr.className()) # output: AcDbTextStyleTableRecord

    tstr.setName("test") # setting name att
    dumps(tstr, fmt='yaml')

BTW className() prints AcDbTextStyleTableRecord. Also the modules PyRx established an intermediate interface





Then dumps throws as follows:

Exception has occurred: RuntimeError
Pickling of "PyDb.TextStyleTableRecord" instances is not enabled (http://www.boost.org/libs/python/doc/v2/pickle.html)

The custom object is generated in this (awesome) third party project using boost on different SDKs. I have seen a hint in the docs, but I am not sure whether this leads to anywhere or whether I should take a different path. Maybe I have just been stupid with class names.

Hints appreciated, I try to follow, but brain capacity is limited.

Regards

Seb

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions