def main(): # parse args parser = ap.ArgumentParser() parser.add_argument('csv', type=str, help='CSV file to read products from') parser.add_argument('--budget', metavar='budget', type=int, required=True, help='Total budget to initialize db with.') parser.add_argument('--tick-length', metavar='tick_length', type=int, required=True, help='The length of a tick.') parser.add_argument('--tick-count', metavar='tick_count', type=int, required=True, help='Total number of planned ticks.') parser.add_argument('--quarantine', metavar='quarantine', type=int, required=True, help='Total number of planned ticks.') parsed = parser.parse_args() # get products and construct zero adjustments products = parse_products_csv(parsed.csv) adjustments = {product['code']: 0 for product in products} # setup DB db = Database(Exchange.DATABASE_FILE) db.connect() # ensure schema exists for statement in open('schema.sql').read().split(';'): db.exe(statement) # set configuration db.set_config_stock_running(False) db.set_config_budget(parsed.budget) db.set_config_tick_length(parsed.tick_length) db.set_config_total_ticks(parsed.tick_count) db.set_config_quarantine(parsed.quarantine) db.import_products(products, replace_existing=True) try: db.do_tick(adjustments, tick_no=0) except Exception as e: print('tick data already exsist') print(f'error: {e}') db.close()
import argparse from bearstock.stock import Exchange from bearstock.database import Database if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('--adj', type=int, required=True) parser.add_argument('--min', type=int, required=True) parsed = parser.parse_args() db = Database(Exchange.DATABASE_FILE) db.connect() all_products = db.get_all_products(include_hidden=True) for product in all_products: old_price = product.base_price new_price = max(old_price + parsed.adj, parsed.min) product.base_price = new_price product.update_in_db() print( f'Adjusted price for \'{product.code}\' from {old_price} to {new_price}' ) print(f'Adjusted all products by {parsed.adj} NOK') db.close()
import sys import csv from bearstock.database import Database from bearstock.stock import Exchange db = Database(Exchange.DATABASE_FILE) db.connect() filename = sys.argv[1] with open(filename, 'r') as csvfile: # detect dialect dialect = csv.Sniffer().sniff(csvfile.readline().rstrip(',;\t')) csvfile.seek(0) # parse reader = csv.reader(csvfile, dialect=dialect) next(reader) for row in reader: name = row[4] username = row[5] db.insert_buyer(name=name, username=username, icon=None)
def before_request(): g.db: Database = Database(DATABASE_FILE) g.db.connect()
def run_default(self): db = Database(Exchange.DATABASE_FILE) db.connect() Exchange(db).run()
from bearstock.stock import Exchange from bearstock.database import Database if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('product', metavar='product-code', type=str) group = parser.add_mutually_exclusive_group() group.add_argument('--on', action='store_true') group.add_argument('--off', action='store_true') parsed = parser.parse_args() if not parsed.on and not parsed.off: print('please supply either \'--on\' or \'--off\'') else: db = Database(Exchange.DATABASE_FILE) db.connect() product = db.get_product(parsed.product) if parsed.on: product.hidden = False product.update_in_db() print(f'Product \'{parsed.product}\' turned ON') else: product.hidden = True product.update_in_db() print(f'Product \'{parsed.product}\' turned OFF') db.close()
import argparse from bearstock.stock import Exchange from bearstock.database import Database if __name__ == '__main__': parser = argparse.ArgumentParser() group = parser.add_mutually_exclusive_group() group.add_argument('--on', action='store_true') group.add_argument('--off', action='store_true') parsed = parser.parse_args() if not parsed.on and not parsed.off: print('please supply eithe \'--on\' or \'--off\'') else: db = Database(Exchange.DATABASE_FILE) db.connect() if parsed.on: db.set_config_stock_running(True) print('Ticks turned ON') else: db.set_config_stock_running(False) print('Ticks turned OFF') db.close()
import argparse from bearstock.stock import Exchange from bearstock.database import Database if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('--seconds', type=int, required=True) parsed = parser.parse_args() db = Database(Exchange.DATABASE_FILE) db.connect() db.set_config_quarantine(parsed.seconds) print(f'Quarantine time set to {parsed.seconds}') db.close()