示例#1
0
    def setUp(self):
        super().setUp()

        requests.post('{}/reset'.format(config.rc_root))

        p1 = patch('zulip_util.announce_event')
        p2 = patch('zulip_util.send_message')
        self.addCleanup(p1.stop)
        self.addCleanup(p2.stop)
        p1.start()
        p2.start()

        self.rsvp = rsvp.RSVP('rsvp')

        test_events = rc.get_events(created_at_or_after=dateutil.parser.parse(
            "2017-05-19T20:24:50.309192Z"))

        self.test_data1 = test_events[0]
        self.test_data2 = test_events[1]

        self.event, self.event2 = [
            make_event(self.test_data1),
            make_event(self.test_data2)
        ]
        self._events = [self.event, self.event2]
        Session.add_all(self._events)
        Session.commit()

        self.issue_command('rsvp init {}'.format(self.event.url))
def create_users():
    users = [
        User(
            email='*****@*****.**',
            username='******',
            password='******',
            preferences='Люблю вкусно покушать!',
            avatar=None,
        ),
        User(
            email='*****@*****.**',
            username='******',
            password='******',
            preferences='Сытные мясные блюда и десерты.',
            avatar='larry-small.jpeg',
        ),
        User(
            email='*****@*****.**',
            username='******',
            password='******',
            preferences='Блюда из овощей и фруктов.',
            avatar='pepper-small.jpg',
        ),
        User(
            email='*****@*****.**',
            username='******',
            password='******',
            preferences='Ароматные специи.',
            avatar='spices-small.jpeg',
        ),
    ]
    Session.add_all(users)
    Session.commit()
def create_categories():
    categories = [
        Category(name='Завтраки', alias='breakfasts'),
        Category(name='Вторые блюда', alias='dinners'),
        Category(name='Закуски и салаты', alias='salads'),
        Category(name='Коктейли', alias='cocktails'),
        Category(name='Горячие напитки', alias='drinks'),
        Category(name='Десерты', alias='cakes'),
    ]
    Session.add_all(categories)
    Session.commit()
示例#4
0
def init_system():
    session = Session()

    if session.query(Perm).first():
        return True

    perms = [
        Perm(name='基础用户', slug='base'),
        Perm(name='配置系统', slug='do_setting'),
        Perm(name='权限分配', slug='do_auth'),
    ]

    roles = [
        Role(name='普通管理员', slug='role1'),
        Role(name='系统管理员', slug='role2'),
        Role(name='超级管理员', slug='role3'),
    ]

    session.add_all(perms)
    session.add_all(roles)
    session.commit()

    for role in roles:
        for perm in perms:
            if perm.slug in rel_role_perm[role.slug]:
                role.perms.append(perm)

    admin = Admin(
        username=CommonUser.ADMIN_NAME,
        password=hashlib.md5((CommonUser.ADMIN_PASSWORD +
                              CommonUser.SECRET_KEY).encode()).hexdigest(),
    )

    session.add(admin)
    session.commit()

    role3 = session.query(Role).filter(Role.slug == 'role3').one()
    admin.roles.append(role3)

    session.commit()
    session.close()

    logger.info('init system')
示例#5
0
def import_index_history_ohlcv():
    indices = ['000001', '399001', '399006', '000016']
    for i in indices:
        datas = read_tdx_ohlcv('../data/index_history/%s.txt' % i)
        records = [
            IndexOhlcv(code=i,
                       datetime=data[0],
                       period='d',
                       open=data[1],
                       high=data[2],
                       low=data[3],
                       close=data[4],
                       volume=data[5],
                       amount=data[6]) for data in datas
        ]

        ss = Session()
        ss.add_all(records)
        ss.commit()
示例#6
0
def import_index_history_ohlcv():
    indices = ['000001', '399001', '399006', '000016']
    for i in indices:
        datas = read_tdx_ohlcv('../data/index_history/%s.txt' % i)
        records = [
            IndexOhlcv(
                code=i,
                datetime=data[0],
                period='d',
                open=data[1],
                high=data[2],
                low=data[3],
                close=data[4],
                volume=data[5],
                amount=data[6]
            )
            for data in datas
        ]

        ss = Session()
        ss.add_all(records)
        ss.commit()
def create_ingredients():
    ingredients = [
        Ingredient(name='яйцо'),
        Ingredient(name='масло сливочное'),
        Ingredient(name='масло оливковое'),
        Ingredient(name='лук'),
        Ingredient(name='сыр'),
        Ingredient(name='молоко'),
        Ingredient(name='сахар'),
        Ingredient(name='банан'),
        Ingredient(name='шоколад'),
        Ingredient(name='соль'),
        Ingredient(name='перец'),
        Ingredient(name='курица'),
        Ingredient(name='розмарин'),
        Ingredient(name='специи'),
        Ingredient(name='лёд'),
        Ingredient(name='бекон'),
        Ingredient(name='водка'),
        Ingredient(name='томатный сок'),
    ]
    Session.add_all(ingredients)
    Session.commit()
示例#8
0
def fetch_and_insert_new_events():
    events = fetch_new_events()
    if events:
        records = [make_event(e) for e in events]
        Session.add_all(records)
        Session.commit()
示例#9
0
        },
    ],
    'Sport': [
        {
            'title': 'Foodball',
            'description': 'The most popular sport'
        },
        {
            'title': 'Golf',
            'description': ''
        },
    ]
}

if __name__ == '__main__':
    parsed_args = parser.parse_args()

    if parsed_args.purge:
        Base.metadata.drop_all()

    setup()

    for category_name, items in init_content.items():
        category = Category(title=category_name)
        session.add(category)
        if parsed_args.with_exmample_content:
            session.add_all(
                [Item(category=category, **item) for item in items])

        session.commit()
示例#10
0
def get_quotes(start, end, codes=None):
    sess = Session()
    criterion = Stock.status == 'L'
    if isinstance(codes, list):
        criterion = and_(criterion, Stock.code.in_(codes))
    stocks = sess.query(Stock).filter(criterion).all()

    for stock in stocks:
        try:
            begin_date = start if start else stock.listing_date
            end_date = end if end else date.today()
            payload = {
                'field': '',
                'beginDate': begin_date.strftime('%Y%m%d'),
                'endDate': end_date.strftime('%Y%m%d'),
                'secID': '',
                'ticker': stock.code,
                'tradeDate': ''
            }

            resp = requests.get(equd_adj_quote_history, headers=headers, params=payload)
            json_res = resp.json()
            if json_res['retCode'] != 1:
                logging.error('Request failed: [%s] %s' % (stock.code, json_res['retMsg']))
                continue

            quotes_data = json_res['data']
            quote_records = []
            for data in quotes_data:
                if not data['isOpen']:
                    continue

                adj_factor = data['accumAdjFactor']
                open = Decimal(data['openPrice'] / adj_factor).quantize(Decimal('.001'))
                close = Decimal(data['closePrice'] / adj_factor).quantize(Decimal('.001'))
                low = Decimal(data['lowestPrice'] / adj_factor).quantize(Decimal('.001'))
                high = Decimal(data['highestPrice'] / adj_factor).quantize(Decimal('.001'))
                pre_close = Decimal(data['actPreClosePrice']).quantize(Decimal('.001'))

                quote = Quote(
                    code=stock.code,
                    datetime=data['tradeDate'],
                    period='d1',
                    open=open,
                    close=close,
                    low=low,
                    high=high,
                    pre_close=pre_close,
                    change=close - pre_close,
                    percent=change_percent(close, pre_close),
                    volume=data['turnoverVol'],
                    amount=data['turnoverValue'],
                    turnover=data['turnoverRate'] * 100
                )

                quote_records.append(quote)

            sess.add_all(quote_records)
            sess.commit()

        except Exception as e:
            logging.error('Exception: [%s]' % stock.code)
            logging.error(e)
            continue
示例#11
0
        week_quotes.append(quote)

    return week_quotes


if __name__ == '__main__':
    start = date(2016, 6, 6)
    end = date(2016, 6, 8)

    ss = Session()

    securities = ss.query(Quote.code).distinct().all()

    for sec in securities:
        day_quotes = ss.query(Quote).filter(
            and_(
                Quote.code == sec.code,
                Quote.period == 'd1',
                Quote.datetime >= start,
                Quote.datetime <= end
            )
        ).order_by(Quote.datetime.asc()).all()

        if not day_quotes:
            continue

        week_quotes = create_week_quote(day_quotes)

        ss.add_all(week_quotes)
        ss.commit()
示例#12
0
文件: quotes.py 项目: c1xfr2e/happy
def get_quotes(start, end, codes=None):
    sess = Session()
    criterion = Stock.status == 'L'
    if isinstance(codes, list):
        criterion = and_(criterion, Stock.code.in_(codes))
    stocks = sess.query(Stock).filter(criterion).all()

    for stock in stocks:
        try:
            begin_date = start if start else stock.listing_date
            end_date = end if end else date.today()
            payload = {
                'field': '',
                'beginDate': begin_date.strftime('%Y%m%d'),
                'endDate': end_date.strftime('%Y%m%d'),
                'secID': '',
                'ticker': stock.code,
                'tradeDate': ''
            }

            resp = requests.get(equd_adj_quote_history,
                                headers=headers,
                                params=payload)
            json_res = resp.json()
            if json_res['retCode'] != 1:
                logging.error('Request failed: [%s] %s' %
                              (stock.code, json_res['retMsg']))
                continue

            quotes_data = json_res['data']
            quote_records = []
            for data in quotes_data:
                if not data['isOpen']:
                    continue

                adj_factor = data['accumAdjFactor']
                open = Decimal(data['openPrice'] / adj_factor).quantize(
                    Decimal('.001'))
                close = Decimal(data['closePrice'] / adj_factor).quantize(
                    Decimal('.001'))
                low = Decimal(data['lowestPrice'] / adj_factor).quantize(
                    Decimal('.001'))
                high = Decimal(data['highestPrice'] / adj_factor).quantize(
                    Decimal('.001'))
                pre_close = Decimal(data['actPreClosePrice']).quantize(
                    Decimal('.001'))

                quote = Quote(code=stock.code,
                              datetime=data['tradeDate'],
                              period='d1',
                              open=open,
                              close=close,
                              low=low,
                              high=high,
                              pre_close=pre_close,
                              change=close - pre_close,
                              percent=change_percent(close, pre_close),
                              volume=data['turnoverVol'],
                              amount=data['turnoverValue'],
                              turnover=data['turnoverRate'] * 100)

                quote_records.append(quote)

            sess.add_all(quote_records)
            sess.commit()

        except Exception as e:
            logging.error('Exception: [%s]' % stock.code)
            logging.error(e)
            continue
示例#13
0
    week_groups = group_quotes_by_week(day_quotes)
    for wg in week_groups:
        quote = merge_quotes(wg)
        quote.period = 'w1'
        week_quotes.append(quote)

    return week_quotes


if __name__ == '__main__':
    start = date(2016, 6, 6)
    end = date(2016, 6, 8)

    ss = Session()

    securities = ss.query(Quote.code).distinct().all()

    for sec in securities:
        day_quotes = ss.query(Quote).filter(
            and_(Quote.code == sec.code, Quote.period == 'd1',
                 Quote.datetime >= start,
                 Quote.datetime <= end)).order_by(Quote.datetime.asc()).all()

        if not day_quotes:
            continue

        week_quotes = create_week_quote(day_quotes)

        ss.add_all(week_quotes)
        ss.commit()
示例#14
0
            if sess:
                db.delete(sess)
            self.response.delete_cookie("session_id")
            return { "message":"logged out" } 
        return { "message":"Not logged in" }

class app(WSGI):
    routes = [ 
        ('/home', Home()),
        ('/login', Login()),
        ('/logout', Logout())
    ]

if __name__ == "__main__":

    print("DB: Creating users table in memory...")    
    Base.metadata.create_all(engine)

    print("DB: Adding users...")
    db.add_all([
        User(username="******", password="******")
    ])

    from wsgiref.simple_server import make_server
    try:
        print("Serving on 0.0.0.0:8080...")
        make_server('0.0.0.0', 8080, app).serve_forever()
    except KeyboardInterrupt:
        pass
    print("Done")
示例#15
0
# Press the green button in the gutter to run the script.
if __name__ == '__main__':
    # Base.metadata.create_all(engine)
    session = Session()
    # transient state
    ed_user = User(name='ed', fullname='Ed Jones', nickname='edsnickname')
    # pending state
    session.add(ed_user)
    # auto flush
    our_user = session.query(User).filter_by(name='ed').first()
    print(our_user)
    print(ed_user is our_user)
    session.add_all([
        User(name='wendy', fullname='Wendy Williams', nickname='windy'),
        User(name='mary', fullname='Mary Contrary', nickname='mary'),
        User(name='fred', fullname='Fred Flintstone', nickname='freddy')
    ])
    ed_user.nickname = 'eddie'
    print(session.dirty)
    print(session.new)
    # persistent state
    session.commit()
    print(ed_user.id)
    # roll back
    ed_user.name = 'Edwardo'
    fake_user = User(name='fakeuser', fullname='Invalid', nickname='12345')
    session.add(fake_user)
    session.query(User).filter(User.name.in_(['Edwardo', 'fakeuser'])).all()
    session.rollback()
    print(ed_user.name)