import argparse import os import sys sys.path.append(os.path.join(os.path.dirname(__file__), "src")) from app_gradio import demo SPACE_ENV_VARS = ("SPACE_ID", "HF_SPACE_ID", "REPO_ID") def running_in_space() -> bool: return any(os.getenv(var) for var in SPACE_ENV_VARS) def main() -> None: parser = argparse.ArgumentParser(description="Launch the Plant Disease Gradio app.") parser.add_argument("--share", action="store_true", help="Create a public Gradio share URL.") parser.add_argument("--port", type=int, help="Port to bind the Gradio server to.") parser.add_argument("--host", help="Override the server host/IP address.") args = parser.parse_args() port = args.port or int(os.getenv("PORT", "7860")) default_host = "0.0.0.0" if running_in_space() else "127.0.0.1" host = args.host or os.getenv("GRADIO_SERVER_NAME") or default_host demo.launch(server_name=host, server_port=port, share=args.share) if __name__ == "__main__": main()