> On Apr 13, 2020, at 11:26 AM, Daniel Holth <dho...@gmail.com> wrote: > > Was it regular cffi or cffi's embedding API, which is used a bit differently > than regular cffi, that "seems to only solve a fraction of the problem"? Was > just playing around with the embedding API and was impressed. > > In Python: > > @ffi.def_extern() > def uwsgi_pyexample_init(): > print("init called") > > return 0 > > In C (embedded in the same plugin): > > CFFI_DLLEXPORT struct uwsgi_plugin pyexample_plugin = { > .init = uwsgi_pyexample_init > }; > > Seems to be happily importing and exporting APIs. Interpreter starts the > first time a @ffi.def_extern() function is called. > > https://cffi.readthedocs.io/en/latest/embedding.html > <https://cffi.readthedocs.io/en/latest/embedding.html> > > https://github.com/unbit/uwsgi/blob/f6ad0c6dfe431d91ffe365bed3105ed052bef6e4/plugins/pyexample/pyexample_plugin.py > > <https://github.com/unbit/uwsgi/blob/f6ad0c6dfe431d91ffe365bed3105ed052bef6e4/plugins/pyexample/pyexample_plugin.py> I might need to understand cffi embedding more to really answer your question - and it’s entirely possible cffi can do this - but as a simple example:
How would I call a Python function from the C++ application that returns a Python object to C++ and then call a method on that Python object from C++? My specific example is that I create Python handlers for Qt windows and then from the Qt/C++ I call methods on those Python objects from C++ such as “handle mouse event”.
_______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-le...@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/6PZ7OJSPXJVQ2BLZWGOOMWZN6EINLQAV/ Code of Conduct: http://python.org/psf/codeofconduct/