generated from dopt-python/py311
59 lines
1.4 KiB
Python
59 lines
1.4 KiB
Python
import argparse
|
|
import dataclasses as dc
|
|
import sys
|
|
from typing import cast
|
|
from unittest.mock import patch
|
|
|
|
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
|
|
|
|
|
|
@patch("dopt_sensor_anomalies._find_paths.STOP_FOLDER_NAME", "src")
|
|
@patch("dopt_sensor_anomalies._find_paths.MODEL_FOLDER_NAME", "tests/_models")
|
|
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()
|