Skip to content

Commit

Permalink
Fix bugs in the provider models and standard models (#5427)
Browse files Browse the repository at this point in the history
* added `StockNews` to yfinance

* make `symbol` optional in `IncomeStaementData`

* added financial statements

* intrinio provider package init

* added `StockEOD` model

* added `ForexPairs` model

* added `StockNews` model

* added `GlobalNews` model

* added Fetchers for models

* static files

* cleanup

* fetch all pages in intrinio

* static

* refactored `StockQuote` standard model

* refactored `StockQuote` fmp model

* added `StockQuote` for Intrinio

* static files

* Adding AV and StockEOD (#5365)

* boilerplate for av provider

* adding stock eod for av

* ruff n black

* changing available functions for better ux

* docstring

* move debug_mode out of system settings (#5366)

* move debug_mode out of system settings

* Update router.py

* update readme with debug mode

* dev_mode hub service + openbb_ namespace to Env

* update readme

* copy env to avoid problems w global state

* Linting

* rebuild python interface + fix py38

* Add @classproperty to fetcher for nested return types (#5371)

* add classproperty to fetcher and cpi.py

* type var bound

* validate model in registry map

* better exception msg

* fix fred mypy and add data_type

* typo

* specific model validation

* specific model validation

* reformat error msg

* better

* msg

* add black & ruff to core deps

* supress linter errors if not debug mode

* pylint + regen fixedincome

* py38 compat

* fix bug getting provider for placeholder cmds + ruff

* Revert "fix bug getting provider for placeholder cmds + ruff"

This reverts commit 1328c0b.

* ruff

* avoid bug for placeholder and no provider

* expose available providers in provider interface

* poetry toml to match ci ruff version

* first we ruff and then we black

* add back noqa: E501 to docstrings inside package

* use singleton for provider interface: same functionality (#5372)

* use singleton for provider interface: same functionality

* ruff

* docstring typo

* update readme with tuna reference

* move to correct readme

* Merge

* Some error handling (#5357)

* Removed prints (#5367)

* Removed prints

* FIxed typing

* FIxed typing

* Fixed typing

* Fixed typing

* Fixed typing

* Fixed typing

* Fixed typing

* Fix

* Reverted stuff

* Feature/move package (#5374)

* move package to openbb_sdk

* avoid test writing files

* black

* revert toml changes, will do it in another PR

* run build in a separate process

* change error msg

* rename func

* change msg

* rename func + msg

* change param name

* update readme

* lazy load some deps

* Update README.md

* modules is better

* doc

* ruff

* pylint

* fix autocomplete (#5383)

* Core tests (#5375)

* makeing the function easier - @montezdesousa pls review this commit

* improve update_provider_choices readbility

* unncessary classmethod

* command runner tests

* fixing wrong attribution

* some tests for the charting manager

* changing fetcher and models to have a shorter name

* @the-prax suggestions

* fixing references to av

* making function a private fild so the user don't access it

* unbreaking changes

* Improve snake_case generation

* adding av to pyproject.toml

* stating the function as a private field while keeping validation for function specific fields

---------

Co-authored-by: montezdesousa <[email protected]>
Co-authored-by: Diogo Sousa <[email protected]>
Co-authored-by: Igor Radovanovic <[email protected]>
Co-authored-by: Colin Delahunty <[email protected]>

* Rename EOD to Historical in code and files (#5395)

* rename EOD to Historical in providers

* renamed EOD to Historical in sdk/provider

* rename _eod to _historical in standard_models

* rename _eod to _historical in providers directory

* cleanup

* rename EOD to Historical in extensions

* static

* Revert "rename EOD to Historical in extensions"

* rename EOD to Historical in relevant extensions

* fix spelling in init

* static

* linting

* intrinio y u alone

* so sorry intrinio

* static

* ruff

---------

Co-authored-by: hjoaquim <[email protected]>

* feature/quandl-provider: Add Quandl provider to SDK-V4 (#5339)

* adds futures term structure from cboe

* Linting

* error handling for empty response

* codespell

* rename term_structure --> curve

* unused imports

* Improve import speed for CBOE

* add quandl provider

* doc strings

* black

* moves series id definitions to a separate file

* black

* add pandas dependency

* fix pyproject.toml

* refactor to load nothing on runtime

* black

* futures_curve model

* fix docstring

* static directory file no longer needed

* helper for european index constituents

* remove abstract request function which gets rid of Numpy import

* remove Numpy from dependencies

* add Europe class to helpers and European index data

* symbol.upper()

* add european_index to economy module

* add US indices in

* adds cboe as provider for major_indices_eod

* enforce snake_case for FMP columns

* add

* fix FMP non-intraday

* add european_index_constituents

* black

* update docstring in economy_router

* add cot_search() and makes helper function for querying the Commitment of Traders Reports

* refactor quandl

* docstring

* refactor cboe provider

* black

* merge feature/openbb-sdk-v4 into branch

* add Intrinio options chains

* codespell exception

* remove manual camelCase conversion in FMP StockEOD and MajorIndicesEOD

* fix polygon - MajorIndicesEOD

* fix FMP intraday stripping the time

* more codespell

* put validators back - fmp

* enhance yFinance indices

* timestamp to str

* yahoo index - empty no breaky

---------

Co-authored-by: Igor Radovanovic <[email protected]>
Co-authored-by: James Maslek <[email protected]>
Co-authored-by: Pratyush Shukla <[email protected]>

* hotfix intrinio

* better cboe stock_info error handling

* fix merge

* handling for if ^ in symbol

* make alpha_vantage work

* fix yfinance intraday - stock historical

* fix yfinance major_indices_historical

* fix yfinance crypto_historical

* fix yfinance forex_historical

* fix yfinance crypto and forex

* economy router and package rebuild

* black

* add multi-ticker support for cboe stock_historical

* use yf_download for crypto and forex instead of yf(Ticker).history()

* potentially allow multiple tickers

* feature/sdk v4 bug fixes - Fixing some bugs (#5401)

* added `StockNews` to yfinance

* make `symbol` optional in `IncomeStaementData`

* added financial statements

* intrinio provider package init

* added `StockEOD` model

* added `ForexPairs` model

* added `StockNews` model

* added `GlobalNews` model

* added Fetchers for models

* static files

* cleanup

* fetch all pages in intrinio

* static

* refactored `StockQuote` standard model

* refactored `StockQuote` fmp model

* added `StockQuote` for Intrinio

* static files

* Adding AV and StockEOD (#5365)

* boilerplate for av provider

* adding stock eod for av

* ruff n black

* changing available functions for better ux

* docstring

* move debug_mode out of system settings (#5366)

* move debug_mode out of system settings

* Update router.py

* update readme with debug mode

* dev_mode hub service + openbb_ namespace to Env

* update readme

* copy env to avoid problems w global state

* Linting

* rebuild python interface + fix py38

* Add @classproperty to fetcher for nested return types (#5371)

* add classproperty to fetcher and cpi.py

* type var bound

* validate model in registry map

* better exception msg

* fix fred mypy and add data_type

* typo

* specific model validation

* specific model validation

* reformat error msg

* better

* msg

* add black & ruff to core deps

* supress linter errors if not debug mode

* pylint + regen fixedincome

* py38 compat

* fix bug getting provider for placeholder cmds + ruff

* Revert "fix bug getting provider for placeholder cmds + ruff"

This reverts commit 1328c0b.

* ruff

* avoid bug for placeholder and no provider

* expose available providers in provider interface

* poetry toml to match ci ruff version

* first we ruff and then we black

* add back noqa: E501 to docstrings inside package

* use singleton for provider interface: same functionality (#5372)

* use singleton for provider interface: same functionality

* ruff

* docstring typo

* update readme with tuna reference

* move to correct readme

* Merge

* Some error handling (#5357)

* Removed prints (#5367)

* Removed prints

* FIxed typing

* FIxed typing

* Fixed typing

* Fixed typing

* Fixed typing

* Fixed typing

* Fixed typing

* Fix

* Reverted stuff

* Feature/move package (#5374)

* move package to openbb_sdk

* avoid test writing files

* black

* revert toml changes, will do it in another PR

* run build in a separate process

* change error msg

* rename func

* change msg

* rename func + msg

* change param name

* update readme

* lazy load some deps

* Update README.md

* modules is better

* doc

* ruff

* pylint

* fix autocomplete (#5383)

* Core tests (#5375)

* makeing the function easier - @montezdesousa pls review this commit

* improve update_provider_choices readbility

* unncessary classmethod

* command runner tests

* fixing wrong attribution

* some tests for the charting manager

* changing fetcher and models to have a shorter name

* @the-prax suggestions

* fixing references to av

* making function a private fild so the user don't access it

* unbreaking changes

* Improve snake_case generation

* adding av to pyproject.toml

* stating the function as a private field while keeping validation for function specific fields

---------

Co-authored-by: montezdesousa <[email protected]>
Co-authored-by: Diogo Sousa <[email protected]>
Co-authored-by: Igor Radovanovic <[email protected]>
Co-authored-by: Colin Delahunty <[email protected]>

* Rename EOD to Historical in code and files (#5395)

* rename EOD to Historical in providers

* renamed EOD to Historical in sdk/provider

* rename _eod to _historical in standard_models

* rename _eod to _historical in providers directory

* cleanup

* rename EOD to Historical in extensions

* static

* Revert "rename EOD to Historical in extensions"

* rename EOD to Historical in relevant extensions

* fix spelling in init

* static

* linting

* intrinio y u alone

* so sorry intrinio

* static

* ruff

---------

Co-authored-by: hjoaquim <[email protected]>

* feature/quandl-provider: Add Quandl provider to SDK-V4 (#5339)

* adds futures term structure from cboe

* Linting

* error handling for empty response

* codespell

* rename term_structure --> curve

* unused imports

* Improve import speed for CBOE

* add quandl provider

* doc strings

* black

* moves series id definitions to a separate file

* black

* add pandas dependency

* fix pyproject.toml

* refactor to load nothing on runtime

* black

* futures_curve model

* fix docstring

* static directory file no longer needed

* helper for european index constituents

* remove abstract request function which gets rid of Numpy import

* remove Numpy from dependencies

* add Europe class to helpers and European index data

* symbol.upper()

* add european_index to economy module

* add US indices in

* adds cboe as provider for major_indices_eod

* enforce snake_case for FMP columns

* add

* fix FMP non-intraday

* add european_index_constituents

* black

* update docstring in economy_router

* add cot_search() and makes helper function for querying the Commitment of Traders Reports

* refactor quandl

* docstring

* refactor cboe provider

* black

* merge feature/openbb-sdk-v4 into branch

* add Intrinio options chains

* codespell exception

* remove manual camelCase conversion in FMP StockEOD and MajorIndicesEOD

* fix polygon - MajorIndicesEOD

* fix FMP intraday stripping the time

* more codespell

* put validators back - fmp

* enhance yFinance indices

* timestamp to str

* yahoo index - empty no breaky

---------

Co-authored-by: Igor Radovanovic <[email protected]>
Co-authored-by: James Maslek <[email protected]>
Co-authored-by: Pratyush Shukla <[email protected]>

* hotfix intrinio

* better cboe stock_info error handling

* fix merge

* handling for if ^ in symbol

* make alpha_vantage work

* fix yfinance intraday - stock historical

* fix yfinance major_indices_historical

* fix yfinance crypto_historical

* fix yfinance forex_historical

* fix yfinance crypto and forex

* economy router and package rebuild

* black

* add multi-ticker support for cboe stock_historical

* use yf_download for crypto and forex instead of yf(Ticker).history()

* potentially allow multiple tickers

---------

Co-authored-by: Pratyush Shukla <[email protected]>
Co-authored-by: hjoaquim <[email protected]>
Co-authored-by: montezdesousa <[email protected]>
Co-authored-by: Diogo Sousa <[email protected]>
Co-authored-by: Igor Radovanovic <[email protected]>
Co-authored-by: Colin Delahunty <[email protected]>
Co-authored-by: James Maslek <[email protected]>

* no reset index on yfinance crypto/forex

* added missing index search

* `stock_info` removed merge symbols

* static

* `\%` to `%` in FMP historical models

* removed fields

* set `period` and `cik` to `Optional`

* fix yfinance financial statements

* cleaned duplicate code

* static

* static

* fixed yfinance stock news

* improved yfinance stock news

* cleanup

* set `date` field type to `datetime` (again)

* add date validator

* `BaseSymbol` eliminated

* linting

* Add Quandl functions to economy router

* YFinance Statement Bugs

* Fix/provider-bugs-intrinio: fix bad API key response for options symbols (#5419)

* fix bad api key response for symbol directory

* move model functions into Fetcher class as static methods

* make ruff and black play together

* description fix

* move options tickers and expirations to helpers

* vw->vwap

* Remove confusing columns in cpi model

* `news.globalnews` has `limit` set as standardized param

* intrinio stocks historical fetch data robustly

* fix too many .reset_index()

* ruff

* fixed standardization

* cleanup

* `stocks.news` params standardized

* polygon `StockNews` model revamped

* intrinio `StockNews` model params standardized

* `link` and `final_link` set as `Optional` to fix validation errors

* benzinga cleanup

* linting

* set `type` to `Optional`

* removed extra cash_flow file

* `FinancialStatementQueryParams` eliminated

* Polygon `StockHistorical` returns all results

* `PolygonFundamentalQueryParams` eliminated

* Added source in doc

* `^` needed in symbol for FMP

* fix validation error for negative eps values

* change to latest v2 params

* correct descriptions

* removed `stocks.dd` and moved `sec` to `fa`

* `obb.news.globalnews` revamped

* `stocks.news` revamped

* `list` to `List`

* adding List instead of list

* `options.chains` Intrinio cleanup and standardization

* linting

* cleanup intrinio

* static

* bump package versions

* fixed date validation errors for yfinance

* YFinance updates

* Fix FMP tests

* Fix Intrinio

* Re-record Benzinga

* Fix Polygon fetchers and tests

* Re-record and fix CBOE

* Re-record and fix Quandl

* Some FMP fixes and hardcoded tests

* fmp stock ownership refactor and fix test

* fix fmp treasury rate `transform_query` to pass test

* fix fmp dividend calendar `transform_query` to pass test

* fix fmp historical models `transform_query` to pass test

* Fix Polygon fetchers and tests

* Fix Intrinio test and fetcher

* Re-record and fix YFinance

* Fred

* Update test generator

* CBOE cleanup

* Fix tests (again)

* static

* fix more tests

* fix yfinance tests

---------

Co-authored-by: hjoaquim <[email protected]>
Co-authored-by: montezdesousa <[email protected]>
Co-authored-by: Diogo Sousa <[email protected]>
Co-authored-by: Igor Radovanovic <[email protected]>
Co-authored-by: Colin Delahunty <[email protected]>
Co-authored-by: Danglewood <[email protected]>
Co-authored-by: James Maslek <[email protected]>
  • Loading branch information
8 people authored Sep 19, 2023
1 parent 848edee commit 6ed837d
Show file tree
Hide file tree
Showing 222 changed files with 34,913 additions and 20,271 deletions.
55 changes: 55 additions & 0 deletions openbb_sdk/extensions/economy/openbb_economy/economy_router.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,3 +93,58 @@ def risk(
) -> OBBject[BaseModel]:
"""Market Risk Premium."""
return OBBject(results=Query(**locals()).execute())


@router.command(model="IndexSearch")
def index_search(
cc: CommandContext,
provider_choices: ProviderChoices,
standard_params: StandardParams,
extra_params: ExtraParams,
) -> OBBject[BaseModel]:
"""Search for indices."""
return OBBject(results=Query(**locals()).execute())


@router.command(model="IndexSnapshots")
def index_snapshots(
cc: CommandContext,
provider_choices: ProviderChoices,
standard_params: StandardParams,
extra_params: ExtraParams,
) -> OBBject[BaseModel]:
"""Get current levels for all indices from a provider."""
return OBBject(results=Query(**locals()).execute())


@router.command(model="COTSearch")
def cot_search(
cc: CommandContext,
provider_choices: ProviderChoices,
standard_params: StandardParams,
extra_params: ExtraParams,
) -> OBBject[BaseModel]:
"""Fuzzy search and list of curated Commitment of Traders Reports series information."""
return OBBject(results=Query(**locals()).execute())


@router.command(model="COT")
def cot(
cc: CommandContext,
provider_choices: ProviderChoices,
standard_params: StandardParams,
extra_params: ExtraParams,
) -> OBBject[BaseModel]:
"""Lookup Commitment of Traders Reports by series ID."""
return OBBject(results=Query(**locals()).execute())


@router.command(model="SP500Multiples")
def sp500_multiples(
cc: CommandContext,
provider_choices: ProviderChoices,
standard_params: StandardParams,
extra_params: ExtraParams,
) -> OBBject[BaseModel]:
"""Historical S&P 500 multiples and Shiller PE ratios."""
return OBBject(results=Query(**locals()).execute())
Empty file.
26 changes: 0 additions & 26 deletions openbb_sdk/extensions/stocks/openbb_stocks/dd/dd_router.py

This file was deleted.

11 changes: 11 additions & 0 deletions openbb_sdk/extensions/stocks/openbb_stocks/fa/fa_router.py
Original file line number Diff line number Diff line change
Expand Up @@ -279,6 +279,17 @@ def revseg(
return OBBject(results=Query(**locals()).execute())


@router.command(model="SECFilings")
def sec(
cc: CommandContext,
provider_choices: ProviderChoices,
standard_params: StandardParams,
extra_params: ExtraParams,
) -> OBBject[BaseModel]:
"""SEC Filings."""
return OBBject(results=Query(**locals()).execute())


@router.command(model="ShareStatistics")
def shrs(
cc: CommandContext,
Expand Down
2 changes: 0 additions & 2 deletions openbb_sdk/extensions/stocks/openbb_stocks/stocks_router.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
from pydantic import BaseModel

from openbb_stocks.ca.ca_router import router as ca_router
from openbb_stocks.dd.dd_router import router as dd_router
from openbb_stocks.fa.fa_router import router as fa_router
from openbb_stocks.options.options_router import router as options_router

Expand All @@ -27,7 +26,6 @@
router = Router(prefix="")
router.include_router(fa_router)
router.include_router(ca_router)
router.include_router(dd_router)
router.include_router(options_router)

# router.include_router(dps_router)
Expand Down
2 changes: 1 addition & 1 deletion openbb_sdk/extensions/stocks/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "openbb-stocks"
version = "0.1.0a0"
version = "0.1.0a1"
description = "Stocks extension for OpenBB"
authors = ["OpenBB Team <[email protected]>"]
readme = "README.md"
Expand Down
16 changes: 5 additions & 11 deletions openbb_sdk/openbb/package/crypto.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,16 +67,10 @@ def load(
Whether the data is adjusted. (provider: polygon)
multiplier : PositiveInt
Multiplier of the timespan. (provider: polygon)
interval : Union[Literal['1m', '2m', '5m', '15m', '30m', '60m', '90m', '1h', '1d', '5d', '1wk', '1mo', '3mo'], None]
interval : Literal['1m', '2m', '5m', '15m', '30m', '60m', '90m', '1h', '1d', '5d', '1wk', '1mo', '3mo']
Data granularity. (provider: yfinance)
period : Union[Literal['1d', '5d', '1mo', '3mo', '6mo', '1y', '2y', '5y', '10y', 'ytd', 'max'], None]
period : Literal['1d', '5d', '1mo', '3mo', '6mo', '1y', '2y', '5y', '10y', 'ytd', 'max']
Period of the data to return. (provider: yfinance)
prepost : bool
Include Pre and Post market data. (provider: yfinance)
adjust : bool
Adjust all the data automatically. (provider: yfinance)
back_adjust : bool
Back-adjusted data to mimic true historical prices. (provider: yfinance)
Returns
-------
Expand All @@ -94,7 +88,7 @@ def load(
CryptoHistorical
----------------
date : Optional[datetime]
date : Union[date, datetime]
The date of the data.
open : Optional[PositiveFloat]
The open price of the symbol.
Expand All @@ -115,11 +109,11 @@ def load(
change : Optional[float]
Change in the price of the symbol from the previous day. (provider: fmp)
change_percent : Optional[float]
Change \\% in the price of the symbol. (provider: fmp)
Change % in the price of the symbol. (provider: fmp)
label : Optional[str]
Human readable format of the date. (provider: fmp)
change_over_time : Optional[float]
Change \\% in the price of the symbol over a period of time. (provider: fmp)
Change % in the price of the symbol over a period of time. (provider: fmp)
n : Optional[PositiveInt]
Number of transactions for the symbol in the time period. (provider: polygon)
""" # noqa: E501
Expand Down
Loading

0 comments on commit 6ed837d

Please sign in to comment.