openbb-core 1.2.0__tar.gz → 1.2.2__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.
Files changed (285) hide show
  1. {openbb_core-1.2.0 → openbb_core-1.2.2}/PKG-INFO +9 -6
  2. openbb_core-1.2.2/openbb_core/__init__.py +1 -0
  3. openbb_core-1.2.2/openbb_core/api/app_loader.py +36 -0
  4. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/api/auth/user.py +2 -1
  5. openbb_core-1.2.2/openbb_core/api/dependency/__init__.py +1 -0
  6. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/api/rest_api.py +13 -4
  7. openbb_core-1.2.2/openbb_core/api/router/__init__.py +1 -0
  8. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/api/router/commands.py +59 -23
  9. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/api/router/coverage.py +1 -0
  10. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/api/router/helpers/coverage_helpers.py +1 -0
  11. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/api/router/system.py +1 -0
  12. openbb_core-1.2.2/openbb_core/app/__init__.py +1 -0
  13. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/command_runner.py +187 -99
  14. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/constants.py +1 -0
  15. openbb_core-1.2.2/openbb_core/app/deprecation.py +65 -0
  16. openbb_core-1.2.2/openbb_core/app/extension_loader.py +175 -0
  17. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/logs/formatters/formatter_with_exceptions.py +20 -8
  18. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/logs/handlers/path_tracking_file_handler.py +9 -2
  19. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/logs/handlers/posthog_handler.py +42 -34
  20. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/logs/handlers_manager.py +11 -3
  21. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/logs/logging_service.py +28 -22
  22. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/logs/models/logging_settings.py +5 -0
  23. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/logs/utils/expired_files.py +5 -5
  24. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/logs/utils/utils.py +6 -4
  25. openbb_core-1.2.2/openbb_core/app/model/__init__.py +1 -0
  26. openbb_core-1.2.2/openbb_core/app/model/abstract/__init__.py +1 -0
  27. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/model/abstract/error.py +3 -0
  28. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/model/abstract/results.py +2 -0
  29. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/model/abstract/singleton.py +6 -1
  30. openbb_core-1.2.2/openbb_core/app/model/abstract/tagged.py +10 -0
  31. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/model/abstract/warning.py +6 -1
  32. openbb_core-1.2.0/openbb_core/app/model/fast_api_settings.py → openbb_core-1.2.2/openbb_core/app/model/api_settings.py +6 -2
  33. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/model/charts/chart.py +7 -0
  34. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/model/charts/charting_settings.py +6 -1
  35. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/model/command_context.py +4 -0
  36. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/model/credentials.py +17 -18
  37. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/model/defaults.py +3 -0
  38. openbb_core-1.2.2/openbb_core/app/model/example.py +229 -0
  39. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/model/extension.py +14 -5
  40. openbb_core-1.2.2/openbb_core/app/model/field.py +28 -0
  41. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/model/hub/hub_session.py +6 -0
  42. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/model/hub/hub_user_settings.py +6 -3
  43. openbb_core-1.2.2/openbb_core/app/model/metadata.py +141 -0
  44. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/model/obbject.py +67 -82
  45. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/model/preferences.py +20 -11
  46. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/model/profile.py +5 -0
  47. openbb_core-1.2.2/openbb_core/app/model/python_settings.py +23 -0
  48. openbb_core-1.2.2/openbb_core/app/model/results/__init__.py +1 -0
  49. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/model/results/empty.py +3 -1
  50. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/model/system_settings.py +11 -4
  51. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/model/user_settings.py +1 -2
  52. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/provider_interface.py +199 -76
  53. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/query.py +3 -0
  54. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/router.py +144 -59
  55. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/service/auth_service.py +22 -11
  56. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/service/hub_service.py +54 -51
  57. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/service/system_service.py +6 -3
  58. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/service/user_service.py +2 -0
  59. openbb_core-1.2.2/openbb_core/app/static/__init__.py +1 -0
  60. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/static/account.py +20 -20
  61. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/static/app_factory.py +12 -5
  62. openbb_core-1.2.2/openbb_core/app/static/container.py +41 -0
  63. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/static/coverage.py +11 -4
  64. openbb_core-1.2.2/openbb_core/app/static/package_builder.py +1808 -0
  65. openbb_core-1.2.2/openbb_core/app/static/reference_loader.py +43 -0
  66. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/static/utils/console.py +1 -0
  67. openbb_core-1.2.2/openbb_core/app/static/utils/decorators.py +93 -0
  68. openbb_core-1.2.2/openbb_core/app/static/utils/filters.py +67 -0
  69. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/static/utils/linters.py +1 -0
  70. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/utils.py +37 -8
  71. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/app/version.py +12 -0
  72. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/env.py +11 -13
  73. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/__init__.py +1 -0
  74. openbb_core-1.2.2/openbb_core/provider/abstract/annotated_result.py +20 -0
  75. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/abstract/data.py +6 -2
  76. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/abstract/fetcher.py +52 -31
  77. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/abstract/provider.py +15 -2
  78. openbb_core-1.2.2/openbb_core/provider/abstract/query_params.py +71 -0
  79. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/query_executor.py +2 -5
  80. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/registry.py +5 -7
  81. openbb_core-1.2.2/openbb_core/provider/registry_map.py +210 -0
  82. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/ameribor_rates.py +0 -1
  83. openbb_core-1.2.2/openbb_core/provider/standard_models/analyst_estimates.py +92 -0
  84. openbb_core-1.2.2/openbb_core/provider/standard_models/analyst_search.py +50 -0
  85. openbb_core-1.2.2/openbb_core/provider/standard_models/available_indicators.py +43 -0
  86. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/available_indices.py +0 -1
  87. openbb_core-1.2.2/openbb_core/provider/standard_models/balance_sheet.py +49 -0
  88. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/balance_sheet_growth.py +7 -8
  89. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/bond_prices.py +2 -11
  90. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/bond_reference.py +2 -3
  91. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/bond_trades.py +1 -1
  92. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/calendar_dividend.py +3 -4
  93. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/calendar_earnings.py +0 -1
  94. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/calendar_ipo.py +2 -2
  95. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/calendar_splits.py +0 -1
  96. openbb_core-1.2.2/openbb_core/provider/standard_models/cash_flow.py +47 -0
  97. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/cash_flow_growth.py +7 -8
  98. openbb_core-1.2.2/openbb_core/provider/standard_models/cik_map.py +32 -0
  99. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/company_filings.py +14 -19
  100. openbb_core-1.2.2/openbb_core/provider/standard_models/company_news.py +76 -0
  101. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/company_overview.py +5 -8
  102. openbb_core-1.2.2/openbb_core/provider/standard_models/compare_groups.py +27 -0
  103. openbb_core-1.2.2/openbb_core/provider/standard_models/composite_leading_indicator.py +37 -0
  104. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/cot_search.py +4 -0
  105. openbb_core-1.2.2/openbb_core/provider/standard_models/country_profile.py +89 -0
  106. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/cp.py +8 -1
  107. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/cpi.py +17 -4
  108. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/crypto_historical.py +7 -4
  109. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/crypto_search.py +1 -1
  110. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/currency_historical.py +7 -4
  111. openbb_core-1.2.2/openbb_core/provider/standard_models/currency_pairs.py +24 -0
  112. openbb_core-1.2.2/openbb_core/provider/standard_models/currency_snapshots.py +82 -0
  113. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/dwpcr_rates.py +1 -0
  114. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/earnings_call_transcript.py +5 -8
  115. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/ecb_interest_rates.py +8 -1
  116. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/economic_calendar.py +13 -18
  117. openbb_core-1.2.2/openbb_core/provider/standard_models/economic_indicators.py +51 -0
  118. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/equity_ftd.py +2 -2
  119. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/equity_historical.py +19 -16
  120. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/equity_info.py +11 -7
  121. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/equity_nbbo.py +2 -2
  122. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/equity_ownership.py +4 -7
  123. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/equity_peers.py +4 -6
  124. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/equity_performance.py +10 -2
  125. openbb_core-1.2.2/openbb_core/provider/standard_models/equity_quote.py +152 -0
  126. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/equity_screener.py +2 -2
  127. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/equity_search.py +5 -1
  128. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/equity_short_interest.py +1 -5
  129. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/equity_valuation_multiples.py +4 -6
  130. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/esg_risk_rating.py +5 -8
  131. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/esg_score.py +5 -8
  132. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/esg_sector.py +0 -1
  133. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/estr_rates.py +0 -1
  134. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/etf_countries.py +3 -7
  135. openbb_core-1.2.2/openbb_core/provider/standard_models/etf_equity_exposure.py +43 -0
  136. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/etf_historical.py +14 -9
  137. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/etf_historical_nav.py +3 -6
  138. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/etf_holdings.py +7 -1
  139. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/etf_holdings_performance.py +1 -0
  140. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/etf_info.py +7 -6
  141. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/etf_performance.py +10 -2
  142. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/etf_sectors.py +4 -6
  143. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/eu_yield_curve.py +7 -10
  144. openbb_core-1.2.2/openbb_core/provider/standard_models/executive_compensation.py +59 -0
  145. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/fed_projections.py +0 -1
  146. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/fed_rates.py +0 -1
  147. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/ffrmc.py +8 -1
  148. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/financial_attributes.py +7 -1
  149. openbb_core-1.2.2/openbb_core/provider/standard_models/financial_ratios.py +44 -0
  150. openbb_core-1.2.2/openbb_core/provider/standard_models/form_13FHR.py +105 -0
  151. openbb_core-1.2.2/openbb_core/provider/standard_models/forward_eps_estimates.py +67 -0
  152. openbb_core-1.2.2/openbb_core/provider/standard_models/forward_pe_estimates.py +54 -0
  153. openbb_core-1.2.2/openbb_core/provider/standard_models/forward_sales_estimates.py +68 -0
  154. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/fred_series.py +5 -7
  155. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/futures_curve.py +5 -7
  156. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/futures_historical.py +4 -7
  157. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/gdp_forecast.py +8 -1
  158. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/gdp_nominal.py +8 -1
  159. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/gdp_real.py +8 -1
  160. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/historical_attributes.py +27 -3
  161. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/historical_dividends.py +15 -10
  162. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/historical_employees.py +5 -7
  163. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/historical_eps.py +4 -7
  164. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/historical_splits.py +15 -11
  165. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/hqm.py +8 -1
  166. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/ice_bofa.py +8 -1
  167. openbb_core-1.2.2/openbb_core/provider/standard_models/income_statement.py +49 -0
  168. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/income_statement_growth.py +11 -8
  169. openbb_core-1.2.2/openbb_core/provider/standard_models/index_constituents.py +27 -0
  170. openbb_core-1.2.2/openbb_core/provider/standard_models/index_historical.py +76 -0
  171. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/index_info.py +4 -6
  172. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/index_sectors.py +3 -7
  173. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/index_snapshots.py +12 -6
  174. openbb_core-1.2.2/openbb_core/provider/standard_models/insider_trading.py +94 -0
  175. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/institutional_ownership.py +5 -8
  176. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/key_executives.py +4 -6
  177. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/key_metrics.py +10 -14
  178. openbb_core-1.2.2/openbb_core/provider/standard_models/latest_attributes.py +45 -0
  179. openbb_core-1.2.2/openbb_core/provider/standard_models/lbma_fixing.py +93 -0
  180. openbb_core-1.2.2/openbb_core/provider/standard_models/long_term_interest_rate.py +40 -0
  181. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/market_indices.py +4 -6
  182. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/market_snapshots.py +13 -8
  183. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/money_measures.py +0 -1
  184. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/moody.py +7 -1
  185. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/options_chains.py +94 -36
  186. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/options_unusual.py +3 -2
  187. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/otc_aggregate.py +2 -2
  188. openbb_core-1.2.2/openbb_core/provider/standard_models/price_target.py +86 -0
  189. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/price_target_consensus.py +11 -9
  190. openbb_core-1.2.2/openbb_core/provider/standard_models/recent_performance.py +112 -0
  191. openbb_core-1.2.2/openbb_core/provider/standard_models/reported_financials.py +70 -0
  192. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/revenue_business_line.py +22 -10
  193. openbb_core-1.2.2/openbb_core/provider/standard_models/revenue_geographic.py +54 -0
  194. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/risk_premium.py +0 -1
  195. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/share_statistics.py +5 -8
  196. openbb_core-1.2.2/openbb_core/provider/standard_models/short_term_interest_rate.py +40 -0
  197. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/short_volume.py +2 -1
  198. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/sofr_rates.py +0 -1
  199. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/sonia_rates.py +0 -1
  200. openbb_core-1.2.2/openbb_core/provider/standard_models/sp500_multiples.py +73 -0
  201. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/spot.py +12 -15
  202. openbb_core-1.2.2/openbb_core/provider/standard_models/symbol_map.py +17 -0
  203. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/tbffr.py +8 -1
  204. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/tmc.py +8 -1
  205. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/trailing_dividend_yield.py +7 -2
  206. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/treasury_auctions.py +3 -0
  207. openbb_core-1.2.2/openbb_core/provider/standard_models/treasury_prices.py +90 -0
  208. openbb_core-1.2.2/openbb_core/provider/standard_models/treasury_rates.py +97 -0
  209. openbb_core-1.2.2/openbb_core/provider/standard_models/unemployment.py +40 -0
  210. openbb_core-1.2.2/openbb_core/provider/standard_models/world_news.py +65 -0
  211. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/utils/client.py +5 -0
  212. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/utils/descriptions.py +2 -0
  213. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/utils/helpers.py +80 -8
  214. {openbb_core-1.2.0 → openbb_core-1.2.2}/pyproject.toml +8 -7
  215. openbb_core-1.2.0/openbb_core/__init__.py +0 -0
  216. openbb_core-1.2.0/openbb_core/api/app_loader.py +0 -18
  217. openbb_core-1.2.0/openbb_core/api/dependency/__init__.py +0 -0
  218. openbb_core-1.2.0/openbb_core/api/router/__init__.py +0 -0
  219. openbb_core-1.2.0/openbb_core/app/__init__.py +0 -0
  220. openbb_core-1.2.0/openbb_core/app/charting_service.py +0 -307
  221. openbb_core-1.2.0/openbb_core/app/model/__init__.py +0 -0
  222. openbb_core-1.2.0/openbb_core/app/model/abstract/__init__.py +0 -0
  223. openbb_core-1.2.0/openbb_core/app/model/abstract/tagged.py +0 -6
  224. openbb_core-1.2.0/openbb_core/app/model/custom_parameter.py +0 -26
  225. openbb_core-1.2.0/openbb_core/app/model/hub/features_keys.py +0 -42
  226. openbb_core-1.2.0/openbb_core/app/model/metadata.py +0 -118
  227. openbb_core-1.2.0/openbb_core/app/model/results/__init__.py +0 -0
  228. openbb_core-1.2.0/openbb_core/app/static/__init__.py +0 -0
  229. openbb_core-1.2.0/openbb_core/app/static/container.py +0 -21
  230. openbb_core-1.2.0/openbb_core/app/static/package_builder.py +0 -1091
  231. openbb_core-1.2.0/openbb_core/app/static/utils/decorators.py +0 -37
  232. openbb_core-1.2.0/openbb_core/app/static/utils/filters.py +0 -13
  233. openbb_core-1.2.0/openbb_core/provider/abstract/query_params.py +0 -26
  234. openbb_core-1.2.0/openbb_core/provider/registry_map.py +0 -181
  235. openbb_core-1.2.0/openbb_core/provider/standard_models/analyst_estimates.py +0 -79
  236. openbb_core-1.2.0/openbb_core/provider/standard_models/balance_sheet.py +0 -189
  237. openbb_core-1.2.0/openbb_core/provider/standard_models/cash_flow.py +0 -143
  238. openbb_core-1.2.0/openbb_core/provider/standard_models/company_news.py +0 -51
  239. openbb_core-1.2.0/openbb_core/provider/standard_models/currency_pairs.py +0 -17
  240. openbb_core-1.2.0/openbb_core/provider/standard_models/equity_quote.py +0 -46
  241. openbb_core-1.2.0/openbb_core/provider/standard_models/european_index_constituents.py +0 -50
  242. openbb_core-1.2.0/openbb_core/provider/standard_models/european_indices.py +0 -44
  243. openbb_core-1.2.0/openbb_core/provider/standard_models/executive_compensation.py +0 -64
  244. openbb_core-1.2.0/openbb_core/provider/standard_models/financial_ratios.py +0 -190
  245. openbb_core-1.2.0/openbb_core/provider/standard_models/income_statement.py +0 -156
  246. openbb_core-1.2.0/openbb_core/provider/standard_models/index_constituents.py +0 -56
  247. openbb_core-1.2.0/openbb_core/provider/standard_models/insider_trading.py +0 -87
  248. openbb_core-1.2.0/openbb_core/provider/standard_models/latest_attributes.py +0 -24
  249. openbb_core-1.2.0/openbb_core/provider/standard_models/price_target.py +0 -62
  250. openbb_core-1.2.0/openbb_core/provider/standard_models/recent_performance.py +0 -46
  251. openbb_core-1.2.0/openbb_core/provider/standard_models/revenue_geographic.py +0 -58
  252. openbb_core-1.2.0/openbb_core/provider/standard_models/sector_news.py +0 -44
  253. openbb_core-1.2.0/openbb_core/provider/standard_models/sp500_multiples.py +0 -72
  254. openbb_core-1.2.0/openbb_core/provider/standard_models/treasury_prices.py +0 -51
  255. openbb_core-1.2.0/openbb_core/provider/standard_models/treasury_rates.py +0 -45
  256. openbb_core-1.2.0/openbb_core/provider/standard_models/world_news.py +0 -39
  257. {openbb_core-1.2.0 → openbb_core-1.2.2}/README.md +0 -0
  258. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/api/dependency/coverage.py +0 -0
  259. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/api/dependency/system.py +0 -0
  260. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/api/router/helpers/__init__.py +0 -0
  261. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/api/router/user.py +0 -0
  262. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/abstract/__init__.py +0 -0
  263. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/py.typed +0 -0
  264. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/__init__.py +0 -0
  265. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/balance_of_payments.py +0 -0
  266. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/cot.py +0 -0
  267. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/currency_reference_rates.py +0 -0
  268. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/discovery_filings.py +0 -0
  269. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/etf_holdings_date.py +0 -0
  270. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/etf_search.py +0 -0
  271. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/fred_search.py +0 -0
  272. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/index_search.py +0 -0
  273. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/industry_pe.py +0 -0
  274. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/iorb_rates.py +0 -0
  275. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/market_movers.py +0 -0
  276. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/search_attributes.py +0 -0
  277. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/search_financial_attributes.py +0 -0
  278. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/sector_pe.py +0 -0
  279. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/sector_performance.py +0 -0
  280. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/top_retail.py +0 -0
  281. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/upcoming_release_days.py +0 -0
  282. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/standard_models/us_yield_curve.py +0 -0
  283. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/utils/__init__.py +0 -0
  284. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/provider/utils/errors.py +0 -0
  285. {openbb_core-1.2.0 → openbb_core-1.2.2}/openbb_core/py.typed +0 -0
@@ -1,26 +1,29 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: openbb-core
3
- Version: 1.2.0
3
+ Version: 1.2.2
4
4
  Summary: OpenBB package with core functionality
5
+ License: AGPL-3.0-only
5
6
  Author: OpenBB Team
6
7
  Author-email: hello@openbb.co
7
8
  Requires-Python: >=3.8,<4.0
9
+ Classifier: License :: OSI Approved :: GNU Affero General Public License v3
8
10
  Classifier: Programming Language :: Python :: 3
9
11
  Classifier: Programming Language :: Python :: 3.8
10
12
  Classifier: Programming Language :: Python :: 3.9
11
13
  Classifier: Programming Language :: Python :: 3.10
12
14
  Classifier: Programming Language :: Python :: 3.11
13
15
  Classifier: Programming Language :: Python :: 3.12
14
- Requires-Dist: aiohttp (>=3.9.0,<4.0.0)
15
- Requires-Dist: fastapi (>=0.104.1,<0.105.0)
16
+ Requires-Dist: aiohttp (>=3.9.5,<4.0.0)
17
+ Requires-Dist: anyio (>=3.7.0,<4.0.0)
18
+ Requires-Dist: fastapi (>=0.111.0,<0.112.0)
16
19
  Requires-Dist: html5lib (>=1.1,<2.0)
17
20
  Requires-Dist: importlib-metadata (>=6.8.0,<7.0.0)
18
21
  Requires-Dist: pandas (>=1.5.3)
19
- Requires-Dist: posthog (>=3.0.1,<4.0.0)
22
+ Requires-Dist: posthog (>=3.3.1,<4.0.0)
20
23
  Requires-Dist: pydantic (>=2.5.1,<3.0.0)
24
+ Requires-Dist: pyjwt (>=2.8.0,<3.0.0)
21
25
  Requires-Dist: python-dotenv (>=1.0.0,<2.0.0)
22
- Requires-Dist: python-jose (>=3.3.0,<4.0.0)
23
- Requires-Dist: python-multipart (>=0.0.6,<0.0.7)
26
+ Requires-Dist: python-multipart (>=0.0.7,<0.0.8)
24
27
  Requires-Dist: requests (>=2.31.0,<3.0.0)
25
28
  Requires-Dist: ruff (>=0.1.6,<0.2.0)
26
29
  Requires-Dist: uuid7 (>=0.1.0,<0.2.0)
@@ -0,0 +1 @@
1
+ """OpenBB Core."""
@@ -0,0 +1,36 @@
1
+ """App loader module."""
2
+
3
+ from typing import List, Optional
4
+
5
+ from fastapi import APIRouter, FastAPI
6
+ from openbb_core.app.router import RouterLoader
7
+
8
+
9
+ class AppLoader:
10
+ """App loader."""
11
+
12
+ @staticmethod
13
+ def get_openapi_tags() -> List[dict]:
14
+ """Get openapi tags."""
15
+ main_router = RouterLoader.from_extensions()
16
+ openapi_tags = []
17
+ # Add tag data for each router in the main router
18
+ for r in main_router.routers:
19
+ openapi_tags.append(
20
+ {
21
+ "name": r,
22
+ "description": main_router.get_attr(r, "description"),
23
+ }
24
+ )
25
+ return openapi_tags
26
+
27
+ @staticmethod
28
+ def from_routers(
29
+ app: FastAPI, routers: List[Optional[APIRouter]], prefix: str
30
+ ) -> FastAPI:
31
+ """Load routers to app."""
32
+ for router in routers:
33
+ if router:
34
+ app.include_router(router=router, prefix=prefix)
35
+
36
+ return app
@@ -1,3 +1,5 @@
1
+ """User authentication."""
2
+
1
3
  import secrets
2
4
  from typing import Optional
3
5
 
@@ -15,7 +17,6 @@ async def authenticate_user(
15
17
  credentials: Annotated[Optional[HTTPBasicCredentials], Depends(security)]
16
18
  ):
17
19
  """Authenticate the user."""
18
-
19
20
  if credentials:
20
21
  username = Env().API_USERNAME
21
22
  password = Env().API_PASSWORD
@@ -0,0 +1 @@
1
+ """OpenBB Core API Dependency."""
@@ -1,4 +1,5 @@
1
1
  """REST API for the OpenBB Platform."""
2
+
2
3
  import logging
3
4
  from contextlib import asynccontextmanager
4
5
 
@@ -66,18 +67,20 @@ app = FastAPI(
66
67
  ],
67
68
  lifespan=lifespan,
68
69
  )
69
-
70
70
  app.add_middleware(
71
71
  CORSMiddleware,
72
72
  allow_origins=system.api_settings.cors.allow_origins,
73
73
  allow_methods=system.api_settings.cors.allow_methods,
74
74
  allow_headers=system.api_settings.cors.allow_headers,
75
75
  )
76
+ app.openapi_tags = AppLoader.get_openapi_tags()
76
77
  AppLoader.from_routers(
77
78
  app=app,
78
- routers=[AuthService().router, router_system, router_coverage, router_commands]
79
- if Env().DEV_MODE
80
- else [router_commands],
79
+ routers=(
80
+ [AuthService().router, router_system, router_coverage, router_commands]
81
+ if Env().DEV_MODE
82
+ else [router_commands]
83
+ ),
81
84
  prefix=system.api_settings.prefix,
82
85
  )
83
86
 
@@ -85,6 +88,9 @@ AppLoader.from_routers(
85
88
  @app.exception_handler(Exception)
86
89
  async def api_exception_handler(_: Request, exc: Exception):
87
90
  """Exception handler for all other exceptions."""
91
+ if Env().DEBUG_MODE:
92
+ raise exc
93
+ logger.error(exc)
88
94
  return JSONResponse(
89
95
  status_code=404,
90
96
  content={
@@ -97,6 +103,9 @@ async def api_exception_handler(_: Request, exc: Exception):
97
103
  @app.exception_handler(OpenBBError)
98
104
  async def openbb_exception_handler(_: Request, exc: OpenBBError):
99
105
  """Exception handler for OpenBB errors."""
106
+ if Env().DEBUG_MODE:
107
+ raise exc
108
+ logger.error(exc.original)
100
109
  openbb_error = exc.original
101
110
  status_code = 400 if "No results" in str(openbb_error) else 500
102
111
  return JSONResponse(
@@ -0,0 +1 @@
1
+ """OpenBB Core API Router."""
@@ -1,11 +1,12 @@
1
+ """Commands: generates the command map."""
2
+
1
3
  import inspect
2
4
  from functools import partial, wraps
3
5
  from inspect import Parameter, Signature, signature
4
- from typing import Any, Callable, Dict, Tuple, TypeVar
6
+ from typing import Any, Callable, Dict, Optional, Tuple, TypeVar
5
7
 
6
- from fastapi import APIRouter, Depends
8
+ from fastapi import APIRouter, Depends, Header
7
9
  from fastapi.routing import APIRoute
8
- from openbb_core.app.charting_service import ChartingService
9
10
  from openbb_core.app.command_runner import CommandRunner
10
11
  from openbb_core.app.model.command_context import CommandContext
11
12
  from openbb_core.app.model.obbject import OBBject
@@ -18,6 +19,13 @@ from openbb_core.env import Env
18
19
  from pydantic import BaseModel
19
20
  from typing_extensions import Annotated, ParamSpec
20
21
 
22
+ try:
23
+ from openbb_charting import Charting
24
+
25
+ CHARTING_INSTALLED = True
26
+ except ImportError:
27
+ CHARTING_INSTALLED = False
28
+
21
29
  T = TypeVar("T")
22
30
  P = ParamSpec("P")
23
31
 
@@ -43,11 +51,16 @@ def build_new_signature(path: str, func: Callable) -> Signature:
43
51
  parameter_list = sig.parameters.values()
44
52
  return_annotation = sig.return_annotation
45
53
  new_parameter_list = []
46
-
47
- for parameter in parameter_list:
54
+ var_kw_pos = len(parameter_list)
55
+ for pos, parameter in enumerate(parameter_list):
48
56
  if parameter.name == "cc" and parameter.annotation == CommandContext:
49
57
  continue
50
58
 
59
+ if parameter.kind == Parameter.VAR_KEYWORD:
60
+ # We track VAR_KEYWORD parameter to insert the any additional
61
+ # parameters we need to add before it and avoid a SyntaxError
62
+ var_kw_pos = pos
63
+
51
64
  new_parameter_list.append(
52
65
  Parameter(
53
66
  parameter.name,
@@ -57,21 +70,36 @@ def build_new_signature(path: str, func: Callable) -> Signature:
57
70
  )
58
71
  )
59
72
 
60
- if (
61
- path.replace("/", "_")[1:]
62
- in ChartingService.get_implemented_charting_functions()
63
- ):
64
- new_parameter_list.append(
73
+ if CHARTING_INSTALLED and path.replace("/", "_")[1:] in Charting.functions():
74
+ new_parameter_list.insert(
75
+ var_kw_pos,
65
76
  Parameter(
66
77
  "chart",
67
78
  kind=Parameter.POSITIONAL_OR_KEYWORD,
68
79
  default=False,
69
80
  annotation=bool,
70
- )
81
+ ),
71
82
  )
83
+ var_kw_pos += 1
84
+
85
+ if custom_headers := SystemService().system_settings.api_settings.custom_headers:
86
+ for name, default in custom_headers.items():
87
+ new_parameter_list.insert(
88
+ var_kw_pos,
89
+ Parameter(
90
+ name.replace("-", "_"),
91
+ kind=Parameter.POSITIONAL_OR_KEYWORD,
92
+ default=default,
93
+ annotation=Annotated[
94
+ Optional[str], Header(include_in_schema=False)
95
+ ],
96
+ ),
97
+ )
98
+ var_kw_pos += 1
72
99
 
73
100
  if Env().API_AUTH:
74
- new_parameter_list.append(
101
+ new_parameter_list.insert(
102
+ var_kw_pos,
75
103
  Parameter(
76
104
  "__authenticated_user_settings",
77
105
  kind=Parameter.POSITIONAL_OR_KEYWORD,
@@ -79,8 +107,9 @@ def build_new_signature(path: str, func: Callable) -> Signature:
79
107
  annotation=Annotated[
80
108
  UserSettings, Depends(AuthService().user_settings_hook)
81
109
  ],
82
- )
110
+ ),
83
111
  )
112
+ var_kw_pos += 1
84
113
 
85
114
  return Signature(
86
115
  parameters=new_parameter_list,
@@ -91,6 +120,7 @@ def build_new_signature(path: str, func: Callable) -> Signature:
91
120
  def validate_output(c_out: OBBject) -> OBBject:
92
121
  """
93
122
  Validate OBBject object.
123
+
94
124
  Checks against the OBBject schema and removes fields that contain the
95
125
  `exclude_from_api` extra `pydantic.Field` kwarg.
96
126
  Note that the modification to the `OBBject` object is done in-place.
@@ -102,8 +132,8 @@ def validate_output(c_out: OBBject) -> OBBject:
102
132
 
103
133
  Returns
104
134
  -------
105
- OBBject
106
- Validated OBBject object.
135
+ Dict
136
+ Serialized OBBject.
107
137
  """
108
138
 
109
139
  def is_model(type_):
@@ -115,25 +145,32 @@ def validate_output(c_out: OBBject) -> OBBject:
115
145
  json_schema_extra = field.json_schema_extra if field else None
116
146
 
117
147
  # case where 1st layer field needs to be excluded
118
- if json_schema_extra and json_schema_extra.get("exclude_from_api", None):
148
+ if (
149
+ json_schema_extra
150
+ and isinstance(json_schema_extra, dict)
151
+ and json_schema_extra.get("exclude_from_api", None)
152
+ ):
119
153
  delattr(c_out, key)
120
154
 
121
155
  # if it's a model with nested fields
122
156
  elif is_model(type_):
123
157
  for field_name, field in type_.__fields__.items():
124
- if field.json_schema_extra and field.json_schema_extra.get(
125
- "exclude_from_api", None
158
+ extra = getattr(field, "json_schema_extra", None)
159
+ if (
160
+ extra
161
+ and isinstance(extra, dict)
162
+ and extra.get("exclude_from_api", None)
126
163
  ):
127
164
  delattr(value, field_name)
128
165
 
129
166
  # if it's a yet a nested model we need to go deeper in the recursion
130
- elif is_model(field.annotation):
167
+ elif is_model(getattr(field, "annotation", None)):
131
168
  exclude_fields_from_api(field_name, getattr(value, field_name))
132
169
 
133
170
  for k, v in c_out.model_copy():
134
171
  exclude_fields_from_api(k, v)
135
172
 
136
- return c_out.model_dump()
173
+ return c_out
137
174
 
138
175
 
139
176
  def build_api_wrapper(
@@ -151,7 +188,7 @@ def build_api_wrapper(
151
188
  func.__annotations__ = new_annotations_map
152
189
 
153
190
  @wraps(wrapped=func)
154
- async def wrapper(*args: Tuple[Any], **kwargs: Dict[str, Any]):
191
+ async def wrapper(*args: Tuple[Any], **kwargs: Dict[str, Any]) -> OBBject:
155
192
  user_settings: UserSettings = UserSettings.model_validate(
156
193
  kwargs.pop(
157
194
  "__authenticated_user_settings",
@@ -161,8 +198,7 @@ def build_api_wrapper(
161
198
  execute = partial(command_runner.run, path, user_settings)
162
199
  output: OBBject = await execute(*args, **kwargs)
163
200
 
164
- output = validate_output(output)
165
- return output
201
+ return validate_output(output)
166
202
 
167
203
  return wrapper
168
204
 
@@ -1,4 +1,5 @@
1
1
  """Coverage API router."""
2
+
2
3
  from fastapi import APIRouter, Depends
3
4
  from openbb_core.api.dependency.coverage import get_command_map, get_provider_interface
4
5
  from openbb_core.app.provider_interface import ProviderInterface
@@ -1,4 +1,5 @@
1
1
  """Coverage API router helper functions."""
2
+
2
3
  from inspect import _empty, signature
3
4
  from typing import TYPE_CHECKING, Any, Callable, Dict, Optional, Tuple, Type
4
5
 
@@ -1,4 +1,5 @@
1
1
  """System router."""
2
+
2
3
  from fastapi import APIRouter, Depends
3
4
  from openbb_core.api.dependency.system import get_system_settings
4
5
  from openbb_core.app.model.system_settings import SystemSettings
@@ -0,0 +1 @@
1
+ """OpenBB Core App Module."""