]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git/blobdiff - main.py
Use generic parser for market processing
[perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git] / main.py
diff --git a/main.py b/main.py
index 6383ed17775f185ad3973358a9bbcbc3a83b3a0c..f465d8db0239022d620cb89cdf4948ee6c028b60 100644 (file)
--- a/main.py
+++ b/main.py
@@ -1,4 +1,3 @@
-from datetime import datetime
 import configargparse
 import psycopg2
 import os
@@ -150,7 +149,10 @@ def parse_args(argv):
     parser.add_argument("--db-database", default="cryptoportfolio",
             help="Database access to database (default: cryptoportfolio)")
 
-    return parser.parse_args(argv)
+    parsed = parser.parse_args(argv)
+    if parsed.action is None:
+        parsed.action = ["sell_all"]
+    return parsed
 
 def process(market_config, market_id, user_id, args, pg_config):
     try:
@@ -166,17 +168,27 @@ def main(argv):
 
     pg_config = parse_config(args)
 
+    market.Portfolio.report.set_verbose(not args.quiet)
+
     if args.parallel:
         import threading
         market.Portfolio.start_worker()
 
+        threads = []
         def process_(*args):
-            threading.Thread(target=process, args=args).start()
+            thread = threading.Thread(target=process, args=args)
+            thread.start()
+            threads.append(thread)
     else:
         process_ = process
 
     for market_id, market_config, user_id in fetch_markets(pg_config, args.user):
         process_(market_config, market_id, user_id, args, pg_config)
 
+    if args.parallel:
+        for thread in threads:
+            thread.join()
+        market.Portfolio.stop_worker()
+
 if __name__ == '__main__': # pragma: no cover
     main(sys.argv[1:])