mirror of
https://github.com/TauricResearch/TradingAgents.git
synced 2026-06-17 05:16:14 +03:00
fix(cli): preserve exchange suffixes in ticker prompt
The typer.prompt-based input could lose .SH/.SZ/.SS/.HK suffixes on some shells, so exchange-qualified tickers like 000404.SH arrived truncated to 000404 and failed downstream lookups. Switch to questionary.text which reads the raw line; keep SPY-on-empty behavior and validate the allowed character set (alnum, ._-^) up to 32 chars. #770
This commit is contained in:
23
cli/main.py
23
cli/main.py
@@ -1,6 +1,7 @@
|
|||||||
from typing import Optional
|
from typing import Optional
|
||||||
import datetime
|
import datetime
|
||||||
import typer
|
import typer
|
||||||
|
import questionary
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
from rich.console import Console
|
from rich.console import Console
|
||||||
@@ -615,8 +616,26 @@ def get_user_selections():
|
|||||||
|
|
||||||
|
|
||||||
def get_ticker():
|
def get_ticker():
|
||||||
"""Get ticker symbol from user input."""
|
"""Get ticker symbol from user input, preserving exchange suffixes."""
|
||||||
return typer.prompt("", default="SPY")
|
# typer.prompt strips trailing dot-suffixes on some shells (e.g. 000404.SH
|
||||||
|
# collapses to 000404). questionary.text reads the raw line.
|
||||||
|
ticker = questionary.text(
|
||||||
|
"",
|
||||||
|
validate=lambda value: (
|
||||||
|
not value.strip()
|
||||||
|
or (
|
||||||
|
all(ch.isalnum() or ch in "._-^" for ch in value.strip())
|
||||||
|
and len(value.strip()) <= 32
|
||||||
|
)
|
||||||
|
)
|
||||||
|
or "Please enter a valid ticker symbol, e.g. AAPL, 000404.SZ, 0700.HK.",
|
||||||
|
).ask()
|
||||||
|
|
||||||
|
if ticker is None:
|
||||||
|
console.print("\n[red]No ticker symbol provided. Exiting...[/red]")
|
||||||
|
raise typer.Exit(1)
|
||||||
|
|
||||||
|
return (ticker.strip() or "SPY").upper()
|
||||||
|
|
||||||
|
|
||||||
def get_analysis_date():
|
def get_analysis_date():
|
||||||
|
|||||||
Reference in New Issue
Block a user