File size: 1,725 Bytes
770f650
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Hàm tiện ích nạp Kaggle credentials an toàn từ biến môi trường hoặc tệp .env (không hardcode key).
"""

import os
import sys

def init_kaggle_auth():
    """Tự động nạp Kaggle credentials an toàn từ .env hoặc biến môi trường."""
    os.environ["PYTHONUTF8"] = "1"
    # 1. Kiểm tra nếu đã có trong môi trường
    if os.environ.get("KAGGLE_USERNAME") and os.environ.get("KAGGLE_KEY"):
        return os.environ["KAGGLE_USERNAME"], os.environ["KAGGLE_KEY"]
        
    # 2. Tìm tệp .env trong cây thư mục
    cur = os.path.abspath(os.path.dirname(__file__))
    for _ in range(4):
        env_path = os.path.join(cur, ".env")
        if os.path.exists(env_path):
            try:
                with open(env_path, "r", encoding="utf-8") as f:
                    for line in f:
                        line = line.strip()
                        if line and not line.startswith("#") and "=" in line:
                            k, v = line.split("=", 1)
                            k = k.strip()
                            v = v.strip().strip("'\"")
                            if k in ["KAGGLE_USERNAME", "KAGGLE_KEY"] and k not in os.environ:
                                os.environ[k] = v
            except Exception:
                pass
            break
        cur = os.path.dirname(cur)
        
    if "KAGGLE_USERNAME" not in os.environ:
        os.environ["KAGGLE_USERNAME"] = "gustavnguyen"
        
    return os.environ.get("KAGGLE_USERNAME"), os.environ.get("KAGGLE_KEY")

if __name__ == "__main__":
    u, k = init_kaggle_auth()
    print(f"Kaggle User: {u}, Key loaded: {'Yes' if k else 'No'}")