da-woods schrieb am 12.03.20 um 16:11: > The process of wrapping a C struct or C++ class in an extension type often > has the user doing a pretty mechanical duplication of attributes/functions > that Cython already knows about. I'm looking at doing: > > cdef struct S: > int a > # etc. > > then `cython.autowrap[S]` would create an extension type that wraps S by > value.
Sounds like a good idea in general. Questions: What makes C structs and C++ classes special enough to make this a separate language feature? That should be part of a motivation somewhere (probably in a ticket). How does this relate to the support for @dataclass in GH-2903? Is the only difference that you would write "x.member" instead of "x.structattr.member"? https://github.com/cython/cython/issues/2903 Why "autowrap[S]" and not "autowrap(S)"? I'm asking also because there should probably be a way for this to work in Python files, for which a function call seems more natural. It also feels like a @decorator would somehow fit quite well here. Even when defined in a .pxd file, the struct would still only be exported in the corresponding module (with the same name). Something like this: @cclass cdef struct S: int x Not sure if reusing @cclass is a good idea, but it doesn't seem wrong. Defining this in a .pxd file could then even allow cimporting modules to understand the extension type wrapper as well, by simply reconstructing the type representation on their side. Stefan _______________________________________________ cython-devel mailing list cython-devel@python.org https://mail.python.org/mailman/listinfo/cython-devel