yieldplotlib.generate_key_map#
Generate key_map.py from CSV data or directly from Google Sheets.
This script creates a key_map.py file that maps parameters between different exoplanet simulation libraries (EXOSIMS and AYO). It can either use a local CSV file or directly download from a Google Sheet.
Usage Examples: 1. Generate from a local CSV file:
` python generate_key_map.py --csv input_data.csv `
Download from Google Sheets using a service account credentials file:
` python generate_key_map.py --sheets SHEET_ID --credentials path/to/credentials.json `Download from Google Sheets using Base64-encoded credentials from environment: ``` # First set the environment variable: export GOOGLE_CREDENTIALS_B64=$(cat service-account.json | base64 | tr -d ‘n’)
Use a temporary file for the downloaded CSV (cleaned up afterward):
` python generate_key_map.py --sheets SHEET_ID --temp `
Output:#
The script creates a key_map.py file in the current directory with a KEY_MAP dictionary that maps parameter names to their locations and transformations in the EXOSIMS and AYO libraries.
Functions#
|
Download data from Google Sheets and save as CSV. |
|
Parses the input CSV and constructs the KEY_MAP dictionary. |
|
Writes the KEY_MAP dictionary to a Python file with a docstring. |
|
Process command line arguments and run the appropriate functions. |
Module Contents#
- yieldplotlib.generate_key_map.download_from_google_sheets(sheet_id, output_path, credentials_json_path=None)[source]#
Download data from Google Sheets and save as CSV.
This function authenticates with Google Sheets API using service account credentials and downloads the specified sheet as a CSV file.
- Args:
- sheet_id:
The ID of the Google Sheet to download. This is the string from the URL: https://docs.google.com/spreadsheets/d/{SHEET_ID}/edit
- output_path:
Path where the CSV file should be saved.
- credentials_json_path:
Optional path to a service account credentials JSON file. If not provided, will use GOOGLE_CREDENTIALS_B64 environment variable, which should contain the Base64-encoded JSON credentials.
- Returns:
None. The sheet data is saved to the output_path as a CSV file.
- Raises:
SystemExit: If credentials cannot be loaded or sheet cannot be accessed.
- yieldplotlib.generate_key_map.parse_csv(input_csv)[source]#
Parses the input CSV and constructs the KEY_MAP dictionary.
- Args:
input_csv (str): Path to the input CSV file.
- Returns:
OrderedDict: The constructed KEY_MAP with prioritized ordering.
- yieldplotlib.generate_key_map.write_key_map(key_map, output_py)[source]#
Writes the KEY_MAP dictionary to a Python file with a docstring.
- Args:
- key_map (OrderedDict):
The KEY_MAP dictionary.
- output_py (str):
Path to the output Python file.
- yieldplotlib.generate_key_map.main()[source]#
Process command line arguments and run the appropriate functions.
This function parses command line arguments, downloads from Google Sheets if requested, processes the CSV file, and generates the key_map.py output file.
Command-line arguments:#
–csv: Path to a local CSV file to process –sheets: Google Sheet ID to download and process –credentials: Path to Google service account credentials JSON file (optional) –temp: Use a temporary file for the downloaded CSV (deleted after processing)
Environment variables:#
- GOOGLE_CREDENTIALS_B64: Base64-encoded Google service account JSON (required if
using –sheets without –credentials)