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()
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')
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 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()
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()
}, ], '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()
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
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()
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
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()
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")
# 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)