Our great sponsors
-
windmill
Open-source developer platform to turn scripts into workflows and UIs. Fastest workflow engine (5x vs Airflow). Open-source alternative to Airplane and Retool.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
It's a topic close to my heart since that is one of the key thing that we solve in the OSS project windmill [1], letting users define simple single-file scripts in python/deno/go and handle the dependencies for them.
For deno, as the article point out, it's easy, deno has this feature baked in and we just have to deno run the scripts, similar for go where the imports are pretty much a fully qualified pointer to their source and version.
For python, we have to do a bit of machinery. For python we parse the AST, look at the imports, use the heuristics that most import name correspond to their pypi package (we maintain a also list of exception-mappings), pip-compile [2] all the imports, and then get a requirement file that we attach to the script, pip-install it before running the script (then we do a LOT of magic to cache the dependencies so one doesn't actually have to install them 99.9% of the time).
[1]: https://github.com/windmill-labs/windmill
I think they missed the best one: https://github.com/teaxyz/cli
It doesn't even need tea itself to run, it'll make a bash script that'll get it too if absent.
pipx might get this ability: https://github.com/pypa/pipx/pull/916
Shebang support with flakes: https://github.com/NixOS/nix/pull/5189