Add Python service foundation and gitignore

This commit is contained in:
dvirlabs 2026-02-15 17:06:20 +02:00
commit da2fb7802b
3 changed files with 93 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
coordinates_cache.json

26
coordinates_cache.json Normal file
View File

@ -0,0 +1,26 @@
{
"Tel Aviv": {
"name": "Tel Aviv",
"latitude": 32.08088,
"longitude": 34.78057,
"country": "Israel"
},
"Beersheba": {
"name": "Beersheba",
"latitude": 31.25181,
"longitude": 34.7913,
"country": "Israel"
},
"Jerusalem": {
"name": "Jerusalem",
"latitude": 31.76904,
"longitude": 35.21633,
"country": "Israel"
},
"Szeged": {
"name": "Szeged",
"latitude": 46.253,
"longitude": 20.14824,
"country": "Hungary"
}
}

66
main.py Normal file
View File

@ -0,0 +1,66 @@
import requests
import json
import os
API_URL = "https://geocoding-api.open-meteo.com/v1/search"
CITIES = ["Tel Aviv", "Beersheba", "Jerusalem", "Szeged"]
CACHE_FILE = "coordinates_cache.json"
def fetch_coordinates(city):
params = {
"name": city,
"count": 1
}
response = requests.get(API_URL, params=params)
response.raise_for_status()
data = response.json()
if "results" not in data:
raise ValueError(f"No results found for {city}")
result = data["results"][0]
return {
"name": result["name"],
"latitude": result["latitude"],
"longitude": result["longitude"],
"country": result["country"]
}
def load_cache():
if os.path.exists(CACHE_FILE):
with open(CACHE_FILE, "r") as f:
return json.load(f)
return None
def save_cache(data):
with open(CACHE_FILE, "w") as f:
json.dump(data, f, indent=4)
def main():
# Try loading cached data first
cached_data = load_cache()
if cached_data:
print("Loaded from cache:")
print(json.dumps(cached_data, indent=4))
return
# If no cache, fetch from API
print("Fetching from Open-Meteo API...")
results = {}
for city in CITIES:
results[city] = fetch_coordinates(city)
save_cache(results)
print("Saved to cache:")
print(json.dumps(results, indent=4))
if __name__ == "__main__":
main()