
    hy                        d dl mZ d dlmZ g dZg dZg dZg dZg dZ	g dZ
ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  gZg dZg d	Zg d
Zg dZg dZg dddgg dg ddgg dg ddgdgdg dg ddgdg dg dg dg dg ddgdg dddgg dg dddgdgdg dg d g dg d!ddgdgdg d"g d#g dg d$g d%g dgZg d&Zg d'Zg d(Zg d)Zg d*Zg d+Z e eee            Z e eee            Z e eee
            Z  e ee	e
            Z! e eee            Z" e ee	e            Z# e eee            Z$ e eee            Z% e eee            Z& e eee            Z' e eee            Z(d, Z)d- Z*d. Z+d/ Z,d0 Z-d1 Z.d2 Z/d3 Z0d4 Z1d5 Z2d6 Z3d7 Z4d8 Z5d9 Z6d: Z7d; Z8d< Z9d= Z:d> Z;d? Z<d@ Z=dA Z>dB Z?dC Z@dD ZAdE ZBdF ZCdG ZDdH ZEdI ZFeGdJk(  r" eH e)dK              eH eEg dLg dM             yy)N    N)AshwiniBharaniKritikaRohini
MrigashiraArdra	PunarvasuPushyaAshleshaMaghazPurva PhalgunizUttara PhalguniHastaChitraSwatiVishakaAnuradaJyeshtaMulazPurva AshadhazUttara AshadhaShravana	DhanishtaShatabhishakzPurva BhadrapadazUttara BhadrapadaRevati)KetuVenusSunMoonMarsRahuJupiterSaturnMercuryr   r   r   r   r   r   r   r   r    r   r   r   r   r   r   r   r   r    )zAshwini kumarasYamaAgniBramhaSomaRudraAditiBrihaspathiNagasPitrisAryamanBhagaSuryaVishwakarmaVaayuzIndra - AgniMitraIndraNiritiApahzVishwe DevatasVishnuz
Ashta VasuVaruna	AjikapadazAhir BudhyanaPushan)AriesTaurusGeminiCancerLeoVirgoLibraScorpioSaggitarius	CapricornAquariusPisces)MeshaVrushabaMithunaKarkaSimhaKanyaTula	VruschikaDhanuMakaraKumbhaMeena)r   r   r    r   r   r    r   r   r   r   r   r   )	r   r   r   r    r   r   r   r   r   )	r7   r8   r@   r<   r:   rB   r=   r8   r>   )	)   
   )      )rP      )      )      )      )      rQ   rY      rY   )	)rZ   rP   )r^   rR   )rV   rS   )rX   rU   )rP   rW   )rT   rY   )rO   r[   r]   r\   )	r=   r>   r:   rB   r@   r<   r7   r>   r8   )r   r   r   r   r   r    r   )beneficsmaleficsneutral)r   r   r   r    r   r   r   )r   r    r   r   r   r   r   )r   r   r   )r    r   r   )r   r   r   r   )r   r    r   )r    r   r   )r   r   r   )r   r   r    r   r   )r   r   r   r   r   )r   r   r    r   )r   r   r   )r   r    r   r   )r   r   r   r   )r   r    r   )r   r   r    r   )r   r   r   )ChaitraVaisakhaJyesthaAshadhaSravana
Bhadrapada	AshwayujaKartika
Margashirar
   r   Phalguna)SundayMondayTuesday	WednesdayThursdayFridaySaturday)zshukla padyamizshukla dwitiyazshukla tritiyazshukla chautizshukla panchamizshukla shashtizshukla sapthamizshukla ashtamizshukla navamizshukla dashamizshukla ekadashizshukla dwadashizshukla trayodashizshukla chaturdashipoornimazkrishna padyamizkrishna dwitiyazkrishna tritiyazkrishna chautizkrishna panchamizkrishna shashtizkrishna sapthamizkrishna ashtamizkrishna navamizkrishna dashamizkrishna ekadashizkrishna dwadashizkrishna trayodashizkrishna chaturdashiamavasya)<	KintughnaBavaBalavaKaulavaTaitilaGaraVanijaVishtirv   rw   rx   ry   rz   r{   r|   rv   rw   rx   ry   rz   r{   r|   rv   rw   rx   ry   rz   r{   r|   rv   rw   rz   ry   rx   r{   r|   rv   rw   rx   ry   rz   r{   r|   rv   rw   rx   ry   rz   r{   r|   rv   rw   rx   ry   rz   r{   r|   ShakuniChatushpadaNaga)	Vaidhriti
VishkambhaPritiAyushman	SaubhagyaShobhanaAtigandaSukarmaDhritiSoolaGandaVriddhiDhruvaVyaghataHarshanaVajraSiddhi	VyatipataVariyanaParighaSivaSiddhaSadhyaShubhaShuklaBrahmar0   )MovableFixedDualr   r   r   r   r   r   r   r   r   c                 2    t         j                  |       dz   S )NrO   )signsindex)signstrs    !D:\jyotish\support\mod_general.py<lambda>r      s    %++g.2    c                    t        j                  | |      \  }}|dk(  rdt        |dz
     z   |d<   nt        |dz
     |d<   t        t        j                  |       dz
     |d<   t
        t        j                  | |      d   dz
     |d<   t        t        j                  | |      d   dz
     |d	<   t        t        j                  | |      d   dz
     |d
<   y )NTzadhikamaasa - rO   maasavaarar   rQ   tithikaranayoga)	panchangamasamaasa_namesvaara_namesr   tithi_namesr   karana_namesr   
yoga_namesr   )jdplacemiscdatamaasanumleaps        r   update_miscdatar      s     ~~b/Xtt|,{8a</HH(A6'	#IOOB$7$9:HW#IOOBu$=a$@1$DEHW%i&6&6r%&@&Ca&GHHX!)..E":1"="ABHV r   c                 L    || kD  r
|| z
  dz   }|S || k  rd|z   | z
  dz   }|S d}|S )z Computes how many houses is difference between from fromsign to tosign
      This function is used to compute housenumber for planets too rO   rX    )fromsigntosignhouses      r   	housediffr      sR     hX!E
 
,	 K("Q&E 
, E	,r   c                 *    | |z   dz
  dz  }|dk(  rd}|S )NrO   rX   r   r   r   nss      r   compute_nthsignr      s&    	A	RA	QJr   c                 0    d| z   |z
  dz   dz  }|dk(  rd}|S )NrX   rO   r   r   r   s      r   compute_nthsign_backwardsr      s+    
x-!
a
2	%A	QJr   c                 v   |d   }|j                  | d      }|dk7  r|d   }t        |d         }t        ||      }|d   d   j                  |       |d   d   j                  t        t        ||      dz
            t        ||d         }|D ]  }	|d   d   j                  |	        y
t        | d	z          y
){ Computes the aspects of each planet in planet group and 
        updates its Aspects elements - planets, signs and houses planets	NOT_FOUND	house-numsignAspectshousesr   rO   z Not found in planet group.N)getsignnumr   appendr   get_planets_in_houseprint)

planetname	aspectnumdivisionplanetgroupplanethousenosignnoaspecthousenumr   ps
             r   compute_aspects4planetr      s     9%K__Z5F+%(()<y(#**>:y'"))%	0RST0T*UV&~x	7JKA9i(//2   	j889
r   c                    t        dd|        t        dd|        t        dd|        t        dd|        t        dd|        t        dd|        t        dd	|        t        dd|        t        dd
|        t        dd|        t        dd|        t        dd|        t        dd|        t        dd	|        t        dd|        t        dd
|        t        dd	|        t        dd|        t        dd
|        y)r   r   rZ   r   r   rV   r^   r    r   rW   	   r   r   rR   rP   r   r   N)r   )r   s    r   compute_aspectsr     s     5!X.61h/61h/61h/61h/9a29a29a29a27Ax08Q18Q18R261h/61h/61h/61h/61h/61h/
r   c                 ~    | d   }|D ]3  }||   }|d   }| d   |dz
     d   D ]  }|d   j                  |        5 y)z5 Computes the aspects on each planet in planet group r   r   r   rO   aspect-planetszAspected-byNr   r   r   r   r   house_nor   s         r   compute_aspectedbyr   =  sa    9%K!
Z(+&(#HqL12BCA=!((+ D "
 r   c                     | d   }|D ]H  }||   }|d   }| d   |dz
     d   D ]  }|d   j                  |        	 |d   j                  |       J y#  t        d|        Y ^xY w)z@ Computes the conjuncted planets of each planet in planet group r   r   r   rO   	conjunctsz An exception occurred to remove N)r   remover   r   s         r   compute_conjunctsr   G  s    9%K!
Z(+&(#HqL1)<A;&&q) =	C;&&z2 " 	C4ZLABs   AA&c                     t         | dz
     }|d   D ]  }|d   j                  |        |d   D ]  }|d   j                  |        |d   D ]  }|d   j                  |        y )NrO   r_   r`   ra   )ben_mal_neut_bylagnar   )lagnaclspsetbpmpnps         r   compute_BenMalNeu4lagnar   V  su    	*D:Jr" :Jr" 9oIb! 
r   c                    g | d   d<   g | d   d<   | d   d   j                  d       | d   d   j                  d       | d   d   j                  d       | d   d   j                  d       | d   d   j                  d       | d   d   j                  d	       | d   d   j                  d
       t        | dd      }|dk  r| d   d   j                  d       n| d   d   j                  d       | d   d   D ]2  }| d   |   d   | d   d   d   k(  s| d   d   j                  d        n d| d   d   vr| d   d   j                  d       y )Nclassificationsznatural-beneficsznatural-maleficsr   r   r   r   r   r   r   r   i@	 r   r   r    )r   get_distancebetweenplanets)r   distSunToMoon_secmalefics      r   !populate_Natural_BeneficsMaleficsr   a  s   68H 2368H 23 23::9E 23::7C  23::5A 23::8D 23::6B 23::6B 23::6B 38E6JH%"#$67>>vF"#$67>>vF -./ABIw'48KI8VWb8cc&'(:;BB9M C 	"345GHH"#$67>>yI
r   c                 <   | d   d   d   D ]  }| d   d   j                  |        | d   d   d   D ]  }| d   d   j                  |        | d   d   d   D ]  }| d   d   j                  |        | d   d   d   D ]  }| d   d   j                  |        y )	Nr   r   r   r   kendrarR   rT   r   r   r   r   s     r   populate_kendraplanetsr     s     h"9-"#H-44Q7 . h"9-"#H-44Q7 . h"9-"#H-44Q7 . h"9-"#H-44Q7 .
r   c                     | d   d   d   D ]  }| d   d   j                  |        | d   d   d   D ]  }| d   d   j                  |        | d   d   d   D ]  }| d   d   j                  |        y )Nr   r   r   r   trikonarV   r^   r   r   s     r   populate_trikonaplanetsr     s     h"9-"#I.55a8 . h"9-"#I.55a8 . h"9-"#I.55a8 .
r   c                     | d   d   d   D ]  }| d   d   j                  |        | d   d   d   D ]  }| d   d   j                  |        | d   d   d   D ]  }| d   d   j                  |        y )Nr   rW   r   r   trikrZ      r   r   s     r   populate_trikplanetsr         h"9-"#F+2215 . h"9-"#F+2215 . h#I."#F+2215 /
r   c                     | d   d   d   D ]  }| d   d   j                  |        | d   d   d   D ]  }| d   d   j                  |        | d   d   d   D ]  }| d   d   j                  |        y )Nr   rQ   r   r   upachayarW   rP   r   r   s     r   populate_upachayaplanetsr    s     h"9-"#J/66q9 . h"9-"#J/66q9 . h#I."#J/66q9 /
r   c                     | d   d   d   D ]  }| d   d   j                  |        | d   d   d   D ]  }| d   d   j                  |        | d   d   d   D ]  }| d   d   j                  |        y )Nr   r   r   r   dharmarV   r^   r   r   s     r   populate_dharmaplanetsr    s     h"9-"#H-44Q7 . h"9-"#H-44Q7 . h"9-"#H-44Q7 .
r   c                     | d   d   d   D ]  }| d   d   j                  |        | d   d   d   D ]  }| d   d   j                  |        | d   d   d   D ]  }| d   d   j                  |        y )Nr   rO   r   r   artharW   r   r   r   s     r   populate_arthaplanetsr    s     h"9-"#G,33A6 . h"9-"#G,33A6 . h"9-"#G,33A6 .
r   c                     | d   d   d   D ]  }| d   d   j                  |        | d   d   d   D ]  }| d   d   j                  |        | d   d   d   D ]  }| d   d   j                  |        y )Nr   rQ   r   r   kamarT   rP   r   r   s     r   populate_kamaplanetsr    r  r   c                     | d   d   d   D ]  }| d   d   j                  |        | d   d   d   D ]  }| d   d   j                  |        | d   d   d   D ]  }| d   d   j                  |        y )Nr   rR   r   r   moksharZ   r   r   r   s     r   populate_mokshaplanetsr    s     h"9-"#H-44Q7 . h"9-"#H-44Q7 . h#I."#H-44Q7 /
r   c                 \    g }|D ]$  }||   }|d   | k(  s|j                  |d          & |S )Nr   namer   )r   r   houseplanetsr   r   s        r   r   r     sB    L!
Z(;7*v/ " r   c           	         t        dd      D ]  }g dddddg d}t        || d         }|D ]  }|d   j                  |        ||d<   t        t	        | d	   d
         |      }||d<   t
        |dz
     |d
<   t        |dz
     |d<   t        |dz
     |d<   t        t        |d      | d         }|D ]  }|d   j                  |        t        t        |d      | d         }d|v r|d   j                  d       t        t        |d      | d         }d|v r|d   j                  d       t        t        |d      | d         }d|v r|d   j                  d       t        t        |d      | d         }d|v r|d   j                  d       t        t        |d      | d         }d|v r|d   j                  d       t        t        |d      | d         }d|v r|d   j                  d       t        t        |d      | d         }d|v r|d   j                  d       t        t        |d      | d         }d|v r|d   j                  d       t        t        |d      | d         }d|v r|d   j                  d       t        t        |d      | d         }d|v r|d   j                  d       | d   j                  |        y)z Computes the houses properties for each house like
        planets in house
        house sign and sign number with rashi
    rO      r   r7   rC   )r   r   sign-numr   	sign-lordrashir   r   r   	ascendantr   r  r  r  rZ   r   rV   r   r^   rR   r   rP   rW   r   r   r   r   r   N)	ranger   r   r   r   r   	signlordsrashisr   )r   housenumr   r   r   	mysignnums         r   update_housesr     s>    !RL#% $%#$#*#*#*$&	 'x)1DEF)##F+  &k $GH[,A&,I$J8T	%ji!m,f&y1}5k	A.g ''@!'LhW`NabF"#**62  ''@!'LhW`Nabg"#**62&'@!'LhW`Nabg"#**62&'@!'LhW`Nab"#**84&'@"'MxXaObc"#**84&'@!'LhW`Nab "#**95&'@!'LhW`Nab "#**95&'@!'LhW`Nabg"#**62&'@!'LhW`Nabg"#**62&'@!'LhW`Nabg"#**62&'@!'LhW`Nabg"#**62!!%(W !X r   c                 <    || v r| j                  ||      } || v r| S N)replace)string	substring	newstrings      r   iterativeReplacer'  J  s)    
v
	)4 v
Mr   c                 "    | d   |dz
     d   }|S )Nr   rO   r  r   )r   r   signlords      r   get_nthLordr*  O  s    !!A#&{3HOr   c                     | d   |   d   }|S )Nr   r   r   )r   r   r  s      r   get_planetPlacedHousenumr,  T  s    	"6*;7HOr   c                    | d   |   }| d   |   }|d   dz
  dz  dz  |d   d   dz  z   |d   d   d	z  z   |d   d
   z   }|d   dz
  dz  dz  |d   d   dz  z   |d   d   d	z  z   |d   d
   z   }||k\  r||z
  }|S ||z
  }d|z
  }|S )Nr   r   rO        posdegmin<   sec r   )	r   
fromplanettoplanetfptpsec_fpsec_tpdistgaps	            r   r   r   Y  s    	)	Z	(B	)	X	&B;!2%d*r%y/?/DEESXIYZ\I\]acdiajkpaqrF;!2%d*r%y/?/DEESXIYZ\I\]acdiajkpaqrF
 K voCKr   c                    | d   |   }t        |d         }|d   dz
  dz  dz  |d   dz  z   |d   dz  z   |d	   z   }|dz
  dz  dz  |d
   d   dz  z   |d
   d   dz  z   |d
   d   z   }||k\  r||z
  }|S ||z
  }d|z
  }|S )Nr   r   r   rO   r.  r/  rQ   r3  rR   r0  r1  r2  r4  r5  )r   )	r   pointr7  r9  
tp_signnumr:  r;  r<  r=  s	            r   get_point2planetdistancerA  i  s    	)	X	&BF$Ja
Bt#a6%(2+F%PQ(SF1b %"U)E*:4*?@BuIeDTUWDWX\^_d\efk\lmF
 K voCKr   c                     g d}|  | |v ryy)N)Bharani3Kritika1Kritika4Rohini2Ardra4
Punarvasu2Pushya2zPurva Phalguni3zUttara Phalguni1zUttara Phalguni4Hasta2Swati4
Punarvasu4Vishaka4Vishaka2Anurada2zUttara Ashadha4zPurva Ashadha3zUttara Ashadha1	Shravana2Shatabhishak4zPurva Bhadrapada4zPurva Bhadrapada2zUttara Bhadrapada2TFr   )nakpaadaPushkaraNavamshass      r   isPushkaraNavamsharU  y  s$    ]
 ug++r   c                     | t         j                  k(  r|dk(  ry| t         j                  k(  r|dk(  ry| t         j                  k(  r|dk(  ry| t         j                  k(  r|dk(  ryy)N   T      rZ   F)cFIREEARTHAIRWATER)	SignTatvaDegrees     r   isPushkaraBhagara    s[    
 	QVV&B,QWW6R<QUU2QWW6Q;r   c                     | j                         }|j                         }|D ]  }||v s|j                  |       ||v r t        |      dk(  ryy)Nr   TF)copyr   len)SetASetB	SetA_Copy	SetB_Copyitems        r   check_ifAllNumInSetA_in_SetBrj    sV    		I		IiT" i  9~r   c                 8    | D cg c]	  }||v s| }}|S c c}w r"  r   )lst1lst2valuelst3s       r   list_intersectionrp    s&    #5teu}EtD5K 6s   	__main__r>   )rO   rV   rV   rP   rZ   rO   rO   )rO   rV   rZ   rP   )Isupport.mod_constantsmod_constantsrZ  support.panchangar   
nakshatrasnakshatra_rulersnakshatra_dietiesr   r  r  r[  r\  r]  r^  
signtatvasr   exhaltation_signsdeep_ExaltationPointsdeep_DebilitationPointsdebilitation_signsr   r   r   r   r   r   sign_naturesdictzipdiety_of_nakshatraruler_of_nakshatralord_of_signlord_of_rashitatva_of_signtatva_of_rashiexhaltationSign_of_planetdebilitationSign_of_planetdeepExaltPointdeepDebilitPointsign_naturer   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r   r   r'  r*  r,  r   rA  rU  ra  rj  rp  __name__r   r   r   r   <module>r     sn   " %
D
: A 	



	
 


  
 
  *U*3X)>)+ *_*3)+ *[*0*/ *E)G*/ *M)F)+ *I)@*2 *X*/);)+ *L*3W)=*2 *O)D)+ *P*/);*0 *L)G)+ *P)C)+o< |U ^qnT
 #j*;<= #j*:;< #eY/0#fi01#eZ01#fj12!#g/@"AB !#g/A"BC s7$9:;W&=>? 3ul+, 3.	&)V	B Rh


  		 z	')
	
&'7
DE r   