from HorseRace.common import get_pages, get_tables
from HorseRace import common as c
import pandas as pd
from pathlib import Path
from typing import Dict

class Jockey(object):
    """docstring for ."""

    def __init__(self, name = None):
        self.name = name
        self.data_exist = False
        if self.name is not None:
            self.data = self.load_jockey_data()
            if isinstance(self.data,pd.DataFrame):
                self.data_exist = True

    def load_jockey_data(self):
        p = Path(r"D:\horserace\data\jockey")
        if not p.exists():
            p = Path(r"E:\horserace\data\jockey")
        dpath = p / (self.name + ".csv")
        if not dpath.exists():
            print('ドライブがアクティブではありません')
            return None
        return pd.read_csv(dpath)

    def analize_jockey_data(self):
        if not self.data_exist:
            print('dataがありません')
            return None
        self.data['開催'] = self.data['開催'].replace('[0-9]','',regex=True)
        self.data['グレード'] = self.data['レース名'].apply(c.categorize_races)
        self.data = self.data.apply(c.split_distance,axis=1)
        self.data["着順"] = pd.to_numeric(self.data["着順"], errors='coerce')
        self.data["人気"] = pd.to_numeric(self.data["人気"], errors='coerce')
        self.data = self.data[['日付', '開催', '天気', 'R', 'レース名', '頭数', '枠番', '馬番','単勝', '人気', '着順', '馬名', '斤量', '距離', '馬場', 'タイム', '着差', '通過', 'ペース','上り', '馬体重', '勝ち馬', 'グレード', 'タイプ']]
        self.data = self.data.dropna(how='any')
        self.gdata = self.data.groupby(['開催','タイプ','距離'])
        self.gdata2 = self.gdata['人気','着順'].mean()
        self.gdata2['期待値'] = self.gdata2['人気']-self.gdata2['着順']
        spath = Path(r"D:\horserace\data\jockey\ana") / (self.name + '.csv')
        self.gdata2.to_csv(spath)
