From aff7350eecc2da467004e5abccc9a596751d34e2 Mon Sep 17 00:00:00 2001 From: Nate Barbettini Date: Fri, 1 Nov 2024 13:15:52 -0700 Subject: [PATCH] fix: readline error on Windows (#139) With this change, `pyreadline3` is automatically installed on OS `win32` only. Linux/Mac doesn't need it. --- arcade/arcade/cli/main.py | 9 ++++++++- arcade/pyproject.toml | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/arcade/arcade/cli/main.py b/arcade/arcade/cli/main.py index 0de5b300..5a7e76b8 100644 --- a/arcade/arcade/cli/main.py +++ b/arcade/arcade/cli/main.py @@ -1,6 +1,5 @@ import asyncio import os -import readline import threading import uuid import webbrowser @@ -234,6 +233,14 @@ def chat( """ Chat with a language model. """ + try: + import readline + except ImportError: + console.print( + "Readline is not available on this platform. Command history will be limited.", + style="dim", + ) + config = validate_and_get_config() base_url = compute_base_url(force_tls, force_no_tls, host, port) diff --git a/arcade/pyproject.toml b/arcade/pyproject.toml index f38630e2..72b4d3e5 100644 --- a/arcade/pyproject.toml +++ b/arcade/pyproject.toml @@ -37,6 +37,7 @@ scikit-learn = {version = "^1.5.0", optional = true} pytz = {version = "^2024.1", optional = true} python-dateutil = {version = "^2.8.2", optional = true} +pyreadline3 = {version = "^3.5.4", platform = "win32"} [tool.poetry.extras] fastapi = ["fastapi", "uvicorn", "opentelemetry-instrumentation-fastapi", "opentelemetry-exporter-otlp-proto-http", "opentelemetry-exporter-otlp-proto-common"] evals = ["scipy", "numpy", "scikit-learn", "pytz", "python-dateutil"]