39 comments

[ 1.2 ms ] story [ 93.3 ms ] thread
I might be missing something, but can you show an example of calling the API from javascript?

You seem to be writing it in python and then calling it from within python in the example.

context.eval runs JavaScript, which in the example is calling the Python API. expose adds an object into the global JavaScript space.
Nice! I hadn't tested it yet, but I remember trying to run V8 in Python and it was a real mess - I think that even building it was problematic. I might use this project one day. Did you compare your bindings to alternatives?
No, because there really aren't any alternatives... There is PyV8, which last I checked does not compile on recent versions of V8
If I get it correctly this is V8Py meaning it allows javascript (V8) to call Python scripts, not the other way around.

"Write Python APIs, then call them from JavaScript using the V8 engine"

That's what I took that phrase to mean, but if you look at the example in the read me, it appears to be the other way around. Writing python, defining a method, then wrapping that method in a V8 context and running it from within python.
(comment deleted)
there are a LOT of Sublime Text plugins that depend on this.

EDIT: nevermind. i'm dyslexic

are you thinking of pyv8?
Can anybody tell what's going on with the v8py/kappa.{cpp,h} files?
"// Meme header file. Every project should have one of these. Kappa Kappa Kappa"
I'm a fan of humour in comments, easter-eggs, etc... but for no good reason, this bothers me.
It's forced humor, and a misapplied un-funny version of mildly funny nerd humor at that. It gives me the same kind of chills that I get from people who wear "I <3 bacon" type t-shirts.
What kind of t-shirt would you have a positive response to?
In Spanish we have an expression for the way you feel: "vergüenza ajena", which loosely translates to "feeling the embarrassment someone else should feel for their actions." It's pretty nifty, if not very catchy :P
Apparently it's "fremdscham" in German.
See, that's catchier! Now we are talking.
I like this. There's a lesser-known phrase in English with a similar meaning, "embarrassment transfer".
In Finnish that is called "myötähäpeä"
What's the meme though, honestly it doesn't look like anything but random cpp abuse to me
"Kappa" is from the game streaming site Twitch. Unless it means something else entirely and I'm out of the loop.
I don't feel good about that feeling. Often when I say something makes me cringe, I later feel judgmental about it. Because I am being judgmental.
I also feel like Kappa is related to the Pepe / supremacist folks.
It comes from gaming circles, more specifically Twitch.
(comment deleted)
This allows for calling synchronous JS functions from Python but not async JS functions, right? PyExecJS [0] also doesn't work with async JS, but Js2Py [1] might.

[0] https://github.com/doloopwhile/PyExecJS/issues/20 [1] https://github.com/PiotrDabkowski/Js2Py/blob/05e77f0d4ffe91e...

Wouldn't it be more performant and less awkward to compile python to JS? Or is it for importing JS code into your python program? Well, why don't compile JS to Python then?
If JS code expects to be JITed then transpiled in Python would be quite slow. Transpiling Python to JS is difficult and loses access to various ecosystems e.g. scientific Python.

Having the two runtimes coupled seems to be the ideal way to run both languages in the same process.

Interesting. Could this be used to use SciPy stuff from JavaScript?
Silly question. Can I use this to interact with a machine learning model written in python from javascript on react native ? It'd be great if someone could point out the feasibility/limitations
No, it's for running javascript from a python program and allowing that javascript to call python code.