As we wrap up the month in Python and elsewhere: Make generative AI chatbots in Python the Shiny way; use Streamlit to create web-based Python apps without getting dirty with HTML, CSS, or JavaScript; discover Extism, the lib that lets you build universal software components in WebAssembly; and get tips for speeding things up when Python seems too slow.

Top picks for Python readers on InfoWorld

Shiny for Python adds chat component for generative AI chatbots
“Ooh, shiny!” indeed—use the LLM back end of your choice to spin up chatbots with ease.

Intro to Streamlit: Web-based Python data apps made easy
Who wouldn’t want to write snazzy HTML (and CSS, and JavaScript) front ends without touching a line of HTML (or CSS, or JavaScript)?

Intro to Extism: A WebAssembly library for extendable apps and plugins
Write software extensions once in WebAssembly and use them in the language of your choice, anywhere and everywhere you like.

10 tips for speeding up Python programs
Never let them tell you Python’s too slow for the job! (Sometimes, it just needs a little push.)

Python updates elsewhere

Mypy 1.11 release has support for generics
One of Python’s top static type-checking tools now supports Python 3.12’s generics syntax, and tons more.

Get the most out of Python’s free-threading (no-GIL) build
Get detailed rundowns on how to build and use the new version of Python that allows true CPU parallelism in threading. Library compatibility is a significant issue we’ll all need to watch going forward.

The latest entry in the Python compiler sweepstakes … LPython
Yes, it’s another ahead-of-time compiler for Python. This one features multiple back ends (Python to Fortran, really?!). It’s in early stages but worth a try if you’re feeling adventurous.

Dotenvx: A better dotenv, from dotenv’s own creators
Do dotenv for just about any language, environment, or platform: Python, JavaScript, TypeScript, Rust, Java, Docker … did dotenv just eat the world?