Hello, I maintain a survey of approaches to Pure Python web app development..
I am looking to categorize and describe Gradio, having seen a reddit post on it today..
I breakdown the pure python web development offerings into 3 classes:
- Transpilers - these products are primarily concerned with literal translation of Python to JSS/CSS/HTML/Web assembly.
- Application suites - these products are designed to abstract away most or all of the concerns of deploying an industrial strength app.
- Builders are somewhere in between transpilers and application suites. In most cases a builder (or transpiler) is used with a conventional terminal-server webapp framework like Flask or Django. But there can be considerable pain in integrating builder output into a full-suite web application as users of Dash have unfortunately found out.
Having looked over Gradio, I would say that it is a transpiler. I found some text in the Github README that I think makes a nice summary. I have edited it a bit:
Gradio can wrap almost any Python function with an easy-to-use user interface. The function could be anything from image enhancer to a tax calculator but most commonly is the prediction function of a pretrained machine learning model.
Gradio allows one to quickly create interfaces (either from the console or a Jupyter notebook or the parent companyβs commerical offering and launch()
them.
But it is also possible to customizer how UI components look and/or behave?
If anyone would rather have a different categorization/description of Gradio in the survey, please advise.
I have listed the following as the weaknesses I see in Gradio:
- It is not clear how to integrate output from Gradio into a full-blown web-app.
- It offers password-based authentication only.
- No support for authorization