Ejemplo n.º 1
0
    def _search_direct(self, sql_gen, offset: int = 0, unpack: bool = False) -> list:
        """ 进行直接查询 """
        # 只支持双层列表的嵌套,有第三层列表嵌套时令unpack=True

        def perform_sql(query_sql: str):
            rs = self.graph.run(query_sql).data()
            if len(rs) > 1:
                return [Formatter(r) for r in rs]
            elif len(rs) == 1:
                return Formatter(rs[0])
            else:
                return Formatter(rs)

        results = []
        if isinstance(sql_gen, TranslationChain):
            generator = sql_gen.iter(offset, unpack)
        else:
            generator = sql_gen
        for sqls in generator:
            debug('||GENERATED SQL||', sqls)
            if isinstance(sqls, list):
                sub_results = []
                for sql in sqls:
                    if sql is None:
                        sub_results.append(Formatter(None))
                        continue
                    sub_results.append(perform_sql(sql))
                results.append(sub_results)
            else:
                sql = sqls
                if sql is None:
                    results.append(Formatter(None))
                    continue
                results.append(perform_sql(sql))
        return results
Ejemplo n.º 2
0
def create(request):
    try:
        data = {
            'msg': '',
            'index': 'project',
            'form': CreateForm(request.POST)
        }
        if request.method == 'POST':
            name = request.POST.get('name', '')
            description = request.POST.get('description', '')
            try:
                price = float(request.POST.get('price', 0))
            except:
                price = 0
            try:
                total = int(request.POST.get('total', 0))
            except:
                total = 0
            if not name:
                data['msg'] = '项目名称不能为空'
            else:
                project = Projects(name=name,
                                   price=price,
                                   total=total,
                                   description=description,
                                   status=1)
                project.save()
                data['msg'] = '项目创建成功'
    except:
        utils.debug()
        return utils.ErrResp(errors.FuncFailed)
    return render(request, 'backend/project/create.html', data)
Ejemplo n.º 3
0
def download_one(img_id, img_url_match):
    download_report = {}
    errors = []
    for channel in ['red', 'green', 'blue', 'yellow']:
        img_url_single_channel = f"http://v18.proteinatlas.org/images/{img_url_match[1]}/{img_url_match[2]}_{channel}.jpg"
        saved_filename = f'{img_id}_{channel}.jpg'
        saved_path = pjoin(download_folder, saved_filename)
        tmp_path = pjoin(tmp_folder, saved_filename)
        if os.path.exists(saved_path):
            file_size = os.stat(saved_path).st_size
            download_report[channel] = f"cache_found ({file_size})"
        else:
            try:
                urlretrieve(img_url_single_channel, tmp_path)
                file_size = os.stat(tmp_path).st_size
                shutil.move(tmp_path, saved_path)
                download_report[channel] = f"downloaded ({file_size})"
            except Exception as e:
                error_msg = {
                    'id_': img_id,
                    'message': repr(e),
                    'channel': channel,
                }
                debug(error_msg)
                download_report[channel] = f"failed ({repr(e)})"

    return download_report
Ejemplo n.º 4
0
def detail(request):
    try:
        data = {
            'user_info': {}
        }
        user_id = int(request.GET.get('id', 0))
        u_exists = Auth_user.objects.filter(id=user_id).exists()
        if u_exists:
            u = Auth_user.objects.get(id=user_id)
            date_joined = utils.dt_field_to_local(u.date_joined) \
                .strftime('%Y-%m-%d %H:%M:%S')
            try:
                last_login = utils.dt_field_to_local(u.last_login) \
                    .strftime('%Y-%m-%d %H:%M:%S')
            except:
                last_login = ''
            data['user_info'] = {
                'id': u.id,
                'username': u.username,
                'email': u.email,
                'first_name': u.first_name,
                'last_name': u.last_name,
                'role': UserInfo.ROLE[u.is_superuser],
                'status': UserInfo.STATUS[u.is_active],
                'date_joined': date_joined,
                'last_login': last_login,
                'reg_ip': '',
                'reg_code': '',
                'reg_type': '',
                'invite_code': '',
                'bank_code': '',
                'bank_card': '',
                'cash': 0,
                'invite_benifit': 0,
                'total_amount': 0
            }
            try:
                uinfo = UserInfo.objects.get(user=u)
                data['user_info']['pwd'] = uinfo.pwd
                data['user_info']['reg_ip'] = uinfo.reg_ip
                data['user_info']['reg_code'] = uinfo.reg_code
                data['user_info']['reg_type'] = UserInfo.REG_TYPE[uinfo.reg_type]
                data['user_info']['bank_code'] = uinfo.bank_code
                data['user_info']['bank_card'] = uinfo.bank_card
                data['user_info']['invite_code'] = uinfo.invite_code
                data['user_info']['invite_url'] = '%sregister/?invite_code=%s' % \
                    (settings.SITE_URL, uinfo.invite_code)
            except:
                pass
            try:
                ubalance = UserBalance.objects.get(user=u)
                data['user_info']['cash'] = float(ubalance.cash)
                data['user_info']['invite_benifit'] = float(ubalance.invite_benifit)
                data['user_info']['total_amount'] = float(ubalance.total)
            except:
                pass
    except:
        utils.debug()
        return utils.ErrResp(errors.FuncFailed)
    return render(request, 'backend/user/detail.html', data)
Ejemplo n.º 5
0
def home(request):
    try:
        p = int(request.GET.get('p', 1))
        n = int(request.GET.get('n', 25))
        q = CBCDInit.objects
        data = {
            'index': 'cbcd',
            'paging': Pagination(request, q.count()),
            'form': InitForm(),
            'inits': {
                'p': p,
                'n': n,
                'data': q.all().order_by('-id')[(p - 1) * n:p * n],
            }
        }
        if request.method == 'POST':
            data['form'] = InitForm(request.POST)
            if data['form'].is_valid():
                try:
                    CBCDInit.objects.all().update(status=0)
                except:
                    pass
                cinit = CBCDInit(total=int(request.POST.get('total')),
                                 unsell=int(request.POST.get('total')),
                                 price=float(request.POST.get('price')),
                                 status=1)
                cinit.save()
                return HttpResponseRedirect('/backend/cbcd/')
    except:
        utils.debug()
        return utils.ErrResp(errors.FuncFailed)
    return render(request, 'backend/cbcd/index.html', data)
Ejemplo n.º 6
0
def show_status(target_col='Target', **kwargs):
    kwargs = kwargs or {'train_with_hpa': 'data/train_with_hpa.csv'}
    n_samples_list = {}
    for id_, path in kwargs.items():
        anno = pd.read_csv(path, index_col=0)
        n_classes = len(class_labels)
        xs = []
        for target_str in anno[target_col]:
            targets = str_to_labels(target_str)
            x = np.zeros(n_classes, dtype='int')
            x[targets] = 1
            xs.append(x)
        xx = np.array(xs)
        n_samples_list[id_] = np.sum(xx, axis=0)

    cut_summary = pd.DataFrame(
        {
            'organelle': class_labels,
            **n_samples_list,
            # 'pct_samples': n_samples_per_class / len(anno),
            # 'expected_n_samples_in_test': (n_samples_per_class / len(anno) * 11702).round().astype(int),
        },
        index=pd.Index(range(n_classes), name='class_id'),
    )
    save_path = 'tmp/class_distribution.csv'
    cut_summary.to_csv(save_path)
    debug(f"saved to {save_path}")
    print(cut_summary)
Ejemplo n.º 7
0
 def search(self, result: Result) -> [Answer]:
     debug('||QUESTION ORIGINAL||', result.raw_question)
     debug('||QUESTION FILTERED||', result.filtered_question)
     answers = []
     for qt, chain in result.sqls.items():
         answer = self.organize(qt, chain, result)
         answers.append(answer)
     return answers
Ejemplo n.º 8
0
def edit(request):
    try:
        project_id = request.GET.get('id', '')
        form = EditForm()
        if project_id:
            try:
                u = Projects.objects.get(id=project_id)
                form_initial = {
                    'name': u.name,
                    'status': u.status,
                    'description': u.description,
                    'price': u.price,
                    'total': u.total
                }
                form = EditForm(initial=form_initial)
            except:
                pass
        data = {
            'msg': '',
            'index': 'project',
            'form': form,
            'project_id': project_id
        }
        if request.method == 'POST':
            name = request.POST.get('name', '')
            description = request.POST.get('description', '')
            try:
                status = int(request.POST.get('status', 1))
            except:
                status = 1
            try:
                total = int(request.POST.get('total', 0))
            except:
                total = 0
            try:
                price = float(request.POST.get('price', 0))
            except:
                price = 0

            if not name:
                data['msg'] = '项目名称不能为空'
            else:
                u_exists = Projects.objects.filter(name=name).exists()
                if not u_exists:
                    data['msg'] = '项目不存在'
                else:
                    u = Projects.objects.get(name=name)
                    u.status = status
                    u.price = price
                    u.total = total
                    u.description = description
                    u.save()
                    data['msg'] = '修改成功'
    except:
        utils.debug()
        return utils.ErrResp(errors.FuncFailed)
    return render(request, 'backend/project/edit.html', data)
Ejemplo n.º 9
0
def create(request):
    try:
        data = {
            'msg': '',
            'index': 'user',
            'form': CreateForm(request.POST)
        }
        if request.method == 'POST':
            username = request.POST.get('username', '')
            password = request.POST.get('password', '')
            email = request.POST.get('email', '')
            is_superuser = int(request.POST.get('is_superuser', 0))
            first_name = request.POST.get('first_name', '')
            reg_code = request.POST.get('reg_code', '')
            bank_code = request.POST.get('bank_code', '')
            bank_card = request.POST.get('bank_card', '')
            if not username or not password or not email:
                data['msg'] = '账号及密码、邮箱不能为空'
            elif len(password) < 10:
                data['msg'] = '密码长度至少为10'
            else:

                u_exists = Auth_user.objects.filter(username=username).exists()
                if u_exists:
                    data['msg'] = '账号已存在'
                else:
                    u = Auth_user.objects \
                        .create_user(username, email, password)
                    u.first_name = first_name
                    u.is_superuser = is_superuser
                    if is_superuser:
                        u.is_staff = is_superuser
                    u.save()

                    uinfo = UserInfo(
                        user=u,
                        reg_time=datetime.now(),
                        reg_ip=get_ip(request),
                        bank_code=bank_code,
                        bank_card=bank_card
                    )
                    if reg_code:
                        code_exists = InviteCode.objects \
                            .filter(code=reg_code).filter(status=0)
                        if not code_exists:
                            uinfo.reg_code = reg_code
                            uinfo.reg_type = 2
                    else:
                        uinfo.reg_type = 1
                    uinfo.save()
                    data['msg'] = '账号创建成功'
    except:
        utils.debug()
        return utils.ErrResp(errors.FuncFailed)
    return render(request, 'backend/user/create.html', data)
 def classify(self, question: str):
     result = self.question_filter(question)
     if result.count('index') == 0 and 'catalog' not in result:
         self.extract_index(result)
     # 没有任何提取结果
     if result.is_wds_null():
         return None
     self._classify_tree(result)
     debug('||QUESTION WORDS||', result.region_wds)
     debug('||QUESTION TYPES||', result.question_types)
     return result
def compress(
    n_threads=70,
    folder='./data/test_full_size',
    output_folder='./data/test_full_size_compressed',
):
    anno = pd.read_csv('./data/sample_submission.csv', index_col=0)
    with Pool(n_threads) as p:
        result_iter = p.imap_unordered(
            compress_one, compress_task_gen(anno, folder, output_folder))
        for i_result, result in enumerate(result_iter):
            debug(f"({i_result}/{len(anno)}) {result['id_']}")
 def extract_index(self,
                   result: Result,
                   len_threshold: int = 4,
                   ratio_threshold: float = 0.5):
     """ 提取因错别字或说法而未识别到的指标 """
     new_word, old_word = index_complement(result.filtered_question,
                                           self.index_wds, len_threshold,
                                           ratio_threshold)
     if new_word:
         debug('||REPLACE FOUND||', new_word, '<=', old_word)
         result.add_word(new_word, self.word_type_dict.get(new_word))
         result.replace_words(old_word, new_word)
Ejemplo n.º 13
0
def relation(request):
    try:
        user_id = int(request.GET.get('id', 0))
        username = request.GET.get('username', '')
        u_exists = Auth_user.objects \
            .filter(Q(id=user_id) | Q(username=username)).exists()

        searchform = PaymentSearchForm(initial={'username': username})
        data = {
            'user_info': {},
            'parent_info': {},
            'children_info': [],
            'searchform': searchform
        }
        if u_exists:
            u = Auth_user.objects.get(Q(id=user_id) | Q(username=username))
            date_joined = utils.dt_field_to_local(u.date_joined) \
                .strftime('%Y-%m-%d %H:%M:%S')
            try:
                last_login = utils.dt_field_to_local(u.last_login) \
                    .strftime('%Y-%m-%d %H:%M:%S')
            except:
                last_login = ''
            data['user_info'] = {
                'id': u.id,
                'username': u.username,
                'email': u.email,
                'first_name': u.first_name,
                'date_joined': date_joined,
                'last_login': last_login,
                'reg_ip': '',
                'cash': 0,
                'invite_benifit': 0,
                'total_amount': 0
            }
            try:
                uinfo = UserInfo.objects.get(user=u)
                data['user_info']['reg_ip'] = uinfo.reg_ip
            except:
                pass
            try:
                ubalance = UserBalance.objects.get(user=u)
                data['user_info']['cash'] = float(ubalance.ubalance)
                data['user_info']['invite_benifit'] = float(ubalance.invite_benifit)
                data['user_info']['total_amount'] = float(ubalance.total)
            except:
                pass
            data['parent_info'] = services._get_parent_info(u.id)
            data['children_info'] = services._get_childs(u.id)
    except:
        utils.debug()
        return utils.ErrResp(errors.FuncFailed)
    return render(request, 'backend/user/relation.html', data)
Ejemplo n.º 14
0
def cbcd_buy(request):
    if request.method == 'POST':
        if not services.is_hall_open():
            return utils.ErrResp(errors.HallNotOpened)

        num = int(request.POST.get('num', 0))
        price = float(request.POST.get('price', 0))

        if not num or not price:
            return utils.ErrResp(errors.ArgMiss)

        current_order = UserOrderSell.objects.filter(status=0).order_by('id').first()

        if num > int(current_order.num_unsell):
            return utils.ErrResp(errors.CBCDLimit)
        price = float(current_order.price)

        # 买家付款
        try:
            buyer = UserBalance.objects.get(user_id=request.user.id)
        except:
            utils.debug()
            return utils.ErrResp(errors.MoneyLimit)
        # 美元
        money = float(num * price)

        if not buyer.cash or float(buyer.cash) < money:
            return utils.ErrResp(errors.MoneyLimit)
        buyer.point = buyer.point + num
        buyer.cash = float(buyer.cash) - money
        buyer.save()

        # 更新订单状态
        current_order.num_unsell = current_order.num_unsell - num
        if int(current_order.num_unsell) == 0:
            current_order.status = 1
        current_order.save()

        # 卖家收钱
        seller = UserBalance.objects.get(user=current_order.seller_user)
        seller.cash = float(seller.cash) + float(num * price)
        seller.save()

        # 写买入记录
        buyorder = UserOrderBuy(
            seller_order_id=current_order.order_id,
            buyer_user=request.user,
            price=price,
            num=num
        )
        buyorder.save()
        return utils.NormalResp()
Ejemplo n.º 15
0
def common_setting(request):
    try:
        Sseting = SiteSetting.objects.order_by('-id').first()
        data = {'form': SsetingEditForm(instance=Sseting)}
        if request.method == 'POST':
            data['form'] = SsetingEditForm(request.POST)
            if data['form'].is_valid():
                Sseting.user_buy_price = request.POST.get('user_buy_price')
                Sseting.save()
    except:
        utils.debug()
        return utils.ErrResp(errors.FuncFailed)
    return render(request, 'backend/statics/site_setting.html', data)
Ejemplo n.º 16
0
def train_wrapper(config):
    print_config(config)

    t0 = perf_counter()

    debug(f"overwriting soft link ./latest_cwd  -->  {config['_cwd']}")
    os.unlink('./latest_cwd')
    os.symlink(config['_cwd'], './latest_cwd', target_is_directory=True)

    train(config)

    print(f"cwd: {config['_cwd']}")
    print(f"total running time: {str(timedelta(seconds=perf_counter() - t0))}")
Ejemplo n.º 17
0
def edit(request):
    try:
        data = {'msg': '', 'index': 'news', 'form': '', 'news_id': ''}
        if request.method == 'POST':
            news_id = request.POST.get('id', '')
            title = request.POST.get('title', '')
            content = request.POST.get('content', '')
            try:
                status = int(request.POST.get('status', 1))
            except:
                status = 1
            try:
                category = int(request.POST.get('category', 1))
            except:
                category = 1
            if not title:
                data['msg'] = '标题不能为空'
            else:
                u_exists = News.objects.filter(id=news_id).exists()
                if not u_exists:
                    data['msg'] = '资讯不存在'
                else:
                    u = News.objects.get(id=news_id)
                    u.title = title
                    u.content = content
                    u.category_id = category
                    u.status = status
                    u.save()
                    data['msg'] = '修改成功'
        news_id = request.GET.get('id', '')
        if news_id:
            form = EditForm()
            try:
                u = News.objects.get(id=news_id)
                form_initial = {
                    'id': u.id,
                    'title': u.title,
                    'category': u.category_id,
                    'content': u.content,
                    'status': u.status,
                }
                form = EditForm(initial=form_initial)
            except:
                pass
            data['form'] = form
            data['news_id'] = news_id

    except:
        utils.debug()
        return utils.ErrResp(errors.FuncFailed)
    return render(request, 'backend/news/edit.html', data)
Ejemplo n.º 18
0
def get_current_order():
    result = {
        'user_id': 0,
        'price': 0,
        'num': 0
    }
    try:
        order = UserOrderSell.objects \
            .filter(status=0).order_by('id').first()
        result['user_id'] = order.seller_user_id
        result['price'] = float(order.price)
        result['num'] = int(order.num_unsell)
    except:
        utils.debug()
    finally:
        return result
Ejemplo n.º 19
0
Archivo: rmq.py Proyecto: okateim/RmQ
 def _RmQ_BB(self, i, j):
     if i == j:
         return i
     if j < i:
         i, j = j, i
     k = math.floor(math.log2(j - i))
     debug(f"i={i}")
     debug(f"j={j}")
     debug(f"k={k}")
     debug(f"j-2**k={j-2**k}")
     if self.InblockMin[self.ST[i][k]] < self.InblockMin[self.ST[j - 2**k +
                                                                 1][k]]:
         ret = self.ST[i][k]
     else:
         ret = self.ST[j - 2**k + 1][k]
     debug(f"RmQ_BB({i}, {j})={ret}")
     return ret
Ejemplo n.º 20
0
def main(cwd):
    config = load_config(cwd)

    # os.environ['CUDA_VISIBLE_DEVICES'] = config['cuda_visible_devices'] or '0,1,2,3,4,5,6,7'

    # avail_gpus = GPUtil.getAvailable(limit=100)
    # os.environ['CUDA_VISIBLE_DEVICES'] = ','.join(map(str, avail_gpus))

    os.environ['CUDA_VISIBLE_DEVICES'] = '0,1,2,3'

    debug(
        f"os.environ['CUDA_VISIBLE_DEVICES'] = {os.environ['CUDA_VISIBLE_DEVICES']}"
    )

    print_config(config)

    after_training_for_folds(config)
def first_round(
    n_threads=70,
    path_to_test_anno='./data/sample_submission.csv',
    path_to_test_imgs='./data/test_full_size_compressed',
    path_to_hpa_anno='./data/hpa_public_imgs.csv',
    path_to_hpa_imgs='./data/hpa_public_imgs',
):
    test_set = get_set(path_to_test_anno,
                       path_to_test_imgs,
                       n_threads=n_threads)
    hpa_trans_set = get_set(path_to_hpa_anno,
                            path_to_hpa_imgs,
                            with_trans=True,
                            n_threads=n_threads)
    # test_set = get_set('./tmp/test1.csv', './tmp/test1/.', n_threads=n_threads)
    # hpa_trans_set = get_set(
    #     './tmp/test1.csv',
    #     './tmp/test2',
    #     with_trans=True,
    #     n_threads=n_threads,
    # )

    identical_pairss = []
    comparison_list = [{
        'test_img': test_img,
        'test_id': test_id,
        'hpa_trans_set': hpa_trans_set
    } for test_img, test_id in test_set]
    with Pool(n_threads) as p:
        result_iter = p.imap(comparison_for_one_test, comparison_list)
        for i_result, result in enumerate(result_iter):
            info(
                f"Finished ({i_result}/{len(comparison_list)}) {result['test_id']}"
            )
            if len(result['identical_pairs']) > 0:
                debug(
                    f"Found {len(result['identical_pairs'])} identical pairs!")
                identical_pairss.append(result['identical_pairs'])
    identical_pairs = [x for l in identical_pairss for x in l]

    info(f'All done! Found {len(identical_pairs)} pairs.')
    save_path = './tmp/identical_pairs_bk.csv'
    out_df = pd.DataFrame.from_records(identical_pairs).sort_values(
        'diff_score')
    out_df.to_csv(save_path, index=False)
    debug(f'Saved results to {save_path}')
Ejemplo n.º 22
0
def order(request):
    try:
        q = UserOrderSell.objects

        p = int(request.GET.get('p', 1))
        n = int(request.GET.get('n', 25))
        username = request.GET.get('username', '')
        status = int(request.GET.get('status', -1))
        if username:
            try:
                u = Auth_user.objects.get(username=username)
                q = q.filter(user=u)
            except:
                pass
        if status != -1:
            q = q.filter(status=status)

        data = {
            'index': 'cbcd',
            'paging': Pagination(request, q.count()),
            'form': UserOrderSellSearchForm(),
            'orders': {
                'p': p,
                'n': n,
                'data': [],
            }
        }
        results = q.all().order_by('-id')[(p - 1) * n:p * n]
        for r in results:
            data['orders']['data'].append({
                'id': r.id,
                'order_id': r.order_id,
                'seller': r.seller_user.username,
                'price': float(r.price),
                'num': int(r.num),
                'num_unsell': int(r.num_unsell),
                'create_at': r.create_at,
                'status': r.status
            })
    except:
        utils.debug()
        return utils.ErrResp(errors.FuncFailed)
    return render(request, 'backend/cbcd/order.html', data)
Ejemplo n.º 23
0
def home(request):
    try:
        stat = Statics.objects.order_by('-id').first()
        data = {'form': EditForm(instance=stat)}
        if request.method == 'POST':
            data['form'] = EditForm(request.POST)
            if data['form'].is_valid():
                stat.members = request.POST.get('members')
                stat.online = request.POST.get('online')
                stat.hits = request.POST.get('hits')
                stat.total_paid = request.POST.get('total_paid')
                stat.offers = request.POST.get('offers')
                stat.pts_value = request.POST.get('pts_value')
                stat.ptc_value = request.POST.get('ptc_value')
                stat.save()
    except:
        utils.debug()
        return utils.ErrResp(errors.FuncFailed)
    return render(request, 'backend/statics/index.html', data)
Ejemplo n.º 24
0
def category_create(request):
    try:
        data = {
            'msg': '',
            'index': 'news',
            'form': CateCreateForm(request.POST)
        }
        if request.method == 'POST':
            name = request.POST.get('name', '')
            if not name:
                data['msg'] = '名称不能为空'
            else:
                cate = NewsCategory(name=name)
                cate.save()
                data['msg'] = '创建成功'
    except:
        utils.debug()
        return utils.ErrResp(errors.FuncFailed)
    return render(request, 'backend/news/category_create.html', data)
Ejemplo n.º 25
0
def category_edit(request):
    try:
        data = {'msg': '', 'index': 'news', 'form': '', 'cate_id': ''}
        if request.method == 'POST':
            cate_id = int(request.POST.get('id', ''))
            name = request.POST.get('name', '')
            try:
                status = int(request.POST.get('status', 1))
            except:
                status = 1
            if not name:
                data['msg'] = '名称不能为空'
            else:
                u_exists = NewsCategory.objects.filter(id=cate_id).exists()
                if not u_exists:
                    data['msg'] = '分类不存在'
                else:
                    u = NewsCategory.objects.get(id=cate_id)
                    u.name = name
                    u.status = status
                    u.save()
                    data['msg'] = '修改成功'

        cate_id = request.GET.get('id', '')
        form = CateEditForm()
        if cate_id:
            try:
                u = NewsCategory.objects.get(id=cate_id)
                form_initial = {
                    'id': u.id,
                    'name': u.name,
                    'status': u.status,
                }
                form = CateEditForm(initial=form_initial)
            except:
                pass
        data['form'] = form
        data['cate_id'] = cate_id
    except:
        utils.debug()
        return utils.ErrResp(errors.FuncFailed)
    return render(request, 'backend/news/category_edit.html', data)
Ejemplo n.º 26
0
def bonus(request):
    try:
        Sseting = SiteSetting.objects.order_by('-id').first()
        data = {'form': BonusForm(instance=Sseting)}
        if request.method == 'POST':
            data['form'] = BonusForm(request.POST)
            if data['form'].is_valid():
                Sseting.bonus_switch = request.POST.get('bonus_switch')
                Sseting.bonus_50 = request.POST.get('bonus_50')
                Sseting.bonus_100 = request.POST.get('bonus_100')
                Sseting.bonus_200 = request.POST.get('bonus_200')
                Sseting.bonus_400 = request.POST.get('bonus_400')
                Sseting.bonus_600 = request.POST.get('bonus_600')
                Sseting.bonus_800 = request.POST.get('bonus_800')
                Sseting.bonus_1000 = request.POST.get('bonus_1000')
                Sseting.bonus_2000 = request.POST.get('bonus_2000')
                Sseting.save()
    except:
        utils.debug()
        return utils.ErrResp(errors.FuncFailed)
    return render(request, 'backend/cbcd/bonus.html', data)
Ejemplo n.º 27
0
def get_corrected_target_for_one_row(task):
    id_, row = task
    labels = str_to_labels(row['Target'])
    if all([x not in labels for x in classes_to_correct]):
        return {'id_': id_, 'corrected_target': row['Target']}

    for class_to_correct in classes_to_correct:
        if class_to_correct not in labels:
            continue

        rects = correction_dict[f"markerListForClass{class_to_correct}"].get(
            row['source_img_id'])
        if rects is None or not any([
                window_contains_rect(
                    (row[['left', 'top', 'right', 'bottom']]), rect)
                for rect in rects
        ]):
            debug(f"removed {class_to_correct} from {id_} ({labels})")
            labels.remove(class_to_correct)

    return {'id_': id_, 'corrected_target': labels_to_str(labels)}
Ejemplo n.º 28
0
def predict(anno, config, model=None, batch_size=None, folder=None, extension=None, to_npy=None):
    if model is None:
        debug(f'predict(): loading model from config')
        model = model_from_config(config)

    if batch_size is None:
        debug(f"predict(): loading predict_batch_size = ({config['predict_batch_size']}) from config")
        batch_size = config['predict_batch_size']

    if type(anno) is str:
        debug(f'predict(): loading anno from {anno}')
        anno = pd.read_csv(anno, index_col=0)

    scores_list = []
    chunks = list(chunk(len(anno), batch_size))
    for i_begin, i_end in tqdm(chunks):
        img_list = []
        for id_, row in anno.iloc[i_begin:i_end].iterrows():
            img_list.append(
                load_image(
                    id_,
                    config,
                    channel=None,
                    folder=folder or row.get('folder'),
                    extension=extension or row.get('extension'),
                ) / 255.
            )
        imgs = np.array(img_list)
        scores = model.predict(imgs)
        scores_list.append(scores)

    scores_mat = np.concatenate(scores_list)
    if to_npy is not None:
        np.save(to_npy, scores_mat)
    return scores_mat
Ejemplo n.º 29
0
def create(request):
    try:
        data = {'msg': '', 'index': 'news', 'form': CreateForm(request.POST)}
        if request.method == 'POST':
            title = request.POST.get('title', '')
            content = request.POST.get('content', '')
            try:
                category = int(request.POST.get('category', 0))
            except:
                category = 0

            if not title:
                data['msg'] = '标题不能为空'
            elif not category:
                data['msg'] = '分类不能为空'
            else:
                cate = News(title=title, content=content, category_id=category)
                cate.save()
                data['msg'] = '创建成功'
    except:
        utils.debug()
        return utils.ErrResp(errors.FuncFailed)
    return render(request, 'backend/news/create.html', data)
Ejemplo n.º 30
0
def edit(request):
    try:
        user_id = request.GET.get('id', '')
        form_initial = {}
        if user_id:
            try:
                u = Auth_user.objects.get(id=user_id)
                uinfo = UserInfo.objects.get(user=u)
                form_initial = {
                    'username': u.username,
                    'email': u.email,
                    'is_active': 0,
                    'first_name': u.first_name,
                    'bank_code': uinfo.bank_code,
                    'bank_card': uinfo.bank_card
                }
                if u.is_active:
                    form_initial['is_active'] = 1
            except:
                pass
            try:
                ubalance = UserBalance.objects.get(user_id=user_id)
                form_initial['cash'] = float(ubalance.cash)
            except:
                form_initial['cash'] = 0

        data = {
            'msg': '',
            'index': 'user',
            'form': EditForm(initial=form_initial),
            'user_id': user_id
        }
        if request.method == 'POST':
            username = request.POST.get('username', '')
            password = request.POST.get('password', '')
            is_active = int(request.POST.get('is_active', 0))
            first_name = request.POST.get('first_name', '')
            bank_code = request.POST.get('bank_code', '')
            bank_card = request.POST.get('bank_card', '')
            if not username:
                data['msg'] = '账号不能为空'
            elif password and len(password) < 10:
                data['msg'] = '密码长度至少为10'
            else:
                u_exists = Auth_user.objects.filter(username=username).exists()
                if not u_exists:
                    data['msg'] = '用户不存在'
                else:
                    u = Auth_user.objects.get(username=username)
                    u.first_name = first_name
                    u.is_active = is_active
                    if password:
                        u.set_password(password)
                    u.save()

                    uinfo = UserInfo.objects.get(user=u)
                    uinfo.bank_code = bank_code
                    uinfo.bank_card = bank_card
                    if password:
                        uinfo.pwd = password
                    uinfo.save()

                    try:
                        ub = UserBalance.objects.get(user=u)
                        ub.cash = float(request.POST.get('cash'))
                    except:
                        ub = UserBalance(
                            user=u,
                            cash=float(request.POST.get('cash')),
                            invite_benifit=0,
                            total=0,
                            point=0,
                        )
                    finally:
                        ub.save()
                    data['msg'] = '账号修改成功'

                    return HttpResponseRedirect('/backend/user/detail/?id=%s' % user_id)
    except:
        utils.debug()
        return utils.ErrResp(errors.FuncFailed)
    return render(request, 'backend/user/edit.html', data)