Skip to content

Commit

Permalink
Add option expose static folder
Browse files Browse the repository at this point in the history
  • Loading branch information
richard-to committed Sep 27, 2024
1 parent 129e0d0 commit 535389d
Showing 1 changed file with 26 additions and 1 deletion.
27 changes: 26 additions & 1 deletion mesop/server/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import json
import os
import secrets
import sys
import time
import urllib.parse as urlparse
from typing import Any, Generator, Sequence
Expand Down Expand Up @@ -40,6 +41,7 @@
if EXPERIMENTAL_EDITOR_TOOLBAR_ENABLED:
print("Experiment enabled: EXPERIMENTAL_EDITOR_TOOLBAR_ENABLED")


LOCALHOSTS = (
# For IPv4 localhost
"127.0.0.1",
Expand All @@ -49,6 +51,8 @@

STREAM_END = "data: <stream_end>\n\n"

DEFAULT_ASSETS_URL_PATH = "/assets"


def is_processing_request():
return _requests_in_flight > 0
Expand All @@ -60,7 +64,15 @@ def is_processing_request():
def configure_flask_app(
*, prod_mode: bool = True, exceptions_to_propagate: Sequence[type] = ()
) -> Flask:
flask_app = Flask(__name__)
static_assets_folder = get_static_assets_folder()
if static_assets_folder:
flask_app = Flask(
__name__,
static_folder=static_assets_folder,
static_url_path=DEFAULT_ASSETS_URL_PATH,
)
else:
flask_app = Flask(__name__)

def render_loop(
path: str,
Expand Down Expand Up @@ -513,3 +525,16 @@ def sse_request(
if decoded_line.startswith(SSE_DATA_PREFIX):
event_data = json.loads(decoded_line[len(SSE_DATA_PREFIX) :])
yield event_data


def get_static_assets_folder() -> str | None:
folder = os.environ.get("MESOP_STATIC_ASSETS_FOLDER", "")
if not folder:
return None

if not os.path.isabs(folder):
folder = os.path.join(
os.path.dirname(os.path.abspath(sys.argv[0])),
folder,
)
return folder

0 comments on commit 535389d

Please sign in to comment.