def load(self, port_id): """Load class from db""" columns = ['id', 'name', 'holder_id', 'margin', 'broker'] data = query.fetch('portfolios', columns=columns, id=port_id) if len(data) == 1: for col in columns: setattr(self, col, data[0][col]) self.papers = [ Paper(row['id']) for row in query.fetch('shares', ['id'], portfolio_id=self.id) ] else: print('Found more then one entry')
def load(self, paper_id): """Load class from db""" columns = [ 'id', 'ticker', 'amount', 'price', 'stock', 'currency', 'holder_id', 'portfolio_id', 'commission' ] data = query.fetch('shares', columns=columns, id=paper_id) if len(data) == 1: for col in columns: setattr(self, col, data[0][col]) self.margin = query.fetch('portfolios', ['margin'], id=self.portfolio_id)[0]['margin'] else: print('Found more then one entry')
def __is_in_db(self) -> bool: """Returns True if no entries in db""" try: return False if len(query.fetch('portfolios', [('id', self.id)])) == 0 else True except AttributeError: return False
def search(): try: summaries, top_downloads = list(query.fetch(query.parse(request.args["query"]))) format_summaries(summaries) return render_template("results.html", summaries=summaries, top_downloads=top_downloads) except query.ParseException, exc: return render_template("error.html", message=repr(exc))
async def portfolio_setprice_finishmachine(message: types.Message, state: FSMContext): new_paper.price = float(message.text) new_paper.margin = query.fetch('portfolios', ['margin'], id=new_paper.portfolio_id)[0]['margin'] new_paper.set_commission() new_paper.add_transaction(new_paper.amount, new_paper.price, new_paper.commission) new_paper.save() await bot.send_message(message.chat.id, f'Paper has been added to your portfolio\n{new_paper}', reply_markup=types.ReplyKeyboardRemove()) await state.finish()
import renderer from query import fetch import argparse import notify parser = argparse.ArgumentParser() parser.add_argument("path") args = parser.parse_args() eli_path = args.path results = fetch(eli_path) renderer.render(results) notify.notify_broken_imagery(results)
def get_paper(ticker: str, portfolio_id: int, holder_id: int) -> Paper: try: return Paper(query.fetch('shares', ['id'], ticker=ticker, holder_id=holder_id, portfolio_id=portfolio_id)[0]['id']) except IndexError: return
def get_portfolio_papers(portfolio_id: int): return [Paper(row['id']) for row in query.fetch('shares', ['id'], portfolio_id=portfolio_id)]
def is_user_holds_portfolio(user_id: int, portfolio_id: int) -> bool: """Checks if user_id has portfolio_id""" return True if len(query.fetch('portfolios', ['id'], holder_id=user_id, id=portfolio_id)) > 0 else False
def get_portfolio_id(name, user): """Finds id of portfolio by its name and holder_id""" return query.fetch('portfolios', ['id'], name=name, holder_id=user.id)
def fetch_portfolios(user): """Fetch portfolios by user.user_id""" data = query.fetch('portfolios', ['id'], holder_id=user.id) return [Portfolio(x['id']) for x in data]
def count_papers(self): return len(query.fetch('shares', ['id'], portfolio_id=self.id))