diff --git a/docs/conf.py b/docs/conf.py index 31d1f81..5b34031 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -22,7 +22,7 @@ author = 'Tianning Li' # The full version, including alpha/beta/rc tags -release = '0.5.1' +release = '0.6' # -- General configuration --------------------------------------------------- diff --git a/docs/earnings.rst b/docs/earnings.rst new file mode 100644 index 0000000..1b23d7c --- /dev/null +++ b/docs/earnings.rst @@ -0,0 +1,10 @@ +Forex +************************** + +Getting earning dates information. + +.. automodule:: finvizfinance.earnings + :members: + + + diff --git a/docs/index.rst b/docs/index.rst index 6da0655..3c369ba 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -85,6 +85,7 @@ Contents Insider Forex Crypto + Earnings Indices and tables diff --git a/example/example.ipynb b/example/example.ipynb index 4fce857..8964253 100644 --- a/example/example.ipynb +++ b/example/example.ipynb @@ -51,6 +51,28 @@ "stock.TickerCharts()" ] }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "image/jpeg": "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\n", + "text/plain": [ + "" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from IPython.display import Image\n", + "Image(filename='tsla.jpg')" + ] + }, { "cell_type": "code", "execution_count": 4, @@ -2109,6 +2131,45 @@ "df = fgperformance.ScreenerView(group='Industry')\n", "df.tail()" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Earnings" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "ename": "ModuleNotFoundError", + "evalue": "No module named 'finvizfinance.earnings'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mfinvizfinance\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mearnings\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mEarnings\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mfEarnings\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mEarnings\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mfEarnings\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msetPeriod\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mdf_days\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfEarnings\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpartitionDays\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmode\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'financial'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'finvizfinance.earnings'" + ] + } + ], + "source": [ + "from finvizfinance.earnings import Earnings\n", + "\n", + "fEarnings = Earnings()\n", + "fEarnings.setPeriod()\n", + "df_days = fEarnings.partitionDays(mode='financial')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/finvizfinance/earnings.py b/finvizfinance/earnings.py new file mode 100644 index 0000000..23342c4 --- /dev/null +++ b/finvizfinance/earnings.py @@ -0,0 +1,117 @@ +import os +import pandas as pd +from finvizfinance.screener.financial import Financial +from finvizfinance.screener.overview import Overview +from finvizfinance.screener.valuation import Valuation +from finvizfinance.screener.ownership import Ownership +from finvizfinance.screener.performance import Performance +from finvizfinance.screener.technical import Technical +""" +.. module:: earnings + :synopsis: earnings. + +.. moduleauthor:: Tianning Li +""" + +class Earnings: + """Earnings + Partition dataframe of ticker information of period of earning dates(This Week, + Next Week, Previous Week, This Month) into dates + + """ + def __init__(self): + """initiate module + """ + self.earning_days = [] + self.df_days = {} + self.df = None + self.period = '' + + def setPeriod(self, period='This Week'): + """Set the period. + + Args: + period(str): choose an option of period(This Week, Next Week, + Previous Week, This Month). + """ + check_list = ['This Week', 'Next Week', 'Previous Week','This Month'] + if period not in check_list: + print('Available period: {}'.format(check_list)) + raise ValueError() + self.period = period + ffinancial = Financial() + filters_dict = {'Earnings Date': period} + ffinancial.set_filter(filters_dict=filters_dict) + self.df = ffinancial.ScreenerView(order='Earnings Date', verbose=0) + self.earning_days = list(set(self.df['Earnings'].to_list())) + self.earning_days.sort() + + def partitionDays(self, mode='financial'): + """Partition dataframe to separate dataframes according to the dates. + + Args: + mode(str): choose an option of period(financial, overview, valuation, ownership, + performance, technical). + """ + check_list = ['financial', 'overview', 'valuation', 'ownership','performance','technical'] + if mode not in check_list: + print('Available mode: {}'.format(check_list)) + raise ValueError() + + for earning_day in self.earning_days: + if mode == 'financial': + self.df_days[earning_day] = self.df[self.df['Earnings'] == earning_day].reset_index(drop=True) + else: + self.df_days[earning_day] = self.df[self.df['Earnings'] == earning_day]['Ticker'].to_list() + + fearnings = None + if mode == 'financial': + return self.df_days + elif mode == 'overview': + fearnings = Overview() + elif mode == 'valuation': + fearnings = Valuation() + elif mode == 'ownership': + fearnings = Ownership() + elif mode == 'performance': + fearnings = Performance() + elif mode == 'technical': + fearnings = Technical() + + filters_dict = {'Earnings Date': self.period} + fearnings.set_filter(filters_dict=filters_dict) + df2 = fearnings.ScreenerView(order='Earnings Date', verbose=0) + df2_days = {} + for earning_day in self.earning_days: + tickers = self.df_days[earning_day] + df2_days[earning_day] = df2[df2['Ticker'].isin(tickers)].reset_index(drop=True) + self.df_days = df2_days + return self.df_days + + def outputExcel(self,output_file='earning_days.xlsx'): + """Output dataframes to single Excel file. + + Args: + output_file(str): name of the output excel file. + """ + print('Print to Excel...') + with pd.ExcelWriter(output_file, + datetime_format='YYYY-MM-DD', + engine='xlsxwriter') as writer: + for name, df in self.df_days.items(): + sheet_name = '_'.join(name.split('/')) + df.to_excel(writer, sheet_name=sheet_name, index=False) + + def outputCSV(self, output_dir='earning_days'): + """Output dataframes to csv files. + + Args: + output_dir(str): name of the output directory. + """ + print('Print to CSV...') + isdir = os.path.isdir(output_dir) + if not isdir: + os.mkdir(output_dir) + for name, df in self.df_days.items(): + file_name = '_'.join(name.split('/')) + df.to_csv(output_dir+'/'+file_name+'.csv',index=False) diff --git a/finvizfinance/forex.py b/finvizfinance/forex.py index a69f6f9..06ec957 100644 --- a/finvizfinance/forex.py +++ b/finvizfinance/forex.py @@ -17,8 +17,9 @@ def __init__(self): def performance(self, change='percent'): """Get forex performance table. + Args: - change (str): choose a option of change(percent, PIPS) + change (str): choose an option of change(percent, PIPS) Returns: df(pandas.DataFrame): forex performance table @@ -36,6 +37,7 @@ def performance(self, change='percent'): def chart(self, forex, timeframe='D'): """Get forex chart. + Args: forex (str): foreign exchange name timeframe (str): choice of timeframe(5M, H, D, W, M) diff --git a/release.md b/release.md index b60ddd8..29854a1 100644 --- a/release.md +++ b/release.md @@ -1,10 +1,11 @@ | Date | Version | Comment | | ------------- | ------------- | ------------- | +| 2020/08/13 | 0.6 | Add earning module | | 2020/08/13 | 0.5.1 | Fix bug in group folder | | 2020/08/13 | 0.5 | Update Quote module and add compare function to screener | -| 2020/08/13 | 0.4.1 | Adding group spectrum module | -| 2020/08/13 | 0.4 | Adding group folder | -| 2020/08/13 | 0.3 | Adding forex and crypto module | +| 2020/08/13 | 0.4.1 | Add group spectrum module | +| 2020/08/13 | 0.4 | Add group folder | +| 2020/08/13 | 0.3 | Add forex and crypto module | | 2020/08/02 | 0.2.3 | Update filter in screener | | 2020/08/02 | 0.2.2 | Fix a bug in screen order| | 2020/07/31 | 0.2.1 | Add order to screen module | diff --git a/setup.py b/setup.py index 0befe2e..4d01117 100644 --- a/setup.py +++ b/setup.py @@ -3,7 +3,7 @@ HERE = pathlib.Path(__file__).parent -VERSION = '0.5.1' +VERSION = '0.6' PACKAGE_NAME = 'finvizfinance' AUTHOR = 'Tianning Li' AUTHOR_EMAIL = 'ltianningli@gmail.com' @@ -19,7 +19,8 @@ 'datetime', 'requests', 'bs4', - 'lxml' + 'lxml', + 'os' ] CLASSIFIERS = [ 'Programming Language :: Python :: 3.5',