in gemini/agents/research-multi-agents/ev_agent/api_handler/api_02_EV_Infra_StationAnalysis.py [0:0]
def get_charging_stations(config: Dict) -> Dict:
"""Main function to get and analyze charging station data"""
debug = config.get("debug", False)
radius_miles = config.get("radius_miles", DEFAULT_RADIUS)
api_key = config.get("api_key", "DEMO_KEY")
if api_key == "YOUR_API_KEY":
api_key = "DEMO_KEY"
if debug:
print("Debug: Using DEMO_KEY for API access")
try:
if not config.get("city") or not config.get("state"):
raise ValueError("City and state are required")
# Get coordinates
coords = get_city_coordinates(config["city"], config["state"], debug)
# Get station data
station_data = get_station_data_filtered(
coords["lat"],
coords["lon"],
radius_miles,
config["state"],
api_key,
config.get("max_total_stations"),
config.get("stations_per_page", DEFAULT_STATIONS_PER_PAGE),
debug,
)
# Process and analyze the data
result = process_station_data(station_data, coords["city_area"], debug)
# Add location metadata
result.metadata.update(
{
"city": config["city"],
"state": config["state"],
"radius_miles": radius_miles,
"coordinates": {"latitude": coords["lat"], "longitude": coords["lon"]},
"display_name": coords.get("display_name"),
}
)
return result
except Exception as e:
if debug:
print(f"Error: {str(e)}")
raise