financetoolkit 2.2.2__tar.gz → 2.2.3__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.2.2 → financetoolkit-2.2.3}/PKG-INFO +1 -1
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/cache/policy_model.py +1 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/cache/ticker_model.py +2 -1
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/currencies_model.py +54 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/discovery/discovery_controller.py +68 -17
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/discovery/discovery_model.py +429 -35
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/econometrics/econometrics_controller.py +12 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/economics/economics_controller.py +84 -20
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/economics/fmp_model.py +12 -3
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/economics/gmdb_model.py +40 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/fixedincome/fixedincome_controller.py +18 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/fmp_model.py +109 -8
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/historical_model.py +7 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/mcp_server/config.yaml +130 -36
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/mcp_server/diagnostics_model.py +93 -2
- financetoolkit-2.2.3/financetoolkit/mcp_server/formatting_model.py +540 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/mcp_server/inspection_controller.py +23 -1
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/mcp_server/mcp_controller.py +28 -1
- financetoolkit-2.2.3/financetoolkit/mcp_server/mcpb/manifest.json +178 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/mcp_server/mcpb/pyproject.toml +2 -2
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/mcp_server/provider_model.py +139 -10
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/mcp_server/registry_controller.py +877 -23
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/mcp_server/tools_model.py +202 -64
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/models/models_controller.py +23 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/options/options_controller.py +18 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/performance/performance_controller.py +24 -4
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/ratios/ratios_controller.py +19 -5
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/risk/risk_controller.py +31 -24
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/toolkit_controller.py +67 -20
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/utilities/dataframe_model.py +3 -2
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/utilities/statistics_model.py +164 -5
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/yfinance_model.py +6 -4
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/pyproject.toml +1 -1
- financetoolkit-2.2.2/financetoolkit/mcp_server/formatting_model.py +0 -234
- financetoolkit-2.2.2/financetoolkit/mcp_server/mcpb/manifest.json +0 -182
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/.gitignore +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/LICENSE.txt +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/README.md +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/__init__.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/cache/__init__.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/cache/cache_controller.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/cache/coverage_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/cache/frame_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/cache/request_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/cache/serialization_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/cache/sqlite_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/discovery/__init__.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/econometrics/__init__.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/econometrics/causal_inference_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/econometrics/causality_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/econometrics/cointegration_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/econometrics/diagnostics_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/econometrics/event_study_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/econometrics/fama_macbeth_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/econometrics/forecast_evaluation_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/econometrics/hypothesis_testing_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/econometrics/panel_data_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/econometrics/regression_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/econometrics/specification_tests_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/econometrics/time_series_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/econometrics/unitroot_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/economics/__init__.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/economics/bis_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/economics/bls_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/economics/boe_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/economics/boj_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/economics/cboe_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/economics/dnb_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/economics/ecb_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/economics/eex_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/economics/esrb_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/economics/eurostat_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/economics/frb_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/economics/fred_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/economics/freddie_mac_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/economics/helpers.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/economics/ibge_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/economics/imf_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/economics/macrohistory_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/economics/mof_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/economics/nber_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/economics/ngfs_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/economics/oecd_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/economics/ons_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/economics/sbj_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/economics/shiller_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/economics/stoxx_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/economics/treasury_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/economics/yfinance_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/fixedincome/__init__.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/fixedincome/boc_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/fixedincome/bond_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/fixedincome/bundesbank_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/fixedincome/derivative_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/fixedincome/ecb_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/fixedincome/eiopa_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/fixedincome/esma_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/fixedincome/euribor_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/fixedincome/fed_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/fixedincome/fmp_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/fixedincome/fred_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/fixedincome/helpers.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/fixedincome/norgesbank_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/fixedincome/rba_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/fixedincome/riksbank_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/fixedincome/yieldcurve_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/fundamentals_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/helpers.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/mcp_server/__init__.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/mcp_server/__main__.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/mcp_server/analytics_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/mcp_server/auth_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/mcp_server/coercion_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/mcp_server/mcpb/.mcpbignore +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/mcp_server/mcpb/LICENSE +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/mcp_server/mcpb/README.md +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/mcp_server/mcpb/build-mcpb.sh +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/mcp_server/mcpb/finance_toolkit_icon.png +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/mcp_server/setup_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/models/__init__.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/models/altman_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/models/beneish_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/models/dupont_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/models/enterprise_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/models/eva_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/models/fulmer_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/models/grover_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/models/growth_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/models/helpers.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/models/intrinsic_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/models/ohlson_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/models/piotroski_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/models/springate_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/models/wacc_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/models/zmijewski_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/normalization/balance.csv +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/normalization/balance_yf.csv +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/normalization/cash.csv +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/normalization/cash_yf.csv +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/normalization/income.csv +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/normalization/income_yf.csv +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/normalization/statistics.csv +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/normalization/statistics_yf.csv +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/normalization_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/options/__init__.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/options/binomial_trees_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/options/black_scholes_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/options/exotics_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/options/greeks_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/options/helpers.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/options/options_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/options/risk_neutral_density_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/options/svi_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/performance/__init__.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/performance/helpers.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/performance/performance_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/portfolio/__init__.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/portfolio/config.yaml +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/portfolio/example_datasets/example_portfolio.csv +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/portfolio/example_datasets/example_portfolio.xlsx +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/portfolio/helpers.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/portfolio/overview_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/portfolio/portfolio_controller.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/portfolio/portfolio_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/py.typed +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/ratios/__init__.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/ratios/efficiency_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/ratios/helpers.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/ratios/liquidity_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/ratios/profitability_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/ratios/solvency_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/ratios/valuation_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/risk/__init__.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/risk/backtesting_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/risk/copula_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/risk/covar_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/risk/cvar_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/risk/evar_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/risk/garch_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/risk/helpers.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/risk/market_liquidity_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/risk/realized_volatility_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/risk/risk_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/risk/var_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/technicals/__init__.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/technicals/breadth_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/technicals/momentum_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/technicals/overlap_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/technicals/technicals_controller.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/technicals/volatility_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/utilities/error_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/utilities/excel_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/utilities/logger_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/utilities/requests_model.py +0 -0
- {financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/utilities/validation_model.py +0 -0
|
@@ -251,6 +251,7 @@ POLICIES: dict[str, CachePolicy] = {
|
|
|
251
251
|
f"{KEN_FRENCH}.factors_decimal": CachePolicy(ttl_seconds=7 * DAY),
|
|
252
252
|
# Computed MCP tool responses layered on top of the source caches.
|
|
253
253
|
f"{MCP}.tool": CachePolicy(ttl_seconds=DAY),
|
|
254
|
+
f"{MCP}.tool_messages": CachePolicy(ttl_seconds=DAY),
|
|
254
255
|
}
|
|
255
256
|
|
|
256
257
|
|
|
@@ -242,7 +242,8 @@ def collect_per_ticker(
|
|
|
242
242
|
|
|
243
243
|
logger.warning(
|
|
244
244
|
"No %s data is available for %s.",
|
|
245
|
-
|
|
245
|
+
# "earnings_call_transcripts_selection" is a cache name; the data is the transcripts.
|
|
246
|
+
dataset.removesuffix("_selection").replace("_", " "),
|
|
246
247
|
", ".join(without_data),
|
|
247
248
|
)
|
|
248
249
|
|
|
@@ -213,6 +213,60 @@ def is_currency_pair(ticker: str) -> bool:
|
|
|
213
213
|
)
|
|
214
214
|
|
|
215
215
|
|
|
216
|
+
# The quote currencies of crypto pairs besides the fiat currencies, as in ETH-BTC.
|
|
217
|
+
CRYPTO_QUOTE_CURRENCIES = {"USDT", "USDC", "BTC", "ETH"}
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
def to_financial_modeling_prep_symbol(symbol: str) -> str:
|
|
221
|
+
"""
|
|
222
|
+
Writes a Yahoo Finance currency or crypto symbol as FinancialModelingPrep writes it,
|
|
223
|
+
so either form can be passed: EURUSD=X becomes EURUSD and BTC-USD becomes BTCUSD.
|
|
224
|
+
Any other symbol, such as a share class (BRK-B), is returned unchanged.
|
|
225
|
+
|
|
226
|
+
Args:
|
|
227
|
+
symbol (str): The symbol, e.g. "EURUSD=X" or "BTC-USD".
|
|
228
|
+
|
|
229
|
+
Returns:
|
|
230
|
+
str: The symbol as FinancialModelingPrep writes it.
|
|
231
|
+
"""
|
|
232
|
+
upper = symbol.strip().upper()
|
|
233
|
+
|
|
234
|
+
if upper.endswith("=X") and is_currency_pair(upper):
|
|
235
|
+
return upper.removesuffix("=X")
|
|
236
|
+
|
|
237
|
+
base, separator, quote = upper.partition("-")
|
|
238
|
+
|
|
239
|
+
if (
|
|
240
|
+
separator
|
|
241
|
+
and len(base) > 1
|
|
242
|
+
and base.isalnum()
|
|
243
|
+
and (quote in CURRENCY_CODES or quote in CRYPTO_QUOTE_CURRENCIES)
|
|
244
|
+
):
|
|
245
|
+
return f"{base}{quote}"
|
|
246
|
+
|
|
247
|
+
return symbol
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
def to_yahoo_finance_symbol(symbol: str) -> str:
|
|
251
|
+
"""
|
|
252
|
+
Writes a FinancialModelingPrep currency pair as Yahoo Finance writes it: EURUSD
|
|
253
|
+
becomes EURUSD=X. A crypto pair such as BTCUSD cannot be told apart from a share
|
|
254
|
+
ticker reliably, so it, and any other symbol, is returned unchanged.
|
|
255
|
+
|
|
256
|
+
Args:
|
|
257
|
+
symbol (str): The symbol, e.g. "EURUSD".
|
|
258
|
+
|
|
259
|
+
Returns:
|
|
260
|
+
str: The symbol as Yahoo Finance writes it.
|
|
261
|
+
"""
|
|
262
|
+
upper = symbol.strip().upper()
|
|
263
|
+
|
|
264
|
+
if is_currency_pair(upper) and not upper.endswith("=X"):
|
|
265
|
+
return f"{upper}=X"
|
|
266
|
+
|
|
267
|
+
return symbol
|
|
268
|
+
|
|
269
|
+
|
|
216
270
|
def get_fx_ticker(base_currency: str, quote_currency: str) -> str:
|
|
217
271
|
"""
|
|
218
272
|
Returns the ticker to request historical exchange rate data for from a data
|
{financetoolkit-2.2.2 → financetoolkit-2.2.3}/financetoolkit/discovery/discovery_controller.py
RENAMED
|
@@ -153,6 +153,10 @@ class Discovery:
|
|
|
153
153
|
The search instruments function allows you to search for a company or financial instrument
|
|
154
154
|
by name. It returns a dataframe with all the symbols that match the query.
|
|
155
155
|
|
|
156
|
+
An ISIN or CUSIP search returns every listing of the security, most traded first, so
|
|
157
|
+
the primary listing leads (e.g. AAPL before AAPL.MX). The Market Cap of each listing
|
|
158
|
+
is in the listing's own currency.
|
|
159
|
+
|
|
156
160
|
Also known as: find companies, lookup stocks, ticker search, instrument search.
|
|
157
161
|
|
|
158
162
|
Args:
|
|
@@ -225,6 +229,7 @@ class Discovery:
|
|
|
225
229
|
exchange: str | None = None,
|
|
226
230
|
is_etf: bool | None = None,
|
|
227
231
|
limit: int = 1000,
|
|
232
|
+
primary_only: bool = False,
|
|
228
233
|
):
|
|
229
234
|
"""
|
|
230
235
|
Screen stocks based on a set of criteria. This can be useful to find companies that match
|
|
@@ -263,6 +268,13 @@ class Discovery:
|
|
|
263
268
|
exchange (str | None): The exchange code to restrict the screen to, e.g. "NASDAQ".
|
|
264
269
|
is_etf (bool | None): Whether to restrict the screen to ETFs or to exclude them.
|
|
265
270
|
limit (int): The maximum number of companies to return. Defaults to 1000.
|
|
271
|
+
primary_only (bool): Whether to keep only the home listing of each company (on an
|
|
272
|
+
exchange in its own country, the most traded one among several) rather than
|
|
273
|
+
every listing (e.g. ING in Amsterdam, New York, Toronto and Frankfurt).
|
|
274
|
+
Defaults to False.
|
|
275
|
+
|
|
276
|
+
Market caps are in each listing's own currency in "Market Cap" and in US dollars in
|
|
277
|
+
"Market Cap (USD)", which the market cap bounds and the ranking use.
|
|
266
278
|
|
|
267
279
|
Returns:
|
|
268
280
|
pd.DataFrame: A dataframe with all the symbols that match the query. An empty
|
|
@@ -342,6 +354,7 @@ class Discovery:
|
|
|
342
354
|
is_etf=is_etf,
|
|
343
355
|
limit=limit,
|
|
344
356
|
user_subscription=self._fmp_plan,
|
|
357
|
+
primary_only=primary_only,
|
|
345
358
|
)
|
|
346
359
|
|
|
347
360
|
return stock_screener
|
|
@@ -443,12 +456,14 @@ class Discovery:
|
|
|
443
456
|
date, so 1.25 means +1.25% and not +125%. One API call is made per sector because the
|
|
444
457
|
combined endpoint this used to read was retired and now answers with an empty response.
|
|
445
458
|
|
|
446
|
-
Without a date range the API hands back only the earliest days it holds, so
|
|
447
|
-
`start_date` and `end_date`
|
|
459
|
+
Without a date range the API hands back only the earliest days it holds, so the
|
|
460
|
+
last year up to today is retrieved unless `start_date` and `end_date` say otherwise.
|
|
448
461
|
|
|
449
462
|
Args:
|
|
450
463
|
start_date (str | None): The start date to filter data with, e.g. "2024-01-01".
|
|
464
|
+
Defaults to a year ago.
|
|
451
465
|
end_date (str | None): The end date to filter data with, e.g. "2024-12-31".
|
|
466
|
+
Defaults to today.
|
|
452
467
|
|
|
453
468
|
Returns:
|
|
454
469
|
pd.DataFrame: A dataframe with the sectors performance for each sector.
|
|
@@ -510,16 +525,16 @@ class Discovery:
|
|
|
510
525
|
|
|
511
526
|
| Symbol | Price | Name | Change | Change % | Exchange |
|
|
512
527
|
|:---------|--------:|:-------------------------------------|---------:|-----------:|:-----------|
|
|
513
|
-
|
|
|
528
|
+
| CCAQU | 19.49 | Collective Acquisition Corp. | 8.81 | 82.4906 | NASDAQ |
|
|
529
|
+
| BIYA | 2.3 | Baiya International Group Inc. | 0.935 | 68.4982 | NASDAQ |
|
|
514
530
|
| ALISU | 16.65 | Calisa Acquisition Corp Units | 5.84 | 54.0241 | NASDAQ |
|
|
515
|
-
| ALPXR | 0.1911 | Alpex Acquisition Corp. Rt | 0.0311 | 19.4375 | NASDAQ |
|
|
516
|
-
| AMBR | 2.28 | Amber International Holding Ltd | 0.29 | 14.5729 | NASDAQ |
|
|
517
531
|
| AMPGZ | 0.18 | Amplitech Group, Inc. Series B Right | 0.055 | 44 | NASDAQ |
|
|
518
|
-
| BIYA | 2.3 | Baiya International Group Inc. | 0.935 | 68.4982 | NASDAQ |
|
|
519
532
|
| BSP | 41.07 | Bending Spoons S.p.A. | 8 | 24.1911 | NASDAQ |
|
|
533
|
+
| ALPXR | 0.1911 | Alpex Acquisition Corp. Rt | 0.0311 | 19.4375 | NASDAQ |
|
|
520
534
|
| CANG | 3.58 | Cango Inc. | 0.56 | 18.5431 | NYSE |
|
|
521
|
-
| CCAQU | 19.49 | Collective Acquisition Corp. | 8.81 | 82.4906 | NASDAQ |
|
|
522
535
|
| CCG | 5.77 | Cheche Group Inc. | 0.8 | 16.0966 | NASDAQ |
|
|
536
|
+
| AIFU | 12.85 | AIFU Inc. | 1.67 | 14.9374 | NASDAQ |
|
|
537
|
+
| AMBR | 2.28 | Amber International Holding Ltd | 0.29 | 14.5729 | NASDAQ |
|
|
523
538
|
"""
|
|
524
539
|
biggest_gainers = discovery_model.get_biggest_gainers(
|
|
525
540
|
api_key=self._api_key, user_subscription=self._fmp_plan
|
|
@@ -551,15 +566,15 @@ class Discovery:
|
|
|
551
566
|
|
|
552
567
|
| Symbol | Price | Name | Change | Change % | Exchange |
|
|
553
568
|
|:---------|--------:|:----------------------------------------------------|----------:|-----------:|:-----------|
|
|
569
|
+
| BULG | 21.1116 | Leverage Shares 2x Long BULL Daily ETF | -12.9859 | -38.0846 | NASDAQ |
|
|
554
570
|
| AIXI | 1.32 | Xiao-I Corporation | -0.53 | -28.6486 | NASDAQ |
|
|
555
|
-
| ALMR | 27.77 | Alamar Biosciences, Inc. | -4.49 | -13.9182 | NASDAQ |
|
|
556
571
|
| AVAT | 1.66 | Avalanche Treasury Corporation Class A Common Stock | -0.41 | -19.8068 | NASDAQ |
|
|
572
|
+
| BULL | 5.89 | Webull Corporation Class A Ordinary Shares | -1.39 | -19.0934 | NASDAQ |
|
|
557
573
|
| BBUL | 12.8794 | GraniteShares 2x Long BB Daily ETF | -2.6906 | -17.2807 | NASDAQ |
|
|
558
|
-
| BLIN | 0.7821 | Bridgeline Digital, Inc. | -0.11035 | -12.3648 | NASDAQ |
|
|
559
574
|
| BRNX | 1.53 | BrenX Ltd. | -0.27 | -15 | NASDAQ |
|
|
560
|
-
| BULG | 21.1116 | Leverage Shares 2x Long BULL Daily ETF | -12.9859 | -38.0846 | NASDAQ |
|
|
561
|
-
| BULL | 5.89 | Webull Corporation Class A Ordinary Shares | -1.39 | -19.0934 | NASDAQ |
|
|
562
575
|
| BURU | 1.03 | Nuburu, Inc. | -0.17 | -14.1667 | AMEX |
|
|
576
|
+
| ALMR | 27.77 | Alamar Biosciences, Inc. | -4.49 | -13.9182 | NASDAQ |
|
|
577
|
+
| BLIN | 0.7821 | Bridgeline Digital, Inc. | -0.11035 | -12.3648 | NASDAQ |
|
|
563
578
|
| CDLX | 2.28 | Cardlytics, Inc. | -0.32 | -12.3077 | NASDAQ |
|
|
564
579
|
"""
|
|
565
580
|
|
|
@@ -1590,7 +1605,11 @@ class Discovery:
|
|
|
1590
1605
|
return splits_calendar
|
|
1591
1606
|
|
|
1592
1607
|
def get_sector_performance(
|
|
1593
|
-
self,
|
|
1608
|
+
self,
|
|
1609
|
+
date: str | None = None,
|
|
1610
|
+
sector: str | None = None,
|
|
1611
|
+
start_date: str | None = None,
|
|
1612
|
+
end_date: str | None = None,
|
|
1594
1613
|
) -> pd.DataFrame:
|
|
1595
1614
|
"""
|
|
1596
1615
|
Returns sector performance — the average price change per sector. Provide
|
|
@@ -1602,6 +1621,9 @@ class Discovery:
|
|
|
1602
1621
|
Args:
|
|
1603
1622
|
date (str, optional): The date to retrieve a snapshot for, e.g. "2024-02-01".
|
|
1604
1623
|
sector (str, optional): The sector to retrieve the history for, e.g. "Energy".
|
|
1624
|
+
start_date (str, optional): The start of the history of one sector. Defaults to a year
|
|
1625
|
+
ago.
|
|
1626
|
+
end_date (str, optional): The end of the history of one sector. Defaults to today.
|
|
1605
1627
|
|
|
1606
1628
|
Returns:
|
|
1607
1629
|
pd.DataFrame: A dataframe with sector performance, indexed by Sector
|
|
@@ -1639,13 +1661,19 @@ class Discovery:
|
|
|
1639
1661
|
api_key=self._api_key,
|
|
1640
1662
|
date=date,
|
|
1641
1663
|
sector=sector,
|
|
1664
|
+
start_date=start_date,
|
|
1665
|
+
end_date=end_date,
|
|
1642
1666
|
user_subscription=self._fmp_plan,
|
|
1643
1667
|
)
|
|
1644
1668
|
|
|
1645
1669
|
return sector_performance
|
|
1646
1670
|
|
|
1647
1671
|
def get_industry_performance(
|
|
1648
|
-
self,
|
|
1672
|
+
self,
|
|
1673
|
+
date: str | None = None,
|
|
1674
|
+
industry: str | None = None,
|
|
1675
|
+
start_date: str | None = None,
|
|
1676
|
+
end_date: str | None = None,
|
|
1649
1677
|
) -> pd.DataFrame:
|
|
1650
1678
|
"""
|
|
1651
1679
|
Returns industry performance — the average price change per industry. Provide
|
|
@@ -1657,6 +1685,9 @@ class Discovery:
|
|
|
1657
1685
|
Args:
|
|
1658
1686
|
date (str, optional): The date to retrieve a snapshot for, e.g. "2024-02-01".
|
|
1659
1687
|
industry (str, optional): The industry to retrieve the history for, e.g. "Biotechnology".
|
|
1688
|
+
start_date (str, optional): The start of the history of one industry. Defaults to a year
|
|
1689
|
+
ago.
|
|
1690
|
+
end_date (str, optional): The end of the history of one industry. Defaults to today.
|
|
1660
1691
|
|
|
1661
1692
|
Returns:
|
|
1662
1693
|
pd.DataFrame: A dataframe with industry performance, indexed by Industry
|
|
@@ -1694,13 +1725,19 @@ class Discovery:
|
|
|
1694
1725
|
api_key=self._api_key,
|
|
1695
1726
|
date=date,
|
|
1696
1727
|
industry=industry,
|
|
1728
|
+
start_date=start_date,
|
|
1729
|
+
end_date=end_date,
|
|
1697
1730
|
user_subscription=self._fmp_plan,
|
|
1698
1731
|
)
|
|
1699
1732
|
|
|
1700
1733
|
return industry_performance
|
|
1701
1734
|
|
|
1702
1735
|
def get_sector_pe(
|
|
1703
|
-
self,
|
|
1736
|
+
self,
|
|
1737
|
+
date: str | None = None,
|
|
1738
|
+
sector: str | None = None,
|
|
1739
|
+
start_date: str | None = None,
|
|
1740
|
+
end_date: str | None = None,
|
|
1704
1741
|
) -> pd.DataFrame:
|
|
1705
1742
|
"""
|
|
1706
1743
|
Returns sector price-to-earnings (P/E) ratios. Provide exactly one of `date`
|
|
@@ -1712,6 +1749,9 @@ class Discovery:
|
|
|
1712
1749
|
Args:
|
|
1713
1750
|
date (str, optional): The date to retrieve a snapshot for, e.g. "2024-02-01".
|
|
1714
1751
|
sector (str, optional): The sector to retrieve the history for, e.g. "Energy".
|
|
1752
|
+
start_date (str, optional): The start of the history of one sector. Defaults to a year
|
|
1753
|
+
ago.
|
|
1754
|
+
end_date (str, optional): The end of the history of one sector. Defaults to today.
|
|
1715
1755
|
|
|
1716
1756
|
Returns:
|
|
1717
1757
|
pd.DataFrame: A dataframe with sector P/E ratios, indexed by Sector
|
|
@@ -1749,13 +1789,19 @@ class Discovery:
|
|
|
1749
1789
|
api_key=self._api_key,
|
|
1750
1790
|
date=date,
|
|
1751
1791
|
sector=sector,
|
|
1792
|
+
start_date=start_date,
|
|
1793
|
+
end_date=end_date,
|
|
1752
1794
|
user_subscription=self._fmp_plan,
|
|
1753
1795
|
)
|
|
1754
1796
|
|
|
1755
1797
|
return sector_pe
|
|
1756
1798
|
|
|
1757
1799
|
def get_industry_pe(
|
|
1758
|
-
self,
|
|
1800
|
+
self,
|
|
1801
|
+
date: str | None = None,
|
|
1802
|
+
industry: str | None = None,
|
|
1803
|
+
start_date: str | None = None,
|
|
1804
|
+
end_date: str | None = None,
|
|
1759
1805
|
) -> pd.DataFrame:
|
|
1760
1806
|
"""
|
|
1761
1807
|
Returns industry price-to-earnings (P/E) ratios. Provide exactly one of
|
|
@@ -1767,6 +1813,9 @@ class Discovery:
|
|
|
1767
1813
|
Args:
|
|
1768
1814
|
date (str, optional): The date to retrieve a snapshot for, e.g. "2024-02-01".
|
|
1769
1815
|
industry (str, optional): The industry to retrieve the history for, e.g. "Biotechnology".
|
|
1816
|
+
start_date (str, optional): The start of the history of one industry. Defaults to a year
|
|
1817
|
+
ago.
|
|
1818
|
+
end_date (str, optional): The end of the history of one industry. Defaults to today.
|
|
1770
1819
|
|
|
1771
1820
|
Returns:
|
|
1772
1821
|
pd.DataFrame: A dataframe with industry P/E ratios, indexed by Industry
|
|
@@ -1804,6 +1853,8 @@ class Discovery:
|
|
|
1804
1853
|
api_key=self._api_key,
|
|
1805
1854
|
date=date,
|
|
1806
1855
|
industry=industry,
|
|
1856
|
+
start_date=start_date,
|
|
1857
|
+
end_date=end_date,
|
|
1807
1858
|
user_subscription=self._fmp_plan,
|
|
1808
1859
|
)
|
|
1809
1860
|
|
|
@@ -1928,8 +1979,8 @@ class Discovery:
|
|
|
1928
1979
|
Also known as: current reports, material event filings, SEC filings.
|
|
1929
1980
|
|
|
1930
1981
|
Args:
|
|
1931
|
-
start_date (str, optional): The start date to filter data with.
|
|
1932
|
-
end_date (str, optional): The end date to filter data with.
|
|
1982
|
+
start_date (str, optional): The start date to filter data with. Defaults to 30 days ago.
|
|
1983
|
+
end_date (str, optional): The end date to filter data with. Defaults to today.
|
|
1933
1984
|
limit (int, optional): The number of results to return. Defaults to 100.
|
|
1934
1985
|
page (int, optional): The page number to retrieve. Defaults to 0.
|
|
1935
1986
|
|