@@ -333,6 +333,21 @@ def process_index_data(data):
333
333
processed_data .append (processed_entry )
334
334
return processed_data
335
335
336
+ @staticmethod
337
+ def process_index_ratios (historical_data ):
338
+ rounded_data = Helper .convert_dataframe_to_dict (historical_data )
339
+ processed_data = []
340
+ for entry in rounded_data :
341
+ processed_entry = {
342
+ "INDEX_NAME" : entry ["INDEX_NAME" ],
343
+ "HistoricalDate" : entry ["HistoricalDate" ],
344
+ "OPEN" : entry ["OPEN" ],
345
+ "HIGH" : entry ["HIGH" ],
346
+ "LOW" : entry ["LOW" ],
347
+ "CLOSE" : entry ["CLOSE" ],
348
+ }
349
+ processed_data .append (processed_entry )
350
+ return processed_data
336
351
337
352
class NSEIndices (Helper ):
338
353
def __init__ (self ):
@@ -372,12 +387,12 @@ def get_nse_index_history(
372
387
except Exception as e :
373
388
raise HTTPException (status_code = 500 , detail = f"Error fetching historical data: { e } " )
374
389
375
- def index_pe_pb_div (self , symbol , start_date , end_date ):
390
+ def index_pe_pb_div (self , symbol , start_date , end_date , index_name ):
376
391
start_date = datetime .datetime .strptime (start_date , "%d-%b-%Y" ).strftime ("%d %b %Y" )
377
392
end_date = datetime .datetime .strptime (end_date , "%d-%b-%Y" ).strftime ("%d %b %Y" )
378
393
379
- data = {"cinfo" : f"{{'name':'{ symbol } ','startDate':'{ start_date } ','endDate':'{ end_date } '}}" }
380
- payload = requests .post ('https://niftyindices.com/Backpage.aspx/getpepbHistoricaldataDBtoString ' , headers = self .niftyindices_headers , json = data ).json ()
394
+ data = {"cinfo" : f"{{'name':'{ symbol } ','startDate':'{ start_date } ','endDate':'{ end_date } ','indexName':' { index_name } ' }}" }
395
+ payload = requests .post ('https://niftyindices.com/Backpage.aspx/getHistoricaldatatabletoString ' , headers = self .niftyindices_headers , json = data ).json ()
381
396
payload = json .loads (payload ["d" ])
382
397
383
398
if not payload :
@@ -390,19 +405,21 @@ def get_nse_indices_ratios(
390
405
self ,
391
406
symbol : str = Query (..., title = "Symbol" , description = "Nifty indices symbol" ),
392
407
start_date : str = Query (..., title = "Start Date" , description = "Start date for historical data in dd-mmm-yyyy format" ),
393
- end_date : str = Query (..., title = "End Date" , description = "End date for historical data in dd-mmm-yyyy format" )
408
+ end_date : str = Query (..., title = "End Date" , description = "End date for historical data in dd-mmm-yyyy format" ),
409
+ index_name : str = Query (..., title = "Index Name" , description = "Nifty index name" )
394
410
):
395
411
try :
396
- historical_ratios_data = self .index_pe_pb_div (symbol , start_date , end_date )
397
- return historical_ratios_data .to_dict (orient = 'records' )
412
+ historical_ratios_data = self .index_pe_pb_div (symbol , start_date , end_date , index_name )
413
+ processed_data = self .process_index_ratios (historical_ratios_data )
414
+ return processed_data
398
415
except Exception as e :
399
416
raise HTTPException (status_code = 500 , detail = f"Error fetching historical ratios data: { e } " )
400
417
401
- def index_total_returns (self , symbol ,start_date ,end_date ):
418
+ def index_total_returns (self , symbol ,start_date ,end_date , index_name ):
402
419
start_date = datetime .datetime .strptime (start_date , "%d-%b-%Y" ).strftime ("%d %b %Y" )
403
420
end_date = datetime .datetime .strptime (end_date , "%d-%b-%Y" ).strftime ("%d %b %Y" )
404
421
405
- data = {"cinfo" : f"{{'name':'{ symbol } ','startDate':'{ start_date } ','endDate':'{ end_date } '}}" }
422
+ data = {"cinfo" : f"{{'name':'{ symbol } ','startDate':'{ start_date } ','endDate':'{ end_date } ','indexName':' { index_name } ' }}" }
406
423
payload = requests .post ('https://niftyindices.com/Backpage.aspx/getTotalReturnIndexString' , headers = self .niftyindices_headers , json = data ).json ()
407
424
payload = json .loads (payload ["d" ])
408
425
@@ -416,10 +433,11 @@ def get_nse_indices_returns(
416
433
self ,
417
434
symbol : str = Query (..., title = "Symbol" , description = "Nifty indices symbol" ),
418
435
start_date : str = Query (..., title = "Start Date" , description = "Start date for historical data in dd-mmm-yyyy format" ),
419
- end_date : str = Query (..., title = "End Date" , description = "End date for historical data in dd-mmm-yyyy format" )
436
+ end_date : str = Query (..., title = "End Date" , description = "End date for historical data in dd-mmm-yyyy format" ),
437
+ index_name : str = Query (..., title = "Index Name" , description = "Nifty index name" )
420
438
):
421
439
try :
422
- historical_returns_data = self .index_total_returns (symbol , start_date , end_date )
440
+ historical_returns_data = self .index_total_returns (symbol , start_date , end_date , index_name )
423
441
return historical_returns_data .to_dict (orient = 'records' )
424
442
except Exception as e :
425
443
raise HTTPException (status_code = 500 , detail = f"Error fetching historical ratios data: { e } " )
0 commit comments