Fork me on GitHub

libpython-clj has been undergoing quite a bit of development. There is now extensible datafy/nav support for python modules and classes. We have much better (but still imperfect) environment support. We have a clj-template so you can use Sean Corfield's clj-new system. We also spent some time profiling things to make sure we pay as little of a cost as possible for crossing the language boundaries. The cost is still there of course but we reduced it by a factor of at least 3 or so. We moved GC to be cooperatively done in the python thread. So if you want to use python from only on clojure thread that is now possible. Carin Meier has been doing quite a few demonstration projects using Nextjournal. I really suggest checking those out as you can simply hit 'remix' and start playing with the code. If you haven't checked out Nextjournal in general then by all means, it is a great system for online live-notebook coding. • Changelog: • Github Org: • Carin's NextJournal Page - • Kommen's NextJournal Page - Enjoy 🙂

👏 25
🐍 5
pizzaspin 3
👍 3

A few questions: 1. Can it be considered production-ready? E.g. no breaking changes are expected. 2. Python 3.7 is supported, right? 3. Imagining that there's Jython 3 (there isn't), would libpython-clj be better? If so, how? 4. Same question about graalpython (assuming I decide to run everything on GraalVM). I couldn't quickly find answers in the repo's README and in the links that I've visited.


1. Yes, the interface hasn't changed for a while. 2. Yep. The system is python-version independent, you can select the python you want on initialization. 3. libpython-clj runs cpython with all the extensions. Jython, for instance, doesn't support numpy and definitely doesn't support things like mxnet and such. 4. See response above. The C layer of python requires the interpreter to load the extensions. Without reimplementing a significant portion of the interpreter (which Graal people may do but Jython people can't) you can't load the C extensions.