Fix build: Bundle schwab_scraper source and use local dependencies
All checks were successful
Build and Push Docker Image / build (push) Successful in 34s

This commit is contained in:
2026-04-24 01:50:20 +00:00
parent 02ac293692
commit 650ea2d087
43 changed files with 10900 additions and 41 deletions

View File

@@ -0,0 +1,66 @@
from dataclasses import dataclass
from typing import Optional, List
@dataclass
class DividendsData:
previous_payment: Optional[str] = None
previous_pay_date: Optional[str] = None
previous_ex_date: Optional[str] = None
frequency: Optional[str] = None
annual_dividend_rate: Optional[str] = None
annual_dividend_yield: Optional[str] = None
@dataclass
class MorningstarPdfData:
fair_value: Optional[str] = None
economic_moat: Optional[str] = None
capital_allocation: Optional[str] = None
rating: Optional[int] = None
one_star_price: Optional[str] = None
five_star_price: Optional[str] = None
assessment: Optional[str] = None
range_52_week: Optional[str] = None
dividend_yield: Optional[str] = None
investment_style: Optional[str] = None
report_url: Optional[str] = None
report_date: Optional[str] = None
@dataclass
class ScrapeResult:
ticker: str
company_name: Optional[str]
dividends: DividendsData
morningstar: MorningstarPdfData
source: str # "live" | "cache"
# -------------------- Transactions Feature --------------------
@dataclass
class AccountInfo:
account_type: str # e.g., "Joint", "IRA", "Individual"
account_ending: str # e.g., "604", "197", "873"
full_description: str # e.g., "Joint …604 (Account ending in 6 0 4)"
is_selected: bool = False
@dataclass
class TransactionRecord:
date: str
action: str
symbol: Optional[str]
description: str
quantity: Optional[str]
price: Optional[str]
fees_comm: Optional[str]
amount: Optional[str]
@dataclass
class TransactionData:
account_info: AccountInfo
transactions: List[TransactionRecord]
date_range: str
export_date: str
total_transactions: int
source: str # "live" | "cache"