summaryrefslogtreecommitdiff
path: root/src/teradata/__main__.py
diff options
context:
space:
mode:
authorMikka Petterson <m.petterson@student.maastrichtuniversity.nl>2026-10-14 07:45:20 +0200
committerMikka Petterson <m.petterson@student.maastrichtuniversity.nl>2026-10-14 07:45:20 +0200
commit0bcc5be35b6a99109bd04925c22890347c9d6e88 (patch)
treefdd88728ad1747268b0a02aba0de08a3af6a52b2 /src/teradata/__main__.py
Initial commitHEADmain
Diffstat (limited to 'src/teradata/__main__.py')
-rw-r--r--src/teradata/__main__.py100
1 files changed, 100 insertions, 0 deletions
diff --git a/src/teradata/__main__.py b/src/teradata/__main__.py
new file mode 100644
index 0000000..d439b35
--- /dev/null
+++ b/src/teradata/__main__.py
@@ -0,0 +1,100 @@
+from os import getenv
+
+from edgar import set_identity
+lazy from dotenv import load_dotenv
+lazy from loguru import logger
+
+from .picklers import register
+lazy from .isolated import isolated
+lazy from .plots import (
+ plot_all_tickers,
+ plot_assets_and_roa,
+ plot_earnings_reaction,
+ plot_eps,
+ plot_revenue_and_profitability,
+ plot_stock_price,
+ plot_tdc_vs_nasdaq,
+ plot_valuation_comparison,
+)
+lazy from .sec import get_financials, get_periodic_filing_dates
+lazy from .stock import Tickers, get_stock_data, get_valuation_snapshot
+lazy from .svg import split_all_svgs
+
+
+def main() -> None:
+ # Revenue/Income/Cloud ARR, Assets/ROA, EPS
+ logger.info("Plotting Revenue/Income/Cloud ARR, Assets/ROA and EPS...")
+ with isolated() as env:
+ env.financials = get_financials("TDC", start="2011-01-01")
+
+ plot_revenue_and_profitability(env.financials)
+ plot_assets_and_roa(env.financials)
+ plot_eps(env.financials)
+
+ # TDC vs ^IXIC
+ logger.info("Plotting TDC vs ^IXIC...")
+ with isolated() as env:
+ env.tickers = get_stock_data(
+ ["TDC", "^IXIC"],
+ start="2007-10-01",
+ )
+ env.tickers = Tickers(env.tickers["Close"].dropna())
+
+ plot_tdc_vs_nasdaq(env.tickers.cumulative_returns)
+
+ # All tickers
+ logger.info("Plotting all tickers...")
+ with isolated() as env:
+ env.tickers = get_stock_data(
+ ["TDC", "^IXIC", "^NDX", "IYW", "THNQ", "SNOW"],
+ start="2007-10-01", # 2023-01-01
+ )
+ env.tickers = Tickers(env.tickers["Close"].dropna())
+
+ # plot_tdc_vs_nasdaq(env.tickers.cumulative_returns)
+ plot_all_tickers(env.tickers.normalized)
+
+ # TDC Ticker since IPO
+ logger.info("Plotting TDC stock market price since IPO...")
+ with isolated() as env:
+ env.tickers = get_stock_data(["TDC"], start="2007-10-01").xs(
+ "TDC", level=1, axis=1
+ )
+
+ plot_stock_price(
+ env.tickers, ticker="TDC", sma_windows=(50, 200), show_open=False
+ )
+
+ # Market Reaction since SEC reform (2011)
+ logger.info("Plotting TDC market reaction since SEC reform...")
+ with isolated() as env:
+ env.tickers = get_stock_data(["TDC"], start="2011-01-01").xs(
+ "TDC", level=1, axis=1
+ )
+ env.filings = get_periodic_filing_dates("TDC", start="2011-01-01")
+
+ plot_earnings_reaction(
+ env.tickers, env.filings, ticker="TDC", reaction_window_days=3
+ )
+
+ logger.info("Plotting TDC vs. SNOW")
+ with isolated() as env:
+ env.tdc = get_valuation_snapshot("TDC")
+ env.snow = get_valuation_snapshot("SNOW")
+
+ plot_valuation_comparison(env.tdc, env.snow)
+
+ logger.info("Splitting all SVGs into a data and outline layer...")
+ split_all_svgs()
+
+
+if __name__ == "__main__":
+ load_dotenv()
+ register()
+
+ identity = getenv("SEC_EDGAR_IDENTITY")
+ if identity is None:
+ raise ValueError("Environment variable 'SEC_EDGAR_IDENTITY' is not set")
+ set_identity(identity)
+
+ main()