in yourbench/main.py [0:0]
def write_env_file(api_keys: dict[str, str]) -> None:
"""Write API keys to .env file if they don't exist."""
env_path = Path(".env")
existing_vars = {}
# Read existing .env if it exists
try:
if env_path.exists():
with open(env_path, "r") as f:
for line in f:
line = line.strip()
if line and not line.startswith("#") and "=" in line:
key, value = line.split("=", 1)
existing_vars[key.strip()] = value.strip()
except (OSError, PermissionError) as e:
logger.warning(f"Could not read .env file: {e}")
return
# Add new keys if they don't exist
new_keys = []
for var_name, example_value in api_keys.items():
if var_name not in existing_vars:
new_keys.append((var_name, example_value))
if new_keys:
try:
with open(env_path, "a") as f:
if existing_vars: # Add newline if file has content
f.write("\n")
f.write("# API Keys added by YourBench\n")
for var, val in new_keys:
f.write(f"{var}={val}\n")
console.print(f"[green]✓[/green] Added {len(new_keys)} API key(s) to .env file")
console.print("[yellow]Remember to update .env with your actual API keys![/yellow]")
except (OSError, PermissionError) as e:
logger.error(f"Could not write to .env file: {e}")
console.print("[red]Warning: Could not create/update .env file. Add these manually:[/red]")
for var, val in new_keys:
console.print(f" {var}={val}")