def get_user_market(config_path, user_id, debug=False):
pg_config, report_path = parse_config(config_path)
- market_config = list(fetch_markets(pg_config, str(user_id)))[0][0]
- return market.Market.from_config(market_config, debug=debug)
+ market_id, market_config, user_id = list(fetch_markets(pg_config, str(user_id)))[0]
+ args = type('Args', (object,), { "debug": debug, "quiet": False })()
+ return market.Market.from_config(market_config, args,
+ pg_config=pg_config, market_id=market_id,
+ user_id=user_id, report_path=report_path)
def fetch_markets(pg_config, user):
connection = psycopg2.connect(**pg_config)
cursor = connection.cursor()
if user is None:
- cursor.execute("SELECT config,user_id FROM market_configs")
+ cursor.execute("SELECT id,config,user_id FROM market_configs")
else:
- cursor.execute("SELECT config,user_id FROM market_configs WHERE user_id = %s", user)
+ cursor.execute("SELECT id,config,user_id FROM market_configs WHERE user_id = %s", user)
for row in cursor:
yield row
parser.add_argument("--after",
default=False, action='store_const', const=True,
help="Run the steps after the cryptoportfolio update")
+ parser.add_argument("--quiet",
+ default=False, action='store_const', const=True,
+ help="Don't print messages")
parser.add_argument("--debug",
default=False, action='store_const', const=True,
help="Run in debug mode")
return args
-def process(market_config, user_id, report_path, args):
+def process(market_config, market_id, user_id, args, report_path, pg_config):
try:
market.Market\
- .from_config(market_config, debug=args.debug, user_id=user_id, report_path=report_path)\
+ .from_config(market_config, args,
+ pg_config=pg_config, market_id=market_id,
+ user_id=user_id, report_path=report_path)\
.process(args.action, before=args.before, after=args.after)
except Exception as e:
print("{}: {}".format(e.__class__.__name__, e))
import threading
market.Portfolio.start_worker()
- for market_config, user_id in fetch_markets(pg_config, args.user):
- threading.Thread(target=process, args=[market_config, user_id, report_path, args]).start()
+ def process_(*args):
+ threading.Thread(target=process, args=args).start()
else:
- for market_config, user_id in fetch_markets(pg_config, args.user):
- process(market_config, user_id, report_path, args)
+ process_ = process
+
+ for market_id, market_config, user_id in fetch_markets(pg_config, args.user):
+ process_(market_config, market_id, user_id, args, report_path, pg_config)
if __name__ == '__main__': # pragma: no cover
main(sys.argv[1:])