Пример #1
0
def enter_ent_calculate_new(device_name):
    top_x = settings.get_value("ent_top_pos_x")  # 这个是进入直播间计算速度计算
    top_y = settings.get_value("ent_top_pos_y")
    print "top_x = {}, topy_y = {}".format(top_x, top_y)
    dir_count = count_dirs("./screenrecord/" + device_name + "_enterliveroom/")
    print "dir_count = {}".format(dir_count)
    device_len = len(getDevices())
    num = cpu_num - 1 - device_len
    if num <= 0:
        num = 1
    pool = ThreadPool(num)
    params = []
    results = []
    start_time = datetime.datetime.now()
    for i in range(0, dir_count):
        path = "./screenrecord/" + device_name + "_enterliveroom/" + device_name + "_enterliveroom_" + str(
            i) + "/"
        params_temp = {"path": path, "top_x": top_x, "top_y": top_y}
        params.append(params_temp)
    results = pool.map(enter_ent_calculate_part, params)
    end_time = datetime.datetime.now()
    pool.close()
    pool.join()
    print "actual calculate time = {} -------------- {}".format(
        end_time - start_time, results)
    return results
Пример #2
0
def list_people():
    people = People.query
    return render_template('people_list.html',
                           people=people,
                           OUR_APP_NAME=get_value('OUR_APP_NAME'),
                           SECTION_ITEMS=get_value('SECTION_ITEMS'),
                           SECTION_NAME=get_value('SECTION_NAME'))
Пример #3
0
def prods_add(manufac_name):
    has_product = False
    if request.method == 'POST':
        barcode = request.form['barcode']
        price = request.form['price']
        vat_price = request.form['vat_price']
        selling_price = request.form['selling_price']
        manufac = request.form['manufac']
        has_product = db.session.query(
            exists().where(Products.barcode == barcode)).scalar()
        if has_product == False:
            p = Products(barcode=barcode,
                         price=price,
                         vat_price=vat_price,
                         selling_price=selling_price,
                         manufacturer=manufac)
            db.session.add(p)
            db.session.commit()
        return render_template('prods/add.html',
                               manufac=manufac_name,
                               OUR_APP_NAME=get_value('OUR_APP_NAME'),
                               SECTION_ITEMS=get_value('SECTION_ITEMS'),
                               has_product=str(has_product))
    return render_template('prods/add.html',
                           manufac=manufac_name,
                           OUR_APP_NAME=get_value('OUR_APP_NAME'),
                           SECTION_ITEMS=get_value('SECTION_ITEMS'),
                           has_product=str(has_product))
Пример #4
0
def run_backtest(name, strategy, start_date, end_date, starting_cash,
                 interval):
    sim = simulation.BacktestSimulation(strategy,
                                        start_date,
                                        end_date=end_date,
                                        starting_cash=starting_cash,
                                        interval=interval)
    sim.strategy.fee = float(settings.get_value("stock_fee")) / 100
    strategy = sim.run()

    backtest_folder = settings.get_value("backtest_path")
    result_folder = os.path.join(backtest_folder, name)

    # clear folder
    if not os.path.isfile(result_folder):
        if os.path.isdir(result_folder):
            shutil.rmtree(result_folder)
        os.mkdir(result_folder)

    else:
        raise FileExistsError()

    with open(os.path.join(result_folder, "records.csv"), "w") as f:
        strategy.recordings.to_csv(f)

    with open(os.path.join(result_folder, "trades.json"), "w") as f:
        json.dump(strategy.trades, f, indent=4, default=str)

    statistics = create_statistics(strategy)
    with open(os.path.join(result_folder, "statistics.json"), "w") as f:
        json.dump(statistics, f)
Пример #5
0
def list_prods(manufac_name):
    products = Products.query.filter_by(manufacturer=manufac_name)
    return render_template('prods/list.html',
                           prods=products,
                           manufac=manufac_name,
                           OUR_APP_NAME=get_value('OUR_APP_NAME'),
                           SECTION_ITEMS=get_value('SECTION_ITEMS'),
                           SECTION_NAME=get_value('SECTION_NAME'))
Пример #6
0
def appointment_edit(ids):
    a = Appointments.query.get(ids)
    return render_template('appointment_edit.html',
                           id=a.id,
                           name=a.name,
                           date=a.date,
                           active=a.active,
                           OUR_APP_NAME=get_value('OUR_APP_NAME'),
                           SECTION_ITEMS=get_value('SECTION_ITEMS'))
Пример #7
0
def appointment_edit(id):
    u = Users.query.get(id)
    return render_template('admin/edit.html',
                           id=u.id,
                           name=u.name,
                           password=u.password,
                           admin_user=u.admin_user,
                           OUR_APP_NAME=get_value('OUR_APP_NAME'),
                           SECTION_ITEMS=get_value('SECTION_ITEMS'))
Пример #8
0
def people_edit(person_name):
    p = People.query.filter(People.name == person_name).first()
    return render_template('people_edit.html',
                           name=p.name,
                           birthday=p.birthday,
                           about=p.about,
                           social_media=p.social_media,
                           OUR_APP_NAME=get_value('OUR_APP_NAME'),
                           SECTION_ITEMS=get_value('SECTION_ITEMS'))
Пример #9
0
def enter_ent_calcucate(device_name):
    top_x = settings.get_value("ent_top_pos_x")  # 这个是进入直播间计算速度计算
    top_y = settings.get_value("ent_top_pos_y")
    print "top_x = {}, topy_y = {}".format(top_x, top_y)
    dir_count = count_dirs("./screenrecord/" + device_name + "_enterliveroom/")
    print "dir_count = {}".format(dir_count)
    for i in range(dir_count):
        enter_ent_calculate_part(
            "./screenrecord/" + device_name + "_enterliveroom/" + device_name +
            "_enterliveroom_" + str(i) + "/", top_x, top_y)
Пример #10
0
def people_edit(name):
    a = People.query.get(name)
    return render_template('people/edit.html',
                           id=a.id,
                           name=a.name,
                           birthday=a.birthday,
                           about=a.about,
                           social_media=a.social_media,
                           OUR_APP_NAME=get_value('OUR_APP_NAME'),
                           SECTION_ITEMS=get_value('SECTION_ITEMS'))
Пример #11
0
def people_edit(id):
    a = People.query.get(id)
    return render_template('people/edit.html',
                           id=a.id,
                           name=a.name, phone=a.phone,
                           mobile=a.mobile, email=a.email,
                           linkedin=a.linkedin, facebook=a.facebook,
                           twitter=a.twitter, age=a.age,
                           birthday=a.birthday, notes=a.notes,
                           OUR_APP_NAME=get_value('OUR_APP_NAME'),
                           SECTION_ITEMS=get_value('SECTION_ITEMS'))
Пример #12
0
def prods_edit(manufac_name, barcode):
    p = Products.query.filter(
        Products.barcode == barcode
        and Products.manufacturer == manufac_name).first()
    return render_template('prods/edit.html',
                           barcode=p.barcode,
                           price=p.price,
                           vat_price=p.vat_price,
                           selling_price=p.selling_price,
                           manufac=manufac_name,
                           OUR_APP_NAME=get_value('OUR_APP_NAME'),
                           SECTION_ITEMS=get_value('SECTION_ITEMS'))
Пример #13
0
def login():
    if request.method == 'POST':
        user_id = request.form['user_id']
        password = request.form['password']
        user = Users.query.filter_by(id=user_id).first()
        if user is None or not user.check_hash(password):
            flash('please check your user id and password')
            return redirect(url_for('login.login'))
        login_user(user)
        return redirect(url_for('manufac.manufac'))
    return render_template('admin/login.html',
                           OUR_APP_NAME=get_value('OUR_APP_NAME'),
                           SECTION_NAME=get_value('SECTION_NAME'))
Пример #14
0
def save_main():
    def has_internet():
        url = 'http://www.google.com/'
        timeout = 5
        try:
            _ = requests.get(url, timeout=timeout)
            return True
        except requests.ConnectionError:
            print("İnternet bağlantısı yok.")
        return False

    return render_template('save/index.html',
                           has_internet=has_internet(),
                           OUR_APP_NAME=get_value('OUR_APP_NAME'),
                           SECTION_NAME=get_value('SECTION_NAME'))
Пример #15
0
def manufac_add():
    has_manufac = False
    if request.method == 'POST':
        name = request.form['name']
        has_manufac = db.session.query(
            exists().where(Manufacturers.name == name)).scalar()
        if has_manufac == False:
            m = Manufacturers(name=name)
            db.session.add(m)
            db.session.commit()
        return render_template('manufac/add.html',
                               OUR_APP_NAME=get_value('OUR_APP_NAME'),
                               has_manufac=str(has_manufac))
    return render_template('manufac/add.html',
                           OUR_APP_NAME=get_value('OUR_APP_NAME'),
                           has_manufac=str(has_manufac))
Пример #16
0
def _midi_handler(msg):
    global _time_counter, _last_message
    if ReplayViewer.playing: return

    c_time = time()

    if not _last_message:
        _last_message = c_time

    delay = c_time - _last_message
    _last_message = c_time

    _time_counter += delay
    msg.time = delay
    history_length = settings.get_value("Replay Length")

    _midi_history.append(msg)

    while _time_counter - history_length > 0:
        if len(_midi_history) < 2: break
        first_note_post_time = _midi_history[
            1].time  # delay after first note is delay before second
        _time_counter -= first_note_post_time
        removed_msg = _midi_history.pop(0)

        pedal_idx = _get_pedal_idx(removed_msg)
        if pedal_idx is not None:
            _pedal_poses[pedal_idx] = removed_msg.value
Пример #17
0
def app():

    # file selector
    st.title("Lauch new Strategy")
    strategys_path = settings.get_value("strategys_path")

    sys.path.append(strategys_path)
    files = []
    for f in os.listdir(strategys_path):
        if not os.path.isfile(os.path.join(strategys_path, f)):
            continue

        try:
            name, ext = f.split(".")[:2]
        except AttributeError():
            continue

        if ext == "py":
            files.append(name)

    st.subheader("Select file")
    file = st.radio("", files)

    with st.beta_expander("Backtest"):

        # parameter selector
        name = st.text_input("Strategy Name", value=file)

        c1, c2 = st.beta_columns(2)
        with c1:
            start_date = st.date_input("From",
                                       value=datetime.today() -
                                       timedelta(weeks=208))
        with c2:
            end_date = st.date_input("To", value=datetime.today())

        with c1:
            interval = st.selectbox("Data interval", interval_options, index=4)
        with c2:
            starting_cash = int(st.text_input("starting cash", value=100000))

        if st.button("Run", key="backtest"):
            # run backtest process
            strategy = load_strategy(file)
            proc = multiprocessing.Process(target=run_backtest,
                                           args=(name, strategy, start_date,
                                                 end_date, starting_cash,
                                                 interval))
            proc.start()

            with st.spinner("Running Backtest"):
                proc.join()

            st.success("Backtest complete")

    with st.beta_expander("Live"):

        if st.button("Run", key="live"):
            # run thread
            pass
Пример #18
0
def people_add():
    if request.method == 'POST':
        name = request.form['name']
        birthday = request.form['birthday']
        about = request.form['about']
        social_media = request.form['social_media']
        # calculate age
        today_date = date.today()
        date_format = "%Y-%m-%d"
        b_day = datetime.datetime.strptime(birthday, date_format)
        age = today_date.year - b_day.year - (
            (today_date.month, today_date.day) < (b_day.month, b_day.day))

        # insert data into DB
        p = People(name=name,
                   birthday=birthday,
                   age=age,
                   about=about,
                   social_media=social_media)
        db.session.add(p)
        db.session.commit()
        return redirect('/people/add')
    return render_template('people/add.html',
                           OUR_APP_NAME=get_value('OUR_APP_NAME'),
                           message='')
Пример #19
0
def people_add():
    if request.method == 'POST':
        name = request.form['name']
        phone = request.form['phone']
        mobile = request.form['mobile']
        email = request.form['email']
        linkedin = request.form['linkedin']
        facebook = request.form['facebook']
        twitter = request.form['twitter']
        birthday = request.form['birthday']
        notes = request.form['notes']
        # calculate age
        today_date = date.today()
        date_format = "%Y-%m-%d"
        b_day = datetime.datetime.strptime(birthday, date_format)
        age = today_date.year - b_day.year - (
            (today_date.month, today_date.day) < (b_day.month, b_day.day))

        # insert data into DB
        person = People(name=name, phone=phone, mobile=mobile, email=email,
                        linkedin=linkedin, facebook=facebook, twitter=twitter,
                        age=age, birthday=birthday, notes=notes)
        db.session.add(person)
        db.session.commit()
        return redirect('/people/add')
    return render_template('people/add.html',
                           OUR_APP_NAME=get_value('OUR_APP_NAME'),
                           message='')
Пример #20
0
def manufac_add():
    if request.method == 'POST':
        name = request.form['name']
        m = Manufacturers(name=name)
        db.session.add(m)
        db.session.commit()
        return redirect('/manufac/add')
    return render_template('manufac_add.html',
                           OUR_APP_NAME=get_value('OUR_APP_NAME'))
Пример #21
0
async def breaks_filter(messagecontext) -> bool:
    message = messagecontext.message

    filter_str = settings.get_value(messagecontext.guild_id(), 'filter')
    filter_list = json.loads(filter_str)  # loads as list
    if messagecontext.contains_filtered_terms(filter_list):
        return True

    return False
Пример #22
0
def manufac_update():
    if request.method == 'POST':  #this block is only entered when the form is submitted
        name = request.form['manufac_name']
        old_name = request.form['old_manufac_name']
        try:
            m = Manufacturers.query.get(old_name)
            m.name = name
            db.session.commit()
        except sqlalchemy.exc.IntegrityError:
            # return redirect('/manufac/')
            render_template(
                'manufac_message.html',
                message="you cannot modify to an already existing manufacturer",
                redirect_url="/manufac/",
                OUR_APP_NAME=get_value('OUR_APP_NAME'),
                SECTION_NAME=get_value('SECTION_NAME'))
        #return redirect(url_for('edit', barcode=barcode))
        return redirect('/manufac/')
Пример #23
0
def people_add():
    if request.method == 'POST':
        name = request.form['name']
        birthday = request.form['birthday']
        age = age_from_birthday(birthday)
        about = request.form['about']
        social_media = request.form['social_media']
        p = People(name=name,
                   about=about,
                   birthday=birthday,
                   social_media=social_media,
                   age=age)
        db.session.add(p)
        db.session.commit()
        return redirect('/people/add')
    return render_template('people_add.html',
                           OUR_APP_NAME=get_value('OUR_APP_NAME'),
                           SECTION_ITEMS=get_value('SECTION_ITEMS'))
Пример #24
0
def appointment_add():
    if request.method == 'POST':
        name = request.form['name']
        date = request.form['date']
        active = request.form['active']
        m = Appointments(name=name, date=date, active=active)
        db.session.add(m)
        db.session.commit()
        return redirect('/appointment/add')
    return render_template('appointment_add.html', OUR_APP_NAME=get_value('OUR_APP_NAME'))
Пример #25
0
def prods_add(manufac_name):
    if request.method == 'POST':
        barcode = request.form['barcode']
        price = request.form['price']
        vat_price = request.form['vat_price']
        selling_price = request.form['selling_price']
        manufac = request.form['manufac']
        p = Products(barcode=barcode,
                     price=price,
                     vat_price=vat_price,
                     selling_price=selling_price,
                     manufacturer=manufac)
        db.session.add(p)
        db.session.commit()
        return redirect('/prods/add/{}'.format(manufac_name))
    return render_template('prods_add.html',
                           manufac=manufac_name,
                           OUR_APP_NAME=get_value('OUR_APP_NAME'),
                           SECTION_ITEMS=get_value('SECTION_ITEMS'))
Пример #26
0
def settings_update():
    settings_name = request.form['settings_name']
    settings_value = request.form['settings_value']
    s = Settings.query.get(settings_name)
    s.value = settings_value
    db.session.commit()
    settings = Settings.query.all()
    return render_template('settings/index.html',
                           settings=settings,
                           OUR_APP_NAME=get_value('OUR_APP_NAME'))
Пример #27
0
def app():
    st.title("Results")

    # each folder in Results is an option to select
    lean_location = settings.get_value("path")
    result_path = os.path.join(lean_location, "Results")
    options = [
        d for d in os.listdir(result_path)
        if os.path.isdir(os.path.join(result_path, d))
    ]

    algo_name = st.selectbox("Algorithm", options)
    parse_result(os.path.join(result_path, algo_name), algo_name)
Пример #28
0
def user_add():
    if request.method == 'POST':
        id = request.form['id']
        name = request.form['name']
        password = request.form['password']
        admin_user = request.form.get('admin_user')
        if admin_user == 'True':
            admin_user = True
        else:
            admin_user = False

        has_user = db.session.query(exists().where(Users.id == id)).scalar()

        if has_user is False:
            new_user = Users(id=id, name=name, admin_user=admin_user)
            new_user.set_hash(password)
            db.session.add(new_user)
            db.session.commit()
            return render_template('admin/add.html',
                                   OUR_APP_NAME=get_value('OUR_APP_NAME'),
                                   SECTION_NAME=get_value('SECTION_NAME'))
    return render_template('admin/add.html',
                           OUR_APP_NAME=get_value('OUR_APP_NAME'),
                           SECTION_NAME=get_value('SECTION_NAME'))
Пример #29
0
    async def filter_command(self, ctx, *, input=None):
        """Adjust filtered words"""

        guild_id = ctx.guild.id

        if not input:
            await ctx.send(f'Usage: filter add/remove word', delete_after=5)
            return

        args = input.split()

        if (len(args) < 2):
            await ctx.send(f'Usage: filter add/remove word', delete_after=5)
            return

        filter = json.loads(settings.get_value(guild_id, 'filter'))
        words = input.split()
        del words[0]  # delete the first term, the "operand"

        if (args[0] == 'add'):
            for word in words:
                filter.append(word)
        elif (args[0] == 'remove'):
            for word in words:
                filter.remove(word)
        else:
            await ctx.send(f'Usage: filter add/remove word word word',
                           delete_after=5)
            return

        # save the file, convert the ' to " first, since json dies
        settings.set_value(guild_id, 'filter', f'{filter}'.replace('\'', '"'))

        try:
            settings.save_config()

            if (args[0] == 'add'):
                await ctx.send(
                    f'{len(words)} words added to filter, {owouwu.gen()}',
                    delete_after=5)
            elif (args[0] == 'remove'):
                await ctx.send(
                    f'{len(words)} words removed from filter, {owouwu.gen()}',
                    delete_after=5)

            await ctx.message.add_reaction('✅')
        except:
            await ctx.send(f'Command failed to execute', delete_after=5)
Пример #30
0
def app():
    st.title("Execute")

    st.header("Select an algorithm")
    st.write("choose a file")
    file = st.file_uploader("")

    if file is not None:
        data = file.read()
        expander = st.beta_expander(file.name)
        with expander:
            encoding = settings.get_value("encoding")
            st.code(data.decode(encoding))

        st.text("")
        st.text("")

        if st.button("RUN"):
            run_algo(file, data)