from screener.screeners import SCREENERS # Import SCREENERS dictionary def get_user_screener_selection(): """ Ask the user which screeners they want to run and whether to use defaults. Returns a dictionary of selected screeners with default/customization choices. """ selected_screeners = {} print("\nAvailable Screener Categories:") for category in SCREENERS: print(f"- {category}") selected_categories = input("\nEnter the categories you want to screen (comma-separated), or type 'all' for all: ").strip().lower() if selected_categories == "all": selected_categories = SCREENERS.keys() else: selected_categories = [c.strip().title() for c in selected_categories.split(",") if c.strip().title() in SCREENERS] for category in selected_categories: print(f"\nCategory: {category}") use_defaults = input(f"Use default settings for {category}? (y/n): ").strip().lower() selected_screeners[category] = {} for screener, description in SCREENERS[category].items(): if use_defaults == "y": selected_screeners[category][screener] = "default" else: custom_value = input(f"{screener} ({description}) - Enter custom threshold or press Enter to use default: ").strip() selected_screeners[category][screener] = float(custom_value) if custom_value else "default" # āœ… Ensure L_Score is added if Fundamentals is selected if "Fundamentals" in selected_screeners and "L_Score" not in selected_screeners["Fundamentals"]: selected_screeners["Fundamentals"]["L_Score"] = "default" # āœ… Ensure L_Score is included print(f"\nāœ… Selected Screeners: {selected_screeners}\n") # āœ… DEBUG LOG return selected_screeners