summaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
authorTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2026-04-02 15:54:55 +0900
committerTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2026-04-02 15:54:55 +0900
commitbf4afbc0a3cc4e847ef01840365fd6a6ae9c142f (patch)
treec8634b3b21534f550e2d255d98c4a068a1b567d0 /cli
parentec8b6fea5a4a710df4b2ae18f3f399d165c8ffd4 (diff)
style: auto-fix lint violations from enhanced ruff rules
Diffstat (limited to 'cli')
-rw-r--r--cli/src/trading_cli/commands/backtest.py37
-rw-r--r--cli/src/trading_cli/commands/data.py12
-rw-r--r--cli/src/trading_cli/commands/portfolio.py14
-rw-r--r--cli/src/trading_cli/commands/service.py1
-rw-r--r--cli/src/trading_cli/main.py7
-rw-r--r--cli/tests/test_cli_strategy.py3
6 files changed, 41 insertions, 33 deletions
diff --git a/cli/src/trading_cli/commands/backtest.py b/cli/src/trading_cli/commands/backtest.py
index ad21f8f..c17c61f 100644
--- a/cli/src/trading_cli/commands/backtest.py
+++ b/cli/src/trading_cli/commands/backtest.py
@@ -35,11 +35,12 @@ def backtest():
def run(strategy, symbol, timeframe, balance, output_format, file_path):
"""Run a backtest for a strategy."""
try:
- from strategy_engine.plugin_loader import load_strategies
from backtester.engine import BacktestEngine
- from backtester.reporter import format_report, export_csv, export_json
- from shared.db import Database
+ from backtester.reporter import export_csv, export_json, format_report
+ from strategy_engine.plugin_loader import load_strategies
+
from shared.config import Settings
+ from shared.db import Database
from shared.models import Candle
except ImportError as e:
click.echo(f"Error: Could not import required modules: {e}", err=True)
@@ -66,20 +67,19 @@ def run(strategy, symbol, timeframe, balance, output_format, file_path):
click.echo(f"Error: No candles found for {symbol} {timeframe}", err=True)
sys.exit(1)
- candles = []
- for row in reversed(candle_rows): # get_candles returns DESC, we need ASC
- candles.append(
- Candle(
- symbol=row["symbol"],
- timeframe=row["timeframe"],
- open_time=row["open_time"],
- open=row["open"],
- high=row["high"],
- low=row["low"],
- close=row["close"],
- volume=row["volume"],
- )
+ candles = [
+ Candle(
+ symbol=row["symbol"],
+ timeframe=row["timeframe"],
+ open_time=row["open_time"],
+ open=row["open"],
+ high=row["high"],
+ low=row["low"],
+ close=row["close"],
+ volume=row["volume"],
)
+ for row in reversed(candle_rows) # get_candles returns DESC, we need ASC
+ ]
engine = BacktestEngine(strat, Decimal(str(balance)))
result = engine.run(candles)
@@ -111,10 +111,11 @@ def run(strategy, symbol, timeframe, balance, output_format, file_path):
def walk_forward(strategy, symbol, timeframe, balance, windows):
"""Run walk-forward analysis to detect overfitting."""
try:
- from strategy_engine.plugin_loader import load_strategies
from backtester.walk_forward import WalkForwardEngine
- from shared.db import Database
+ from strategy_engine.plugin_loader import load_strategies
+
from shared.config import Settings
+ from shared.db import Database
from shared.models import Candle
except ImportError as e:
click.echo(f"Error: Could not import required modules: {e}", err=True)
diff --git a/cli/src/trading_cli/commands/data.py b/cli/src/trading_cli/commands/data.py
index 8797564..64639cf 100644
--- a/cli/src/trading_cli/commands/data.py
+++ b/cli/src/trading_cli/commands/data.py
@@ -1,5 +1,6 @@
import asyncio
import sys
+from datetime import UTC
from pathlib import Path
import click
@@ -39,14 +40,14 @@ def history(symbol, timeframe, since, limit):
"""Download historical stock market data for a symbol."""
try:
from shared.alpaca_client import AlpacaClient
- from shared.db import Database
from shared.config import Settings
+ from shared.db import Database
except ImportError as e:
click.echo(f"Error: Could not import required modules: {e}", err=True)
sys.exit(1)
async def _fetch():
- from datetime import datetime, timezone
+ from datetime import datetime
settings = Settings()
db = Database(settings.database_url.get_secret_value())
@@ -55,7 +56,7 @@ def history(symbol, timeframe, since, limit):
start = None
if since:
try:
- start = datetime.fromisoformat(since).replace(tzinfo=timezone.utc)
+ start = datetime.fromisoformat(since).replace(tzinfo=UTC)
except ValueError:
click.echo(
f"Error: Invalid date format '{since}'. Use ISO format (e.g. 2024-01-01).",
@@ -97,10 +98,11 @@ def history(symbol, timeframe, since, limit):
def list_():
"""List available data streams and symbols."""
try:
- from shared.db import Database
+ from sqlalchemy import func, select
+
from shared.config import Settings
+ from shared.db import Database
from shared.sa_models import CandleRow
- from sqlalchemy import select, func
except ImportError as e:
click.echo(f"Error: Could not import required modules: {e}", err=True)
sys.exit(1)
diff --git a/cli/src/trading_cli/commands/portfolio.py b/cli/src/trading_cli/commands/portfolio.py
index 4f49894..fd3ebd6 100644
--- a/cli/src/trading_cli/commands/portfolio.py
+++ b/cli/src/trading_cli/commands/portfolio.py
@@ -1,6 +1,6 @@
import asyncio
import sys
-from datetime import datetime, timedelta, timezone
+from datetime import UTC, datetime, timedelta
import click
from rich.console import Console
@@ -17,10 +17,11 @@ def portfolio():
def show():
"""Show the current portfolio holdings and balances."""
try:
- from shared.db import Database
+ from sqlalchemy import select
+
from shared.config import Settings
+ from shared.db import Database
from shared.sa_models import PositionRow
- from sqlalchemy import select
except ImportError as e:
click.echo(f"Error: Could not import required modules: {e}", err=True)
sys.exit(1)
@@ -71,10 +72,11 @@ def show():
def history(days):
"""Show PnL history for the portfolio."""
try:
- from shared.db import Database
+ from sqlalchemy import select
+
from shared.config import Settings
+ from shared.db import Database
from shared.sa_models import PortfolioSnapshotRow
- from sqlalchemy import select
except ImportError as e:
click.echo(f"Error: Could not import required modules: {e}", err=True)
sys.exit(1)
@@ -84,7 +86,7 @@ def history(days):
db = Database(settings.database_url.get_secret_value())
await db.connect()
try:
- since = datetime.now(timezone.utc) - timedelta(days=days)
+ since = datetime.now(UTC) - timedelta(days=days)
stmt = (
select(PortfolioSnapshotRow)
.where(PortfolioSnapshotRow.snapshot_at >= since)
diff --git a/cli/src/trading_cli/commands/service.py b/cli/src/trading_cli/commands/service.py
index d01eaae..6d02f14 100644
--- a/cli/src/trading_cli/commands/service.py
+++ b/cli/src/trading_cli/commands/service.py
@@ -1,4 +1,5 @@
import subprocess
+
import click
diff --git a/cli/src/trading_cli/main.py b/cli/src/trading_cli/main.py
index 1129bdd..0ed2307 100644
--- a/cli/src/trading_cli/main.py
+++ b/cli/src/trading_cli/main.py
@@ -1,10 +1,11 @@
import click
-from trading_cli.commands.data import data
-from trading_cli.commands.trade import trade
+
from trading_cli.commands.backtest import backtest
+from trading_cli.commands.data import data
from trading_cli.commands.portfolio import portfolio
-from trading_cli.commands.strategy import strategy
from trading_cli.commands.service import service
+from trading_cli.commands.strategy import strategy
+from trading_cli.commands.trade import trade
@click.group()
diff --git a/cli/tests/test_cli_strategy.py b/cli/tests/test_cli_strategy.py
index cf3057b..75ba4df 100644
--- a/cli/tests/test_cli_strategy.py
+++ b/cli/tests/test_cli_strategy.py
@@ -1,6 +1,7 @@
"""Tests for strategy CLI commands."""
-from unittest.mock import patch, MagicMock
+from unittest.mock import MagicMock, patch
+
from click.testing import CliRunner
from trading_cli.main import cli