Editing the SDK functions (#3723)

* etf compare into sdk

* docstring + #3510

* #3712

* Add stats to sdk + isort folder

* Add filter function

* add 10 insider functions

* add new fa models

* update equity.ipynb
This commit is contained in:
James Maslek
2022-12-15 14:00:29 -05:00
committed by GitHub
parent a57cb04eb1
commit 4266c69239
10 changed files with 279 additions and 19 deletions

View File

@@ -122,6 +122,11 @@ def compare_etfs(symbols: List[str]) -> pd.DataFrame:
-------
df_compare : pd.DataFrame
Dataframe of etf comparisons
Examples
--------
>>> from openbb_terminal.sdk import openbb
>>> compare_etfs = openbb.etf.compare(["SPY", "QQQ", "IWM"])
"""
df_compare = pd.DataFrame()

View File

@@ -277,6 +277,7 @@ etf.overview,openbb_terminal.etf.stockanalysis_model.get_etf_overview,
etf.etf_by_name,openbb_terminal.etf.stockanalysis_model.get_etfs_by_name,
etf.weights,openbb_terminal.etf.yfinance_model.get_etf_sector_weightings,
etf.summary,openbb_terminal.etf.yfinance_model.get_etf_summary_description,
etf.compare,openbb_terminal.etf.stockanalysis_model.compare_etfs,
forex.get_currency_list,openbb_terminal.forex.av_model.get_currency_list,
forex.quote,openbb_terminal.forex.sdk_helpers.quote,
forex.fwd,openbb_terminal.forex.fxempire_model.get_forward_rates,
@@ -398,7 +399,7 @@ stocks.fa.fama_raw,openbb_terminal.stocks.fundamental_analysis.dcf_model.get_fam
stocks.fa.historical_5,openbb_terminal.stocks.fundamental_analysis.dcf_model.get_historical_5,
stocks.fa.similar_dfs,openbb_terminal.stocks.fundamental_analysis.dcf_model.get_similar_dfs,
stocks.fa.analysis,openbb_terminal.stocks.fundamental_analysis.eclect_us_model.get_filings_analysis,
stocks.fa.dcf,openbb_terminal.stocks.fundamental_analysis.fmp_model.get_dcf,
stocks.fa.dcfc,openbb_terminal.stocks.fundamental_analysis.fmp_model.get_dcf,
stocks.fa.enterprise,openbb_terminal.stocks.fundamental_analysis.fmp_model.get_enterprise,
stocks.fa.growth,openbb_terminal.stocks.fundamental_analysis.fmp_model.get_financial_growth,
stocks.fa.metrics,openbb_terminal.stocks.fundamental_analysis.fmp_model.get_key_metrics,
@@ -416,6 +417,8 @@ stocks.fa.shrs,openbb_terminal.stocks.fundamental_analysis.yahoo_finance_model.g
stocks.fa.splits,openbb_terminal.stocks.fundamental_analysis.yahoo_finance_model.get_splits,openbb_terminal.stocks.fundamental_analysis.yahoo_finance_view.display_splits
stocks.fa.sust,openbb_terminal.stocks.fundamental_analysis.yahoo_finance_model.get_sustainability,
stocks.fa.website,openbb_terminal.stocks.fundamental_analysis.yahoo_finance_model.get_website,
stocks.fa.revfc,openbb_terminal.stocks.fundamental_analysis.seeking_alpha_model.get_estimates_rev,
stocks.fa.epsfc,openbb_terminal.stocks.fundamental_analysis.seeking_alpha_model.get_estimates_eps,
stocks.gov.qtrcontracts,openbb_terminal.stocks.government.quiverquant_model.get_qtr_contracts,openbb_terminal.stocks.government.quiverquant_view.display_qtr_contracts
stocks.gov.government_trading,openbb_terminal.stocks.government.quiverquant_model.get_government_trading,
stocks.gov.contracts,openbb_terminal.stocks.government.quiverquant_model.get_contracts,openbb_terminal.stocks.government.quiverquant_view.display_contracts
@@ -430,6 +433,19 @@ stocks.gov.toplobbying,openbb_terminal.stocks.government.quiverquant_model.get_t
stocks.ins.act,openbb_terminal.stocks.insider.businessinsider_model.get_insider_activity,openbb_terminal.stocks.insider.businessinsider_view.insider_activity
stocks.ins.lins,openbb_terminal.stocks.insider.finviz_model.get_last_insider_activity,openbb_terminal.stocks.insider.finviz_view.last_insider_activity
stocks.ins.print_insider_data,openbb_terminal.stocks.insider.openinsider_model.get_print_insider_data,openbb_terminal.stocks.insider.openinsider_view.print_insider_data
stocks.ins.stats,openbb_terminal.stocks.insider.sdk_helper.stats,
stocks.ins.filter,openbb_terminal.stocks.insider.sdk_helper.insider_filter,
stocks.ins.lcb,openbb_terminal.stocks.insider.sdk_helper.lcb,
stocks.ins.lpsb,openbb_terminal.stocks.insider.sdk_helper.lpsb,
stocks.ins.lit,openbb_terminal.stocks.insider.sdk_helper.lit,
stocks.ins.lip,openbb_terminal.stocks.insider.sdk_helper.lip,
stocks.ins.blip,openbb_terminal.stocks.insider.sdk_helper.blip,
stocks.ins.blop,openbb_terminal.stocks.insider.sdk_helper.blop,
stocks.ins.blcp,openbb_terminal.stocks.insider.sdk_helper.blcp,
stocks.ins.lis,openbb_terminal.stocks.insider.sdk_helper.lis,
stocks.ins.blis,openbb_terminal.stocks.insider.sdk_helper.blis,
stocks.ins.blos,openbb_terminal.stocks.insider.sdk_helper.blos,
stocks.ins.blcs,openbb_terminal.stocks.insider.sdk_helper.blcs,
stocks.options.pcr,openbb_terminal.stocks.options.alphaquery_model.get_put_call_ratio,openbb_terminal.stocks.options.alphaquery_view.display_put_call_ratio
stocks.options.info,openbb_terminal.stocks.options.yfinance_model.get_info,openbb_terminal.stocks.options.barchart_view.print_options_data
stocks.options.hist_ce,openbb_terminal.stocks.options.chartexchange_model.get_option_history,openbb_terminal.stocks.options.chartexchange_view.display_raw
@@ -459,7 +475,7 @@ stocks.sia.cpis,openbb_terminal.stocks.sector_industry_analysis.financedatabase_
stocks.sia.cps,openbb_terminal.stocks.sector_industry_analysis.financedatabase_model.get_companies_per_sector_in_country,openbb_terminal.stocks.sector_industry_analysis.financedatabase_view.display_companies_per_sector_in_country
stocks.sia.countries,openbb_terminal.stocks.sector_industry_analysis.financedatabase_model.get_countries,
stocks.sia.industries,openbb_terminal.stocks.sector_industry_analysis.financedatabase_model.get_industries,
stocks.sia.maketcap,openbb_terminal.stocks.sector_industry_analysis.financedatabase_model.get_marketcap,
stocks.sia.marketcap,openbb_terminal.stocks.sector_industry_analysis.financedatabase_model.get_marketcap,
stocks.sia.sectors,openbb_terminal.stocks.sector_industry_analysis.financedatabase_model.get_sectors,
stocks.sia.stocks_data,openbb_terminal.stocks.sector_industry_analysis.stockanalysis_model.get_stocks_data,
stocks.ta.summary,openbb_terminal.stocks.technical_analysis.finbrain_model.get_technical_summary_report,openbb_terminal.stocks.technical_analysis.finbrain_view.technical_summary_report
@@ -524,4 +540,4 @@ keys.stocksera,openbb_terminal.keys_model.set_stocksera_key,
futures.search,openbb_terminal.futures.yfinance_model.get_search_futures,
futures.historical,openbb_terminal.futures.yfinance_model.get_historical_futures,openbb_terminal.futures.yfinance_view.display_historical
futures.curve,openbb_terminal.futures.yfinance_model.get_curve_futures,openbb_terminal.futures.yfinance_view.display_curve
economy.get_groups,openbb_terminal.economy.finviz_model.get_groups,
economy.get_groups,openbb_terminal.economy.finviz_model.get_groups,
1 trail model view
277 etf.etf_by_name openbb_terminal.etf.stockanalysis_model.get_etfs_by_name
278 etf.weights openbb_terminal.etf.yfinance_model.get_etf_sector_weightings
279 etf.summary openbb_terminal.etf.yfinance_model.get_etf_summary_description
280 etf.compare openbb_terminal.etf.stockanalysis_model.compare_etfs
281 forex.get_currency_list openbb_terminal.forex.av_model.get_currency_list
282 forex.quote openbb_terminal.forex.sdk_helpers.quote
283 forex.fwd openbb_terminal.forex.fxempire_model.get_forward_rates
399 stocks.fa.historical_5 openbb_terminal.stocks.fundamental_analysis.dcf_model.get_historical_5
400 stocks.fa.similar_dfs openbb_terminal.stocks.fundamental_analysis.dcf_model.get_similar_dfs
401 stocks.fa.analysis openbb_terminal.stocks.fundamental_analysis.eclect_us_model.get_filings_analysis
402 stocks.fa.dcf stocks.fa.dcfc openbb_terminal.stocks.fundamental_analysis.fmp_model.get_dcf
403 stocks.fa.enterprise openbb_terminal.stocks.fundamental_analysis.fmp_model.get_enterprise
404 stocks.fa.growth openbb_terminal.stocks.fundamental_analysis.fmp_model.get_financial_growth
405 stocks.fa.metrics openbb_terminal.stocks.fundamental_analysis.fmp_model.get_key_metrics
417 stocks.fa.splits openbb_terminal.stocks.fundamental_analysis.yahoo_finance_model.get_splits openbb_terminal.stocks.fundamental_analysis.yahoo_finance_view.display_splits
418 stocks.fa.sust openbb_terminal.stocks.fundamental_analysis.yahoo_finance_model.get_sustainability
419 stocks.fa.website openbb_terminal.stocks.fundamental_analysis.yahoo_finance_model.get_website
420 stocks.fa.revfc openbb_terminal.stocks.fundamental_analysis.seeking_alpha_model.get_estimates_rev
421 stocks.fa.epsfc openbb_terminal.stocks.fundamental_analysis.seeking_alpha_model.get_estimates_eps
422 stocks.gov.qtrcontracts openbb_terminal.stocks.government.quiverquant_model.get_qtr_contracts openbb_terminal.stocks.government.quiverquant_view.display_qtr_contracts
423 stocks.gov.government_trading openbb_terminal.stocks.government.quiverquant_model.get_government_trading
424 stocks.gov.contracts openbb_terminal.stocks.government.quiverquant_model.get_contracts openbb_terminal.stocks.government.quiverquant_view.display_contracts
433 stocks.ins.act openbb_terminal.stocks.insider.businessinsider_model.get_insider_activity openbb_terminal.stocks.insider.businessinsider_view.insider_activity
434 stocks.ins.lins openbb_terminal.stocks.insider.finviz_model.get_last_insider_activity openbb_terminal.stocks.insider.finviz_view.last_insider_activity
435 stocks.ins.print_insider_data openbb_terminal.stocks.insider.openinsider_model.get_print_insider_data openbb_terminal.stocks.insider.openinsider_view.print_insider_data
436 stocks.ins.stats openbb_terminal.stocks.insider.sdk_helper.stats
437 stocks.ins.filter openbb_terminal.stocks.insider.sdk_helper.insider_filter
438 stocks.ins.lcb openbb_terminal.stocks.insider.sdk_helper.lcb
439 stocks.ins.lpsb openbb_terminal.stocks.insider.sdk_helper.lpsb
440 stocks.ins.lit openbb_terminal.stocks.insider.sdk_helper.lit
441 stocks.ins.lip openbb_terminal.stocks.insider.sdk_helper.lip
442 stocks.ins.blip openbb_terminal.stocks.insider.sdk_helper.blip
443 stocks.ins.blop openbb_terminal.stocks.insider.sdk_helper.blop
444 stocks.ins.blcp openbb_terminal.stocks.insider.sdk_helper.blcp
445 stocks.ins.lis openbb_terminal.stocks.insider.sdk_helper.lis
446 stocks.ins.blis openbb_terminal.stocks.insider.sdk_helper.blis
447 stocks.ins.blos openbb_terminal.stocks.insider.sdk_helper.blos
448 stocks.ins.blcs openbb_terminal.stocks.insider.sdk_helper.blcs
449 stocks.options.pcr openbb_terminal.stocks.options.alphaquery_model.get_put_call_ratio openbb_terminal.stocks.options.alphaquery_view.display_put_call_ratio
450 stocks.options.info openbb_terminal.stocks.options.yfinance_model.get_info openbb_terminal.stocks.options.barchart_view.print_options_data
451 stocks.options.hist_ce openbb_terminal.stocks.options.chartexchange_model.get_option_history openbb_terminal.stocks.options.chartexchange_view.display_raw
475 stocks.sia.cps openbb_terminal.stocks.sector_industry_analysis.financedatabase_model.get_companies_per_sector_in_country openbb_terminal.stocks.sector_industry_analysis.financedatabase_view.display_companies_per_sector_in_country
476 stocks.sia.countries openbb_terminal.stocks.sector_industry_analysis.financedatabase_model.get_countries
477 stocks.sia.industries openbb_terminal.stocks.sector_industry_analysis.financedatabase_model.get_industries
478 stocks.sia.maketcap stocks.sia.marketcap openbb_terminal.stocks.sector_industry_analysis.financedatabase_model.get_marketcap
479 stocks.sia.sectors openbb_terminal.stocks.sector_industry_analysis.financedatabase_model.get_sectors
480 stocks.sia.stocks_data openbb_terminal.stocks.sector_industry_analysis.stockanalysis_model.get_stocks_data
481 stocks.ta.summary openbb_terminal.stocks.technical_analysis.finbrain_model.get_technical_summary_report openbb_terminal.stocks.technical_analysis.finbrain_view.technical_summary_report
540 futures.search openbb_terminal.futures.yfinance_model.get_search_futures
541 futures.historical openbb_terminal.futures.yfinance_model.get_historical_futures openbb_terminal.futures.yfinance_view.display_historical
542 futures.curve openbb_terminal.futures.yfinance_model.get_curve_futures openbb_terminal.futures.yfinance_view.display_curve
543 economy.get_groups openbb_terminal.economy.finviz_model.get_groups

View File

@@ -960,7 +960,7 @@
" lambda x: f'<a href=\"{x}\">{x}</a>' if x != \"-\" else x\n",
" )\n",
"try:\n",
" hist_dcf = openbb.stocks.fa.dcf(symbol)\n",
" hist_dcf = openbb.stocks.fa.dcfc(symbol)\n",
"except:\n",
" pass\n",
"enterprise_df = openbb.stocks.fa.enterprise(symbol)\n",
@@ -1450,7 +1450,7 @@
"metadata": {
"celltoolbar": "Tags",
"kernelspec": {
"display_name": "Python 3.9.6 ('obb')",
"display_name": "obb",
"language": "python",
"name": "python3"
},
@@ -1464,11 +1464,11 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.6"
"version": "3.9.6 | packaged by conda-forge | (default, Jul 11 2021, 03:36:15) \n[Clang 11.1.0 ]"
},
"vscode": {
"interpreter": {
"hash": "e784374cc4f9a84ed6af2983247aaf351b155c82bcc2188134a65f3c99031000"
"hash": "cb66ba39c97f15743fbb79e204a841ea03600987d49579cfb0ffc8e8dd934c69"
}
}
},

View File

@@ -23,6 +23,10 @@ def get_estimates_eps(ticker: str) -> pd.DataFrame:
-------
pd.DataFrame
eps estimates for the next 10yrs
Examples
--------
>>> from openbb_terminal.sdk import openbb
>>> openbb.stocks.fa.epsfc("AAPL")
"""
url = "https://seekingalpha.com/api/v3/symbol_data/estimates"
@@ -158,6 +162,10 @@ def get_estimates_rev(ticker: str) -> pd.DataFrame:
-------
pd.DataFrame
rev estimates for the next 10yrs
Examples
--------
>>> from openbb_terminal.sdk import openbb
>>> openbb.stocks.fa.revfc("AAPL")
"""
url = "https://seekingalpha.com/api/v3/symbol_data/estimates"

View File

@@ -1,25 +1,25 @@
""" Business Insider View """
__docformat__ = "numpy"
from datetime import datetime, timedelta
import logging
import os
import math
import os
from datetime import datetime, timedelta
from typing import List, Optional
import matplotlib.pyplot as plt
import pandas as pd
from pandas.plotting import register_matplotlib_converters
from openbb_terminal.config_terminal import theme
from openbb_terminal.config_plot import PLOT_DPI
from openbb_terminal.config_terminal import theme
from openbb_terminal.decorators import log_start_end
from openbb_terminal.helper_funcs import (
export_data,
get_next_stock_market_days,
print_rich_table,
plot_autoscale,
is_valid_axes_count,
plot_autoscale,
print_rich_table,
)
from openbb_terminal.rich_config import console
from openbb_terminal.stocks.insider import businessinsider_model

View File

@@ -5,9 +5,9 @@ import logging
import finviz
import pandas as pd
from openbb_terminal.rich_config import console
from openbb_terminal.decorators import log_start_end
from openbb_terminal.rich_config import console
logger = logging.getLogger(__name__)

View File

@@ -5,19 +5,21 @@ import argparse
import configparser
import logging
from typing import List
import pandas as pd
from openbb_terminal.custom_prompt_toolkit import NestedCompleter
from openbb_terminal import feature_flags as obbff
from openbb_terminal.custom_prompt_toolkit import NestedCompleter
from openbb_terminal.decorators import log_start_end
from openbb_terminal.helper_funcs import EXPORT_ONLY_RAW_DATA_ALLOWED, check_positive
from openbb_terminal.menu import session
from openbb_terminal.parent_classes import StockBaseController
from openbb_terminal.rich_config import console, MenuText
from openbb_terminal.rich_config import MenuText, console
from openbb_terminal.stocks.insider import (
businessinsider_view,
finviz_view,
openinsider_view,
openinsider_model,
openinsider_view,
)
logger = logging.getLogger(__name__)

View File

@@ -1,16 +1,16 @@
import configparser
import logging
from pathlib import Path
import textwrap
from datetime import datetime
from pathlib import Path
from typing import Dict, List
import pandas as pd
import requests
from bs4 import BeautifulSoup
from openbb_terminal.decorators import log_start_end
from openbb_terminal.core.config.paths import USER_PRESETS_DIRECTORY
from openbb_terminal.decorators import log_start_end
from openbb_terminal.rich_config import console
logger = logging.getLogger(__name__)

View File

@@ -6,6 +6,7 @@ from typing import List
import numpy as np
import pandas as pd
from openbb_terminal import rich_config
from openbb_terminal.decorators import log_start_end
from openbb_terminal.helper_funcs import (
export_data,
@@ -18,7 +19,6 @@ from openbb_terminal.stocks.insider.openinsider_model import (
get_open_insider_link,
get_print_insider_data,
)
from openbb_terminal import rich_config
logger = logging.getLogger(__name__)

View File

@@ -0,0 +1,229 @@
"""Insider SDK Helpers"""
__docformat__ = "numpy"
import pandas as pd
from openbb_terminal.stocks.insider import openinsider_model
def stats(symbol: str) -> pd.DataFrame:
"""Get OpenInsider stats for ticker
Parameters
----------
symbol : str
Ticker to get insider stats for
Returns
-------
pd.DataFrame
DataFrame of insider stats
Examples
--------
>>> from openbb_terminal.sdk import openbb
>>> openbb.stocks.ins.stats("AAPL")
"""
link = f"http://openinsider.com/screener?s={symbol}"
return openinsider_model.get_open_insider_data(link, has_company_name=False)
def insider_filter(preset: str) -> pd.DataFrame:
"""GEt insider trades based on preset filter
Parameters
----------
preset : str
Name of preset filter
Returns
-------
pd.DataFrame
DataFrame of filtered insider data
Examples
--------
>>> from openbb_terminal.sdk import openbb
In order to filter, we pass one of the predefined .ini filters from OpenBBUserData/presets/stocks/insider
>>> filter = "Gold-Silver"
>>> insider_trades = openbb.stocks.ins.filter(filter)
"""
url = openinsider_model.get_open_insider_link(preset)
return openinsider_model.get_open_insider_data(url, has_company_name=True)
def lcb() -> pd.DataFrame:
"""Get latest cluster buys
Returns
-------
pd.DataFrame
DataFrame of latest insider trades
Examples
--------
>>> from openbb_terminal.sdk import openbb
>>> openbb.stocks.ins.lcb()
"""
return openinsider_model.get_print_insider_data("lcb")
def lpsb() -> pd.DataFrame:
"""Get latest penny stock buys
Returns
-------
pd.DataFrame
DataFrame of latest insider trades
Examples
--------
>>> from openbb_terminal.sdk import openbb
>>> openbb.stocks.ins.lpsb()
"""
return openinsider_model.get_print_insider_data("lpsb")
def lit() -> pd.DataFrame:
"""Get latest insider trades
Returns
-------
pd.DataFrame
DataFrame of latest insider trades
Examples
--------
>>> from openbb_terminal.sdk import openbb
>>> openbb.stocks.ins.lit()
"""
return openinsider_model.get_print_insider_data("lit")
def lip() -> pd.DataFrame:
"""Get latest insider purchases
Returns
-------
pd.DataFrame
DataFrame of latest insider trades
Examples
--------
>>> from openbb_terminal.sdk import openbb
>>> openbb.stocks.ins.lip()
"""
return openinsider_model.get_print_insider_data("lip")
def blip() -> pd.DataFrame:
"""Get latest insider purchases > 25k
Returns
-------
pd.DataFrame
DataFrame of latest insider trades
Examples
--------
>>> from openbb_terminal.sdk import openbb
>>> openbb.stocks.ins.blip()
"""
return openinsider_model.get_print_insider_data("blip")
def blop() -> pd.DataFrame:
"""Get latest officer purchases > 25k
Returns
-------
pd.DataFrame
DataFrame of latest insider trades
Examples
--------
>>> from openbb_terminal.sdk import openbb
>>> openbb.stocks.ins.blop()
"""
return openinsider_model.get_print_insider_data("blop")
def blcp() -> pd.DataFrame:
"""Get latest CEO/CFO purchases > 25k
Returns
-------
pd.DataFrame
DataFrame of latest insider trades
Examples
--------
>>> from openbb_terminal.sdk import openbb
>>> openbb.stocks.ins.bclp()
"""
return openinsider_model.get_print_insider_data("blcp")
def lis() -> pd.DataFrame:
"""Get latest insider sales
Returns
-------
pd.DataFrame
DataFrame of latest insider trades
Examples
--------
>>> from openbb_terminal.sdk import openbb
>>> openbb.stocks.ins.lis()
"""
return openinsider_model.get_print_insider_data("lis")
def blis() -> pd.DataFrame:
"""Get latest insider sales > 100k
Returns
-------
pd.DataFrame
DataFrame of latest insider trades
Examples
--------
>>> from openbb_terminal.sdk import openbb
>>> openbb.stocks.ins.blis()
"""
return openinsider_model.get_print_insider_data("blis")
def blos() -> pd.DataFrame:
"""Get latest officer sales > 100k
Returns
-------
pd.DataFrame
DataFrame of latest insider trades
Examples
--------
>>> from openbb_terminal.sdk import openbb
>>> openbb.stocks.ins.blos()
"""
return openinsider_model.get_print_insider_data("blos")
def blcs() -> pd.DataFrame:
"""Get latest CEO/CFO sales > 100k
Returns
-------
pd.DataFrame
DataFrame of latest insider trades
Examples
--------
>>> from openbb_terminal.sdk import openbb
>>> openbb.stocks.ins.blcs()
"""
return openinsider_model.get_print_insider_data("blcs")