Spaces:
Sleeping
Sleeping
| import urllib.request | |
| import urllib.parse | |
| import json | |
| import numpy as np | |
| import tifffile | |
| import tempfile | |
| import os | |
| def test_level(level, lat=None, lon=None, radius_km=50.0): | |
| print(f"Testing level: {level} (lat={lat}, lon={lon}, radius_km={radius_km})") | |
| try: | |
| dummy_data = np.random.randint(0, 255, (224, 224, 3), dtype=np.uint8) | |
| with tempfile.NamedTemporaryFile(suffix=".tif", delete=False) as tmp: | |
| tifffile.imwrite(tmp.name, dummy_data) | |
| tmp_path = tmp.name | |
| boundary = "----WebKitFormBoundary7MA4YWxkTrZu0gW" | |
| parts = [] | |
| parts.append(f"--{boundary}") | |
| parts.append('Content-Disposition: form-data; name="file"; filename="upload_test.tif"') | |
| parts.append('Content-Type: image/tiff') | |
| parts.append('') | |
| with open(tmp_path, "rb") as f: | |
| parts.append(f.read()) | |
| parts.append(f"--{boundary}") | |
| parts.append('Content-Disposition: form-data; name="query_modality"') | |
| parts.append('') | |
| parts.append('optical') | |
| parts.append(f"--{boundary}") | |
| parts.append('Content-Disposition: form-data; name="k"') | |
| parts.append('') | |
| parts.append('5') | |
| parts.append(f"--{boundary}") | |
| parts.append('Content-Disposition: form-data; name="level"') | |
| parts.append('') | |
| parts.append(level) | |
| if lat is not None and lon is not None: | |
| parts.append(f"--{boundary}") | |
| parts.append('Content-Disposition: form-data; name="lat"') | |
| parts.append('') | |
| parts.append(str(lat)) | |
| parts.append(f"--{boundary}") | |
| parts.append('Content-Disposition: form-data; name="lon"') | |
| parts.append('') | |
| parts.append(str(lon)) | |
| parts.append(f"--{boundary}") | |
| parts.append('Content-Disposition: form-data; name="radius_km"') | |
| parts.append('') | |
| parts.append(str(radius_km)) | |
| parts.append(f"--{boundary}--") | |
| parts.append('') | |
| body = b"" | |
| for p in parts: | |
| if isinstance(p, str): | |
| body += p.encode("utf-8") + b"\r\n" | |
| else: | |
| body += p + b"\r\n" | |
| req = urllib.request.Request( | |
| "http://localhost:7860/api/search", | |
| data=body, | |
| headers={ | |
| "Content-Type": f"multipart/form-data; boundary={boundary}", | |
| "Content-Length": str(len(body)) | |
| } | |
| ) | |
| response = urllib.request.urlopen(req) | |
| res_data = json.loads(response.read().decode()) | |
| print(" SUCCESS!") | |
| print(" Results count:", len(res_data["results"])) | |
| if res_data["results"]: | |
| print(" First result class:", res_data["results"][0]["class"]) | |
| else: | |
| print(" EMPTY RESULTS!") | |
| os.remove(tmp_path) | |
| except Exception as e: | |
| print(" FAILED:", e) | |
| if __name__ == "__main__": | |
| test_level("level1") | |
| print("-" * 30) | |
| test_level("level2") | |
| print("-" * 30) | |
| test_level("level3") | |
| print("-" * 30) | |
| test_level("level4", lat=20.5937, lon=78.9629, radius_km=50.0) | |
| print("-" * 30) | |
| test_level("level4", lat=20.5937, lon=78.9629, radius_km=500.0) | |