Пример #1
0
def _main():
    """
    Predicts which loans will perform the best and then places orders on those if
    there is enough cash and if the loan has not already been ordered.
    """
    count = 0
    df = generate_completed_df()
    # import pdb; pdb.set_trace()

    if three_years_only:
        df = df[df.term == 36]

    good_ids = set(df.ix[(df.estimated_roi > roi_floor)
                         & (df.default_prob < default_floor)].index)

    already_ordered = set()
    for row in c.execute('SELECT * FROM orders'):
        already_ordered.add(row[1])

    good_ids = good_ids - already_ordered

    logging.debug("Placing orders for {} loans \n{} already ordered".format(
        len(set((good_ids)) - set(already_ordered)), len(already_ordered))
                  )  # TODO Consider making a new_orders thing with the set.

    order_ids = []
    pending_amount = 0
    for id in good_ids:
        funds_available = has_enough_cash(
            pending_amount)  # Called once to avoid dirty logs
        if id not in already_ordered and funds_available:
            count += 1
            pending_amount += amount
            order_ids.append(id)
        elif not funds_available:
            logging.debug("No Cash left")
            break
        elif id in already_ordered:
            logging.info("{} Was previously ordered".format(id))

    place_order(order_ids)

    logging.debug("Finished Ordering ordered {} notes \n".format(count))
Пример #2
0
def _main():
    """
    Predicts which loans will perform the best and then places orders on those if
    there is enough cash and if the loan has not already been ordered.
    """
    count = 0
    df = generate_completed_df()
    # import pdb; pdb.set_trace()

    if three_years_only:
        df = df[df.term == 36]

    good_ids = set(df.ix[(df.estimated_roi > roi_floor) &
                     (df.default_prob < default_floor)].index)

    already_ordered = set()
    for row in c.execute('SELECT * FROM orders'):
        already_ordered.add(row[1])

    good_ids = good_ids - already_ordered

    logging.debug("Placing orders for {} loans \n{} already ordered"
            .format(len(set((good_ids)) - set(already_ordered)), len(already_ordered))) # TODO Consider making a new_orders thing with the set.

    order_ids = []
    pending_amount = 0
    for id in good_ids:
        funds_available = has_enough_cash(pending_amount) # Called once to avoid dirty logs
        if id not in already_ordered and funds_available:
            count += 1
            pending_amount += amount
            order_ids.append(id)
        elif not funds_available:
            logging.debug("No Cash left")
            break
        elif id in already_ordered:
            logging.info("{} Was previously ordered".format(id))

    place_order(order_ids)

    logging.debug("Finished Ordering ordered {} notes \n".format(count))
Пример #3
0
def _main():
    """
    Predicts which loans will perform the best and then places orders on those if
    there is enough cash and if the loan has not already been ordered.
    """
    df = generate_completed_df()
    good_ids = df.id[(df.estimated_roi > roi_floor) & (df.default_prob < default_floor)]

    already_ordered = []
    for row in c.execute('SELECT * FROM orders'):
        already_ordered.append(row[1])

    logging.debug("Placing orders for {} loans \n{} already ordered"
            .format(len(set((good_ids)) - set(already_ordered)), len(already_ordered)))

    for id in good_ids:
        funds_available = has_enough_cash() # Called once to avoid dirty logs
        if id not in already_ordered and funds_available:
             place_order(id)
        elif not funds_available:
            logging.debug("No Cash left")
            break

    logging.debug("Finished Ordering")
Пример #4
0
<h1>{{name}}</h1>
{{data | safe}}
{% endblock %}
"""

import os
import pandas as pd

from flask import Flask, render_template, request

# sys.path.append('..')
from process_api import generate_completed_df

app = Flask(__name__)

df = generate_completed_df()
df_html = df.to_html().replace('class="dataframe"',
                                   'class="table table-striped table-bordered table-condensed')

loans_available = 0
estimated_roi = 0
last_checked = 0
last_submitted = 0



# @app.route('/')
# def dashboard():
#     return render_template('dashboard.html', roi_floor=roi_floor,
#                            loans_available=loans_available,
#                            estimated_roi=estimated_roi,
Пример #5
0
def test_dtypes_and_shape():
    df = generate_completed_df()
    return df
Пример #6
0
"""
import py.test
import pandas as pd
import engarde.decorators as ed
import numpy as np
import sys
from hypothesis import given, assume, example, strategies as st

sys.path.append('../app')
from process_api import generate_completed_df

TEST_API = True
BAD_DATA = True

if TEST_API:
    test_df = generate_completed_df()
elif BAD_DATA:
    test_df = pd.read_csv('bad_data.csv')
else:
    test_df = pd.read_csv('good_data.csv')

dtypes = dict(estimated_roi=float,
              default_prob=float,
              loan_amnt=float,
              int_rate=float,
              grade='category',
              installment=float,
              emp_length=float,
              home_ownership='category',
              purpose='category',
              revol_bal=float,
Пример #7
0
def test_dtypes_and_shape():
    df = generate_completed_df()
    return df