changeset 184:de766e047fd2

Organize command line arguments by categories of kwargs
author Amine Sehili <amine.sehili@gmail.com>
date Fri, 29 Mar 2019 20:41:51 +0100
parents c1397190e35e
children da8d454ece74
files auditok/cmdline.py auditok/cmdline_util.py
diffstat 2 files changed, 32 insertions(+), 23 deletions(-) [+]
line wrap: on
line diff
--- a/auditok/cmdline.py	Thu Mar 28 21:02:10 2019 +0100
+++ b/auditok/cmdline.py	Fri Mar 29 20:41:51 2019 +0100
@@ -371,13 +371,13 @@
             worker = workers.PrintWorker(print_format, time_format, timestamp_format)
             observers.append(worker)
 
-        reader = AudioDataSource(args.input, **kwargs.io_kwargs)
+        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_kwargs
+            reader, observers, logger=logger, **kwargs.split
         )
         tokenizer_worker.start_all()
 
--- a/auditok/cmdline_util.py	Thu Mar 28 21:02:10 2019 +0100
+++ b/auditok/cmdline_util.py	Fri Mar 29 20:41:51 2019 +0100
@@ -1,35 +1,44 @@
 import sys
 import logging
-
+from collections import namedtuple
 
 LOGGER_NAME = "AUDITOK_LOGGER"
+KeywordArguments = namedtuple("KeywordArguments", ["io", "split"])
 
 
 class TimeFormatError(Exception):
     pass
 
 
-def make_kwargs(args_namespace):
-    kwargs = {
-        "min_dur": args_namespace.min_duration,
-        "max_dur": args_namespace.max_duration,
-        "max_silence": args_namespace.max_silence,
-        "drop_trailing_silence": args_namespace.drop_trailing_silence,
-        "strict_min_dur": args_namespace.strict_min_duration,
-        "energy_threshold": args_namespace.energy_threshold,
-        "max_read_time": args_namespace.max_time,
-        "analysis_window": args_namespace.analysis_window,
-        "sampling_rate": args_namespace.sampling_rate,
-        "sample_with": args_namespace.sample_width,
-        "channels": args_namespace.channels,
-        "use_channel": args_namespace.use_channel,
-        "input_type": args_namespace.input_type,
-        "output_type": args_namespace.output_type,
-        "large_file": args_namespace.large_file,
-        "frames_per_buffer": args_namespace.frame_per_buffer,
-        "input_device_index": args_namespace.input_device_index,
+def make_kwargs(args_ns):
+    if args_ns.output_main is None:
+        record = args_ns.plot or (args_ns.save_image is not None)
+    else:
+        record = False
+    io_kwargs = {
+        "max_read_time": args_ns.max_time,
+        "block_dur": args_ns.analysis_window,
+        "sampling_rate": args_ns.sampling_rate,
+        "sample_width": args_ns.sample_width,
+        "channels": args_ns.channels,
+        "use_channel": args_ns.use_channel,
+        "input_type": args_ns.input_type,
+        "output_type": args_ns.output_type,
+        "large_file": args_ns.large_file,
+        "frames_per_buffer": args_ns.frame_per_buffer,
+        "input_device_index": args_ns.input_device_index,
+        "record": record,
     }
-    return kwargs
+
+    split_kwargs = {
+        "min_dur": args_ns.min_duration,
+        "max_dur": args_ns.max_duration,
+        "max_silence": args_ns.max_silence,
+        "drop_trailing_silence": args_ns.drop_trailing_silence,
+        "strict_min_length": args_ns.strict_min_length,
+        "energy_threshold": args_ns.energy_threshold,
+    }
+    return KeywordArguments(io_kwargs, split_kwargs)
 
 
 def make_duration_fromatter(fmt):