#!/usr/bin/env python3 """ Quick Data Comparison Script Simple script to quickly compare specific data points between localhost and production APIs. Useful for manual testing and debugging specific issues. Usage: python quick_data_comparison.py """ import requests import json LOCALHOST_API = "http://localhost:801/api/v3" PRODUCTION_API = "https://sba.manticorum.com/api/v3" def compare_player(player_id): """Compare a specific player between APIs""" print(f"\n=== PLAYER {player_id} COMPARISON ===") try: # Localhost local_resp = requests.get(f"{LOCALHOST_API}/players/{player_id}", timeout=10) local_data = local_resp.json() if local_resp.status_code == 200 else {"error": local_resp.status_code} # Production prod_resp = requests.get(f"{PRODUCTION_API}/players/{player_id}", timeout=10) prod_data = prod_resp.json() if prod_resp.status_code == 200 else {"error": prod_resp.status_code} print(f"Localhost: {local_data.get('name', 'ERROR')} ({local_data.get('pos_1', 'N/A')})") print(f"Production: {prod_data.get('name', 'ERROR')} ({prod_data.get('pos_1', 'N/A')})") if local_data.get('name') != prod_data.get('name'): print("āŒ MISMATCH DETECTED!") else: print("āœ… Names match") except Exception as e: print(f"āŒ Error: {e}") def compare_batting_stats(params): """Compare batting stats with given parameters""" print(f"\n=== BATTING STATS COMPARISON ===") print(f"Parameters: {params}") try: # Localhost local_resp = requests.get(f"{LOCALHOST_API}/plays/batting", params=params, timeout=10) if local_resp.status_code == 200: local_data = local_resp.json() local_count = local_data.get('count', 0) local_top = local_data.get('stats', [])[:3] # Top 3 else: local_count = f"ERROR {local_resp.status_code}" local_top = [] # Production prod_resp = requests.get(f"{PRODUCTION_API}/plays/batting", params=params, timeout=10) if prod_resp.status_code == 200: prod_data = prod_resp.json() prod_count = prod_data.get('count', 0) prod_top = prod_data.get('stats', [])[:3] # Top 3 else: prod_count = f"ERROR {prod_resp.status_code}" prod_top = [] print(f"Localhost count: {local_count}") print(f"Production count: {prod_count}") print("\nTop 3 Players:") print("Localhost:") for i, stat in enumerate(local_top): player = stat.get('player', {}) print(f" {i+1}. {player.get('name', 'Unknown')} ({player.get('id', 'N/A')}) - RE24: {stat.get('re24_primary', 'N/A')}") print("Production:") for i, stat in enumerate(prod_top): player = stat.get('player', {}) print(f" {i+1}. {player.get('name', 'Unknown')} ({player.get('id', 'N/A')}) - RE24: {stat.get('re24_primary', 'N/A')}") except Exception as e: print(f"āŒ Error: {e}") def main(): """Run quick comparisons""" print("šŸ” QUICK DATA COMPARISON TOOL") print("=" * 40) # Test the known problematic players print("\nšŸ“Š TESTING KNOWN PROBLEMATIC PLAYERS:") compare_player(9916) # Should be Marcell Ozuna vs Trevor Williams compare_player(9958) # Should be Michael Harris vs Xavier Edwards # Test the original problematic query print("\nšŸ“Š TESTING BASES LOADED BATTING (OBC=111):") compare_batting_stats({ 'season': 10, 'group_by': 'playerteam', 'limit': 10, 'obc': '111', 'sort': 'repri-desc' }) # Test a simpler query print("\nšŸ“Š TESTING SIMPLE PLAYER BATTING:") compare_batting_stats({ 'season': 10, 'group_by': 'playerteam', 'limit': 5, 'obc': '000' # No runners }) if __name__ == "__main__": main()