""" CAC 40 Stock List Complete list of stocks in the CAC 40 index (Euronext Paris) """ CAC_40_STOCKS = [ # Financial Services {"ticker": "BNP.PA", "name": "BNP Paribas", "sector": "Banking"}, {"ticker": "GLE.PA", "name": "Societe Generale", "sector": "Banking"}, {"ticker": "ACA.PA", "name": "Credit Agricole", "sector": "Banking"}, {"ticker": "CS.PA", "name": "AXA", "sector": "Insurance"}, # Luxury & Consumer Cyclical {"ticker": "MC.PA", "name": "LVMH", "sector": "Luxury"}, {"ticker": "RMS.PA", "name": "Hermes", "sector": "Luxury"}, {"ticker": "KER.PA", "name": "Kering", "sector": "Luxury"}, {"ticker": "OR.PA", "name": "L'Oreal", "sector": "Consumer Defensive"}, # Energy {"ticker": "TTE.PA", "name": "TotalEnergies", "sector": "Energy"}, {"ticker": "ENGI.PA", "name": "Engie", "sector": "Utilities"}, # Industrials {"ticker": "AIR.PA", "name": "Airbus", "sector": "Aerospace & Defense"}, {"ticker": "SAF.PA", "name": "Safran", "sector": "Aerospace & Defense"}, {"ticker": "DG.PA", "name": "Vinci", "sector": "Construction"}, {"ticker": "SGO.PA", "name": "Saint-Gobain", "sector": "Construction"}, {"ticker": "SU.PA", "name": "Schneider Electric", "sector": "Industrials"}, {"ticker": "EN.PA", "name": "Bouygues", "sector": "Construction"}, # Technology {"ticker": "CAP.PA", "name": "Capgemini", "sector": "Technology"}, {"ticker": "DSY.PA", "name": "Dassault Systemes", "sector": "Technology"}, # Healthcare {"ticker": "SAN.PA", "name": "Sanofi", "sector": "Healthcare"}, {"ticker": "EL.PA", "name": "EssilorLuxottica", "sector": "Healthcare"}, # Consumer Defensive & Services {"ticker": "CA.PA", "name": "Carrefour", "sector": "Consumer Defensive"}, {"ticker": "BN.PA", "name": "Danone", "sector": "Consumer Defensive"}, {"ticker": "RI.PA", "name": "Pernod Ricard", "sector": "Beverages"}, {"ticker": "AC.PA", "name": "Accor", "sector": "Consumer Cyclical"}, # Basic Materials {"ticker": "AI.PA", "name": "Air Liquide", "sector": "Basic Materials"}, # {"ticker": "MT.PA", "name": "ArcelorMittal", "sector": "Basic Materials"}, # Removed: No data available on Yahoo Finance # Automotive {"ticker": "RNO.PA", "name": "Renault", "sector": "Automotive"}, {"ticker": "ML.PA", "name": "Michelin", "sector": "Automotive"}, {"ticker": "STLAP.PA", "name": "Stellantis", "sector": "Automotive"}, # Communication Services & Utilities {"ticker": "ORA.PA", "name": "Orange", "sector": "Telecommunications"}, {"ticker": "VIV.PA", "name": "Vivendi", "sector": "Communication Services"}, {"ticker": "VIE.PA", "name": "Veolia", "sector": "Utilities"}, ] def get_cac40_tickers(): """Get list of all CAC 40 tickers""" return [stock["ticker"] for stock in CAC_40_STOCKS] def get_stocks_by_sector(sector: str): """Get stocks filtered by sector""" return [stock for stock in CAC_40_STOCKS if stock["sector"] == sector] def get_all_sectors(): """Get list of unique sectors""" return list(set(stock["sector"] for stock in CAC_40_STOCKS))