""" Generate Arm Ratings CSV File This script calculates outfield arm ratings from Retrosheet play-by-play data and saves them to a CSV file for future reference. Usage: python generate_arm_ratings_csv.py --year 2005 --events data-input/retrosheet/retrosheets_events_2005.csv # Or for partial season: python generate_arm_ratings_csv.py --year 2025 --events data-input/retrosheet/events.csv --season-pct 0.5 """ import argparse import pandas as pd from defenders.retrosheet_arm_calculator import save_arm_ratings_to_csv def main(): parser = argparse.ArgumentParser(description='Generate arm ratings CSV from Retrosheet data') parser.add_argument('--year', type=int, required=True, help='Season year (e.g., 2005)') parser.add_argument('--events', type=str, required=True, help='Path to Retrosheet events CSV file') parser.add_argument('--output-dir', type=str, default='data-output', help='Output directory (default: data-output)') parser.add_argument('--season-pct', type=float, default=1.0, help='Percentage of season completed (default: 1.0)') args = parser.parse_args() print(f"Loading Retrosheet events from {args.events}...") df_events = pd.read_csv(args.events, low_memory=False) print(f"Loaded {len(df_events):,} events") print(f"\nCalculating arm ratings for {args.year} season...") output_file = save_arm_ratings_to_csv( df_events=df_events, season_year=args.year, output_dir=args.output_dir, season_pct=args.season_pct ) print(f"\n✓ Success! Arm ratings saved to: {output_file}") print(f"\nYou can now use this file in your card creation scripts:") print(f" from defenders.retrosheet_arm_calculator import load_arm_ratings_from_csv") print(f" arm_ratings = load_arm_ratings_from_csv({args.year})") if __name__ == '__main__': main()