Exemple #1
0
 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')
Exemple #2
0
 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')
Exemple #3
0
 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
Exemple #4
0
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))
Exemple #5
0
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()
Exemple #6
0
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)
Exemple #7
0
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
Exemple #8
0
def get_portfolio_papers(portfolio_id: int):
    return [Paper(row['id']) for row in query.fetch('shares', ['id'], portfolio_id=portfolio_id)]
Exemple #9
0
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
Exemple #10
0
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)
Exemple #11
0
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]
Exemple #12
0
 def count_papers(self):
     return len(query.fetch('shares', ['id'], portfolio_id=self.id))