vantura / upload_map.py
Lurre's picture
Update upload_map.py
2b3b9a5 verified
import argparse
import json
import os
import sys
import tempfile
from huggingface_hub import HfApi
def main() -> int:
parser = argparse.ArgumentParser()
parser.add_argument("--repo", required=True, help="np. Lurre/vantura-map-data")
parser.add_argument("--local-file", required=True, help="np. /data/valhalla_tiles.tar.gz")
parser.add_argument("--path-in-repo", required=True, help="np. valhalla_tiles.tar.gz")
parser.add_argument("--meta-path-in-repo", required=True, help="np. valhalla_tiles.meta.json")
parser.add_argument("--generated-at", required=True, help="ISO UTC, np. 2026-03-19T02:15:00Z")
args = parser.parse_args()
token = os.environ.get("HF_TOKEN")
if not token:
print("Brak HF_TOKEN w env.", file=sys.stderr)
return 1
if not os.path.isfile(args.local_file):
print(f"Plik nie istnieje: {args.local_file}", file=sys.stderr)
return 1
api = HfApi(token=token)
api.create_repo(repo_id=args.repo, repo_type="dataset", exist_ok=True)
api.upload_file(
path_or_fileobj=args.local_file,
path_in_repo=args.path_in_repo,
repo_id=args.repo,
repo_type="dataset",
token=token,
)
meta_payload = {"generated_at": args.generated_at}
with tempfile.NamedTemporaryFile("w", delete=False, suffix=".json", encoding="utf-8") as tmp:
json.dump(meta_payload, tmp, ensure_ascii=False, indent=2)
tmp_path = tmp.name
try:
api.upload_file(
path_or_fileobj=tmp_path,
path_in_repo=args.meta_path_in_repo,
repo_id=args.repo,
repo_type="dataset",
token=token,
)
finally:
try:
os.remove(tmp_path)
except OSError:
pass
print(f"Wysłano mapę i metadane do {args.repo}")
return 0
if __name__ == "__main__":
raise SystemExit(main())