
    ihB                        d dl m Z mZ d dlmZ d dlmZ d dl g ddddd	d
g dddddd
g dddd	dd
g dddddd
g dddddd
g dddddd
g d d!d"dd#d
g d$d%d&ddd
g d'ddd#dd
d(	Zd) Z	g a
d* e d+d+d+d d d ,       e d+d+d+d d d ,      d*d-d.g d/ad* e d+d+d+d d d ,       e d+d+d+d d d ,      d*d.d0g d1ad* e d+d+d+d d d ,       e d+d+d+d d d ,      d*d0d2d3ad4 Zd5 Zd6 Zd7 Zd+d8d9d:d;d<d=d:d>d?d9d:d@dAdBd:dCdDdEd:ddFd9d:ddGdHd:dIdJdBd:dKZg dLZdM ZdN ZdO ZdkdPZdQ ZdR ZdS ZdT ZdU ZdldVZedWk(  r eej@                  dX         d+z
  dYz  dZz  ej@                  d[   d\   dZz  z   ej@                  d[   d]   d^z  z   ej@                  d[   d_   z   Z!ej@                  d`   Z" e e#da   db   e#da   dc   e#da   dd   e#de   df   e#de   d]   e#de   d_   ,      Z$ e dgdhdhdidIdj,      Z% ee!e"e$        e&t               yy)m    )datetime	timedelta)relativedeltaN)*)BharanizPurva PhalguniPurva Ashadha   gUUUUUU?KetuSun)
Nakshatrasduration
percentagez
prev-dasha
next-dasha)KritikazUttara PhalgunizUttara Ashadha   g?VenusMoon)RohiniHastaShravana
   gUUUUUU?Mars)
MrigashiraChitra	Dhanishta   gݭ?Rahu)ArdraSwatiShatabhishak   g333333?Jupiter)	PunarvasuVishakar      g?Saturn)PushyaAnuradazUttara Bhadrapada   gDDDDDD?Mercury)AshleshaJyeshtaRevati   g""""""?)AshwiniMaghaMula)	r   r   r   r   r   r"   r&   r*   r
   c                 `    d}dt         |   d   z  }| |z  }||z  |z  }|t        |      z
  }|S )Ni       v@r   days)dashaVimshottariSkeletonr   )lngsecondsMoon	dashaLord	birthDatel_nakLensecondsl_dashaDurationDaysl_deltalngsecondsl_elapsedDashaDurationDaysl_dashaStartDates           D:\jyotish\support\dashas.pycomputeStartDate_FirstDashaLordr@   O   sT    (O #;I#Fz#RR&8 $57J#Jo"] !92L#MM        yearmonthdayhourminutesecond	mahadasha
antardashaname	startDateendDateentryStringlevelsublevelrL   paryantardasharN   rO   rP   rQ   rR   rS   rT   sookshma-antardasharN   rO   rP   rQ   rR   rS   c            
      J   g a dt        dddddd      t        dddddd      dddg dj                         adt        dddddd      t        dddddd      dddg d	j                         adt        dddddd      t        dddddd      ddd
dj                         ay)NrB   rC   r   rD   rK   rL   rM   rT   rU   rV   rW   T)vimshottariDashar   copymahadashaPlanetEntryantardashaPlanetEntryparyantardashaPlanetEntry rA   r?   clearDashaDetailsr_   ~   s     $&)1qqqYZcd)e'/QaQQWXab'c+-%0(4+- #df  %')1qqqYZcd)e'/QaQQWXab'c+-%1(8/1 #df  %')1qqqYZcd)e'/QaQQWXab'c+-%5(=! #df  rA   c           
      V   d}t        | ||      }t        j                         }t        |      t        j
                  d   d   d   d<   dt        j
                  d   d   d   d<   dt        j
                  d   d   d   d<   dt        j
                  d   d   d   d	<   |}t        d
      }t        |||d|      }d}	|D ]h  }
|
d   t        d<   |
d   t        d<   |
d   t        d<   |
d   t        d<   |}d}|dz   }|	dz   }	t        d   }i }||d<   |	|d<   t        |
d         |d<   t        |
d         |d<   |
d   }|
d   }||z
  }d|j                   d|j                   d|j                   d|d<   d|j                   d|j                   d|j                   d|d<   d|j                   d|j                   d|j                   d|d<   ||
d   k\  r5||
d   k  r-|j                         d   t        j
                  d   d   d   d<   |j                         t        j
                  d   d   d   |<   |
d   }|
d   }|
d   |
d   z
  }t        |||d|      }d}|D ]  }|d   t        d<   |d   t        d<   |d   t        d<   |d   t        d<   |}d}|dz   }|dz   }|dz   }t        d   }i }||d<   ||d<   ||d<   t        |d         |d<   t        |d         |d<   |d   }|d   }t        ||z   ||z         }d|j                   d|j                   d|j                   d|d<   d|j                   d|j                   d|j                   d|d<   d|j                   d|j                   d|j                   d|d<   ||d   k\  r5||d   k  r-|j                         d   t        j
                  d   d   d   d<   |j                         t        j
                  d   d   d   | d | <   |d   }|d   }|d   |d   z
  }t        |||d|      }d}|D ]  }|d   t        d<   |d   t        d<   |d   t        d<   |d   t        d<   |}|dz   }|dz   }|dz   }t        d   }i }||d<   ||d!<   ||d<   ||d"<   t        |d         |d<   t        |d         |d<   |d   }|d   }t        ||z   ||z         }d|j                   d|j                   d|j                   d|d<   d|j                   d|j                   d|j                   d|d<   d|j                   d|j                   d|j                   d|d<   ||d   k\  r5||d   k  r-|j                         d   t        j
                  d   d   d   d	<   |j                         t        j
                  d   d   d#   | d | d | <   t        d	   j                  |j                                 t        d$   j                  |j                                 t         j                  t        j                                k y )%Nr   DashasVimshottaricurrentdaterB   dashabhuktirT   x   )years	MahadasharN   rO   rP   rQ   rC   lorddashaNumstartageendage zyr zm dr   
mahadashas
Antardashar8   	bhuktiNumantardashas-
bhuktiLordpariNumparyantardashasrL   )r@   r   nowstrdatachartsr   computeSubPeriodsr[   rh   monthsr5   rZ   r\   r]   appendrY   )r7   nakshatraLordr9   idcntl_DashaStartDatecurrentDatel_firstPlanetl_wholeDurationres_mahadashamahadasha_cntitemdashaIdx	antar_posmahadashaPlanetNamel_mahadasharl   endAgel_durres_antardashaantardasha_cntitem2antardashaIdxparyantar_posantardashaPlanetNamel_antardashares_paryantardashaparyantardasha_cntitem3paryantardashaIdxparyantardashaPlanetNamel_paryantardashas                                  r?   computeVimshottariDashar      s    E6~}V_`,,.K>A+>NDKK-(3F;?ADKK-(3G<@BDKK-(3H=HJDKK-(34DE!M##.O%&6XcenoMM'+F|V$,0,=[)*.y/Y'.2=.A]+ 		%)26:1F"/J#&tK'8#9K !$T)_!5I$x.$%ekk]#ell^2ejj\QR"SJ$%hnn%5S8IHMM?Z["\J"#FLL>V]]O2fkk]RS TH${+++Y2OGRGWGWGYZ`GaDKK!-0;GDR]RbRbRdHm,\:;NO  ,Vy/D,==*+;]O]iktu#E,1&M!&)16{1C!+./4Y/?!),383G!-0 "MMAIE!AI+a/N#8#@ L#7L (;L%(6L%(+E+,>(?L%&)%	*:&;L#j)HHoF!9V#3y7IKE)*5;;-s5<<.5::,VW'XL$)*8>>*:#hoo=NbQYQ^Q^P__`'aL$'(c&--6;;-WX%YL"eK00{U9EU7ULXL]L]L_`fLgH%m4Y?Is  tE  tE  tGDKK!-0?CVBWWXYmXn@op  %[1!&MM#I.{1CCO!23C]Tceqs|!}!"+49&M)&19>{9K)+67<Y7G))4;@;O)-8 %*! - 1	 &8!%;"+DV+L(#% +C (1E .0C -.@ +03E+4F0G -.1%	2B.C +!*-/%y'79X;MO125;;-s5<<.PRSXS]S]R^^_/` ,128>>2B#hooEVVXYaYfYfXggh/i ,/0c&--PRSYS^S^R__`-a *%"44;yIY;YXhXmXmXopvXwDKK)-8CDTU Wg  Wl  Wl  WnH%m45FGK^J__`au`vvw  yQ  xR  IS  T%&67>>uzz|LC ,F !.55ejjlCQ $T 	 4 9 9 ;<[ ^ rA   c                 6   | }||z   }||z
  dz  }|}|}	g }
d||dd}t        d      D ]m  }t        |   d   |z  }|	|z   }t        t        |      j	                  d      d   j                               }t        |	|      }t        ||      }|j                  dk  r3|j                  dk  r$|j                  dk  rd|_        d|_        d|_	        |j                  dk\  r|j                  dk\  r|j                  dk\  r||d<   |	|d	<   ||d
<   ||d<   ||d<   ||d<   | dt        |	      d d  dt        |      d d  d| d|j                   d|j                   d|j                   d|d<   |
j                  |j                                |}	t        |   d   }p |
S )Nrg   rB   )rN   rO   rP   rQ   	   r   r5   r   rN   rO   rP   rl   rm   z - (z) to (z) (z days) Age[(zyear zmonth zdays)]rQ   r   )ranger6   intry   splitstripr   rh   r}   r5   r~   rZ   )	startdatefirstPlanetwholeDurationrR   birthdayr>   l_dashaEndDatel_120thpartl_focusplanetl_planetStartDatel_SubPeriodsl_planetEntry
lplanetnuml_planetDurationl_planetEndDate	l_durDaysstartAger   s                     r?   r|   r|   ,  sI    %5N"%55s:KM(L "%5#1')	M Ah
4]CJOR]],/??,-33F;A>DDFG	 !2H=9NNahoo&:RSASHNHOHMLLAFMMQ$6V[[A=M$1M&!):M+&'6M)$(8M*%(0M*%&,M(#.;_DEVAWX[Y[A\@]]cdghwdxy|z|d}c~  B  CL  BM  MY  Z`  Zf  Zf  Yg  gl  ms  mz  mz  l{  {A  BH  BM  BM  AN  NT  ,UM-( 2 2 45 ,0?M- . rA   c           	      >   t        | d   d   d         dz
  dz  dz  | d   d   d   d   dz  z   | d   d   d   d	   d
z  z   | d   d   d   d   z   }| d   d   d   }t        |d   d   |d   d   |d   d   |d   d   |d   d	   |d   d         }t        |||       y )Nplanetsr   signrC        posdegmin<   sec	nak-rulerDOBrE   rF   rG   TOBrH   rD   )signnumr   r   )division	birthdata
moonlngsecr   bdaytimes        r?   rb   rb   S  s
   HY/7?@BbH4OY'/6u=EGY'/6u=CE I&v.u5e<>J
 Y'/<MYu-f5'.w7%e,U3&u-f5(/6(/68H Jx@
rA   DakiniFire)r   deityelement   RanginiEarth   Kakini   ShakiniAir   YamunaWaterSankataPingalaEther   Dhanya)MangalaSasiRaviBudhaShukraKujaGuruShani)AriesTaurusGeminiCancerLeoVirgoLibraScorpioSagittarius	CapricornAquariusPiscesc                     ddddddddd	dd
ddddddddddddddddddddddddddd d!dd"d#d$d%dd&	}| |v r||    S d'd(d(d(dS ))NzgPeriod of authority, leadership, and recognition. Focus on career advancement and government relations.z?Government service, administrative roles, leadership positions.zJHealth issues related to heart, eyes, or vitality. Ego conflicts possible.zDWorship of Lord Shiva, donate wheat, jaggery, copper, and wear ruby.)general	favorable
challengesremedieszZPeriod of emotional growth, intuition, and public recognition. Good for creative pursuits.zHTravel, public relations, creative arts, dealing with liquids or public.zKEmotional instability, water-related problems, issues with mother or women.zFWorship of Goddess Parvati, donate rice, silver, milk, and wear pearl.zTPeriod of courage, energy, and technical skills. Good for property and land matters.zFTechnical fields, military, sports, surgery, real estate, engineering.zFAccidents, injuries, conflicts, blood-related ailments, impulsiveness.zJWorship of Lord Hanuman, donate red lentils, copper items, and wear coral.zIPeriod of unconventional growth, foreign connections, and sudden changes.zBForeign travel, occult sciences, research, unconventional careers.z=Deception, confusion, phobias, respiratory issues, poisoning.zEWorship of Lord Ganesha, donate goat, blue items, and wear hessonite.zLPeriod of wisdom, education, spirituality, and expansion. Good for finances.zETeaching, counseling, banking, law, publishing, religious activities.z@Overindulgence, liver problems, weight gain, excessive optimism.zWWorship of Lord Vishnu, donate yellow items, gol d, turmeric, and wear yellow sapphire.zOPeriod of discipline, hard work, and delayed rewards. Focus on long-term goals.zCGovernment service, mining, oil, agriculture, labor-intensive work.z=Delays, obstacles, chronic ailments, joint pains, depression.zTWorship of Lord Hanuman and Shani, donate black items, iron, and wear blue sapphire.zLPeriod of communication, intellect, and business acumen. Good for education.zBWriting, teaching, accounting, trading, communication, technology.z8Nervousness, speech problems, skin issues, overthinking.zFWorship of Lord Vishnu, donate green items, emerald, and wear emerald.zPPeriod of spiritual growth, detachment, and sudden changes. Focus on liberation.zISpiritual pursuits, healing, research, technical fields, occult sciences.z5Isolation, confusion, mysterious ailments, accidents.zMWorship of Lord Ganesha, donate goat, multicolored items, and wear cat's eye.zPPeriod of luxury, relationships, arts, and sensual pleasures. Good for marriage.zBArts, entertainment, luxury items, beauty industry, relationships.z?Overindulgence, reproductive issues, kidney problems, laziness.zIWorship of Goddess Lakshmi, donate white items, silver, and wear diamond.)	r   r   r   r   r"   r&   r*   r
   r   z2No specific predictions available for this planet.z0Consult an astrologer for personalized guidance.r^   )planet_namepredictionss     r?   getMahadashaPredictionsr   v  s     AZf^	
 tcg`	
 nabd	
 c]Y_	
 f`\q	
 i^Yn	
 f]T`	
 jdQg	
 j][c	
c7Kr k!;'' LKLJ	
 	
rA   c                      t        j                         } t        j                  d   d   d   d   }|r|t	        |      dS di dS )Nra   rb   rc   re   rj   r   Unknownr   rx   rz   r{   r   )r   current_dashas     r?   getCurrentMahadashar     sO    ,,.KKK)-8CGLM!2=A
 	
 b11rA   c                      t        j                         } t        j                  d   d   d   d   }|rG|t        j                  d   d   d   v r,t        j                  d   d   d   |   }t	        |      |d<   |S di dS )	Nra   rb   rc   re   rp   r   r   r   r   )r   r   mahadasha_detailss      r?   getCurrentMahaDashaFullr     s    ,,.KKK)-8CGLM$++h*?*N|*\\ KK1-@N}]+B=+Q-(  b11rA   c                     |st        j                         }| t        j                  d   d   d   v r,t        j                  d   d   d   |    }t	        |       |d<   |S dd|  iS )Nra   rb   rp   r   errorz#No dasha information available for r   )
dasha_lordrd   dasha_detailss      r?   getSpecificDashar    sp    ||~T[[*=9,GGH-m<\J:V'>z'Jm$::,GHHrA   c                    | d   d   }t         j                  |      }t        |d   d   |d   d   |d   d         }t        j                         }||z
  j                  dz  }t        t        d	d
            }||z  }d}	|}
t        d      D ])  }||z   dz  }|d	z   }|	|cxk  r|	|z   k  rn n|}
 n|	|z  }	+ t         |
   }||	|
d	z   z   |z
  dS )Nlagnar   r   rE   rF   rG   rE   rF   rG   r3   rC      r      )current_signremaining_years)charaDashaSequenceindexr   rx   r5   sumr   )r   r   
lagna_signlagna_index
birth_datecurrent_dateyears_passedtotal_cyclecycle_positioncumulative_yearscurrent_sign_indexi
sign_index
sign_yearsr  s                  r?   getCharDashaCurrentr    s    '"6*J$**:6K y/7(/8&u-e46J <<>L :-33f<L eArl#K!K/N $2Y!Ao+
 1n
~O1AJ1NO!+J&  &&89L %,0BQ0FG>Y rA   c                 :   | d   d   }t         j                  |      }t        |d   d   |d   d   |d   d         }g }|}t        d      D ]K  }||z   dz  }t         |   }	|d	z   }
|t	        t        |
d
z              z   }|j                  |	|||
d       |}M |S )Nr  r   r   rE   rF   rG   r  r  rC   r3   r4   )r   
start_dateend_dateduration_years)r	  r
  r   r   r   r   r~   )r   r   r  r  r  chara_periodsr  r  r  r   rh   r  s               r?   getCharDashaMainr    s    '"6*J$**:6Ky/7(/8&u-e46J ML2Y!Ao+
!*-Q)UV^1D"EE& #	
 	     rA   c                    t         vrdd iS t         j                        }|dz   }t        | |      }t        fd|D        d       }|sdd iS |d   }|d   |z
  j                  }g }	|}
t        d      D ]P  }||z   dz  }t         |   }|dz   }t        ||d	z  z        }|
t        |
      z   }|	j                  ||
||d       |}
R |	S )Nr   zInvalid sign: rC   c              3   4   K   | ]  }|d    k(  s|  yw)r   Nr^   ).0p	main_signs     r?   	<genexpr>z"getCharDashaSub.<locals>.<genexpr>,       J<a1V9	3I<   Could not find main period for r  r  r  N   r4   )r   r  r  duration_days)	r	  r
  r  nextr5   r   r   r   r~   )r   r   r#  main_sign_index
main_yearsmain_periodsmain_periodr  
total_dayssub_periodsr  r  sub_sign_indexsub_sign	sub_yearssub_daysr  s     `              r?   getCharDashaSubr5  #  s   **>)566(..y9O 1$J $Hi8LJ<JDQK:9+FGG\*Jj)J6<<JKL 2Y)A-3%n5"Q&	 zY^45)"::& %	
 	  ! $ rA   c           
      D   | d   d   d   }t        |j                  d      d         }|dz
  dz  }t        t        j	                               }t        |d   d	   |d   d
   |d   d         }g }|}t        | d   d   d         dz
  dz  | d   d   d   d   z   | d   d   d   d   dz  z   | d   d   d   d   dz  z   }	d}
|	|
z  }||
z  }||   }t        |   d   }|d|z
  z  }|t        t        |dz              z   }|j                  |t        |   d   t        |   d   |||d       |}t        dd      D ]d  }||z   dz  }||   }t        |   d   }|t        t        |dz              z   }|j                  |t        |   d   t        |   d   |||d       |}f |S )Nr   r   	nakshatrart   r   rC   r   r   rE   rF   rG   r  r   r   r   r   r   r   r   r   g*@r   r3   r4   r   r   )rj   r   r   r  r  r  )
r   r   listyoginiDashaSkeletonkeysr   r   r   r~   r   )r   r   moon_nakshatranakshatra_numberyogini_indexyogini_lordsr  yogini_periodsr  moon_longitudenakshatra_sizeposition_in_nakshatrafraction_completed
first_lordfirst_durationr  first_end_dater  
next_indexrj   rh   r  s                         r?   getYoginiDashaMainrH  M  sV   i(0=N>//4Q78 %q(A-L+0023Ly/7(/8&u-e46J NL   3F ;F CDQF"Li(07>?y)&1%8?"DF y)&1%8?$FHN
 "N*^;.? l+J(4Z@N$,>(>?O  )_v5M1N"OON$Z09&z29= ")  "L 1a["Q&!+
J'#D)*5)UV^1D"EE(.w7*40;& #
 	  ! $ rA   c           
      &   t         vrdd iS t        | |      }t        fd|D        d       }|sdd iS |d   }|d   |z
  j                  }t	        t         j                               }|j                        }g }	|}
t        d      D ]  }||z   dz  }||   }t         |   d   }t        d	 t         D              }t        |||z  z        }|
t        |
      z   }|	j                  |t         |   d   t         |   d   |
||d       |}
 |	S )Nr   zInvalid Yogini lord: c              3   4   K   | ]  }|d    k(  s|  yw)rj   Nr^   )r!  r"  	main_lords     r?   r$  z$getYoginiDashaSub.<locals>.<genexpr>  r%  r&  r'  r  r  r   r   c              3   4   K   | ]  }t         |   d      yw)r   N)r9  )r!  rj   s     r?   r$  z$getYoginiDashaSub.<locals>.<genexpr>  s     `L_D-d3J?L_s   r4   r   r   )rj   r   r   r  r  r)  )r9  rH  r*  r5   r8  r:  r
  r   r  r   r   r~   )r   r   rK  r-  r.  r  r/  r>  main_lord_indexr0  r  r  sub_lord_indexsub_lordr3  total_yearsr4  r  s     `               r?   getYoginiDashaSubrQ    sX   ++0<== &h	:LJ<JDQK:9+FGG\*Jj)J6<<J+0023L"((3OKL 1X)A-2/'1*=	 `L_``zY%<=>)"::(27;*84Y?& %
 	  ' * rA   c                    t        j                         }| st        j                  d   d   d   d   } |st        j                  d   d   d   d   }i }|  d| d}t        j                  d   d   d   j	                         D ]  \  }}|j                  |      s|||<    d }| t        j                  d   d   d   d   k(  r~|t        j                  d   d   d   d   k(  r_t        j                  d   d   d   d   }|rA|  d| d| }|t        j                  d   d   d   v rt        j                  d   d   d   |   }| |||d	S )
Nra   rb   rc   re   rf   rt   rw   rT   )mahadasha_lordantardasha_lordcurrent_paryantardashaall_paryantardashas)r   rx   rz   r{   items
startswith)	rS  rT  r   rw   prefixkeyvaluerU  current_paryantardasha_lords	            r?   getParyantarDashar]    s   ,,.K X.}=iHQ++h/>yI(S Oq 13Fkk(+M:;LMSSU
U>>&!#(OC  V
 "X.}=iHQQ$++h/>yI(SS&*kk(&;M&J9&UVf&g#&#$Ao%6a8S7TUCdkk(+M:;LMM)-X)>})MN_)`ad)e& )*"8.	 rA   __main__r   r   r   r   r   r   r   r   r   r   rE   rF   rG   r   rH   i     r  0   )N)NN)'r   r   dateutil.relativedeltar   support.mod_astrodatamod_astrodatarz   support.mod_generalr6   r@   rY   r[   r\   r]   r_   r   r|   rb   r9  r	  r   r   r   r  r  r  r5  rH  rQ  r]  __name__r   
lagna_moonr   r   r   r   	starttimeprintr^   rA   r?   <module>ri     s    ) 0 $ ! 7e687?6<6;	%& 7g677>6=6<	%& 7V687?6;6<	%& 7\677>6<6<	%& 7Y687?6<6?	%& 7`687?6<6>	(& 7a687?6?6?	'( 7X687?6>6<	(& 7S677>6?6=	%&a6 r    "%-1A11UV_`%a#+!ST]^#_')!,$0')  !#%-1A11UV_`%a#+!ST]^#_')!-$4+-  !#%-1A11UV_`%a#+!ST]^#_')!1$9 %LCP%N* VDY7CX&AiEBxGDY6BY7Ch5A	  S B
J2	2	I$N<'T?D*Z!F zDOOF34Q6"<tCOOE*51T9;OOE*51R79 ??5)%02J
 OOK0MYu-f5'.w7%e,U3&u-f5(/6(/68H d""2aPRSI Jx@	
' rA   