Take a look at Bokeh and how they handle js-based interactive charts via a Python library.
From my limited experience it appears to have a very interesting approach. It has three levels you can jump between:
1. Just write Python and get interactive graphs
2. Write Python and small snippets of embedded js when (1) is too limiting
And as the project matures — the number of reasons to jump from 1 to 2 to 3 will become less. I’d like to see a similar approach applied to general UI development. It’s a great example of “make the easy things easy, and the hard things possible”.