financetoolkit 2.3.3__tar.gz → 2.3.4__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.
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/PKG-INFO +5 -4
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/README.md +4 -3
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/cache/cache_controller.py +12 -4
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/cache/frame_model.py +12 -2
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/cache/policy_model.py +18 -2
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/discovery/discovery_controller.py +318 -54
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/discovery/discovery_model.py +53 -18
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/econometrics/data_model.py +16 -1
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/econometrics/diagnostics_model.py +338 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/econometrics/econometrics_controller.py +912 -1
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/econometrics/unitroot_model.py +4 -4
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/economics/bis_model.py +7 -0
- financetoolkit-2.3.4/financetoolkit/economics/bls_model.py +232 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/economics/boe_model.py +20 -0
- financetoolkit-2.3.4/financetoolkit/economics/boj_model.py +206 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/economics/dol_model.py +39 -13
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/economics/economics_controller.py +2942 -434
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/economics/eurostat_model.py +82 -8
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/economics/fmp_model.py +205 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/economics/fred_model.py +94 -86
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/economics/gmdb_model.py +153 -15
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/economics/helpers.py +290 -19
- financetoolkit-2.3.4/financetoolkit/economics/imf_model.py +449 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/economics/ngfs_model.py +2 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/economics/oecd_model.py +3 -49
- financetoolkit-2.3.4/financetoolkit/economics/portwatch_model.py +189 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/economics/sbj_model.py +2 -2
- financetoolkit-2.3.4/financetoolkit/economics/world_bank_model.py +96 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/economics/yfinance_model.py +2 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/etf/etf_controller.py +91 -16
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/fixedincome/bond_data_model.py +53 -1
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/fixedincome/derivative_model.py +4 -2
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/fixedincome/esma_model.py +2 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/fixedincome/fixedincome_controller.py +867 -65
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/fixedincome/fmp_model.py +3 -2
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/fixedincome/fred_model.py +45 -0
- financetoolkit-2.3.4/financetoolkit/fixedincome/loan_model.py +153 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/fixedincome/riksbank_model.py +3 -3
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/fixedincome/short_rate_model.py +2 -2
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/fixedincome/treasurydirect_model.py +2 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/fmp_model.py +242 -20
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/helpers.py +212 -1
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/historical_model.py +12 -12
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/mcp_server/analytics_model.py +2 -2
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/mcp_server/config.yaml +66 -24
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/mcp_server/diagnostics_model.py +2 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/mcp_server/formatting_model.py +186 -4
- financetoolkit-2.3.4/financetoolkit/mcp_server/mcpb/manifest.json +190 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/mcp_server/mcpb/pyproject.toml +2 -2
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/mcp_server/provider_model.py +235 -108
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/mcp_server/registry_controller.py +299 -23
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/mcp_server/tools_model.py +42 -2
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/models/altman_model.py +9 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/models/credit_model.py +11 -3
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/models/growth_model.py +8 -3
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/models/helpers.py +3 -1
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/models/models_controller.py +421 -259
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/models/quality_model.py +6 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/models/wacc_model.py +27 -10
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/normalization_model.py +17 -11
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/options/helpers.py +16 -7
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/options/options_controller.py +234 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/options/options_model.py +4 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/options/svi_model.py +1 -1
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/performance/performance_controller.py +333 -62
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/performance/performance_model.py +82 -22
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/portfolio/backtest_model.py +51 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/portfolio/construction_controller.py +163 -11
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/portfolio/helpers.py +2 -2
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/portfolio/optimization_model.py +2 -3
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/portfolio/portfolio_controller.py +59 -15
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/portfolio/portfolio_model.py +7 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/ratios/efficiency_model.py +29 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/ratios/ratios_controller.py +1063 -58
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/ratios/valuation_model.py +64 -3
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/risk/copula_model.py +4 -3
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/risk/risk_controller.py +245 -6
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/risk/risk_model.py +3 -4
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/technicals/technicals_controller.py +304 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/toolkit_controller.py +500 -250
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/utilities/dataframe_model.py +75 -4
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/utilities/logger_model.py +24 -6
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/utilities/requests_model.py +15 -8
- financetoolkit-2.3.4/financetoolkit/utilities/sources_model.py +358 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/utilities/statistics_model.py +53 -5
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/yfinance_model.py +47 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/pyproject.toml +5 -4
- financetoolkit-2.3.3/financetoolkit/economics/bls_model.py +0 -142
- financetoolkit-2.3.3/financetoolkit/economics/boj_model.py +0 -111
- financetoolkit-2.3.3/financetoolkit/economics/imf_model.py +0 -212
- financetoolkit-2.3.3/financetoolkit/mcp_server/mcpb/manifest.json +0 -190
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/.gitignore +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/LICENSE.txt +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/__init__.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/cache/__init__.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/cache/coverage_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/cache/request_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/cache/serialization_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/cache/sqlite_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/cache/ticker_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/currencies_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/discovery/__init__.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/earnings_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/econometrics/__init__.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/econometrics/causal_inference_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/econometrics/causality_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/econometrics/cointegration_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/econometrics/event_study_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/econometrics/fama_macbeth_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/econometrics/forecast_evaluation_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/econometrics/hypothesis_testing_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/econometrics/pairs_trading_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/econometrics/panel_data_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/econometrics/regime_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/econometrics/regression_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/econometrics/specification_tests_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/econometrics/state_space_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/econometrics/time_series_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/economics/__init__.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/economics/bea_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/economics/cboe_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/economics/census_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/economics/dnb_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/economics/ecb_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/economics/eex_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/economics/esrb_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/economics/frb_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/economics/freddie_mac_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/economics/futures_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/economics/ibge_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/economics/macrohistory_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/economics/mof_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/economics/nber_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/economics/nyfed_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/economics/ons_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/economics/shiller_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/economics/stoxx_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/economics/treasury_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/etf/__init__.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/etf/etf_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/finra_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/fixedincome/__init__.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/fixedincome/boc_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/fixedincome/bond_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/fixedincome/bundesbank_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/fixedincome/curve_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/fixedincome/ecb_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/fixedincome/eiopa_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/fixedincome/euribor_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/fixedincome/fed_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/fixedincome/fiscaldata_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/fixedincome/helpers.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/fixedincome/hqm_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/fixedincome/norgesbank_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/fixedincome/rba_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/fixedincome/yieldcurve_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/fundamentals_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/mcp_server/__init__.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/mcp_server/__main__.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/mcp_server/auth_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/mcp_server/coercion_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/mcp_server/inspection_controller.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/mcp_server/mcp_controller.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/mcp_server/mcpb/.mcpbignore +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/mcp_server/mcpb/LICENSE +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/mcp_server/mcpb/README.md +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/mcp_server/mcpb/finance_toolkit_icon.png +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/mcp_server/series_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/mcp_server/setup_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/mcp_server/static/apple-touch-icon.png +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/mcp_server/static/favicon-32.png +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/mcp_server/static/favicon.ico +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/mcp_server/stats_page_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/models/__init__.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/models/beneish_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/models/chs_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/models/damodaran_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/models/dupont_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/models/enterprise_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/models/eva_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/models/fulmer_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/models/grover_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/models/intrinsic_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/models/ohlson_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/models/peers_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/models/piotroski_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/models/springate_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/models/taffler_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/models/zmijewski_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/normalization/balance.csv +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/normalization/balance_yf.csv +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/normalization/cash.csv +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/normalization/cash_yf.csv +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/normalization/income.csv +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/normalization/income_yf.csv +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/normalization/statistics.csv +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/normalization/statistics_yf.csv +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/options/__init__.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/options/binomial_trees_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/options/black_scholes_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/options/exotics_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/options/greeks_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/options/market_metrics_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/options/risk_neutral_density_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/performance/__init__.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/performance/helpers.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/portfolio/__init__.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/portfolio/attribution_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/portfolio/config.yaml +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/portfolio/definition_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/portfolio/example_datasets/example_portfolio.csv +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/portfolio/example_datasets/example_portfolio.xlsx +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/portfolio/overview_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/portfolio/presets/all_weather.yaml +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/portfolio/presets/balanced_60_40.yaml +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/portfolio/presets/barbell.yaml +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/portfolio/presets/bogleheads_three_fund.yaml +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/portfolio/presets/buffett_90_10.yaml +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/portfolio/presets/conservative_income.yaml +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/portfolio/presets/global_60_40.yaml +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/portfolio/presets/global_equity_growth.yaml +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/portfolio/presets/golden_butterfly.yaml +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/portfolio/presets/permanent_portfolio.yaml +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/portfolio/presets/small_cap_value_tilt.yaml +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/portfolio/presets/target_date_glidepath.yaml +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/portfolio/presets/us_equity_sectors.yaml +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/py.typed +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/ratios/__init__.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/ratios/helpers.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/ratios/liquidity_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/ratios/profitability_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/ratios/solvency_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/risk/__init__.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/risk/backtesting_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/risk/covar_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/risk/cvar_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/risk/evar_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/risk/garch_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/risk/helpers.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/risk/market_liquidity_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/risk/realized_volatility_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/risk/var_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/technicals/__init__.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/technicals/breadth_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/technicals/momentum_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/technicals/overlap_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/technicals/pattern_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/technicals/seasonality_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/technicals/volatility_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/utilities/error_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/utilities/excel_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/utilities/factor_model.py +0 -0
- {financetoolkit-2.3.3 → financetoolkit-2.3.4}/financetoolkit/utilities/validation_model.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: financetoolkit
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.4
|
|
4
4
|
Summary: Transparent and Efficient Financial Analysis
|
|
5
5
|
Project-URL: Homepage, https://www.jeroenbouma.com/projects/financetoolkit
|
|
6
6
|
Project-URL: Documentation, https://www.jeroenbouma.com/projects/financetoolkit/docs
|
|
@@ -585,7 +585,7 @@ https://github.com/user-attachments/assets/96ad5288-d83d-4497-a345-1841c48c29d5
|
|
|
585
585
|
|
|
586
586
|
### Remote server
|
|
587
587
|
|
|
588
|
-
Connect directly to the hosted server at `https://financetoolkit.jeroenbouma.com/mcp`. Nothing needs to be installed locally. On first connection your client opens an OAuth consent page asking for your FMP API key; enter it once and the server handles authentication from there.
|
|
588
|
+
Connect directly to the hosted server at `https://financetoolkit.jeroenbouma.com/mcp`. Nothing needs to be installed locally. On first connection your client opens an OAuth consent page asking for your FMP API key (and, optionally, a FRED API key for the corporate bond series); enter it once and the server handles authentication from there.
|
|
589
589
|
|
|
590
590
|
| Client | Steps |
|
|
591
591
|
|:---|:---|
|
|
@@ -593,8 +593,8 @@ Connect directly to the hosted server at `https://financetoolkit.jeroenbouma.com
|
|
|
593
593
|
| **Claude.ai** | Customize → Connectors → Add custom connector → paste the URL |
|
|
594
594
|
| **Claude Code** | `claude mcp add --transport http finance-toolkit https://financetoolkit.jeroenbouma.com/mcp` |
|
|
595
595
|
| **VS Code** | Command Palette → MCP: Add Server → HTTP → paste the URL |
|
|
596
|
-
| **Cursor** | Settings →
|
|
597
|
-
| **Windsurf** |
|
|
596
|
+
| **Cursor** | Cursor Settings → Tools & MCP → New MCP Server → add `"finance-toolkit": { "url": "<URL>" }` |
|
|
597
|
+
| **Windsurf** | Cascade panel → MCPs → Configure → add `"finance-toolkit": { "serverUrl": "<URL>" }` and refresh |
|
|
598
598
|
|
|
599
599
|
### Local installation
|
|
600
600
|
|
|
@@ -776,6 +776,7 @@ The Finance Toolkit has been mentioned in various blogposts, research papers, ne
|
|
|
776
776
|
- [Fundamental Analysis using Muli-Agent System and Agentic RAG](https://connect.cfauk.org/HigherLogic/System/DownloadDocumentFile.ashx?DocumentFileKey=3ae6f3fc-593a-04ec-c3b8-be5643cab479&forceDialog=0)
|
|
777
777
|
|
|
778
778
|
**Newsletters & Social Media**
|
|
779
|
+
- [Stack to Street podcast: Your AI Shouldn't Guess the Formula](https://www.stacktostreet.com/episodes/financetoolkit/)
|
|
779
780
|
- [LinkedIn #1](https://www.linkedin.com/posts/jerry-liu-64390071_this-is-an-extremely-comprehensive-100-activity-7340897396471623681-plI4?utm_source=share&utm_medium=member_desktop&rcm=ACoAABhYAQUBkaNnlBjz_IYBRfaurU68rfoZPE8) and [Linkedin #2](https://www.linkedin.com/posts/pyquant-news_getting-clean-fundamental-data-used-to-be-activity-7314273012927651841-KXP3?utm_source=share&utm_medium=member_desktop&rcm=ACoAABhYAQUBkaNnlBjz_IYBRfaurU68rfoZPE8)
|
|
780
781
|
- [Facebook](https://www.facebook.com/groups/techtitansgroup/posts/1515790739748239/)
|
|
781
782
|
- [Quant Seeker](https://www.quantseeker.com/p/weekly-research-recap)
|
|
@@ -540,7 +540,7 @@ https://github.com/user-attachments/assets/96ad5288-d83d-4497-a345-1841c48c29d5
|
|
|
540
540
|
|
|
541
541
|
### Remote server
|
|
542
542
|
|
|
543
|
-
Connect directly to the hosted server at `https://financetoolkit.jeroenbouma.com/mcp`. Nothing needs to be installed locally. On first connection your client opens an OAuth consent page asking for your FMP API key; enter it once and the server handles authentication from there.
|
|
543
|
+
Connect directly to the hosted server at `https://financetoolkit.jeroenbouma.com/mcp`. Nothing needs to be installed locally. On first connection your client opens an OAuth consent page asking for your FMP API key (and, optionally, a FRED API key for the corporate bond series); enter it once and the server handles authentication from there.
|
|
544
544
|
|
|
545
545
|
| Client | Steps |
|
|
546
546
|
|:---|:---|
|
|
@@ -548,8 +548,8 @@ Connect directly to the hosted server at `https://financetoolkit.jeroenbouma.com
|
|
|
548
548
|
| **Claude.ai** | Customize → Connectors → Add custom connector → paste the URL |
|
|
549
549
|
| **Claude Code** | `claude mcp add --transport http finance-toolkit https://financetoolkit.jeroenbouma.com/mcp` |
|
|
550
550
|
| **VS Code** | Command Palette → MCP: Add Server → HTTP → paste the URL |
|
|
551
|
-
| **Cursor** | Settings →
|
|
552
|
-
| **Windsurf** |
|
|
551
|
+
| **Cursor** | Cursor Settings → Tools & MCP → New MCP Server → add `"finance-toolkit": { "url": "<URL>" }` |
|
|
552
|
+
| **Windsurf** | Cascade panel → MCPs → Configure → add `"finance-toolkit": { "serverUrl": "<URL>" }` and refresh |
|
|
553
553
|
|
|
554
554
|
### Local installation
|
|
555
555
|
|
|
@@ -731,6 +731,7 @@ The Finance Toolkit has been mentioned in various blogposts, research papers, ne
|
|
|
731
731
|
- [Fundamental Analysis using Muli-Agent System and Agentic RAG](https://connect.cfauk.org/HigherLogic/System/DownloadDocumentFile.ashx?DocumentFileKey=3ae6f3fc-593a-04ec-c3b8-be5643cab479&forceDialog=0)
|
|
732
732
|
|
|
733
733
|
**Newsletters & Social Media**
|
|
734
|
+
- [Stack to Street podcast: Your AI Shouldn't Guess the Formula](https://www.stacktostreet.com/episodes/financetoolkit/)
|
|
734
735
|
- [LinkedIn #1](https://www.linkedin.com/posts/jerry-liu-64390071_this-is-an-extremely-comprehensive-100-activity-7340897396471623681-plI4?utm_source=share&utm_medium=member_desktop&rcm=ACoAABhYAQUBkaNnlBjz_IYBRfaurU68rfoZPE8) and [Linkedin #2](https://www.linkedin.com/posts/pyquant-news_getting-clean-fundamental-data-used-to-be-activity-7314273012927651841-KXP3?utm_source=share&utm_medium=member_desktop&rcm=ACoAABhYAQUBkaNnlBjz_IYBRfaurU68rfoZPE8)
|
|
735
736
|
- [Facebook](https://www.facebook.com/groups/techtitansgroup/posts/1515790739748239/)
|
|
736
737
|
- [Quant Seeker](https://www.quantseeker.com/p/weekly-research-recap)
|
|
@@ -22,7 +22,7 @@ from financetoolkit.cache import (
|
|
|
22
22
|
serialization_model,
|
|
23
23
|
)
|
|
24
24
|
from financetoolkit.cache.sqlite_model import SCHEMA_VERSION, SQLiteBackend
|
|
25
|
-
from financetoolkit.utilities import logger_model
|
|
25
|
+
from financetoolkit.utilities import logger_model, sources_model
|
|
26
26
|
|
|
27
27
|
logger = logger_model.get_logger()
|
|
28
28
|
|
|
@@ -433,8 +433,8 @@ class Cache:
|
|
|
433
433
|
parameters (dict[str, Any] | None): Parameters that change the data.
|
|
434
434
|
date_axis (int): 0 when the index holds the dates, 1 when the columns do. Defaults to 0.
|
|
435
435
|
reference_date (date | None): The date the revision window is measured
|
|
436
|
-
back from when the requested range has no end or ends after it. Defaults to
|
|
437
|
-
mainly useful for testing.
|
|
436
|
+
back from when the requested range has no end or ends after it. Defaults to None,
|
|
437
|
+
which uses today; mainly useful for testing.
|
|
438
438
|
|
|
439
439
|
Returns:
|
|
440
440
|
CachePlan: The cached data per entity and the gaps still to be fetched.
|
|
@@ -529,6 +529,9 @@ class Cache:
|
|
|
529
529
|
with contextlib.suppress(Exception):
|
|
530
530
|
self._backend.delete_entity(key, entity)
|
|
531
531
|
|
|
532
|
+
if plan.cached:
|
|
533
|
+
sources_model.record_source(source)
|
|
534
|
+
|
|
532
535
|
return plan
|
|
533
536
|
|
|
534
537
|
def store(
|
|
@@ -682,7 +685,12 @@ class Cache:
|
|
|
682
685
|
if time.time() - updated_at > effective_ttl:
|
|
683
686
|
return None
|
|
684
687
|
|
|
685
|
-
|
|
688
|
+
value = serialization_model.decode_object(payload)
|
|
689
|
+
# A cached MCP answer names the sources it was computed from itself.
|
|
690
|
+
if source != policy_model.MCP:
|
|
691
|
+
sources_model.record_source(source)
|
|
692
|
+
|
|
693
|
+
return value
|
|
686
694
|
except Exception as error:
|
|
687
695
|
# Any read failure is reported as a miss, so the caller falls back to the source.
|
|
688
696
|
logger.debug(
|
|
@@ -124,6 +124,10 @@ def slice_frame(
|
|
|
124
124
|
the caller. Labels that cannot be parsed as dates are kept, which matters for
|
|
125
125
|
statement frames that carry non-date columns alongside the reporting periods.
|
|
126
126
|
|
|
127
|
+
A period is kept when it overlaps the window, as a fresh request truncates it: a
|
|
128
|
+
start date of 31 December 2014 keeps the year 2014. A cached frame is then the same
|
|
129
|
+
as the one a fresh request returns, so no answer depends on what the cache holds.
|
|
130
|
+
|
|
127
131
|
Args:
|
|
128
132
|
data (pd.DataFrame | pd.Series): The frame to slice.
|
|
129
133
|
start (str | date | None): Inclusive start of the window. None leaves it open.
|
|
@@ -147,9 +151,14 @@ def slice_frame(
|
|
|
147
151
|
# is not a date.
|
|
148
152
|
keep = vectorised.isna()
|
|
149
153
|
within = np.ones(len(axis), dtype=bool)
|
|
154
|
+
last_days = (
|
|
155
|
+
axis.to_timestamp(how="end").normalize()
|
|
156
|
+
if isinstance(axis, pd.PeriodIndex)
|
|
157
|
+
else vectorised
|
|
158
|
+
)
|
|
150
159
|
|
|
151
160
|
if start_date is not None:
|
|
152
|
-
within &=
|
|
161
|
+
within &= last_days >= pd.Timestamp(start_date)
|
|
153
162
|
if end_date is not None:
|
|
154
163
|
within &= vectorised <= pd.Timestamp(end_date)
|
|
155
164
|
|
|
@@ -167,7 +176,8 @@ def slice_frame(
|
|
|
167
176
|
mask.append(True)
|
|
168
177
|
continue
|
|
169
178
|
|
|
170
|
-
|
|
179
|
+
last_day = label.end_time.date() if isinstance(label, pd.Period) else label_date
|
|
180
|
+
within_start = start_date is None or last_day >= start_date
|
|
171
181
|
within_end = end_date is None or label_date <= end_date
|
|
172
182
|
mask.append(within_start and within_end)
|
|
173
183
|
|
|
@@ -41,6 +41,8 @@ NORGES_BANK = "NorgesBank"
|
|
|
41
41
|
EIOPA = "EIOPA"
|
|
42
42
|
INTERNATIONAL_MONETARY_FUND = "IMF"
|
|
43
43
|
SHILLER = "Shiller"
|
|
44
|
+
WORLD_BANK = "WorldBank"
|
|
45
|
+
IMF_PORTWATCH = "IMFPortWatch"
|
|
44
46
|
CBOE = "Cboe"
|
|
45
47
|
STOXX = "STOXX"
|
|
46
48
|
RESERVE_BANK_OF_AUSTRALIA = "ReserveBankOfAustralia"
|
|
@@ -110,8 +112,8 @@ def get_last_closed_session(now: datetime | None = None) -> date:
|
|
|
110
112
|
date.
|
|
111
113
|
|
|
112
114
|
Args:
|
|
113
|
-
now (datetime | None): The moment to judge, with a time zone. Defaults to
|
|
114
|
-
current time; mainly useful for testing.
|
|
115
|
+
now (datetime | None): The moment to judge, with a time zone. Defaults to None,
|
|
116
|
+
which uses the current time; mainly useful for testing.
|
|
115
117
|
|
|
116
118
|
Returns:
|
|
117
119
|
date: The last date whose daily bars are final.
|
|
@@ -244,6 +246,7 @@ POLICIES: dict[str, CachePolicy] = {
|
|
|
244
246
|
f"{BANK_OF_ENGLAND}.millennium": CachePolicy(ttl_seconds=365 * DAY),
|
|
245
247
|
f"{BANK_OF_ENGLAND}.curve_current_month": CachePolicy(ttl_seconds=DAY),
|
|
246
248
|
f"{BANK_OF_JAPAN}.series": CachePolicy(ttl_seconds=DAY, revision_days=31),
|
|
249
|
+
f"{BANK_OF_JAPAN}.price_index": CachePolicy(ttl_seconds=DAY),
|
|
247
250
|
f"{EUROPEAN_CENTRAL_BANK}.economics_series": CachePolicy(
|
|
248
251
|
ttl_seconds=DAY, revision_days=31
|
|
249
252
|
),
|
|
@@ -252,6 +255,9 @@ POLICIES: dict[str, CachePolicy] = {
|
|
|
252
255
|
f"{STATISTICS_BUREAU_OF_JAPAN}.series": CachePolicy(ttl_seconds=DAY),
|
|
253
256
|
# The keyless BLS API allows 25 requests a day, so the latest releases are fetched once.
|
|
254
257
|
f"{BUREAU_OF_LABOR_STATISTICS}.series": CachePolicy(ttl_seconds=DAY),
|
|
258
|
+
# The consumer prices are one request for every measure, kept for six hours so the
|
|
259
|
+
# month a release publishes appears the same day.
|
|
260
|
+
f"{BUREAU_OF_LABOR_STATISTICS}.consumer_prices": CachePolicy(ttl_seconds=DAY // 4),
|
|
255
261
|
# A past year of the Treasury yield curve is final; only the current year changes.
|
|
256
262
|
f"{US_TREASURY}.par_yield_curve": CachePolicy(ttl_seconds=DAY),
|
|
257
263
|
f"{US_TREASURY}.par_yield_curve_year": CachePolicy(ttl_seconds=30 * DAY),
|
|
@@ -287,6 +293,11 @@ POLICIES: dict[str, CachePolicy] = {
|
|
|
287
293
|
f"{INTERNATIONAL_MONETARY_FUND}.codelist": CachePolicy(ttl_seconds=30 * DAY),
|
|
288
294
|
# Updated about once a month.
|
|
289
295
|
f"{SHILLER}.stock_market_data": CachePolicy(ttl_seconds=7 * DAY),
|
|
296
|
+
# The Pink Sheet is updated in the first days of every month.
|
|
297
|
+
f"{WORLD_BANK}.commodity_prices": CachePolicy(ttl_seconds=7 * DAY),
|
|
298
|
+
# PortWatch adds the latest days once a week, on Tuesdays, and the chokepoints rarely.
|
|
299
|
+
f"{IMF_PORTWATCH}.chokepoint_transits": CachePolicy(ttl_seconds=DAY),
|
|
300
|
+
f"{IMF_PORTWATCH}.chokepoints": CachePolicy(ttl_seconds=30 * DAY),
|
|
290
301
|
# Index histories published whole, one file per index, updated after every close.
|
|
291
302
|
f"{CBOE}.index": CachePolicy(ttl_seconds=DAY),
|
|
292
303
|
f"{CBOE}.option_chain": CachePolicy(ttl_seconds=900),
|
|
@@ -316,6 +327,11 @@ POLICIES: dict[str, CachePolicy] = {
|
|
|
316
327
|
f"{INTERNATIONAL_MONETARY_FUND}.consumer_prices": CachePolicy(
|
|
317
328
|
ttl_seconds=DAY, revision_days=365
|
|
318
329
|
),
|
|
330
|
+
# Government finance and national accounts, published quarterly or yearly and revised
|
|
331
|
+
# back years when a country revises its national accounts.
|
|
332
|
+
f"{INTERNATIONAL_MONETARY_FUND}.government_finance": CachePolicy(
|
|
333
|
+
ttl_seconds=7 * DAY, revision_days=1095
|
|
334
|
+
),
|
|
319
335
|
f"{EUROPEAN_CENTRAL_BANK}.convergence_yields": CachePolicy(
|
|
320
336
|
ttl_seconds=DAY, revision_days=93
|
|
321
337
|
),
|