Summary of Gradio for my Pure Python Web Development Survey Article

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:

  1. Transpilers - these products are primarily concerned with literal translation of Python to JSS/CSS/HTML/Web assembly.
  2. Application suites - these products are designed to abstract away most or all of the concerns of deploying an industrial strength app.
  3. 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:

  1. It is not clear how to integrate output from Gradio into a full-blown web-app.
  2. It offers password-based authentication only.
  3. No support for authorization