From f52a33e73e125c723f7d31ea730b8424233d6337 Mon Sep 17 00:00:00 2001 From: Richard Abrich Date: Wed, 19 Feb 2025 16:25:50 -0500 Subject: [PATCH] replace argparse with fire --- deploy/deploy/models/omniparser/client.py | 45 +++++++++-------------- 1 file changed, 18 insertions(+), 27 deletions(-) diff --git a/deploy/deploy/models/omniparser/client.py b/deploy/deploy/models/omniparser/client.py index ef639d168..b765874da 100644 --- a/deploy/deploy/models/omniparser/client.py +++ b/deploy/deploy/models/omniparser/client.py @@ -1,33 +1,13 @@ """Client module for interacting with the OmniParser server.""" -import argparse import base64 +import fire import requests from loguru import logger from PIL import Image, ImageDraw -def parse_arguments() -> argparse.Namespace: - """Parse command line arguments. - - Returns: - argparse.Namespace: Parsed command line arguments - """ - parser = argparse.ArgumentParser(description="Omniparser Client") - parser.add_argument( - "--image_path", type=str, required=True, help="Path to the image" - ) - parser.add_argument( - "--server_url", - type=str, - required=True, - help="URL of the Omniparser server (e.g., http://localhost:8000)", - ) - args = parser.parse_args() - return args - - def image_to_base64(image_path: str) -> str: """Convert an image file to base64 string. @@ -88,15 +68,21 @@ def plot_results( image.show() -def main() -> None: - """Main entry point for the client application.""" - args = parse_arguments() +def parse_image( + image_path: str, + server_url: str, +) -> None: + """Parse an image using the OmniParser server. + Args: + image_path: Path to the image file + server_url: URL of the OmniParser server + """ # Remove trailing slash from server_url if present - server_url = args.server_url.rstrip("/") + server_url = server_url.rstrip("/") # Convert image to base64 - base64_image = image_to_base64(args.image_path) + base64_image = image_to_base64(image_path) # Prepare request url = f"{server_url}/parse/" @@ -119,7 +105,7 @@ def main() -> None: parsed_content_list = result["parsed_content_list"] # Plot results - plot_results(args.image_path, som_image_base64, parsed_content_list) + plot_results(image_path, som_image_base64, parsed_content_list) # Print latency logger.info(f"API Latency: {result['latency']:.2f} seconds") @@ -133,5 +119,10 @@ def main() -> None: logger.error(f"Error: {e}") +def main(): + """Main entry point for the client application.""" + fire.Fire(parse_image) + + if __name__ == "__main__": main()