예제 #1
0
def get_root_path():
    """因为多个地方在引用, 只能配置成绝对目录
    return: str path
    """
    key = enum.ROOT_PATH
    root_path = myredis.get_obj(key)
    assert (os.path.isdir(root_path))
    return root_path
예제 #2
0
def combin_cur_dir(sub_dir):
    """组合目录
    当前执行文件的目录作为根目录, 支持多进程
    sub_dir: 当前执行文件下的子目录, 前面不带/
    return: 绝对路径
    """
    key = myredis.gen_keyname(__file__, combin_cur_dir)
    enter_file = sys.argv[0]
    root_dir = os.path.dirname(os.path.abspath(enter_file))
    if root_dir.lower().find('multisubprocess') >= 0:
        root_dir = myredis.get_obj(key)
    else:
        myredis.set_obj(key, root_dir)
    return root_dir + '/' + sub_dir
예제 #3
0
 def Reduce(self):
     """合并结果, 返回各任务的df
     return: list, 有几个Map list里就有几个元素"""
     df = self.pd_task
     #按task_id来排序
     max_id = np.max(df[0])
     result = []
     for task_id in range(max_id + 1):
         df_result = pd.DataFrame([])
         for i in df[df[0] == task_id].index:
             r = myredis.get_obj(getResultName(i))
             assert (isinstance(r, pd.DataFrame) or r is None)
             df_result = pd.concat([df_result, r])
         result.append(df_result)
     return result
예제 #4
0
def PostTask(fn, t, reset=False):
    """每隔t秒执行一次fn
    主要是防止交易接口被短期内多次调用, 造成系统异常
    fn : callback function
    t : 秒
    reset: 重置时间, 立刻执行
    """
    key = 'posttask_' + fn.func_name
    cur_t = curTime()
    if reset:
        myredis.delkey(key)
    pre_t = myredis.get_obj(key)
    if pre_t == None:
        pre_t = cur_t - datetime.timedelta(seconds=t + 1)

    if cur_t - pre_t > datetime.timedelta(seconds=t):
        fn()
        myredis.set_obj(key, cur_t)
예제 #5
0
def run():
    json_string = myredis.get_obj(enum.key)
    model = model_from_json(json_string)
    model.load_weights(enum.h5)
    (x_train, y_train), (x_test, y_test) = my_recognition.get_data()
    data_len = x_train.shape[-2] * x_train.shape[-1]
    x_train = x_train.reshape(x_train.shape[0], data_len)
    x_test = x_test.reshape(x_test.shape[0], data_len)
    x_train = x_train.astype('float32')
    x_test = x_test.astype('float32')
    x_train /= 255
    x_test /= 255
    x = x_test[-2:]
    model.compile(loss='categorical_crossentropy',
                  optimizer=RMSprop(),
                  metrics=['accuracy'])

    preds = model.predict(x)
    print(preds)
예제 #6
0
파일: env.py 프로젝트: nessessary/autoxd
def get_root_path():
    """因为多个地方在引用, 只能配置成绝对目录
    return: str path
    """
    key = enum.ROOT_PATH
    if enum.use_redis:
        root_path = myredis.get_obj(key)
    else:
        cur_path = agl.get_exec_file_path()
        key_path = "autoxd\\autoxd"
        pos = cur_path.find(key_path)
        if pos <= 0:
            key_path = "autoxd/autoxd"
            pos = cur_path.find(key_path)
        root_path = cur_path[:pos + len(key_path)]
        #cur_path = os.path.abspath(__file__)
        #cur_path = os.path.dirname(cur_path)
        #root_path = os.path.abspath(os.path.join(cur_path, '..'))
    assert (os.path.isdir(root_path))
    return root_path
예제 #7
0
def main(args):
    #os.chdir(getMainDir())
    if len(args) > 0:
        i = int(args[0])
    else:
        i = 0
    #print('arg=',i)
    pd_task = myredis.get_obj('multi')
    if 0: pd_task = pd.DataFrame
    #print pd_task.iloc[i]
    v = tuple(pd_task.iloc[i].tolist()[1:])  #去掉task_id
    #print(v)
    v += (i, )  #加上task_id
    fname = v[0]
    #print('fname=',fname)
    AddPath(fname)
    module_name = getImportName(fname)
    s = 'import %s\n' % (module_name)
    # 获取import模块名
    #module.fn
    s += 'r=%s' % (module_name)
    s += '.%s(%s)' % (v[1:-1])
    #print(s)

    if sys.version > '3':
        from autoxd.pinyin.myexec import myexec
        r = myexec(s)
        #_locals = locals()
        #r = exec(s, globals(), _locals)
        #r = _locals['r']
    else:
        exec(s)

    #print(type(r))
    #print('result=',r)
    #保存结果
    try:
        myredis.set_obj(MultiSubProcess.getResultName(i), r)
        #print('save successful.', MultiSubProcess.getResultName(i))
    except:
        print("MultiSubProcess result save failed.")
예제 #8
0
 def get():
     key = MyCode.g_code_name
     code = myredis.get_obj(key)
     if code is None:
         code = "000005"
     return code