|
import os |
|
from huggingface_hub import HfApi |
|
from tempfile import TemporaryDirectory |
|
import importlib.util |
|
import sys |
|
import subprocess |
|
|
|
|
|
def load_private_code(): |
|
token = os.environ.get("TOKEN", "") |
|
repo_id = os.environ.get("REPO_ID", "") |
|
private_library_url = os.environ.get("PRIVATE_LIBRARY_URL", "") |
|
if token: |
|
try: |
|
subprocess.run( |
|
["pip", "install", f"git+https://{token}@{private_library_url}"], |
|
check=True |
|
) |
|
except subprocess.CalledProcessError as e: |
|
print("Error installing private module:", e) |
|
api = HfApi(token=os.environ["PRIVATE_REPOSITORY_HF_TOKEN"]) |
|
|
|
with TemporaryDirectory() as tmp_dir: |
|
|
|
api.snapshot_download( |
|
repo_id="neoai-inc-private/pj-andromeda-graphic", |
|
repo_type="space", |
|
local_dir=tmp_dir |
|
) |
|
sys.path.append(tmp_dir) |
|
|
|
spec = importlib.util.spec_from_file_location( |
|
"private_app", |
|
os.path.join(tmp_dir, "app.py") |
|
) |
|
private_module = importlib.util.module_from_spec(spec) |
|
sys.modules["private_app"] = private_module |
|
|
|
try: |
|
spec.loader.exec_module(private_module) |
|
except ModuleNotFoundError as e: |
|
print(f"Error loading module: {e}") |
|
print(f"Current sys.path: {sys.path}") |
|
print(f"Contents of tmp_dir: {os.listdir(tmp_dir)}") |
|
raise |
|
|
|
return private_module |
|
|
|
|
|
private_app = load_private_code() |
|
app = private_app.app |
|
|
|
app.launch( |
|
auth=(private_app.USERNAME, private_app.PASSWORD), |
|
ssr_mode=False |
|
) |