import yfinance as yf
from datetime import datetime, timedelta
import ast
import os
from Processing import *
import importlib
import sys
import re

def get_stock_price(stock_symbol):
	try:
		# Récupérer les données du marché pour le symbole d'action donné
		stock_data = yf.Ticker(stock_symbol)
		
		# Récupérer les données historiques avec la date actuelle comme date de fin
		stock_info = stock_data.history(period='1d')
		
		# Obtenir la valeur actuelle de l'action (le dernier prix de clôture)
		current_price = stock_info['Close'].iloc[-1]
		
		return current_price
	except Exception as e:
		return f"Une erreur s'est produite : {str(e)}"


def lireNBCouche(filepath):
	print(filepath)
	try:
		with open("filepath, 'r') as file:
			# Lire les lignes du fichier
			lines = file.readlines()

			# Initialiser les variables pour stocker les trois nombres
			nb1 = None
			nb2 = None
			nb3 = None

			# Parcourir chaque ligne pour extraire les nombres
			for line in lines:
				if line.startswith('NB1:'):
					nb1 = int(line.split(':')[-1].strip())
				elif line.startswith('NB2:'):
					nb2 = int(line.split(':')[-1].strip())
				elif line.startswith('NB3:'):
					nb3 = int(line.split(':')[-1].strip())
			print("ouidd")
			# Vérifier si tous les nombres ont été trouvés
			if nb1 is not None and nb2 is not None and nb3 is not None:
				print("oui")
				return nb1, nb2, nb3, 40
			else:
				print("non")
				raise ValueError("Les nombres NB1, NB2 et NB3 ne sont pas tous présents dans le fichier.")
	except Exception as e:
		print("nnnn")
		return f"Une erreur s'est produite : {str(e)}"
		
def live():
	valeurs_ponderees =[]
	#valeurs_ponderees =  Recupere les 30 derniere valeurs * 41
	#valeurs=RecupereLes40valeurs()	
	
	Atest = os.listdir("Atest")
	for entest in Atest:
	
		Fichier = "Atest/" + entest
		nbCouche1,nbCouche2,nbCouche3,nbCouche4 = lireNBCouche(Fichier)
		resAchat1, resAchat2, resAchat3, resVente = lireAchat(Fichier)
		weight1,weight2,weight3,weight4 = lirePoids(Fichier)
		couche1, couche2, couche3, couche4 = lireCouche(Fichier)
		Portfeuille = lirePortefeuille(Fichier)
		Action = lireAction(Fichier)


		for date in range(len(dates)):
			res = processing(valeurs_ponderees,weight1,weight2,weight3,weight4,couche1,couche2,couche3,couche4,nbCouche1,nbCouche2,nbCouche3,nbCouche4)
			for i in range(0,40):
				Action[i],Portfeuille=evaluation(res[i], valeurs_date[date][i], Action[i], Portfeuille,resAchat1,resAchat2,resAchat3,resVente,Achat1,Achat2,Achat3,Frais)
			
		ecrirePortefeuille(Fichier)
		ecrireActions(Fichier)
		ecrireResultat(Fichier)

live()