Download scripts/test_badges_settings_json.py from dn-scribe/attstore: direct link, hf CLI and curl.
- Browser
- Download file 2.55 kB
-
https://huggingface.co/spaces/dn-scribe/attstore/resolve/main/scripts/test_badges_settings_json.py
- Command line
-
hf download hf://spaces/dn-scribe/attstore/scripts/test_badges_settings_json.py
-
curl -L -o test_badges_settings_json.py https://huggingface.co/spaces/dn-scribe/attstore/resolve/main/scripts/test_badges_settings_json.py
2.55 kB
| #!/usr/bin/env python3 | |
| """ | |
| Test script for badge settings download/upload API endpoints. | |
| """ | |
| import requests | |
| import argparse | |
| import json | |
| from urllib.parse import urljoin | |
| def get_jwt_from_api_key(base_url, api_key): | |
| login_url = urljoin(base_url, "/v1/login") | |
| payload = {"api_token": api_key} | |
| headers = {"Content-Type": "application/json"} | |
| resp = requests.post(login_url, json=payload, headers=headers) | |
| if resp.status_code == 200: | |
| data = resp.json() | |
| return data.get("access_token") or data.get("token") | |
| print(f"Login failed: {resp.status_code} {resp.text}") | |
| return None | |
| def download_badges_json(base_url, jwt_token, output_file): | |
| url = urljoin(base_url, "/badges/settings/download") | |
| headers = {"Authorization": f"Bearer {jwt_token}"} | |
| resp = requests.get(url, headers=headers) | |
| if resp.status_code == 200: | |
| with open(output_file, "wb") as f: | |
| f.write(resp.content) | |
| print(f"Downloaded badge settings to {output_file}") | |
| return True | |
| print(f"Download failed: {resp.status_code} {resp.text}") | |
| return False | |
| def upload_badges_json(base_url, jwt_token, input_file): | |
| url = urljoin(base_url, "/badges/settings/upload") | |
| headers = {"Authorization": f"Bearer {jwt_token}"} | |
| with open(input_file, "rb") as f: | |
| files = {"file": (input_file, f, "application/json")} | |
| resp = requests.post(url, headers=headers, files=files) | |
| if resp.status_code == 200: | |
| data = resp.json() | |
| print("Accepted:", data.get("accepted")) | |
| print("Rejected:", data.get("rejected")) | |
| return True | |
| print(f"Upload failed: {resp.status_code} {resp.text}") | |
| return False | |
| def main(): | |
| parser = argparse.ArgumentParser(description="Test badge settings download/upload API.") | |
| parser.add_argument("--url", required=True, help="Base URL of the API server") | |
| parser.add_argument("--token", required=True, help="API key for authentication") | |
| parser.add_argument("--download", metavar="OUTPUT", help="Download badge settings to file") | |
| parser.add_argument("--upload", metavar="INPUT", help="Upload badge settings from file") | |
| args = parser.parse_args() | |
| jwt_token = get_jwt_from_api_key(args.url, args.token) | |
| if not jwt_token: | |
| print("Could not authenticate with provided API key.") | |
| exit(1) | |
| if args.download: | |
| download_badges_json(args.url, jwt_token, args.download) | |
| if args.upload: | |
| upload_badges_json(args.url, jwt_token, args.upload) | |
| if __name__ == "__main__": | |
| main() | |