# Path: kquant_data/wind/utils.py
# def asDateTime(v, asDate=False):
#     """
#     万得中读出来的时间总多5ms，覆写这部分
#     w.asDateTime = asDateTime
#     w.start()
#     :param v:
#     :param asDate:
#     :return:
#     """
#     # return datetime(1899, 12, 30, 0, 0, 0, 0) + timedelta(v + 0.005 / 3600 / 24)
#     return datetime(1899, 12, 30, 0, 0, 0, 0) + timedelta(v)


from ..processing.utils import *
from .utils import asDateTime
            s = df_new.iloc[:, 0]
            print(s)

            series_data = series_data.combine(s, lambda x1, x2: x1 if pd.isnull(x2) else x2)
            # 标记一下进行过修改，还可以再测下一轮，否则不用
            # 如果正好在换月的那天，A/B/nan出现时，会导致死循环下载
            diff_data = set(series_data) - set_data
            run = len(diff_data) > 0

    if run:
        # 如果一轮都没有下载数据，就不能再进入到循环中了
        series_data = download_daily_between_for_series(w, series_data, code, field, trading_days)
    # 下载的数据两条索引是重复的，需要去重
    series_data = series_data[~series_data.index.duplicated(keep='last')]

    return series_data


def download_daily_ohlcv(w, wind_code, start, end, fields='open,high,low,close,volume,amt,oi,settle', exchange=None):
    """
    下载日线行情，由于有结算价，用于期货
    为了加快下载，想办法取最长数据段
    :param w:
    :param wind_code:
    :param start:
    :param end:
    :param fields:
    :param exchange: 交易日必须指定交易所，否则2006年1月26、27两天数据就没了
    :return:
    """

# Path: kquant_data/wind/utils.py
# def asDateTime(v, asDate=False):
#     """
#     万得中读出来的时间总多5ms，覆写这部分
#     w.asDateTime = asDateTime
#     w.start()
#     :param v:
#     :param asDate:
#     :return:
#     """
#     # return datetime(1899, 12, 30, 0, 0, 0, 0) + timedelta(v + 0.005 / 3600 / 24)
#     return datetime(1899, 12, 30, 0, 0, 0, 0) + timedelta(v)


# Path: kquant_data/wind/wsd.py
from ..processing.utils import *
from .utils import asDateTime

            s = df_new.iloc[:, 0]
            print(s)

            series_data = series_data.combine(s, lambda x1, x2: x1 if pd.isnull(x2) else x2)
            # 标记一下进行过修改，还可以再测下一轮，否则不用
            # 如果正好在换月的那天，A/B/nan出现时，会导致死循环下载
            diff_data = set(series_data) - set_data
            run = len(diff_data) > 0

    if run:
        # 如果一轮都没有下载数据，就不能再进入到循环中了
        series_data = download_daily_between_for_series(w, series_data, code, field, trading_days)
    # 下载的数据两条索引是重复的，需要去重
    series_data = series_data[~series_data.index.duplicated(keep='last')]

    return series_data


def download_daily_ohlcv(w, wind_code, start, end, fields='open,high,low,close,volume,amt,oi,settle', exchange=None):
    """
    下载日线行情，由于有结算价，用于期货
    为了加快下载，想办法取最长数据段
    :param w:
    :param wind_code:
    :param start:
    :param end:
    :param fields:
    :param exchange: 交易日必须指定交易所，否则2006年1月26、27两天数据就没了
    :return:
    """

    w.asDateTime = asDateTime