Spaces:
Sleeping
Sleeping
File size: 1,687 Bytes
62afecd 3fa71d5 62afecd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
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=repo_id,
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
)
|