rsdeps

Cargo.lock visualizer (mirror)
Log | Files | Refs | README | LICENSE

commit cde23044b6b4455ecb237e2cda2d49f95d999c99
parent a6a04664c737de63e91295b5f6e091b16be8b894
Author: Andy Khramtsov <>
Date:   Thu, 28 May 2026 03:35:50 +0300

feat: add production server

Diffstat:
Mpyproject.toml | 1+
Msrc/deps/dash_app.py | 15+++++++++++++--
Muv.lock | 15+++++++++++++++
3 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/pyproject.toml b/pyproject.toml @@ -13,6 +13,7 @@ dependencies = [ "plotly>=6.7.0", "polars>=1.40.1", "pydot>=4.0.1", + "uvicorn>=0.48.0", ] [build-system] diff --git a/src/deps/dash_app.py b/src/deps/dash_app.py @@ -63,8 +63,19 @@ def main(): if args.debug: app.run(debug=True) else: - # todo: use gunicorn or wsgi - raise Exception("Production server is not yet implemented") + import uvicorn + from uvicorn.middleware.wsgi import WSGIMiddleware + + print("Starting production server via Uvicorn...", flush=True) + + wsgi_app = WSGIMiddleware(app.server) # ty: ignore + + uvicorn.run( + wsgi_app, + host="0.0.0.0", + port=8000, + log_level="info", + ) if __name__ == "__main__": diff --git a/uv.lock b/uv.lock @@ -340,6 +340,7 @@ dependencies = [ { name = "plotly" }, { name = "polars" }, { name = "pydot" }, + { name = "uvicorn" }, ] [package.dev-dependencies] @@ -355,6 +356,7 @@ requires-dist = [ { name = "plotly", specifier = ">=6.7.0" }, { name = "polars", specifier = ">=1.40.1" }, { name = "pydot", specifier = ">=4.0.1" }, + { name = "uvicorn", specifier = ">=0.48.0" }, ] [package.metadata.requires-dev] @@ -1538,6 +1540,19 @@ wheels = [ ] [[package]] +name = "uvicorn" +version = "0.48.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e6/bf/f6544ba992ddb9a6077343a576f9844f7f8f06ab819aefd00206e9255f18/uvicorn-0.48.0.tar.gz", hash = "sha256:a5504207195d08c2511bf9125ede5ac4a4b71725d519e758d01dcf0bc2d31c37", size = 91074, upload-time = "2026-05-24T12:08:41.925Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/01/be/72532be3da7acc5fdfbccdb95215cd04f995a0886532a5b423f929cda4cc/uvicorn-0.48.0-py3-none-any.whl", hash = "sha256:48097851328b87ec36117d3d575234519eb58c2b22d79666e9bbc6c49a761dad", size = 71410, upload-time = "2026-05-24T12:08:40.258Z" }, +] + +[[package]] name = "wcwidth" version = "0.7.0" source = { registry = "https://pypi.org/simple" }