def sort_data_by_duration(self, partition):
     """ Sort the training or validation sets by (increasing) duration
     """
     if partition == 'train':
         self.train_audio_paths, self.train_durations, self.train_texts = sort_data(
             self.train_audio_paths, self.train_durations, self.train_texts)
     elif partition == 'valid':
         self.valid_audio_paths, self.valid_durations, self.valid_texts = sort_data(
             self.valid_audio_paths, self.valid_durations, self.valid_texts)
     else:
         raise Exception("Invalid partition. " "Must be train/validation")
Esempio n. 2
0
    def run(self):
        """
        Main function to run program
        :return:
        """
        while True:
            # load data to memory
            if not self.all_data:
                tmp_data = []
                with open(self.filename, 'r') as f:
                    for line in f:
                        data = line.strip().split(',')
                        if validate(data[1]):
                            tmp_data.append([data[0], validate(data[1]), 0])

                self.all_data = sort_data(tmp_data)

            print('''Greetings user! Let's make an addressbook!
            
Would you like to:
1.) Add a New Contact
2.) List All Contacts
3.) Search Contacts
4.) Delete A Contact
5.) Make Call
6.) List top 5 Call
7.) Quit Program\n''')

            choice = input("Select an option: ")

            if choice == "1":
                try:
                    self.create_contact()
                except NotAPhoneNumberException:
                    print("The phone number entered is invalid, creation aborted!")

            elif choice == "2":
                self.list_all_contact()

            elif choice == "3":
                self.search_contact()

            elif choice == "4":
                self.delete_contact()

            elif choice == "5":
                self.make_call()

            elif choice == "6":
                self.list_top_contact()

            elif choice == "7":
                print("Ending Contact Book.\nHave a nice day!")
                break

            else:
                print("Invalid Input! Try again.")
def group_by_parameter(aggregate_function, data):
    """
    Returns dictionary with grouped data
    :param aggregate_function: function providing key parameter
    :param data: data to group
    :return: grouped data
    """
    def instantiate_list(group_tuple):
        k, v = group_tuple
        return k, list(v)
    return dict(map(instantiate_list, groupby(sort_data(aggregate_function, data), key=aggregate_function)))
Esempio n. 4
0
 def list_top_contact(self):
     """
     Function list top 5 contact
     :return: list of top 5 contacts
     """
     print('-------------------------------------------------------------------------')
     print_contact({'name': 'NAME', 'phone': 'PHONE', 'outgoing': 'OUTGOING CALL'}, top=True)
     print('-------------------------------------------------------------------------')
     for item in sort_data(self.all_data, 2)[:5]:
         print_contact({'name': item[0], 'phone': item[1], 'outgoing': item[2]}, top=True)
     print('-------------------------------------------------------------------------')
Esempio n. 5
0
def algo(context):
    date_now = context.now.strftime('%Y-%m-%d')
    date_previous = get_trading_date_from_now(date_now, -1,
                                              ql.Days)  # 前一个交易日,用于获取因子数据的日期
    if date_now not in trading_date_list:  # 非调仓日
        pass  # 预留非调仓日的微调空间
    else:  # 调仓日执行算法
        print(date_now + '日回测程序执行中...')
        try:
            code_list = list_gm2wind(
                list(
                    get_history_constituents(
                        INDEX,
                        start_date=date_previous,
                        end_date=date_previous)[0]['constituents'].keys()))
        except IndexError:
            code_list = w.wset("sectorconstituent", "date=" + date_previous +
                               ";windcode=" + INDEX).Data[1]
        I = trading_date_list.index(date_now)
        trading_dates = trading_date_list[I - HISTORY_LENGTH:I + 1]
        data_dfs = []
        for i in range(len(trading_dates) - 1):
            date_start = get_trading_date_from_now(
                trading_dates[i], -1, ql.Days)  # 计算因子值的日子,买入前一日的因子值
            date_end = get_trading_date_from_now(trading_dates[i + 1], -1,
                                                 ql.Days)  # 计算收益率到期的日子-收盘

            factors_df = get_factor_from_wind(code_list, FACTOR_LIST,
                                              date_start)  # 获取因子
            return_df = get_return_from_wind(code_list, date_start, date_end)
            factors_df_and_return_df = pd.concat(
                [factors_df, return_df], axis=1).dropna()  # 去掉因子或者回报有空缺值的样本
            factors_df_and_return_df = sort_data(
                factors_df_and_return_df)  # 使用排序数据作为输入
            data_dfs.append(factors_df_and_return_df)
        factors_return_df = pd.concat(data_dfs,
                                      axis=0)  # 获取的最终训练数据拼接,return为目标
        # 根据data_df训练模型
        model = OrdinaryLinearRegression()
        model.fit(factors_return_df)
        # 根据factor_date_previous选取股票
        factor_date_previous_df = get_factor_from_wind(code_list, FACTOR_LIST,
                                                       date_previous).dropna()
        sorted_codes = model.predict(
            factor_date_previous_df)  # 获取预测收益率从小到大排序的股票列表
        sorted_codes = list_wind2jq(sorted_codes)
        # 根据股票列表下单
        stock_codes = sorted_codes[-STOCK_NUMBER:]
        stock_now = {}
        for stock_code in stock_codes:  # 平均持仓持股
            stock_now[stock_code] = 1. / STOCK_NUMBER
        stock_dict[date_now] = stock_now
Esempio n. 6
0
    def create_contact(self):
        """
        Function to create a contact
        :return: none
        """
        name = input("Enter name: ")
        phone = input("Enter phone number: ")

        if not validate(str(phone)):
            raise NotAPhoneNumberException

        self.all_data.append([name, validate(phone), 0])
        self.all_data = sort_data(self.all_data)
Esempio n. 7
0
    def delete_contact(self):
        """
        Function to delete contact
        :return: none
        """
        search = input("Please enter name or number: ")
        new_data = []
        for item in self.all_data:
            if not fnmatch.fnmatch(str.lower(item[0]), '*{}*'.format(str.lower(search))) or fnmatch.fnmatch(
                    item[1], '*{}*'.format(search)):
                new_data.append([item[0], item[1], item[2]])

        self.all_data = sort_data(new_data)

        return print("The contact was successfully deleted\n")
Esempio n. 8
0
def get_data():
    res = utils.get_data()
    return utils.sort_data(res)
#last one hour time in epoch format
frm = utils.get_date(date=now, th=12)
#get query for reconnected
device=['Device_IPv4','Device_IPv6']
avg=[]
node_avg=[]
node_based_avg={}
files=[]
for ip in device:
    query = utils.get_query(frm=frm,to=to, ip=ip)
    #Get data from elasticsearch
    result = utils.get_details(index="prod_push_cep-*", body=query)
    #fetch details and store it in list
    result = utils.fetch_hits(result=result, ip=ip)
    
    data=utils.sort_data(result)
#    x=utils.sort_node_based(data)
    #print x
    filename='/var/www/html/Report/'+ ip + '_'+datetime.now().strftime("%Y%m%d-%H%M")+'.csv'
    header1=["UAID","IP","Host"]
    temp=1
    for v in data.itervalues():
        if len(v) > temp:
             temp=len(v)
    
    for i in range(temp):
        header1.extend(["Diff"])
    utils.convert_csv(data=data, header=header1,filename=filename)
     
    utils.sort_csv(filename=filename)