finbase 0.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- finbase-0.1.1/CHANGELOG.md +110 -0
- finbase-0.1.1/CLAUDE.md +631 -0
- finbase-0.1.1/LICENSE +21 -0
- finbase-0.1.1/MANIFEST.in +31 -0
- finbase-0.1.1/PKG-INFO +344 -0
- finbase-0.1.1/README.md +303 -0
- finbase-0.1.1/data/index_configs/dax.json +30 -0
- finbase-0.1.1/data/index_configs/dow30.json +31 -0
- finbase-0.1.1/data/index_configs/ftse100.json +18 -0
- finbase-0.1.1/data/index_configs/ndx.json +32 -0
- finbase-0.1.1/data/index_configs/sp500.json +36 -0
- finbase-0.1.1/data/risk_factor_groups/equities/indices.json +81 -0
- finbase-0.1.1/data/risk_factor_groups/equities/sp500_top100.json +31 -0
- finbase-0.1.1/environment.yml +19 -0
- finbase-0.1.1/pyproject.toml +82 -0
- finbase-0.1.1/requirements.txt +8 -0
- finbase-0.1.1/setup.cfg +4 -0
- finbase-0.1.1/setup.py +63 -0
- finbase-0.1.1/src/finbase/__init__.py +15 -0
- finbase-0.1.1/src/finbase/client/__init__.py +10 -0
- finbase-0.1.1/src/finbase/client/client.py +627 -0
- finbase-0.1.1/src/finbase/config/__init__.py +5 -0
- finbase-0.1.1/src/finbase/config/settings.py +214 -0
- finbase-0.1.1/src/finbase/config/user_config.py +207 -0
- finbase-0.1.1/src/finbase/dashboard/__init__.py +5 -0
- finbase-0.1.1/src/finbase/dashboard/data_service.py +321 -0
- finbase-0.1.1/src/finbase/data/__init__.py +0 -0
- finbase-0.1.1/src/finbase/data/database/__init__.py +5 -0
- finbase-0.1.1/src/finbase/data/database/index_db.py +470 -0
- finbase-0.1.1/src/finbase/data/database/schema.py +126 -0
- finbase-0.1.1/src/finbase/data/database/timeseries_db.py +526 -0
- finbase-0.1.1/src/finbase/data/index_updater.py +234 -0
- finbase-0.1.1/src/finbase/data/loaders/__init__.py +5 -0
- finbase-0.1.1/src/finbase/data/loaders/equity_loader.py +360 -0
- finbase-0.1.1/src/finbase/data/parsers/__init__.py +11 -0
- finbase-0.1.1/src/finbase/data/parsers/sp500_wikipedia.py +364 -0
- finbase-0.1.1/src/finbase/data/parsers/wikipedia_index_parser.py +321 -0
- finbase-0.1.1/src/finbase/data/risk_factor_groups/__init__.py +6 -0
- finbase-0.1.1/src/finbase/data/risk_factor_groups/base_group.py +104 -0
- finbase-0.1.1/src/finbase/data/risk_factor_groups/equity_group.py +208 -0
- finbase-0.1.1/src/finbase/data/validators/__init__.py +5 -0
- finbase-0.1.1/src/finbase/data/validators/timeseries_validator.py +206 -0
- finbase-0.1.1/src/finbase/utils/__init__.py +1 -0
- finbase-0.1.1/src/finbase/utils/logging.py +139 -0
- finbase-0.1.1/src/finbase.egg-info/PKG-INFO +344 -0
- finbase-0.1.1/src/finbase.egg-info/SOURCES.txt +51 -0
- finbase-0.1.1/src/finbase.egg-info/dependency_links.txt +1 -0
- finbase-0.1.1/src/finbase.egg-info/requires.txt +16 -0
- finbase-0.1.1/src/finbase.egg-info/top_level.txt +2 -0
- finbase-0.1.1/tests/test_client.py +711 -0
- finbase-0.1.1/tests/test_sp500_parser.py +341 -0
- finbase-0.1.1/tests/test_timeseries_db.py +390 -0
- finbase-0.1.1/tests/test_user_config.py +373 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
## [0.1.1] - 2026-04-10
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
- **Project renamed from findata to finbase** for PyPI availability
|
|
9
|
+
- Package: `findata` → `finbase`
|
|
10
|
+
- Config: `~/.findatarc` → `~/.finbaserc`, `~/.findata/` → `~/.finbase/`
|
|
11
|
+
- Env vars: `FINDATA_*` → `FINBASE_*`
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
- **DataClient.get_data() N+1 query**: queries all symbols at once per column instead of one DB call per symbol×column combination
|
|
15
|
+
- **IndexDB connection bypass**: now uses the injected TimeSeriesDB connection instead of opening independent sqlite3 connections per method call
|
|
16
|
+
- **Silent data loss in DataClient.get_data()**: unexpected errors now propagate to the caller instead of being silently swallowed; only DatabaseError (no data found) is handled gracefully
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## [0.1.0] - 2025-12-09
|
|
21
|
+
|
|
22
|
+
### Added
|
|
23
|
+
- **Core Database System**
|
|
24
|
+
- SQLite-based time series database with schema for risk factors and OHLCV data
|
|
25
|
+
- Support for multiple asset classes (equity, fx, rates, commodities)
|
|
26
|
+
- User space configuration (~/.finbase/timeseries.db, ~/.finbaserc)
|
|
27
|
+
- Database audit trail with data_updates table
|
|
28
|
+
|
|
29
|
+
- **Index Management**
|
|
30
|
+
- Wikipedia-based index constituent extraction
|
|
31
|
+
- Support for 5 major indices: SP500 (503), DOW30 (30), NDX (101), FTSE100 (100), DAX (41)
|
|
32
|
+
- Temporal tracking of index composition (slowly changing dimension pattern)
|
|
33
|
+
- Automatic change detection and logging
|
|
34
|
+
- Config-driven parser for easy addition of new indices
|
|
35
|
+
|
|
36
|
+
- **Data Loading**
|
|
37
|
+
- YFinance integration with rate limiting (5s/symbol, 30s/batch)
|
|
38
|
+
- Smart loading: automatic skip of existing data
|
|
39
|
+
- Bulk loading by index constituents
|
|
40
|
+
- Incremental and resumable loading
|
|
41
|
+
- Support for US, UK, and German markets
|
|
42
|
+
|
|
43
|
+
- **DataClient API**
|
|
44
|
+
- Clean API for external projects (e.g., tsgen)
|
|
45
|
+
- Support for long and wide format data
|
|
46
|
+
- Convenience methods: get_closes(), get_latest(), get_all()
|
|
47
|
+
- Discovery methods: list_symbols(), search_symbols(), get_symbol_info()
|
|
48
|
+
- Bulk retrieval by asset class, sector, or index
|
|
49
|
+
- Index constituent queries with historical point-in-time support
|
|
50
|
+
|
|
51
|
+
- **Risk Factor Groups**
|
|
52
|
+
- JSON-based group definitions
|
|
53
|
+
- Support for equities with sector filtering
|
|
54
|
+
- Market cap sorting and subsetting
|
|
55
|
+
- Built-in groups: major indices, SP500 top companies
|
|
56
|
+
|
|
57
|
+
- **Dashboard** (Optional)
|
|
58
|
+
- Streamlit-based web dashboard for data exploration
|
|
59
|
+
- Interactive charts with Plotly
|
|
60
|
+
- Database statistics and symbol search
|
|
61
|
+
- Multi-symbol comparison
|
|
62
|
+
|
|
63
|
+
- **Documentation**
|
|
64
|
+
- Quick start guides for common workflows
|
|
65
|
+
- API examples and usage patterns
|
|
66
|
+
|
|
67
|
+
### Features
|
|
68
|
+
- **Configuration Management**: User-space configuration with ~/.finbaserc
|
|
69
|
+
- **Multi-Source Support**: Track data provenance with data_source field
|
|
70
|
+
- **Validation**: Input validation and data quality checks
|
|
71
|
+
- **Logging**: Comprehensive logging with structured output
|
|
72
|
+
- **Testing**: Unit tests for core functionality
|
|
73
|
+
- **Error Handling**: Graceful error handling with retries and reporting
|
|
74
|
+
|
|
75
|
+
### Technical Details
|
|
76
|
+
- Python 3.12 required
|
|
77
|
+
- SQLite for data storage (<1M records)
|
|
78
|
+
- Pandas for data manipulation
|
|
79
|
+
- YFinance for market data
|
|
80
|
+
- Conda and pip installation support
|
|
81
|
+
|
|
82
|
+
### Breaking Changes
|
|
83
|
+
None (initial release)
|
|
84
|
+
|
|
85
|
+
### Known Limitations
|
|
86
|
+
- YFinance rate limits require conservative loading (10-100 symbols recommended per session)
|
|
87
|
+
- SQLite performance degrades >1M records (future: migrate to DuckDB)
|
|
88
|
+
- Currently supports daily frequency only
|
|
89
|
+
- Index historical changes not fully tracked yet (planned for future release)
|
|
90
|
+
|
|
91
|
+
### Dependencies
|
|
92
|
+
- Core: yfinance, pandas, numpy, lxml, beautifulsoup4, requests, pyyaml
|
|
93
|
+
- Development: pytest, pytest-cov
|
|
94
|
+
- Dashboard: streamlit, plotly
|
|
95
|
+
|
|
96
|
+
### Installation
|
|
97
|
+
```bash
|
|
98
|
+
# From source
|
|
99
|
+
git clone https://github.com/yourusername/finbase.git
|
|
100
|
+
cd finbase
|
|
101
|
+
pip install -e .
|
|
102
|
+
|
|
103
|
+
# With conda
|
|
104
|
+
conda env create -f environment.yml
|
|
105
|
+
conda activate finbase
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
[0.1.0]: https://github.com/yourusername/finbase/releases/tag/v0.1.0
|