File size: 1,682 Bytes
d4a141c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
58
59
60
61
62
63
64
65
66
67
68
from pathlib import Path


REQUIRED_FILES = [
    "Dockerfile",
    ".dockerignore",
    "README.md",
    "requirements.txt",
    "app/main.py",
    "app/core/config.py",
    "app/deployment/hf_status.py"
]


def main():
    print("=" * 70)
    print("HUGGING FACE DEPLOYMENT READINESS CHECK")
    print("=" * 70)

    missing_files = []

    for file_path in REQUIRED_FILES:
        path = Path(file_path)

        if path.exists():
            print(f"OK      {file_path}")
        else:
            print(f"MISSING {file_path}")
            missing_files.append(file_path)

    if Path("README.md").exists():
        readme_text = Path("README.md").read_text(encoding="utf-8")

        print("\nREADME metadata check:")

        for item in ["sdk: docker", "app_port: 7860"]:
            if item in readme_text:
                print(f"OK      {item}")
            else:
                print(f"MISSING {item}")
                missing_files.append(f"README item: {item}")

    if Path("Dockerfile").exists():
        dockerfile_text = Path("Dockerfile").read_text(encoding="utf-8")

        print("\nDockerfile check:")

        for item in ["uvicorn", "app.main:app", "--port", "7860", "USER user"]:
            if item in dockerfile_text:
                print(f"OK      {item}")
            else:
                print(f"MISSING {item}")
                missing_files.append(f"Dockerfile item: {item}")

    print("\nResult:")

    if missing_files:
        print("NOT READY")
        print("Missing items:")
        for item in missing_files:
            print(f"- {item}")
    else:
        print("READY FOR HUGGING FACE SPACES")


if __name__ == "__main__":
    main()