# ##################################
# programme permettant d'importer des données de pointage
# pour les programmes python

# ##########################
# IMPORTATION DES MODULES #
# #########################

import numpy as np
import matplotlib.pyplot as plt

# génération d'une boite de dialogue demandant un nom de fichier
import os
from tkinter import *
from tkinter.filedialog import *
import csv


def Donnees(origine):
    t = np.array([])
    x = np.array([])
    y = np.array([])
    
    if origine == 'avimeca':
        Nom_fichier=askopenfilename(title="Ouvrir le fichier de Pointage", initialdir=os.getcwd(), initialfile="*.txt", filetypes = [("Fichiers Textes tabulés CSV","*.txt;*.csv"),("All", "*")])
        Fichier_Csv = open(Nom_fichier, 'r', encoding='latin-1')
        Objet_Reader_Csv=csv.reader(Fichier_Csv,delimiter = '\t')
        for Ligne in Objet_Reader_Csv:                              # on parcourt chaque ligne du fichier tabulé (chaque ligne est une liste)
            print (Ligne)
            if Objet_Reader_Csv.line_num!=1 and Ligne!=['t', 'x', 'y'] and Ligne!=['(s)', '(m)', '(m)']:    # si ligne avec des "vraies" données
                var_temp=Ligne[1]                          # on récupère le 2nd élément de la liste correspondante à une ligne: c'est x
                var_temp=var_temp.replace(",",".")            # on remplace les "," par des "." pour que Python comprenne
                x=np.append(x,float(var_temp))                   # on ajoute à la liste "x" la valeur entière correspondant à la donnée
                y=np.append(y,float(Ligne[2].replace(",",".")))      # idem pour y (3ème colonne) en une ligne d'instruction
                t=np.append(t,float(Ligne[0].replace(",",".")))    # idem pour les dates (1ère colonne)

        Fichier_Csv.close()

    elif origine == 'pymecavideo':
        """CAS 6:
        OUVERTURE A PARTIR D'UN FICHIER DE POINTAGE PYMECAVIDEO (gratuit, libre et multiplateforme)
        Dans le fichier CSV créé par PYMECAVIDEO, les lignes avec un dièse son inutiles
        on retrouve les noms des colonnes et les unités. Les données sont séparées par des VIRGULES"""
        Nom_fichier=askopenfilename(title="Ouvrir le fichier de Pointage", initialdir=os.getcwd(), initialfile="*.csv;*.txt", filetypes = [("Fichiers Textes tabulés CSV","*.txt;*.csv"),("All", "*.csv;*.txt")])
        Fichier_Csv = open(Nom_fichier, 'r')
        for ligne in Fichier_Csv:
            if not '#' in ligne :
                t = np.append(t, float(ligne.split()[0].replace(',','.'))) #on remplace la virgule par un point dans les données pour qu'elles soient bien lues comme des nombres
                print(ligne.split())
                x = np.append(x , float(ligne.split()[1].replace(',','.')))
                y = np.append(y , float(ligne.split()[2].replace(',','.')))
        Fichier_Csv.close()
    Nbre_Mesures=len(x)                            # le nombre de mesures (longueur de liste x ou y ou t)

    try :
        Fenetre.destroy()
    except : pass
    return t, x, y
