Optional uvicorn import for Pyodide, refs #1733

This commit is contained in:
Simon Willison 2022-05-02 12:20:14 -07:00
commit 7e03394734

View file

@ -26,7 +26,6 @@ from itsdangerous import URLSafeSerializer
from jinja2 import ChoiceLoader, Environment, FileSystemLoader, PrefixLoader
from jinja2.environment import Template
from jinja2.exceptions import TemplateNotFound
import uvicorn
from .views.base import DatasetteError, ureg
from .views.database import DatabaseDownload, DatabaseView
@ -806,6 +805,15 @@ class Datasette:
datasette_version = {"version": __version__}
if self.version_note:
datasette_version["note"] = self.version_note
try:
# Optional import to avoid breaking Pyodide
# https://github.com/simonw/datasette/issues/1733#issuecomment-1115268245
import uvicorn
uvicorn_version = uvicorn.__version__
except ImportError:
uvicorn_version = None
info = {
"python": {
"version": ".".join(map(str, sys.version_info[:3])),
@ -813,7 +821,7 @@ class Datasette:
},
"datasette": datasette_version,
"asgi": "3.0",
"uvicorn": uvicorn.__version__,
"uvicorn": uvicorn_version,
"sqlite": {
"version": sqlite_version,
"fts_versions": fts_versions,