from pandas import *
import matplotlib.pyplot as plt

import sqlite3

from vbench.git import GitRepo


REPO_PATH = '/home/adam/code/pandas'
repo = GitRepo(REPO_PATH)

con = sqlite3.connect('vb_suite/benchmarks.db')

bmk = '36900a889961162138c140ce4ae3c205'
# bmk = '9d7b8c04b532df6c2d55ef497039b0ce'
bmk = '4481aa4efa9926683002a673d2ed3dac'
bmk = '00593cd8c03d769669d7b46585161726'
bmk = '3725ab7cd0a0657d7ae70f171c877cea'
bmk = '3cd376d6d6ef802cdea49ac47a67be21'
bmk2 = '459225186023853494bc345fd180f395'
bmk = 'c22ca82e0cfba8dc42595103113c7da3'
bmk = 'e0e651a8e9fbf0270ab68137f8b9df5f'
bmk = '96bda4b9a60e17acf92a243580f2a0c3'


def get_results(bmk):
    results = con.execute(
        "select * from results where checksum='%s'" % bmk).fetchall()
    x = Series(dict((t[1], t[3]) for t in results))
    x.index = x.index.map(repo.timestamps.get)
    x = x.sort_index()
    return x

x = get_results(bmk)


def graph1():
    dm_getitem = get_results('459225186023853494bc345fd180f395')
    dm_getvalue = get_results('c22ca82e0cfba8dc42595103113c7da3')

    plt.figure()
    ax = plt.gca()

    dm_getitem.plot(label='df[col][idx]', ax=ax)
    dm_getvalue.plot(label='df.get_value(idx, col)', ax=ax)

    plt.ylabel('ms')
    plt.legend(loc='best')


def graph2():
    bm = get_results('96bda4b9a60e17acf92a243580f2a0c3')
    plt.figure()
    ax = plt.gca()

    bm.plot(ax=ax)
    plt.ylabel('ms')

bm = get_results('36900a889961162138c140ce4ae3c205')
fig = plt.figure()
ax = plt.gca()
bm.plot(ax=ax)
fig.autofmt_xdate()

plt.xlim([bm.dropna().index[0] - datetools.MonthEnd(),
          bm.dropna().index[-1] + datetools.MonthEnd()])
plt.ylabel('ms')