import argparse import asyncio import base64 from typing import Optional from file_tools.tools import handle_call_tool async def _run( url: Optional[str], file_path: Optional[str], text: Optional[str], name: str, download_url: Optional[str], download_path: Optional[str] ) -> None: if url: result = await handle_call_tool("url_to_data_uri", {"url": url}) print("url_to_data_uri:", result[0].text[:80], "len=", len(result[0].text)) if file_path: result = await handle_call_tool("file_path_to_data_uri", {"file_path": file_path}) print("file_path_to_data_uri:", result[0].text[:80], "len=", len(result[0].text)) if download_url: payload = {"url": download_url} if download_path: payload["file_path"] = download_path result = await handle_call_tool("url_to_temp_file", payload) print("url_to_temp_file:", result[0].text) if text is not None: payload = { "file": { "name": name, "content_base64": base64.b64encode(text.encode("utf-8")).decode("ascii") } } result = await handle_call_tool("file_to_json", payload) print("file_to_json:", result[0].text) result = await handle_call_tool("file_to_data_uri", payload) print("file_to_data_uri:", result[0].text[:80], "len=", len(result[0].text)) def main() -> None: parser = argparse.ArgumentParser() parser.add_argument("--url") parser.add_argument("--file-path") parser.add_argument("--download-url") parser.add_argument("--download-path") parser.add_argument("--text") parser.add_argument("--name", default="sample.txt") args = parser.parse_args() asyncio.run( _run( args.url, args.file_path, args.text, args.name, args.download_url, args.download_path ) ) if __name__ == "__main__": main()