Spaces:
Runtime error
Runtime error
| import os | |
| import logging | |
| import pandas as pd | |
| # Set up logging | |
| logging.basicConfig( | |
| level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s" | |
| ) | |
| USERNAME = os.environ.get('USERNAME') | |
| PASSWORD = os.environ.get('PASSWORD') | |
| HOST = os.environ.get('HOST') | |
| PORT = os.environ.get('PORT') | |
| DATABASE_NAME = os.environ.get('DATABASE_NAME') | |
| URL = f"mysql+pymysql://{USERNAME}:{PASSWORD}@{HOST}:{PORT}/{DATABASE_NAME}" | |
| # Read data from the database | |
| logging.info('Reading data from NSE Bhav Copy') | |
| nse_df = pd.read_sql_table('nse_bhav_copy', URL, parse_dates=['DATE']) | |
| logging.info('Reading data from BSE Bhav Copy') | |
| bse_df = pd.read_sql_table('bse_bhav_copy', URL, parse_dates=['DATE']) | |
| logging.info('Reading data from Adj NSE Bhav Copy') | |
| adj_nse_df = pd.read_sql_table('adj_nse_bhav_copy', URL, parse_dates=['DATE']) | |
| logging.info('Reading data from Adj BSE Bhav Copy') | |
| adj_bse_df = pd.read_sql_table('adj_bse_bhav_copy', URL, parse_dates=['DATE']) | |
| def get_stock_data(name, start, end): | |
| """ | |
| Get stock data from the database | |
| name: str - name of the stock | |
| start: str - start date for the stock data | |
| end: str - end date for the stock data | |
| """ | |
| is_nse = name.endswith('.NS') | |
| if is_nse: | |
| name = name[:-3] | |
| adj_df = adj_nse_df if is_nse else adj_bse_df | |
| df = nse_df if is_nse else bse_df | |
| df = adj_df if name in adj_df['SYMBOL'].values else df | |
| df = df.query('SYMBOL == @name') | |
| if start and end: | |
| df = df.loc[(df['DATE'] >= start) & (df['DATE'] <= end)] | |
| elif start: | |
| df = df.loc[df['DATE'] >= start] | |
| elif end: | |
| df = df.loc[df['DATE'] <= end] | |
| return df | |