def get_charging_stations()

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