changeset 203:f482cc79c10e

Add progress bar option to command line
author Amine Sehili <amine.sehili@gmail.com>
date Fri, 24 May 2019 20:34:17 +0100
parents c92ed44b7737
children a8a710547553
files auditok/cmdline.py
diffstat 1 files changed, 28 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/auditok/cmdline.py	Sun May 19 15:30:46 2019 +0100
+++ b/auditok/cmdline.py	Fri May 24 20:34:17 2019 +0100
@@ -22,6 +22,7 @@
 
 from auditok import __version__
 from .util import AudioDataSource
+from .io import player_for
 from .cmdline_util import make_logger, make_kwargs
 from . import workers
 
@@ -40,7 +41,9 @@
         parser = ArgumentParser(
             prog=program_name, description="An Audio Tokenization tool"
         )
-        parser.add_argument("--version", "-v", action="version", version=version)
+        parser.add_argument(
+            "--version", "-v", action="version", version=version
+        )
         group = parser.add_argument_group("Input-Output options")
         group.add_argument(
             "-i",
@@ -268,6 +271,14 @@
             help="Play back each detection immediately using pyaudio",
         )
         group.add_argument(
+            "-B",
+            "--progress-bar",
+            dest="progress_bar",
+            action="store_true",
+            default=False,
+            help="Show a progress bar when playing audio",
+        )
+        group.add_argument(
             "-p",
             "--plot",
             dest="plot",
@@ -345,6 +356,11 @@
         kwargs = make_kwargs(args)
         observers = []
 
+        reader = AudioDataSource(args.input, **kwargs.io)
+        if args.output_main is not None:
+            reader = workers.StreamSaverWorker(reader, args.output_main)
+            reader.start()
+
         if args.output_tokens is not None:
             worker = workers.RegionSaverWorker(
                 args.output_tokens, args.output_type, logger=logger
@@ -352,12 +368,17 @@
             observers.append(worker)
 
         if args.echo:
-            progress_bar = args.quiet and not args.debug
-            worker = workers.PlayerWorker(progress_bar=progress_bar, logger=logger)
+            player = player_for(reader)
+            progress_bar = args.progress_bar
+            worker = workers.PlayerWorker(
+                player, progress_bar=progress_bar, logger=logger
+            )
             observers.append(worker)
 
         if args.command is not None:
-            worker = workers.CommandLineWorker(command=args.command, logger=logger)
+            worker = workers.CommandLineWorker(
+                command=args.command, logger=logger
+            )
             observers.append(worker)
 
         if not args.quiet:
@@ -368,14 +389,11 @@
             )
             time_format = args.time_format
             timestamp_format = args.timestamp_format
-            worker = workers.PrintWorker(print_format, time_format, timestamp_format)
+            worker = workers.PrintWorker(
+                print_format, time_format, timestamp_format
+            )
             observers.append(worker)
 
-        reader = AudioDataSource(args.input, **kwargs.io)
-        if args.output_main is not None:
-            reader = workers.StreamSaverWorker(reader, args.output_main)
-            reader.start()
-
         tokenizer_worker = workers.TokenizerWorker(
             reader, observers, logger=logger, **kwargs.split
         )