summaryrefslogtreecommitdiff
path: root/README.md
blob: 4f077787afea036992773edf980ff48ee8cc054f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# Teradata Financial & Stock Analysis

Python pipeline for extracting, analyzing, and visualizing financial and market metrics
for [Teradata](https://www.teradata.com). Built as supporting material for an academic presentation at the Maastricht
University School of Business and Economics.

Data is fetched directly via [SEC EDGAR](https://www.sec.gov/edgar/search/)
and [Yahoo Finance](https://finance.yahoo.com), with interactive and static charts generated via Plotly.

---

## Requirements

- **Runtime:** [Python >= 3.15](<https://www.python.org/downloads/release/python-3150/>)
- **Project Manager:** [`uv`](https://github.com/astral-sh/uv)
- **SEC Identity:** `SEC_EDGAR_IDENTITY` must be set in your environment or declared in a `.env` file to comply with SEC
  fair access policies.

## Running the Project

1. **Configure Environment Variables**
   Create a `.env` file in the root directory (or export the variable directly):

   ```bash
   echo 'SEC_EDGAR_IDENTITY="Your Full Name user@example.com"' > .env
   ```

2. **Sync Dependencies**
   To set up the virtual environment with the pinned Python 3.15 runtime:

   ```bash
   uv sync
   ```

3. **Execute**
   Run the main script or entrypoint directly through `uv`:

   ```bash
   uv run start
   ```

## Dependencies & Licenses

| Package                                                          | Purpose / Description                    | License              |
|------------------------------------------------------------------|------------------------------------------|----------------------|
| [attrs](https://github.com/python-attrs/attrs)                   | Classes without boilerplate              | MIT                  |
| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/) | HTML/XML parsing helper                  | MIT                  |
| [blake3](https://github.com/oconnor663/blake3-py)                | Fast cryptographic hashing               | CC0 1.0 & Apache-2.0 |
| [dill](https://github.com/uqfoundation/dill)                     | Extended serialization                   | BSD-3-Clause         |
| [edgartools](https://github.com/dgunning/edgartools)             | SEC EDGAR client interface               | MIT                  |
| [kaleido](https://github.com/plotly/Kaleido)                     | Static export engine for Plotly          | MIT                  |
| [loguru](https://github.com/delgan/loguru)                       | Structured logging                       | MIT                  |
| [lxml](https://lxml.de)                                          | XML/HTML processing backend              | BSD-3-Clause         |
| [numpy](https://github.com/numpy/numpy)                          | Vectorized numerical operations          | BSD-3-Clause         |
| [pandas](https://github.com/pandas-dev/pandas)                   | Tabular data structures and manipulation | BSD-3-Clause         |
| [plotly](https://github.com/plotly/plotly.py)                    | Interactive graphing and charting        | MIT                  |
| [python-dotenv](https://github.com/theskumar/python-dotenv)      | Environment variable management          | BSD-3-Clause         |
| [types-lxml](https://github.com/abelcheung/types-lxml)           | Type hints for lxml                      | Apache-2.0           |
| [yfinance](https://github.com/ranaroussi/yfinance)               | Market and historical price feeds        | Apache-2.0           |