""" oshi -- Japanese grammar tester """ import threading import random from os import path import database import grammar if not path.exists(database.DATABASE_FILENAME): if input("Database not found. Build now? (y/n) ").strip().lower() != "y": exit(0) try: filename = input("Filename (JMdict_e.gz): ").strip() or "JMdict_e.gz" print("Building...") database.build(filename) print("Build complete") except FileNotFoundError: print("Specified file not found.") exit(1) except ValueError: print("Extension not supported") exit(1) except: print("Unknown error") exit(1) db = None def load_database():
def setUp(self): """ Set up the database with some orders ready for a credit :return: """ # Build the tests Logger self.log = logging.Logger("Tests") stream = logging.StreamHandler() formatter = logging.Formatter(fmt="%(message)s") stream.setFormatter(formatter) self.log.addHandler(stream) self.log.debug("TestCredits testcase") self.log.debug("running setUp") # build the database if it doesn't exist database.build(self.log) # set us up a bottle application with correct config self.app = bottle.Bottle() self.app.config.load_config("../pool_config") load_config.load(self.app, "exchange_config") # clear any existing orders in the database conn = sqlite3.connect("pool.db") c = conn.cursor() c.execute("DELETE FROM orders") c.execute("DELETE FROM credits") conn.commit() # create test data self.test_data = { "tier_1": { "TEST_USER_1": {"bid": random.randint(0, 1000), "ask": random.randint(0, 1000)}, "TEST_USER_2": {"bid": random.randint(0, 1000), "ask": random.randint(0, 1000)}, "TEST_USER_3": {"bid": random.randint(0, 1000), "ask": random.randint(0, 1000)}, "TEST_USER_4": {"bid": random.randint(0, 1000), "ask": random.randint(0, 1000)}, }, "tier_2": { "TEST_USER_1": {"bid": random.randint(0, 1000), "ask": random.randint(0, 1000)}, "TEST_USER_2": {"bid": random.randint(0, 1000), "ask": random.randint(0, 1000)}, "TEST_USER_3": {"bid": random.randint(0, 1000), "ask": random.randint(0, 1000)}, "TEST_USER_4": {"bid": random.randint(0, 1000), "ask": random.randint(0, 1000)}, }, } # add some orders to the database for test_data for tier in self.test_data: for user in self.test_data[tier]: for side in self.test_data[tier][user]: c.execute( "INSERT INTO orders ('user','tier','order_id'," "'order_amount','order_type','exchange','unit') " "VALUES (?,?,?,?,?,?,?)", ( user, tier, random.randint(0, 250), self.test_data[tier][user][side], side, "test_exchange", "btc", ), ) conn.commit() conn.close() self.log.debug("ending setUp")
def setUp(self): """ Set up the database with some orders ready for a credit :return: """ # Build the tests Logger self.log = logging.Logger('Tests') stream = logging.StreamHandler() formatter = logging.Formatter(fmt='%(message)s') stream.setFormatter(formatter) self.log.addHandler(stream) self.log.debug('TestCredits testcase') self.log.debug('running setUp') # build the database if it doesn't exist database.build(self.log) # set us up a bottle application with correct config self.app = bottle.Bottle() self.app.config.load_config('../pool_config') load_config.load(self.app, 'exchange_config') # clear any existing orders in the database conn = sqlite3.connect('pool.db') c = conn.cursor() c.execute("DELETE FROM orders") c.execute("DELETE FROM credits") conn.commit() # create test data self.test_data = { 'tier_1': { 'TEST_USER_1': { 'bid': random.randint(0, 1000), 'ask': random.randint(0, 1000)}, 'TEST_USER_2': { 'bid': random.randint(0, 1000), 'ask': random.randint(0, 1000)}, 'TEST_USER_3': { 'bid': random.randint(0, 1000), 'ask': random.randint(0, 1000)}, 'TEST_USER_4': { 'bid': random.randint(0, 1000), 'ask': random.randint(0, 1000)}}, 'tier_2': { 'TEST_USER_1': { 'bid': random.randint(0, 1000), 'ask': random.randint(0, 1000)}, 'TEST_USER_2': { 'bid': random.randint(0, 1000), 'ask': random.randint(0, 1000)}, 'TEST_USER_3': { 'bid': random.randint(0, 1000), 'ask': random.randint(0, 1000)}, 'TEST_USER_4': { 'bid': random.randint(0, 1000), 'ask': random.randint(0, 1000)}}} # add some orders to the database for test_data for tier in self.test_data: for user in self.test_data[tier]: for side in self.test_data[tier][user]: c.execute("INSERT INTO orders ('user','tier','order_id'," "'order_amount','order_type','exchange','unit') " "VALUES (?,?,?,?,?,?,?)", (user, tier, random.randint(0, 250), self.test_data[tier][user][side], side, 'test_exchange', 'btc')) conn.commit() conn.close() self.log.debug('ending setUp')
server = WSGILogger(app, handlers, ApacheFormatter()) # Build the application Logger log = logging.Logger('ALP') rotating_file = TimedRotatingFileHandler('logs/alp-{}.log'.format(log_time), when='midnight') stream = logging.StreamHandler() formatter = logging.Formatter(fmt='%(asctime)s - %(levelname)s - %(message)s', datefmt='%y-%m-%d %H:%M:%S') stream.setFormatter(formatter) rotating_file.setFormatter(formatter) log.addHandler(rotating_file) log.addHandler(stream) # Create the database if one doesn't exist database.build(log) # Install the SQLite plugin app.install(SQLitePlugin(dbfile='pool.db', keyword='db')) # Create the Exchange wrapper objects wrappers = {'bittrex': Bittrex(), 'bter': BTER(), 'ccedk': CCEDK(), 'poloniex': Poloniex(), 'test_exchange': TestExchange()} log.info('load pool config') app.config.load_config('pool_config') log.info('load exchange config')
server = WSGILogger(app, handlers, ApacheFormatter()) # Build the application Logger log = logging.Logger('ALP') rotating_file = TimedRotatingFileHandler('logs/alp-{}.log'.format(log_time), when='midnight') stream = logging.StreamHandler() formatter = logging.Formatter(fmt='%(asctime)s - %(levelname)s - %(message)s', datefmt='%y-%m-%d %H:%M:%S') stream.setFormatter(formatter) rotating_file.setFormatter(formatter) log.addHandler(rotating_file) log.addHandler(stream) # Create the database if one doesn't exist database.build(log) # Install the SQLite plugin app.install(SQLitePlugin(dbfile='pool.db', keyword='db')) # Create the Exchange wrapper objects wrappers = { 'bittrex': Bittrex(), 'bter': BTER(), 'ccedk': CCEDK(), 'poloniex': Poloniex(), 'test_exchange': TestExchange() } log.info('load pool config') app.config.load_config('pool_config')