Metadata-Version: 2.4
Name: finnet
Version: 0.1.0
Summary: Financial Social Network Analysis & Information Diffusion Platform - 100% FREE, No API Keys Required
Author-email: FinNet Contributors <contact@finnet.io>
License: MIT
Project-URL: Homepage, https://github.com/finnet/finnet
Project-URL: Documentation, https://finnet.readthedocs.io
Project-URL: Repository, https://github.com/finnet/finnet
Project-URL: Issues, https://github.com/finnet/finnet/issues
Keywords: finance,social-network-analysis,stock-market,sentiment-analysis,graph-neural-network,gcn,network-analysis,community-detection,cascade-models,visualization,yfinance,reddit,news
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Environment :: X11 Applications
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Financial and Insurance Industry
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Classifier: Topic :: Scientific/Engineering :: Visualization
Classifier: Topic :: Office/Business :: Financial :: Investment
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: yfinance>=0.2.36
Requires-Dist: requests>=2.31.0
Requires-Dist: beautifulsoup4>=4.12.0
Requires-Dist: lxml>=5.1.0
Requires-Dist: feedparser>=6.0.10
Requires-Dist: pandas>=2.0.0
Requires-Dist: numpy>=1.24.0
Requires-Dist: scipy>=1.10.0
Requires-Dist: python-dateutil>=2.8.2
Requires-Dist: networkx>=3.1
Requires-Dist: python-louvain>=0.16
Requires-Dist: vaderSentiment>=3.3.2
Requires-Dist: textblob>=0.17.1
Requires-Dist: torch>=2.0.0
Requires-Dist: gensim>=4.3.0
Requires-Dist: matplotlib>=3.7.0
Requires-Dist: seaborn>=0.12.0
Requires-Dist: plotly>=5.15.0
Requires-Dist: pyvis>=0.3.2
Requires-Dist: customtkinter>=5.2.0
Requires-Dist: pillow>=10.0.0
Requires-Dist: fpdf2>=2.7.0
Requires-Dist: openpyxl>=3.1.0
Requires-Dist: xlsxwriter>=3.1.0
Provides-Extra: finbert
Requires-Dist: transformers>=4.30.0; extra == "finbert"
Provides-Extra: dev
Requires-Dist: pytest>=7.4.0; extra == "dev"
Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
Requires-Dist: black>=23.0.0; extra == "dev"
Requires-Dist: isort>=5.12.0; extra == "dev"
Provides-Extra: all
Requires-Dist: finnet[dev,finbert]; extra == "all"
Dynamic: license-file

# FinNet - Financial Social Network Analysis

[![PyPI version](https://badge.fury.io/py/finnet.svg)](https://pypi.org/project/finnet/)
[![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

**A comprehensive Financial Social Network Analysis platform with a modern CustomTkinter GUI.**

## ✨ Features

- 📊 **100% Free Data Sources** - yFinance, Reddit, Google News, RSS feeds
- 🕸️ **Complete SNA Coverage** - All 6 units of Social Network Analysis curriculum
- 🧠 **GCN from Scratch** - Pure PyTorch implementation (no PyTorch Geometric)
- 🎨 **Modern GUI** - Beautiful dark theme with CustomTkinter
- 📈 **Real-time Analysis** - Live sentiment and network metrics

## 🚀 Installation

```bash
pip install finnet
```

## 📋 Quick Start

### Launch GUI
```bash
finnet
```

### CLI Analysis
```bash
finnet --cli --tickers AAPL,MSFT,GOOGL --period 6mo
```

### Python API
```python
from finnet.data_collection import StockDataCollector, RedditJSONScraper
from finnet.network_analysis import FinancialNetworkBuilder, CommunityDetector
from finnet.machine_learning import Node2VecEmbed, GCNLayer

# Collect data
collector = StockDataCollector()
stocks = collector.get_multiple_stocks(['AAPL', 'MSFT', 'GOOGL'])

# Build network
builder = FinancialNetworkBuilder()
G = builder.build_correlation_network(stocks, threshold=0.5)

# Detect communities
detector = CommunityDetector()
communities = detector.detect_louvain(G)

# Generate embeddings
n2v = Node2VecEmbed(dimensions=64)
n2v.fit(G)
embeddings, nodes = n2v.get_all_embeddings()
```

## 📚 Syllabus Coverage

| Unit | Topic | Implementation |
|------|-------|----------------|
| 1 | Network Metrics | `NetworkMetricsCalculator` - degree, centrality, clustering |
| 2 | Link Analysis | `LinkAnalyzer` - PageRank, HITS, link prediction |
| 3 | Community Detection | `CommunityDetector` - Louvain, Girvan-Newman, Spectral |
| 4 | Cascade Models | `CascadeModel` - IC, LT, SIR/SIS epidemics |
| 5 | Anomaly Detection | `AnomalyDetector` - outliers, bridges, temporal |
| 6 | Graph ML | `GCNLayer`, `Node2VecEmbed` - FROM SCRATCH |

## 🛠️ Project Structure

```
finnet/
├── data_collection/     # yFinance, Reddit, News, RSS
├── data_processing/     # Sentiment, cleaning, features
├── network_analysis/    # Units 1-5 algorithms
├── machine_learning/    # GCN, Node2Vec (from scratch)
├── visualization/       # Matplotlib, Plotly, PyVis
├── gui/                 # CustomTkinter 9-tab interface
│   └── tabs/           # Dashboard, Input, Network, etc.
└── reports/            # PDF, Excel export
```

## 📦 Dependencies

Core: `yfinance`, `networkx`, `pandas`, `numpy`, `torch`, `customtkinter`

Optional: `gensim`, `transformers`, `pyvis`, `plotly`, `fpdf2`

## 📄 License

MIT License - see [LICENSE](LICENSE)
