StAR-8B / validate_space.py
dslisleedh's picture
Upload 12 files
0d2c003 verified
Raw
History Blame Contribute Delete
2.35 kB
from __future__ import annotations
import ast
from pathlib import Path
ROOT = Path(__file__).resolve().parent
REQUIRED = {
".gitignore",
"app.py",
"star_utils.py",
"README.md",
"requirements.txt",
"pre-requirements.txt",
"DEPLOY.md",
"DEPLOY_KO.md",
"LICENSE",
"THIRD_PARTY_NOTICES.md",
"tests/test_star_utils.py",
}
missing = sorted(name for name in REQUIRED if not (ROOT / name).is_file())
if missing:
raise SystemExit(f"Missing files: {', '.join(missing)}")
for relative in (
"app.py",
"star_utils.py",
"validate_space.py",
"tests/test_star_utils.py",
):
path = ROOT / relative
ast.parse(path.read_text(encoding="utf-8"), filename=str(path))
readme = (ROOT / "README.md").read_text(encoding="utf-8")
for marker in (
"sdk: gradio",
"sdk_version: 6.20.0",
"python_version: 3.12.12",
"app_file: app.py",
"startup_duration_timeout: 1h",
"preload_from_hub:",
"Qwen/Qwen3-VL-8B-Instruct",
"sj9909/StAR-8B",
"facebook/sam2.1-hiera-large",
):
if marker not in readme:
raise SystemExit(f"README metadata is missing: {marker}")
requirements = (ROOT / "requirements.txt").read_text(encoding="utf-8")
for marker in (
"gradio==6.20.0",
"spaces==0.50.4",
"transformers==5.13.0",
"accelerate==1.14.0",
"peft==0.19.1",
"safetensors==0.8.0",
"huggingface-hub==1.22.0",
"git+https://github.com/facebookresearch/sam2.git@2b90b9f",
):
if marker not in requirements:
raise SystemExit(f"requirements.txt is missing: {marker}")
if "qwen-vl-utils" in requirements:
raise SystemExit("qwen-vl-utils should not be required by this package")
pre_requirements = (ROOT / "pre-requirements.txt").read_text(encoding="utf-8")
for marker in ("torch==2.9.1", "torchvision==0.24.1"):
if marker not in pre_requirements:
raise SystemExit(f"pre-requirements.txt is missing: {marker}")
app = (ROOT / "app.py").read_text(encoding="utf-8")
for marker in (
"@spaces.GPU",
'size="large"',
'attn_implementation="sdpa"',
"dtype=torch.bfloat16",
"apply_chat_template(",
"rewrite_lora_state_dict_keys",
"reset_predictor()",
"concurrency_limit=1",
):
if marker not in app:
raise SystemExit(f"app.py is missing: {marker}")
print("Space package validation passed.")