Source code for sndid.jackcli

# sndid/jackcli.py
# Copyright 2024, Jeff Moe <moe@spacecruft.org>
# Licensed under the Apache License, Version 2.0
import argparse
import logging
import sys
from sndid.sndidjack import SndIdJack
from sndid.config import Config
from .__version__ import __version__


[docs] def parse_arguments(): """ Parse command line arguments for sndid-jack. Returns: argparse.Namespace: Parsed arguments. """ parser = argparse.ArgumentParser( description="sndid-jack - AI processing JACK Audio Connection Kit." ) parser.add_argument("--config_file", "-c", help="Configuration File name") parser.add_argument( "--log-level", "-L", choices=["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"], help="Logging level.", type=str.upper, ) parser.add_argument("--n-inputs", "-n", type=int, help="Number of inputs") parser.add_argument("--segment-length", "-l", type=int, help="Segment length") parser.add_argument("--min-confidence", "-m", type=float, help="Minimum confidence") parser.add_argument("--lat", "-y", type=float, help="Latitude") parser.add_argument("--lon", "-x", type=float, help="Longitude") parser.add_argument("--output-dir", "-o", help="Output directory for detections") parser.add_argument( "--version", "-v", action="version", version=f"%(prog)s {__version__}" ) return parser.parse_args()
[docs] def main(): """ Main function for sndid-jack. Parses command line arguments, sets up configuration, initializes logging, and starts the main SndIdJack process. """ args = parse_arguments() config_file = args.config_file config = Config.load_config(config_file) if not config_file: config = Config.set_defaults({}) for key, value in vars(args).items(): if value is not None: config[key] = value logging.basicConfig( level=config["log_level"], format="%(asctime)s - %(levelname)s - %(message)s", datefmt="%Y-%m-%d %H:%M:%S", stream=sys.stdout, ) logging.debug("Starting SndIdJack with configuration: %s", config) sndidjack = SndIdJack(config) sndidjack.main()
if __name__ == "__main__": main()