import contextlib import io import logging import os import sys from urllib.parse import quote # Silence the HTTP stack before it is imported. It does not print by default — # urllib3 logs at DEBUG and the root logger sits at WARNING — but any dependency # that calls logging.basicConfig() at DEBUG or INFO turns that on, and what it # then emits is the full request URL, which carries the private repository path. # Space container logs are public on a public Space, so this cannot rest on a # default staying put. for _n in ("urllib3", "requests", "urllib3.connectionpool", "charset_normalizer"): logging.getLogger(_n).setLevel(logging.CRITICAL) logging.getLogger(_n).propagate = False import requests try: token = os.environ["HF_TOKEN"] source = os.environ["AAAS_SOURCE"] revision = os.environ.get("AAAS_SOURCE_REVISION", "main") url = ( f"https://huggingface.co/datasets/{quote(source, safe='/')}" f"/resolve/{quote(revision, safe='')}/start.py" ) # The request is made with stdout and stderr captured. Nothing the HTTP # stack writes is safe to forward to a public log: on a failed lookup it can # carry the full request URL, and that URL contains the private repository # path. Anything captured here is discarded, not printed. _sink_out, _sink_err = io.StringIO(), io.StringIO() with contextlib.redirect_stdout(_sink_out), contextlib.redirect_stderr(_sink_err): response = requests.get( url, headers={"Authorization": f"Bearer {token}"}, timeout=60, ) response.raise_for_status() path = "/tmp/.aaas_start.py" with open(path, "wb") as f: f.write(response.content) os.execve(sys.executable, [sys.executable, path], os.environ.copy()) except Exception: print("ERROR: application bootstrap unavailable.", flush=True) sys.exit(1)