* Fixed stocks/ca bugs

* Fixed stocks/fa

* Fixed stocks/ins

* Fixed stocks/screener bugs

* removed http file and added http files to gitignore

* Fixed small issues

Co-authored-by: didierlopes.eth <dro.lopes@campus.fct.unl.pt>
This commit is contained in:
Colin Delahunty
2022-03-03 09:22:14 -05:00
committed by GitHub
parent 3045792c21
commit ee82ff0f98
6 changed files with 53 additions and 27 deletions

1
.gitignore vendored
View File

@@ -25,6 +25,7 @@ gamestonk_terminal/jupyter/reports/stored/*
gamestonk_terminal/portfolio/portfolios/*
.ipynb_checkpoints/*
*.swp
*.http
# Jupyter Lab Extension build files
jupyterlab/*/*.bundle.*

View File

@@ -85,4 +85,8 @@ def get_comparison_data(data_type: str, similar: List[str]):
return pd.DataFrame()
screen.set_filter(ticker=",".join(similar))
return screen.ScreenerView(verbose=0)
try:
return screen.ScreenerView(verbose=0)
except IndexError:
console.print("[red]Invalid data from website[red]")
return pd.DataFrame()

View File

@@ -28,7 +28,7 @@ def screener(similar: List[str], data_type: str, export: str = ""):
"""
df_screen = finviz_compare_model.get_comparison_data(data_type, similar)
if df_screen.empty:
if df_screen is None or df_screen.empty:
console.print("No screened data found.")
else:
print_rich_table(

View File

@@ -57,7 +57,7 @@ def display_profile(ticker: str):
console.print(f"\nDescription: {profile.loc['description'][0]}")
else:
logger.error("Could not get data")
console.print("[red]Unable to get data[/red]")
console.print("[red]Unable to get data[/red]\n")
console.print()
@@ -73,8 +73,11 @@ def display_quote(ticker: str):
"""
quote = fmp_model.get_quote(ticker)
print_rich_table(quote, headers=[""], title=f"{ticker} Quote", show_index=True)
console.print()
if quote.empty:
console.print("[red]Data not found[/red]\n")
else:
print_rich_table(quote, headers=[""], title=f"{ticker} Quote", show_index=True)
console.print()
@log_start_end(log=logger)
@@ -96,14 +99,19 @@ def display_enterprise(
"""
df_fa = fmp_model.get_enterprise(ticker, number, quarterly)
df_fa = df_fa[df_fa.columns[::-1]]
print_rich_table(
df_fa,
headers=list(df_fa.columns),
title=f"{ticker} Enterprise",
show_index=True,
)
console.print()
export_data(export, os.path.dirname(os.path.abspath(__file__)), "enterprise", df_fa)
if df_fa.empty:
console.print("[red]No data available[/red]\n")
else:
print_rich_table(
df_fa,
headers=list(df_fa.columns),
title=f"{ticker} Enterprise",
show_index=True,
)
console.print()
export_data(
export, os.path.dirname(os.path.abspath(__file__)), "enterprise", df_fa
)
@log_start_end(log=logger)
@@ -125,10 +133,14 @@ def display_discounted_cash_flow(
"""
dcf = fmp_model.get_dcf(ticker, number, quarterly)
dcf = dcf[dcf.columns[::-1]]
print_rich_table(dcf, headers=[""], title="Discounted Cash Flow", show_index=True)
console.print()
export_data(export, os.path.dirname(os.path.abspath(__file__)), "dcf", dcf)
if dcf.empty:
console.print("[red]No data available[/red]\n")
else:
print_rich_table(
dcf, headers=[""], title="Discounted Cash Flow", show_index=True
)
console.print()
export_data(export, os.path.dirname(os.path.abspath(__file__)), "dcf", dcf)
@log_start_end(log=logger)

View File

@@ -159,8 +159,7 @@ def print_insider_data(type_insider: str, limit: int = 10, export: str = ""):
res.append(row)
df = pd.DataFrame(res).dropna().head(n=limit)
df.columns = [
columns = [
"X",
"Filing Date",
"Trade Date",
@@ -176,6 +175,11 @@ def print_insider_data(type_insider: str, limit: int = 10, export: str = ""):
"Value",
]
if df.shape[1] == 13:
df.columns = columns
else:
df.columns = columns[1:]
df["Filing Date"] = df["Filing Date"].apply(
lambda x: "\n".join(textwrap.wrap(x, width=10)) if isinstance(x, str) else x
)
@@ -203,11 +207,12 @@ def print_insider_data(type_insider: str, limit: int = 10, export: str = ""):
export_data(export, os.path.dirname(os.path.abspath(__file__)), type_insider, df)
l_chars = [list(chars) for chars in df["X"].values]
l_uchars = np.unique(list(itertools.chain(*l_chars)))
if df.shape[1] == 13:
l_chars = [list(chars) for chars in df["X"].values]
l_uchars = np.unique(list(itertools.chain(*l_chars)))
for char in l_uchars:
console.print(d_notes[char])
for char in l_uchars:
console.print(d_notes[char])
console.print("")

View File

@@ -97,10 +97,14 @@ def get_screener_data(preset_loaded: str, data_type: str, limit: int, ascend: bo
if preset_loaded in d_signals:
screen.set_filter(signal=d_signals[preset_loaded])
if limit > 0:
df_screen = screen.ScreenerView(limit=limit, ascend=ascend)
else:
df_screen = screen.ScreenerView(ascend=ascend)
try:
if limit > 0:
df_screen = screen.ScreenerView(limit=limit, ascend=ascend)
else:
df_screen = screen.ScreenerView(ascend=ascend)
except IndexError:
console.print("[red]Invalid data provided by the website[/red]\n")
return pd.DataFrame()
else:
preset_filter = configparser.RawConfigParser()