chore: scaffold python desktop app

This commit is contained in:
王鹏
2026-07-08 17:18:12 +08:00
parent f3b79cad9e
commit 2b5c9c950f
6 changed files with 101 additions and 0 deletions

View File

@@ -0,0 +1 @@
__version__ = "0.1.0"

29
src/grid_trading/app.py Normal file
View File

@@ -0,0 +1,29 @@
from __future__ import annotations
import argparse
import sys
def build_parser() -> argparse.ArgumentParser:
parser = argparse.ArgumentParser(
prog="grid-trading",
description="Local A-share and ETF grid trading manager.",
)
parser.add_argument(
"--db",
help="Path to the SQLite database. Defaults to data/grid_trading.db.",
)
return parser
def main(argv: list[str] | None = None) -> int:
parser = build_parser()
args = parser.parse_args(argv)
from grid_trading.ui.main_window import run_gui
return run_gui(db_path=args.db)
if __name__ == "__main__":
raise SystemExit(main(sys.argv[1:]))

View File

@@ -0,0 +1,20 @@
from __future__ import annotations
from dataclasses import dataclass
from decimal import Decimal
from pathlib import Path
PROJECT_ROOT = Path(__file__).resolve().parents[2]
DEFAULT_DB_PATH = PROJECT_ROOT / "data" / "grid_trading.db"
@dataclass(frozen=True)
class DefaultFeeConfig:
commission_rate: Decimal = Decimal("0.00025")
min_commission: Decimal = Decimal("5")
stamp_tax_rate: Decimal = Decimal("0.0005")
transfer_fee_rate: Decimal = Decimal("0.00001")
DEFAULT_FEE_CONFIG = DefaultFeeConfig()