deno_python icon indicating copy to clipboard operation
deno_python copied to clipboard

Synchronous Python & async JavaScript?

Open m93a opened this issue 1 year ago • 1 comments

In contrast to most JavaScript code, Python libraries often work synchronously and may even expect one's callback function to resolve synchronously, even if that doesn't make sense in JavaScript environment. One example might be the audible Python package that performs all HTTP requests synchronously and expects a synchronous callback to show an image to the user and get their response.

I have no experience with Deno's FFI yet, but it seems to me that calling synchronous Python functions asynchronously should be possible, as the Python interpreter runs in a different thread. Similarly, I would expect "converting" asynchronous JS functions to synchronous Python callbacks should be possible, if one blocks the Python interpreter until the JS promise is settled.

Is this something that sounds viable to you? And if so, is this something you'd be interested in adding to this library?

m93a avatar May 26 '23 15:05 m93a

While it should be possible to call sync Python functions asynchronously, the latter doesn't seem to work out. I tried it out and there is a deadlock. JS event loop does not step in an FFI callback's context which is further being waited upon by Python.

DjDeveloperr avatar May 28 '23 14:05 DjDeveloperr