Spaces:
Sleeping
Sleeping
| """ | |
| What is metadata.py | |
| When the classifier identifies an aircraft say "F22", the pipeline needs its specs: missile speed, missile range, enemy generation, maneuverability. Those live in your aircraft_metadata.csv. | |
| metadata.py has one job: take an aircraft name, look it up in the CSV, return its specs as a dictionary. | |
| """ | |
| import pandas as pd | |
| from src.schemas import BASE_DIR | |
| CSV_PATH = BASE_DIR / "data" / "aircraft_metadata.csv" | |
| # Load the aircraft metadata | |
| aircraft_df = pd.read_csv(CSV_PATH) | |
| # Function to get the Aircraft specs | |
| def get_aircraft_metadata(aircraft_name:str) -> dict: | |
| """ | |
| Look up aircraft specifications from the metadata CSV by aircraft name. | |
| Args: | |
| aircraft_name (str): Aircraft name (case-insensitive). e.g. "F22", "rafale" | |
| Returns: | |
| dict: All CSV columns for that aircraft. Empty dict if not found. | |
| """ | |
| # Upper case everything to search | |
| aircraft_name = aircraft_name.upper() | |
| # Find the row | |
| aircraft_row = aircraft_df[aircraft_df['aircraft'].str.upper() == aircraft_name] | |
| # Handling egde cases | |
| if not aircraft_row.empty: | |
| return aircraft_row.iloc[0].to_dict() | |
| else: | |
| return {} | |