
    '@g                     h    d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZ ddZ	d Z
edk(  r e
        yy)    N)MongoClient)datetime	timedeltac                 r   	 t        |d      5 }t        j                  |      }ddd       j                  |       }|r|S t	        d|        # 1 sw Y   ,xY w# t
        $ r t        d|        Y yt        j                  $ r t        d|        Y yt        $ r}t        d|        Y d}~yd}~ww xY w)a?  
    Access credentials from a JSON file.

    Args:
    - env (str): Environment to fetch the credentials from ('local' or 'live'). Default is 'local'.
    - filepath (str): Path to the JSON file containing credentials. Default is 'creds.json'.

    Returns:
    - dict: Credentials for the specified environment.
    rNz&No credentials found for environment: File not found: zError decoding JSON in file: zAn error occurred: )	openjsonloadget
ValueErrorFileNotFoundErrorprintJSONDecodeError	Exception)envfilepathfdatacredentialses         1/var/www/html/trade_iq/db_updater/z_getBSEdata.pyget_credentialsr      s    )(C  	 A99Q<D	  hhsmEcUKLL	  	   - 
+, :-hZ89 )#A3'(()s?   A AA A AA B64 B6B6B11B6c                     t               } | j                  d      }|j                  d      }|j                  d      }|j                  d      }t        |      }||   }||   }t        j                  d      }dddd	d
ddddddddd}	d }
|j                         D ]  \  }}|d   }t        d|        |j                  d|i      }|r|j                  di       }t        j                         j                         } |
||      }|	j                         D ]r  \  }}|t        |      z
  } |
||      }||j                  ||f<   |dk7  s5|s8|s;|j                  dd      }||z
  |z  dz  }t        |d      |j                  ||f<   t t        d|         g d }||   }d!t        j                         j                          d"}t         j"                  j%                  |      r@	 t'        |d#$      5 }t)        j*                  |      }|D ]  }t        |        	 d d d        n[t        d&|        t'        |d'd()      5 }t)        j.                  |      }|j1                  g d*       t        d+|        d d d        |j3                  |d,-       t        d.| d/       |j5                          y # 1 sw Y   xY w# t,        $ r}t        d%|        Y d }~[d }~ww xY w# 1 sw Y   lxY w)0NmongoDB_credsconnection_strdatabasebse_collectionz//var/www/html/trade_iq/db_updater/files/BSE.csv            Z      im  i  iG  i  i!  i	  iB  )YESTERDAY'S CLOSING7 DAYS BEFORE PRICE14 DAYS BEFORE PRICE1 MONTH BEFORE PRICE3 MONTH BEFORE PRICE6 MONTH BEFORE PRICE1 YEAR BEFORE PRICE2 YEAR BEFORE PRICE3 YEAR BEFORE PRICE4 YEAR BEFORE PRICE5 YEAR BEFORE PRICE7 YEAR BEFORE PRICE10 YEAR BEFORE PRICEc                     |j                  d      }|| v r| |   j                  dd       S | j                         D cg c]
  }||k  s	| }}|r t        |      }| |   j                  dd       S y c c}w )Nz%Y-%m-%dclose)strftimer   keysmax)pricestarget_datetarget_date_strdateearlier_datesclosest_dates         r   get_price_for_datez&getBSEdata.<locals>.get_price_for_dateI   s    %..z: f$/*..w== +1++-S$4?;RSS}-L,'++GT::  Ts   
A1A1Security IdzProcessing symbolr7   )daysr%   PRICEzCHANGE %d      zNo data found for )!zSecurity Coder>   zSecurity NameStatusGroupz
Face ValuezISIN NoIndustryr%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   z7 DAYS BEFORE CHANGE %z14 DAYS BEFORE CHANGE %z1 MONTH BEFORE CHANGE %z3 MONTH BEFORE CHANGE %z6 MONTH BEFORE CHANGE %z1 YEAR BEFORE CHANGE %z2 YEAR BEFORE CHANGE %z3 YEAR BEFORE CHANGE %z4 YEAR BEFORE CHANGE %z5 YEAR BEFORE CHANGE %z7 YEAR BEFORE CHANGE %z10 YEAR BEFORE CHANGE %z:/var/www/html/trade_iq/db_updater/daily_files/BSE_UPDATED_z.csvr   )modezError: r   w )rG   newline)Header1Header2Header3zNew file created at: F)indexz(Processing completed. Results saved to '')r   r   r   pdread_csviterrowsr   find_oner   nowr:   itemsr   atreplaceroundospathexistsr	   csvreaderr   writerwriterowto_csvr3   )credsr   connection_urlmongo_databaser   mongo_clientdb
collectiondfdate_rangesr=   rN   rowr?   documentr7   todaytoday_pricecolumnr@   r8   pricepercent_change_columnpercent_changeselected_columnsoutput_filefiler]   r   r^   s                                 r   
getBSEdatart   '   s$   E IIo.M"&&'78N"&&z2N"&&'78N ~.L	n	%BN#J 
G	HB  !  " " " #""#### $K $ kkm 1
s]#F8$% &&&'9:\\(B/FLLN'')E -VU;K + 1 1 3 	S#iT&::*6;?',eVm$ 22{u,2NN7J,O)'2U':e&Cs%JN:?PQ:RBEE%!667	S &vh/0318 
	BNx||~ObObOdNeeijK 
ww~~k"	!k, D)! C#J 	 ./+C4 	9ZZ%FOO=>)+78	9
 IIkI'	4[M
CD '  ! 	!GA3-  	!	9 	9s<   -K :(J:#K 7K*:K?K 	K'K""K'*K3__main__)livez2/var/www/html/trade_iq/db_updater/credentials.json)rY   r\   r
   pandasrP   pymongor   r   r   r   rt   __name__     r   <module>r|      s7    	 
    ()>sj zL r{   