import argparse import dataclasses as dc import sys from typing import cast from dopt_basics import cli from dopt_sensor_anomalies import _interface @dc.dataclass() class CliArgs: img_path: str calib_value_x: float calib_value_y: float def main() -> int: parser = argparse.ArgumentParser( description=("simple CLI tool to analyse single sensor images for anomalies") ) parser.add_argument( "img_path", help="file path to the image which is to be analysed", type=str, ) parser.add_argument( "calib_value_x", help="calibration value in pixels per mcm for x axis, type: float", type=float, ) parser.add_argument( "calib_value_y", help="calibration value in pixels per mcm for y axis, type: float", type=float, ) args = cast(CliArgs, parser.parse_args()) with cli.LoadingAnimation( "Perform anomaly detection...", "Pipeline ended successfully!", ) as loader: status = _interface.sensor_anomalies_detection( args.img_path, args.calib_value_x, args.calib_value_y, ) if status != 0: loader.stop(interrupt=True) sys.exit(status) if __name__ == "__main__": main()