
    h,<                       d dl Z dZdZdZdZdZdZdZd	Zd
Z	dZ
dZdZdZdZdZdZdZdZdZdZdZg dZd Zdgdgg ddgg ddgg dg dg dd	ZdZdZeded ied!ed"ied#ed$ied!ed%ied&ed'ied(ed)ied*ed+ied,ed-iged.ed/ied0ed*ied1ed2ied2ed3ied2ed4ied5ed6ied5ed7ied8ed9iged6ed:ied;ed+ied<ed(ied=ed>ied?ed@iedAedBiedAedCiedDedEigedEedFiedGedHiedIedJiedGedKied6edLiedMedNied:ed7iedOedPiged6edQied;edRied<edSied?edTied?edUiedAedViedAedWiedDedXigedYedZied&edWied[ed\ied!ed]iedGed^ied6ed_ied`edaied*edbigedceddiedeed"iedSed$iedeed%iedfed'iedged)iedhed+iediedjigedkedZiedjedWiedled\iedked]iedmed^iedJed_iednedaiedoedbigedZedQiedpedgiedpedSiedqedriedqedsiedtedZieduedKied]edvigedwedFiedXedHiedxedJiedXedKiedZedLiedsedNiedyed7iedzedPigedZed:iedpediedped(iedqed4iedqed>iedted7iedued?ied]eddiged{ed/ied0edoied1edwied2ed|ied2edried5edJied5edZied8ediiggZdxd?d}ded2d}d~d0d}dKdGd}ddd}dkdd}dpd!d}dfd2d}gdd=d}d7d2d}dd1d}dEdd}dCd1d}d(dMd}ddd}d1dd}gdd+d}d?dNd}d<dd}ddd}d;dHd}d?d9d}ddd}ddd}gddhd}ddod}ddZd}d;djd}dAdXd}ddbd}d2djd}dGdkd}gddd}d?dd}d<dd}ddd}d;dd}d?dd}ddd}ddd}gddd}d7dd}ddd}dEdd}dCdd}d(dd}ddd}d1dd}gdxdd}dedd}d~dd}dKdd}ddd}dkdd}dpdd}dfdd}gddd}ddd}ddd}ddd}ddd}ddd}ddd}ddd}gddd}ddd}ddd}ddd}ddd}ddd}ddd}ddd}gddhd}ddod}ddfd}ddjd}dd|d}ddbd}ddjd}ddkd}gdd+d}ddNd}ddd}ddd}ddHd}dd9d}ddd}ddd}gdd=d}dd2d}dd1d}ddd}dd1d}ddMd}ddd}ddd}ggZd d d}dd d}dd d}ddd}ddd}ddd}ddd}d dd}ddd}ddd}ddd}dd d}dZddd}Zddd}ddd}ddd}ddd}ddd}ddd}ddd}ddd}ddd}g	Z G dτ dЫ      Z  G dф dҫ      Z! G dӄ dԫ      Z"dՄ Z#dք Z$dׄ Z%d؄ Z&dل Z'dڄ Z(dۄ Z)d܄ Z*d݄ Z+dބ Z,d߄ Z-d Z.d Z/d Z0d Z1d Z2d Z3d Z4d Z5d Z6d Z7d Z8d Z9d Z:d Z;d Z<d Z=e>dk(  r e dd      Z?e?j                  d       e?j                  edd       e?j                  edd       e?j                  edd       e?j                  edd       e?j                  edd       e?j                  edd       e?j                  eddd       e?j                  edd       e?j                  e	dd       e?j                  d         eCe?j                  ddd              e!dde?      ZEeEj                  edd       eEj                  edd       eEj                  edd       eEj                  edd       eEj                  edd       eEj                  edd       eEj                  eddd       eEj                  edd       eEj                  e	dd        eCeEj                  ddd              eCeE       yy(      NSunMoonMarsMercuryJupiterVenusSaturnRahuKetu                        	   
         )AriesTaurusGeminiCancerLeoVirgoLibraScorpioSaggitarius	CapricornAquariusPiscesc                 2    t         j                  |       dz   S Nr   )signsindex)signstrs    8D:\jyotish\venv\Lib\site-packages\jyotichart/__init__.py<lambda>r*   #   s    %++g.2    )r   r   r   )r   r   r   )r   r   r   )	r   r   r   r   r   r   r	   r
   r   xy14018510019513822523560205851651301451222639656353270123733340160361051101512451355090135517516120200802101182402502206518010227831034528533828825537532097360128398385403400162402370275182325365340295305260300328280362330350380273335369383382270282290298296323r,   r-   2303323095125721782825927522285237485450538490420525412578585560598535565602580595550600530465587440562518470537415505567558604568543581425414563548570583520x      P      i)ariestaurusgeminicancerleovirgolibrascorpiosaggitarius	capricornaquariuspisces   S      (      0      F      :      <         #                c                   T    e Zd ZddZd Zdddddg dfd	Zd
 ZddZd Zd Z	ddZ
y)
NorthChartTc                    || _         || _        t               | _        d| _        || _        g d| _        t        ddddddddg dd	t        dd
ddddddg dd	t        ddddddddg dd	t        ddddddddg dd	t        ddddddddg dd	t        ddddddddg dd	t        ddddddddg dd	t        ddddddddg dd	t        ddddddddg dd	i	| _        y NNotSetr   r   r   r   r   r   r   r   r   r   r   r       ☉Fr   blackr   symbolaspect_symbolretro	house_numcolourpos	aspectpos	isUpdated   ☾   ♂   ☿   ♃   ♀   ♄   ☊T   ☋)	chartname
personnamereset_chartcfg_ncchartcfgascendantsign	fullchartplanetindexSUNMOONMARSMERCURYJUPITERVENUSSATURNRAHUKETUplanetsselfr  r  IsFullCharts       r)   __init__zNorthChart.__init__  s   "$)+%$4"eUPQ\cqrxylz  HJ  W\  ]2ueQR]drsyzm{  IK  X]  ^2ueQR]drsyzm{  IK  X]  ^b%TU`guv|}p~  LN  [`  ab%TU`guv|}p~  LN  [`  aBuRS^estz{n|  JL  Y^  _RST_ftu{|o}  KM  Z_  `2udPQ\cqrxylz  HJ  W\  ]2udPQ\cqrxylz  HJ  W\  ]

 	r+   c                 :    | j                    d| j                   dS Nz chart object of .r  r  r  s    r)   __str__zNorthChart.__str__       ..!!24??2C1EEr+   r   redyellowpinkr   r   r   r   r   r   r   r   r   r   r   r   c                    || j                   d<   || j                   d<   || j                   d<   || j                   d<   || j                   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   d<   |d   | j                   d   d<   |d   | j                   d   d<   |d   | j                   d   d<   |d   | j                   d   d<   |d   | j                   d   d<   y Naspect-visibilitybackground-colourouterbox-colourline-coloursign-colourr   house-colourtanbhavr   dhanbhavr   anujbhavr   	maatabhavr   
santanbhavr   rogbhavr   dampathyabhavr   aayubhavr   
bhagyabhavr   	karmabhavr   laabbhavr   	karchbhavr  r  aspectclr_background
clr_outboxclr_lineclr_sign
clr_housess          r)   updatechartcfgzNorthChart.updatechartcfg"  b   -3)*-;)*+5'('/m$'/m$3=a=n%i04>qMn%j14>qMn%j15?]n%k26@mn%l33=a=n%i09CAn%o64>qMn%j16@mn%l35?]n%k24>rNn%j15?^n%k2r+   c                     |t         vrd| dS || _        t        |      }g | _        t	        dd      D ]'  }| j                  j                  t        ||             ) yN"Input Error: The given input sign " is not a valid astrological sign.r      Successr&   r  signnum
housesignsrangeappendcompute_nthsignnumr  signascendantsignnumhnos       r)   set_ascendantsignzNorthChart.set_ascendantsign7  a    u9$?ade!"4=2;COO""#56Fs#KL r+   c                    || j                   vrd| dS t        |t              dk(  rd| dS t        |t              dk(  rd| dS |t        dd      vrd	| d
S | j                   |   d   dk(  rd| dS |t        k(  s	|t
        k(  rd}n|t        k(  s	|t        k(  rd}n	 d| j                   |   d<   || j                   |   d<   || j                   |   d<   || j                   |   d<   || j                   |   d<   t        || j                  |dz
           }|dk(  rd| dS | j                  |dz
     dz   | j                  |dz
  <   |d   | j                   |   d   d<   |d   | j                   |   d   d<   |dk7  r|| j                   |   d<   t        |   D ]  }t        ||      }	t        |	| j                  |	dz
           }
|
dk(  rd| d| dc S | j                  |	dz
     dz   | j                  |	dz
  <   ddd}|
d   |d<   |
d   |d<   | j                   |   d    j                  |        d| j                   |   d<   y!"NInput Error: The given planet  is invalid.FInput Error: The given symbol  is not a string.$Input Error: The given aspectsymbol r   rD   Input Error: The given housenum 7 is not valid. it must be a integer value from 1 to 12.r   TThe planet < is already added. you can delete planet and then add again.r   r   r   r   r   r   hOverflow Error: The given planet overflows the house. no position available in house diagram for planet r  r   r   r,   r-   Defaultr   (Overflow Error: The given planet aspect  - H overflows the house. no position available in house diagram for planet.r   r   rE  )r  
isinstancestrrI  r  r  r	  r
  get_coordniates_ncr  planet_aspectsrK  rJ  r  planetr   housenum
retrogradeaspectsymbolr   r   r8  aspecthousenumasp_posr   s               r)   
add_planetzNorthChart.add_planetE  s   %5fX\LMvs#u,5fX=NQR|S)U2;L>IZ]^E!BK'7zAx{|<<,4"6(*fijdN$Jm4J -2V[))/VX&,4V[))/VX&(2VW% $*:*:8A:*FG%<  AG  @H  HI  L  M'+'7'7
'Ca'G!$+.q6VU#C(+.q6VU#C(9$4@DLL 1$V,F/@N(8H8HXYIY8Z[G%CF83vh  W_  b  c151A1A.QRBR1SVW1WD^A-.AI$QZIcN$QZIcNLL -44Y? - -1V[)r+   c                    || j                   vrd| dS | j                   |   d   dk(  rd| dS | j                   |   d   }| j                  |dz
     dz
  | j                  |dz
  <   t        |   D ]3  }t        ||      }| j                  |dz
     dz
  | j                  |dz
  <   5 g | j                   |   d	<   |t        k(  rd
| j                   t           d<   n|t
        k(  rd| j                   t
           d<   n|t        k(  rd| j                   t           d<   n|t        k(  rd| j                   t           d<   n|t        k(  rd| j                   t           d<   n|t        k(  rd| j                   t           d<   na|t        k(  rd| j                   t           d<   nA|t        k(  rd| j                   t           d<   n!|t        k(  rd| j                   t           d<   n	 d| j                   |   d<   yNrT  rU  r   Fr[  z is not added to be deleted.r   r   r   r   r   r   r   r   r   r   r   r   r  rE  r  r  rf  rK  r	  r
  r  r  r  r  r  r  r  r  rh  ri  r8  rl  s        r)   delete_planetzNorthChart.delete_planetw     %5fX\LM<<,5"6(*FIJ<<'4'+'7'7
'Ca'G!$ %V,F/@N151A1A.QRBR1SVW1WD^A-. - -/V[) cM16DLLo.n27DLL/n27DLL/5:DLL!/25:DLL!/2o38DLL049DLL 1n27DLL/n27DLL/,1V[)r+   c                     | j                   dk(  rt        d       y| j                  dk(  r7| j                  D ](  }| j                  |   d   dk(  st        d| d        y yNr   zGError : Chart is not ready to be drawn as ascendant sign is not set yetFTr   z1Error : Chart is not ready to be drawn as planet z is not added yetr  printr  r  r  rh  s     r)   __isObjectDrawReadyzNorthChart.__isObjectDrawReady  g    (*[\NNd",,<<'4=MfXUfgh  ' r+   c                     t         j                  j                  |      dk(  rd| dS t        |t              dk(  rd| dS |dvr
d| dd	g d
S | j                         dk(  ryt        | ||      }|S NFz Input Error: The given location z' is not valid location on this machine.z Input Error: The given filename rW  svgzInput Error: The given format z% is not supported. please choose fromr  r  zSThe chart is not ready to be drawn yet as all the needed inputs are not provided!!!)ospathisdirrc  rd  _NorthChart__isObjectDrawReadycreate_chartSVG_ncr  locationfilenameformat	svgstatuss        r)   drawzNorthChart.draw      77=="e+7zAhklx%.7zARUV'!5fX=bdicjbkklop##%.n&tHX>	r+   NTFr_  whiter~  )__name__
__module____qualname__r  r  r>  rP  rn  rs  r  r   r+   r)   r   r   
  s@    (F %)7QVckx~}*0d&P
r+   r   c                   T    e Zd ZddZd Zdddddg dfd	Zd
 ZddZd Zd Z	ddZ
y)NorthTransitChartTc                    || _         || _        t               | _        d| _        || _        || _        | j                  | j                  j                         g d| _        t        ddddddddg dd	t        dd
ddddddg dd	t        ddddddddg dd	t        ddddddddg dd	t        ddddddddg dd	t        ddddddddg dd	t        ddddddddg dd	t         ddddddddg dd	t"        ddddddddg dd	i	| _        y r   )r  r  r  r  r  r  parentNorthChartrP  r  r	  r
  r  r  r  r  r  r  r  r  )r  r  r  r  r  s        r)   r  zNorthTransitChart.__init__  s   "$)+%$ 0t44BBC4"eUPQ\cqrxylz  HJ  W\  ]2ueQR]drsyzm{  IK  X]  ^2ueQR]drsyzm{  IK  X]  ^b%TU`guv|}p~  LN  [`  ab%TU`guv|}p~  LN  [`  aBuRS^estz{n|  JL  Y^  _RST_ftu{|o}  KM  Z_  `2udPQ\cqrxylz  HJ  W\  ]2udPQ\cqrxylz  HJ  W\  ]

 	r+   c                 :    | j                    d| j                   dS r  r  r  s    r)   r  zNorthTransitChart.__str__  r  r+   r   r  r  r   r!  c                    || j                   d<   || j                   d<   || j                   d<   || j                   d<   || j                   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   d<   |d   | j                   d   d<   |d   | j                   d   d<   |d   | j                   d   d<   |d   | j                   d   d<   |d   | j                   d   d<   y r#  r6  r7  s          r)   r>  z NorthTransitChart.updatechartcfg  r?  r+   c                     |t         vrd| dS || _        t        |      }g | _        t	        dd      D ]'  }| j                  j                  t        ||             ) yrA  rF  rL  s       r)   rP  z#NorthTransitChart.set_ascendantsign  rQ  r+   c                    || j                   vrd| dS t        |t              dk(  rd| dS t        |t              dk(  rd| dS |t        dd      vrd	| d
S | j                   |   d   dk(  rd| dS |t        k(  s	|t
        k(  rd}n|t        k(  s	|t        k(  rd}n	 d| j                   |   d<   || j                   |   d<   || j                   |   d<   || j                   |   d<   || j                   |   d<   t        || j                  |dz
           }|dk(  rd| dS | j                  |dz
     dz   | j                  |dz
  <   |d   | j                   |   d   d<   |d   | j                   |   d   d<   |dk7  r|| j                   |   d<   t        |   D ]  }t        ||      }	t        |	| j                  |	dz
           }
|
dk(  rd| d| dc S | j                  |	dz
     dz   | j                  |	dz
  <   ddd}|
d   |d<   |
d   |d<   | j                   |   d    j                  |        d| j                   |   d<   y!rS  )r  rc  rd  rI  r  r  r	  r
  get_transitcoordniatesr  rf  rK  rJ  rg  s               r)   rn  zNorthTransitChart.add_planet  s   %5fX\LMvs#u,5fX=NQR|S)U2;L>IZ]^E!BK'7zAx{|<<,4"6(*fijdN$Jm4J -2V[))/VX&,4V[))/VX&(2VW%$Xd.>.>xz.JK%<  AG  @H  HI  L  M'+'7'7
'Ca'G!$+.q6VU#C(+.q6VU#C(9$4@DLL 1$V,F/@N,^D<L<L^\]M]<^_G%CF83vh  W_  b  c151A1A.QRBR1SVW1WD^A-.AI$QZIcN$QZIcNLL -44Y? - -1V[)r+   c                    || j                   vrd| dS | j                   |   d   dk(  rd| dS | j                   |   d   }| j                  |dz
     dz
  | j                  |dz
  <   t        |   D ]3  }t        ||      }| j                  |dz
     dz
  | j                  |dz
  <   5 g | j                   |   d	<   |t        k(  rd
| j                   t           d<   n|t
        k(  rd| j                   t
           d<   n|t        k(  rd| j                   t           d<   n|t        k(  rd| j                   t           d<   n|t        k(  rd| j                   t           d<   n|t        k(  rd| j                   t           d<   na|t        k(  rd| j                   t           d<   nA|t        k(  rd| j                   t           d<   n!|t        k(  rd| j                   t           d<   n	 d| j                   |   d<   yrp  rq  rr  s        r)   rs  zNorthTransitChart.delete_planet*  rt  r+   c                     | j                   dk(  rt        d       y| j                  dk(  r7| j                  D ](  }| j                  |   d   dk(  st        d| d        y yrv  rw  ry  s     r)   rz  z%NorthTransitChart.__isObjectDrawReadyR  r{  r+   c                     t         j                  j                  |      dk(  rd| dS t        |t              dk(  rd| dS |dvr
d| dd	g d
S | j                         dk(  ryt        | ||| j                        }|S r}  )r  r  r  rc  rd  %_NorthTransitChart__isObjectDrawReadycreate_transitchartSVGr  r  s        r)   r  zNorthTransitChart.draw^  s    77=="e+7zAhklx%.7zARUV'!5fX=bdicjbkklop##%.n*4$BWBWX	r+   Nr  r  r~  )r  r  r  r  r  r>  rP  rn  rs  r  r  r  r+   r)   r  r    s@    ,F %)7QVckx~}*0d&P
r+   r  c                   ^   e Zd ZddZd Zddddddg dfd	Zd
 Zeddddddddg ddeddddddddg dde	ddddddddg dde
ddddddddg ddeddddddddg ddeddddddddg ddeddddddddg ddeddddddddg ddeddddddddg ddi	Zg dZd dZd Zd Zd!dZy)"
SouthChartTc                 Z    || _         || _        t               | _        d| _        || _        y )Nr   )r  r  reset_chartcfg_scr  r  r  r  s       r)   r  zSouthChart.__init__p  s,    "$)+%$r+   c                 :    | j                    d| j                   dS r  r  r  s    r)   r  zSouthChart.__str__x  r  r+   r   r  r  r   r!  c                    || j                   d<   || j                   d<   || j                   d<   || j                   d<   || j                   d<   || j                   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   d<   |d   | j                   d   d<   |d   | j                   d   d<   |d   | j                   d   d<   |d   | j                   d   d<   |d   | j                   d   d<   y ) Nr$  r%  r&  innerbox-colourr'  r(  r   r)  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   sagittariusr   r   r   r   r   r   r6  )r  r8  r9  r:  	clr_inboxr;  clr_Ascr=  s           r)   r>  zSouthChart.updatechartcfg{  sq   -3)*-;)*+5'(+4'('/m$'.m$1;An%g.2<Q-n%h/2<Q-n%h/2<Q-n%h//9!}n%e,1;An%g.1;An%g.3=a=n%i07A!}n%m45?]n%k24>rNn%j12<R.n%h/r+   c                 .    |t         vrd| dS || _        y)NrB  rC  rE  )r&   r  )r  rM  s     r)   rP  zSouthChart.set_ascendantsign  s%    u9$?ade!r+   r   r   Fr   r   r   r   r   r   r   r   r   r   r  r   c                    | j                   dk(  ry|| j                  vrd| dS t        |t              dk(  rd| dS t        |t              dk(  rd| dS |t	        d	d
      vrd| dS | j                  |   d   dk(  rd| dS |t
        k(  s	|t        k(  rd}n|t        k(  s	|t        k(  rd}n	 d| j                  |   d<   || j                  |   d<   || j                  |   d<   || j                  |   d<   || j                  |   d<   t        || j                         }t        || j                  |d	z
           }|dk(  rd| dS | j                  |d	z
     d	z   | j                  |d	z
  <   |d   | j                  |   d   d<   |d	   | j                  |   d   d<   |dk7  r|| j                  |   d<   t        |   D ]  }	t        ||	      }
t        |
| j                         }t        || j                  |
d	z
           }|dk(  rd| d|	 d c S | j                  |
d	z
     d	z   | j                  |
d	z
  <   ddd!}|d   |d<   |d	   |d<   | j                  |   d"   j                  |        d| j                  |   d<   y#)$Nr   zVInvocation Order Error: The plannet cannot be added before setting the ascendant sign.rT  rU  FrV  rW  rX  r   rD  rY  rZ  r   Tr[  r\  r   r   r   r   r]  r^  r  r   r   r,   r-   r_  r   r`  ra  rb  r   r   rE  )r  r  rc  rd  rI  r  r  r	  r
  get_signofsignget_coordniates_scr  rf  rK  rJ  )r  rh  r   ri  rj  rk  r   rM  r   r8  rl  
aspectsignrm  r   s                 r)   rn  zSouthChart.add_planet  s    (*q%5fX\LMvs#u,5fX=NQR|S)U2;L>IZ]^E!BK'7zAx{|<<,4"6(*fijdN$Jm4J -2V[))/VX&,4V[))/VX&(2VW%h(:(:; d&6&6xz&BC%<  AG  @H  HI  L  M'+'7'7
'Ca'G!$+.q6VU#C(+.q6VU#C(9$4@DLL 1$V,F/@N'8J8JKJ(D4D4D^TUEU4VWG%CF83vh  W_  b  c151A1A.QRBR1SVW1WD^A-.AI$QZIcN$QZIcNLL -44Y? - -1V[)r+   c                    || j                   vrd| dS | j                   |   d   dk(  rd| dS | j                   |   d   }| j                  |dz
     dz
  | j                  |dz
  <   t        |   D ]3  }t        ||      }| j                  |dz
     dz
  | j                  |dz
  <   5 g | j                   |   d	<   |t        k(  rd
| j                   t           d<   n|t
        k(  rd| j                   t
           d<   n|t        k(  rd| j                   t           d<   n|t        k(  rd| j                   t           d<   n|t        k(  rd| j                   t           d<   n|t        k(  rd| j                   t           d<   na|t        k(  rd| j                   t           d<   nA|t        k(  rd| j                   t           d<   n!|t        k(  rd| j                   t           d<   n	 d| j                   |   d<   yrp  rq  rr  s        r)   rs  zSouthChart.delete_planet  rt  r+   c                     | j                   dk(  rt        d       y| j                  dk(  r7| j                  D ](  }| j                  |   d   dk(  st        d| d        y yrv  rw  ry  s     r)   rz  zSouthChart.__isObjectDrawReady  r{  r+   c                     t         j                  j                  |      dk(  rd| dS t        |t              dk(  rd| dS |dvr
d| dd	g d
S | j                         dk(  ryt        | ||      }|S r}  )r  r  r  rc  rd  _SouthChart__isObjectDrawReadycreate_chartSVG_scr  s        r)   r  zSouthChart.draw  r  r+   Nr  r  r~  )r  r  r  r  r  r>  rP  r	  r
  r  r  r  r  r  r  r  r  r  rn  rs  r  r  r  r+   r)   r  r  o  s   F %)7QVdiv~  KQ}, 	b%AX_mntuhv  DF  SX  Yr5%QY`nouviw  EG  TY  Zr5%QY`nouviw  EG  TY  Z"eUPQ\cqrxylz  HJ  W\  ]"eUPQ\cqrxylz  HJ  W\  ]E5aZaopvwjx  FH  UZ  [UEq[bpqwxky  GI  V[  \r5$AX_mntuhv  DF  SX  Yr5$AX_mntuhv  DF  SX  Y
G ,K4l&P
r+   r  c                 *    | |z   dz
  dz  }|dk(  rd}|S )Nr   r   r   r  fromsignnumnss      r)   rK  rK     s&    	q1	"A	QJr+   c                 0    d| z   |z
  dz   dz  }|dk(  rd}|S )Nr   r   r   r  r  s      r)   compute_nthsignnum_backwardsr  &  s,    
{
Q

"b	(A	QJr+   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 r   r   r  )fromsigntosignhouses      r)   	housediffr  ,  sR     hX!E
 
,	 K("Q&E 
, E	,r+   c                 J    t        |      }t        |       }t        ||      }|S )N)rG  r  )rM  r  ascendant_signnumfocus_signnumri  s        r)   get_housenumofsignr  7  s)    .DMM*=9Hr+   c                 H    t        |      }t        ||       }t        |dz
     S r%   )rG  rK  r&   )ri  r  r  r  s       r)   r  r  =  s)    m,$%6x@-	}Q	 r+   c                  4    dddddddddddddddddddd} | S )Nr   r  r  r   )r   r   r   r   r   r   r   r   r  r   r   r   T)r%  r&  r  r'  r(  r)  r$  r  r6  s    r)   r  r  G  sN    *1(-(-$,$*:A:A:A:A:A:A:A:A:A:A:A:A&& ,0)H, r+   c                     |t        dd      v rEt        | j                            }t        |dz
     d   |d   z   }t        |dz
     d   |d   z   }||fS t	        d| d       y)Nr   r   r,   r-   EINPUTERROR: planetidx must be in the range 1 to 8 but given value is r  r]  )rI  SouthChart_offsets4mArieslowerbase_coordinates_scrx  )rM  	planetidxoffsetx_coordinatey_coordinates        r)   r  r  a  s}     	U1R[ *4::<8*9Q;7<vc{J*9Q;7<vc{J\*+UV_U``abcr+   c                    | j                  d       | j                  d|d    d|d    d       | j                  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                  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                  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                  d#|d
   d$    d|d    d       y )%N/  <!-- ********** Chart Diagram ********** -->
zG  <rect id = "border" width="486" height="327" x="0" y="7" style="fill:r%  ;stroke-width:3;stroke:r&  " />
zJ  <rect id = "center" width="235" height="156" x="126" y="92" style="fill:r  zG  <rect id ="aries" width="120" height="80" x="123" y="10" style="fill:r)  r   ;stroke:r'  ;stroke-width:2" />
zH  <rect id ="taurus" width="120" height="80" x="243" y="10" style="fill:r   zH  <rect id ="gemini" width="120" height="80" x="363" y="10" style="fill:r   zH  <rect id ="cancer" width="120" height="80" x="363" y="90" style="fill:r   zF  <rect id ="leo" width="120" height="80" x="363" y="170" style="fill:r   zH  <rect id ="virgo" width="120" height="80" x="363" y="250" style="fill:r   zH  <rect id ="libra" width="120" height="80" x="243" y="250" style="fill:r   zJ  <rect id ="scorpio" width="120" height="80" x="123" y="250" style="fill:r   zL  <rect id ="sagittarius" width="120" height="80" x="3" y="250" style="fill:r  zJ  <rect id ="capricorn" width="120" height="80" x="3" y="170" style="fill:r   zH  <rect id ="aquarius" width="120" height="80" x="3" y="90" style="fill:r   zF  <rect id ="pisces" width="120" height="80" x="3" y="10" style="fill:r   writechartSVGchartCfgs     r)   draw_classicSouthChartSkeletonr  n  s   NNGKNN^_gh{_|^}  ~U  V^  _p  Vq  Ur  rx  {  |NNabjk~b  bA  AX  Ya  bs  Yt  Xu  u{  ~  NN^_ghv_wx  `A  _B  BJ  KS  Ta  Kb  Jc  cx  {  |NN_`hiw`x  zB  aC  `D  DL  MU  Vc  Md  Le  ez  }  ~NN_`hiw`x  zB  aC  `D  DL  MU  Vc  Md  Le  ez  }  ~NN_`hiw`x  zB  aC  `D  DL  MU  Vc  Md  Le  ez  }  ~NN]^fgu^vw|^}]~  G  HP  Q^  H_  G`  `u  x  yNN_`hiw`x  zA  aB  `C  CK  LT  Ub  Lc  Kd  dy  |  }NN_`hiw`x  zA  aB  `C  CK  LT  Ub  Lc  Kd  dy  |  }NNabjkybz  |E  cF  bG  GO  PX  Yf  Pg  Oh  h}  @  ANNcdlm{d|  ~K  eL  dM  MU  V^  _l  Vm  Un  nC  F  GNNabjkybz  |G  cH  bI  IQ  RZ  [h  Ri  Qj  j  B  CNN_`hiw`x  zD  aE  `F  FN  OW  Xe  Of  Ng  g|    @NN]^fgu^vw  _A  ^B  BJ  KS  Ta  Kb  Jc  cx  {  |
r+   c                     | j                  d       t        d   t        |j                            d   z   }t        d   t        |j                            d   z   }| j                  d| d| d| d| d	       y )	Nz1
  <!-- ********** Ascendant Sign ********** -->
r,   r-   z  <text id ="zAsc" x="z" y="" fill="z" class="sign-num">Asc</text>
)r  !SouthChart_AscendantPositionAriesr  r  )r  signclrr  pxAscpyAscs        r)   write_signnumOnChart_sscr    s    NNHI-c25N}ObObOd5efi5jjE-c25N}ObObOd5efi5jjENN}]O8E7%whW^V__~  B  C
r+   c           
      $   | j                  d       |D ]z  }| j                  d| d       ||   d   }||   d   }||   d   }||   d   d   }||   d   d	   }|d
k(  rd| d| d| d| d	}nd| d| d| d| d	}| j                  |       | y Nz*
  <!-- ********** Planets ********** -->

  <!-- **********  ********** -->
r   r   r   r   r,   r-   T  <text y="" x="r  z." text-decoration="underline" class="planet">(	)</text>
z" class="planet"></text>
r  	r  r  
planetnamer   r   planetcolourpxpyPlanet_SVGstrings	            r)   write_planetsOnChart_sscr        NNAB
-j\9JKL$X.
#G,z*84Z ',Z ', D=#.rd%t8L>Q  AG  @H  HR   U#.rd%t8L>Qbcibjjsv'(   r+   c                     | j                  d       |D ]^  }| j                  d| d       ||   d   }||   d   }||   d   D ],  }|d   }|d   }d	| d
| d| d| d	}| j                  |       . ` y Nz2
  <!-- ********** Planets Aspects ********** -->
r   Aspect ********** -->
r   r   r   r,   r-   r  r  r  z" class="aspect">r  r  	r  r  r  r   r  aspectpositionsr  r  r  s	            r)   write_planetsAspectsOnChart_sscr        NNIJ
-j\9QRS$_5z*84&z2;?O %B %B $/rd%t8L>QbcibjjsvNN+,  @	  r+   c                    |d   dk(  s|d   dk(  r| | d}nd|v r	| d| d}n| d| d}t        |dd      }|j                  d| j                   d	| j                   d
       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       t	        || j
                         t        || j
                  d   | j                         t        || j                         | j
                  d   dk(  rt        || j                         |j                  d       |j                  d       |j                          y)N\/.svgwutf-16encoding	<svg id="_chart_z" height="330" width="490" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 490 340" shape-rendering="geometricPrecision" text-rendering="geometricPrecision" charset="utf-16">

  <style>
z.    .sign-num { font: bold 20px sans-serif; }
z,    .planet { font: bold 14px sans-serif; }
z,    .aspect { font: bold 16px sans-serif; }
  </style>
r  r(  r$  T4
  Sorry, your browser does not support inline SVG.
</svg>
rE  )openr  r  r  r  r  r  r  r  r  r  closechartObjr  chartSVGfilenamechartSVGFullnamer  s        r)   r  r    s{   (2,#"5&Z(8'9>	&Zq)9(:$?&Zq)9(:$?$cX>H
 NNy!3!3 4GH<O<O;P  Ql  o  pNN=!NNDENNBCNNBCNN>"NNEF #8X->->?Xx'8'8'GH^H^_Xx'7'78,-5'(2B2BC NNKLNN: NNr+   c                     |t        dd      v r@t        t        | dz
     |dz
     d         }t        t        | dz
     |dz
     d         }||fS t        d| d       yNr   r   r,   r-   r  r  r]  )rI  int!planetPosition_northSquareClassicrx  ri  r  r  r  s       r)   re  re    s}     	U1QZ<XaZHSTUVYZ[<XaZHSTUVYZ[\*+UV_U``abcr+   c                  2    ddddddddddddddddddd} | S )Nr   r  r  r   )r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  T)r%  r&  r'  r(  r)  r$  r  r6  s    r)   r  r    sK    *1(-$,$*9@9@9@9@9@9@9@9@9@9@9@9@&& ,0'H* r+   c                 X   | j                  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                  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                  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                  d |d   d!    d	|d
    d       y )"Nz9  <rect width="410" height="410" x="5" y="5" style="fill:r%  r  r&  r  zM  <polygon id ="tanbhav" points="210,10 110,110 210,210 310,110" style="fill:r)  r*  r  r'  r  zD  <polygon id ="dhanbhav" points="10,10 210,10 110,110" style="fill:r+  zD  <polygon id ="anujbhav" points="10,10 10,210 110,110" style="fill:r,  zO  <polygon id ="maatabhav" points="110,110 10,210 110,310 210,210" style="fill:r-  zG  <polygon id ="santanbhav" points="10,210 110,310 10,410" style="fill:r.  zE  <polygon id ="rogbhav" points="210,410 110,310 10,410" style="fill:r/  zT  <polygon id ="dampathyabhav" points="210,410 110,310 210,210 310,310" style="fill:r0  zG  <polygon id ="aayubhav" points="210,410 310,310 410,410" style="fill:r1  zI  <polygon id ="bhagyabhav" points="310,310 410,410 410,210" style="fill:r2  zP  <polygon id ="karmabhav" points="310,310 410,210 310,110 210,210" style="fill:r3  zF  <polygon id ="laabbhav" points="410,210 310,110 410,10" style="fill:r4  zF  <polygon id ="karchbhav" points="310,110 410,10 210,10" style="fill:r5  r  r  s     r)   draw_classicNorthChartSkeletonr    s   NNPQYZmQnPo  pG  HP  Qb  Hc  Gd  dj  m  nNNdemn|e}  H  fI  eJ  JR  S[  \i  Sj  Rk  k@  C  DNN[\des\tu  ]A  \B  BJ  KS  Ta  Kb  Jc  cx  {  |NN[\des\tu  ]A  \B  BJ  KS  Ta  Kb  Jc  cx  {  |NNfgop~g  AL  hM  gN  NV  W_  `m  Wn  Vo  oD  G  HNN^_ghv_w  yE  `F  _G  GO  PX  Yf  Pg  Oh  h}  @  ANN\]eft]uv  ^A  ]B  BJ  KS  Ta  Kb  Jc  cx  {  |NNklt  vD  mE  FU  mV  lW  W_  `h  iv  `w  _x  xM  P  QNN^_ghv_w  yC  `D  _E  EM  NV  Wd  Ne  Mf  f{  ~  NN`aijxay  {G  bH  aI  IQ  RZ  [h  Ri  Qj  j  B  CNNghpq  iA  BM  iN  hO  OW  X`  an  Xo  Wp  pE  H  INN]^fgu^v  xB  _C  ^D  DL  MU  Vc  Md  Le  ez  }  ~NN]^fgu^v  xC  _D  ^E  EM  NV  Wd  Ne  Mf  f{  ~  
r+   c                    | j                  d       | j                  d| d|d   dd       | j                  d| d|d   dd       | j                  d	| d|d
   dd       | j                  d| d|d   dd       | j                  d| d|d   dd       | j                  d| d|d   dd       | j                  d| d|d   dd       | j                  d| d|d   dd       | j                  d| d|d   dd       | j                  d| d|d   dd       | j                  d| d|d   dd       | j                  d| d|d   dd       y )N/
  <!-- ********** Sign Numbers ********** -->
z(  <text id ="tan" x="193" y="195" fill="" class="sign-num">r   02r  z'  <text id ="dhan" x="97" y="95" fill="r   z(  <text id ="anuj" x="70" y="118" fill="r   z*  <text id ="maata" x="170" y="218" fill="r   z+  <text id ="santaan" x="75" y="316" fill="r   z'  <text id ="rog" x="97" y="335" fill="r   z.  <text id ="dampathya" x="195" y="240" fill="r   z)  <text id ="aayu" x="296" y="337" fill="r   z+  <text id ="bhagya" x="320" y="318" fill="r   z*  <text id ="karma" x="220" y="218" fill="r   z)  <text id ="laab" x="318" y="118" fill="r   z)  <text id ="karch" x="298" y="98" fill="r   r  r  r  signnumlists      r)   write_signnumOnChart_nscr    s   NNFGNN?yH[\ghi\jkm[nnwz{NN>wiGZ[fgh[ijlZmmvyzNN?yH[\ghi\jkm[nnwz{NNA'J]^ijk^lmo]ppy|}NNB7)K^_jkl_mnp^qqz}~NN>wiGZ[fgh[ijlZmmvyzNNEgYNabmnobpqsatt}  A  BNN@	I\]hij]kln\oox{|NNB7)K^_jkl_mnp^qqz}~NNA'J]^ijk^lmo]ppy|}NN@	I\]hik]lmo\ppy|}NN@	I\]hik]lmo\ppy|}
r+   c           
      $   | j                  d       |D ]z  }| j                  d| d       ||   d   }||   d   }||   d   }||   d   d   }||   d   d	   }|d
k(  rd| d| d| d| d	}nd| d| d| d| d	}| j                  |       | y r  r  r  s	            r)   write_planetsOnChart_nscr     r  r+   c                     | j                  d       |D ]^  }| j                  d| d       ||   d   }||   d   }||   d   D ],  }|d   }|d   }d	| d
| d| d| d	}| j                  |       . ` y r  r  r  s	            r)   write_planetsAspectsOnChart_nscr!  5  r  r+   c                    |d   dk(  s|d   dk(  r| | d}nd|v r	| d| d}n| d| d}t        |dd      }|j                  d| j                   d	| j                   d
       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       t	        || j
                         t        || j
                  d   | j                         t        || j                         | j
                  d   dk(  rt        || j                         |j                  d       |j                  d       |j                          y) Creates SVG image of astrology chart as per the chart draw configuration
        with data in division. The divisional chart is mentioned by division and 
        hence named accordinglyr  r  r  r  r  r   r  r  r  z" height="500" width="500" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 420 420" shape-rendering="geometricPrecision" text-rendering="geometricPrecision" charset="utf-16">
r  O    .sign-num { font-size: 22px; font-weight: bold; font-family: sans-serif; }
zM    .planet { font-size: 20px; font-weight: bold; font-family: sans-serif; }
zM    .aspect { font-size: 22px; font-weight: bold; font-family: sans-serif; }
r  r  r(  r$  Tr  r  rE  )r	  r  r  r  r  r  r  rH  r  r  r!  r
  r  s        r)   r  r  G  s}   
 	(2,#"5&Z(8'9>	&Zq)9(:$?&Zq)9(:$?$cX>H
 NNy!3!3 4GH<O<O;P  Ql  o  pNN=!NNefNNcdNNcdNN>"NNEF #8X->->?Xx'8'8'GH[H[\Xx'7'78,-5'(2B2BC NNKLNN: NNr+   c                     |t        dd      v r@t        t        | dz
     |dz
     d         }t        t        | dz
     |dz
     d         }||fS t        d| d       yr  )rI  r  (transitPlanetPosition_northSquareClassicrx  r  s       r)   r  r  t  s     	U1QZCHQJOPYZ[P[\]`abCHQJOPYZ[P[\]`ab\*+UV_U``abcr+   c                    | j                  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                  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                  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                  d |d   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)|d
    d#       | j                  d*|d
    d#       | j                  d+|d
    d#       | j                  d,|d
    d#       | j                  d-|d
    d#       | j                  d.|d
    d#       y )/Nz9  <rect width="610" height="610" x="5" y="5" style="fill:r%  z;stroke-width:2;stroke:r&  r  zN  <polygon id ="tanbhav" points="310,110 210,210 310,310 410,210" style="fill:r)  r*  r  r'  r  zG  <polygon id ="dhanbhav" points="110,110 310,110 210,210" style="fill:r+  zG  <polygon id ="anujbhav" points="110,110 110,310 210,210" style="fill:r,  zP  <polygon id ="maatabhav" points="210,210 110,310 210,410 310,310" style="fill:r-  zI  <polygon id ="santanbhav" points="110,310 210,410 110,510" style="fill:r.  zF  <polygon id ="rogbhav" points="310,510 210,410 110,510" style="fill:r/  zT  <polygon id ="dampathyabhav" points="310,510 210,410 310,310 410,410" style="fill:r0  zG  <polygon id ="aayubhav" points="310,510 410,410 510,510" style="fill:r1  zI  <polygon id ="bhagyabhav" points="410,410 510,510 510,310" style="fill:r2  zP  <polygon id ="karmabhav" points="410,410 510,310 410,210 310,310" style="fill:r3  zG  <polygon id ="laabbhav" points="510,310 410,210 510,110" style="fill:r4  zH  <polygon id ="karchbhav" points="410,210 510,110 310,110" style="fill:r5  z8  <line x1="220" y1="5" x2="220" y2="108" style="stroke:z;stroke-width:2"/>
z8  <line x1="400" y1="5" x2="400" y2="108" style="stroke:z:  <line x1="220" y1="510" x2="220" y2="613" style="stroke:z:  <line x1="400" y1="510" x2="400" y2="613" style="stroke:z8  <line x1="5" y1="230" x2="108" y2="230" style="stroke:z8  <line x1="5" y1="390" x2="108" y2="390" style="stroke:z:  <line x1="510" y1="230" x2="613" y2="230" style="stroke:z:  <line x1="510" y1="390" x2="613" y2="390" style="stroke:z6  <line x1="8" y1="8" x2="108" y2="108" style="stroke:z8  <line x1="8" y1="613" x2="108" y2="512" style="stroke:z:  <line x1="512" y1="512" x2="615" y2="615" style="stroke:z8  <line x1="510" y1="108" x2="615" y2="8" style="stroke:r  r  s     r)   %draw_classicNorthTransitChartSkeletonr(    sn   NNPQYZmQnPo  pG  HP  Qb  Hc  Gd  dj  m  nNNefno}f~  @I  gJ  fK  KS  T\  ]j  Tk  Sl  lA  D  ENN^_ghv_w  yC  `D  _E  EM  NV  Wd  Ne  Mf  f{  ~  NN^_ghv_w  yC  `D  _E  EM  NV  Wd  Ne  Mf  f{  ~  NNghpq  iA  BM  iN  hO  OW  X`  an  Xo  Wp  pE  H  INN`aijxay  {G  bH  aI  IQ  RZ  [h  Ri  Qj  j  B  CNN]^fgu^v  xA  _B  ^C  CK  LT  Ub  Lc  Kd  dy  |  }NNklt  vD  mE  FU  mV  lW  W_  `h  iv  `w  _x  xM  P  QNN^_ghv_w  yC  `D  _E  EM  NV  Wd  Ne  Mf  f{  ~  NN`aijxay  {G  bH  aI  IQ  RZ  [h  Ri  Qj  j  B  CNNghpq  iA  BM  iN  hO  OW  X`  an  Xo  Wp  pE  H  INN^_ghv_w  yC  `D  _E  EM  NV  Wd  Ne  Mf  f{  ~  NN_`hiw`x  zE  aF  `G  GO  PX  Yf  Pg  Oh  h}  @  A NNOPXYfPgOhh|  ANNOPXYfPgOhh|  ANNQRZ[hRiQjj~  B  CNNQRZ[hRiQjj~  B  CNNOPXYfPgOhh|  ANNOPXYfPgOhh|  ANNQRZ[hRiQjj~  B  CNNQRZ[hRiQjj~  B  CNNMhWdNeMffz}~NNOPXYfPgOhh|  ANNQRZ[hRiQjj~  B  CNNOPXYfPgOhh|  A
r+   c                    | j                  d       | j                  d| d|d   dd       | j                  d| d|d   dd       | j                  d	| d|d
   dd       | j                  d| d|d   dd       | j                  d| d|d   dd       | j                  d| d|d   dd       | j                  d| d|d   dd       | j                  d| d|d   dd       | j                  d| d|d   dd       | j                  d| d|d   dd       | j                  d| d|d   dd       | j                  d| d|d   dd       y )Nr  z(  <text id ="tan" x="293" y="295" fill="r  r   r  r  z)  <text id ="dhan" x="197" y="195" fill="r   z)  <text id ="anuj" x="170" y="218" fill="r   z*  <text id ="maata" x="270" y="318" fill="r   z,  <text id ="santaan" x="175" y="416" fill="r   z(  <text id ="rog" x="197" y="435" fill="r   z.  <text id ="dampathya" x="295" y="340" fill="r   z)  <text id ="aayu" x="396" y="437" fill="r   z+  <text id ="bhagya" x="420" y="418" fill="r   z*  <text id ="karma" x="320" y="318" fill="r   z)  <text id ="laab" x="418" y="218" fill="r   z*  <text id ="karch" x="398" y="198" fill="r   r  r  s      r)   write_signnumOnChart_ntscr*    s   NNFGNN?yH[\ghi\jkm[nnwz{NN@	I\]hij]kln\oox{|NN@	I\]hij]kln\oox{|NNA'J]^ijk^lmo]ppy|}NNCG9L_`klm`noq_rr{~NN?yH[\ghi\jkm[nnwz{NNEgYNabmnobpqsatt}  A  BNN@	I\]hij]kln\oox{|NNB7)K^_jkl_mnp^qqz}~NNA'J]^ijk^lmo]ppy|}NN@	I\]hik]lmo\ppy|}NNA'J]^ijl^mnp]qqz}~
r+   c                 <   | j                  d       |D ]  }| j                  d| d       ||   d   }||   d   }||   d   }||   d   d   d	z   }||   d   d
   d	z   }|dk(  rd| d| d| d| d| d}nd| d| d| d| d| d}| j                  |        y )Nz0
  <!-- ********** Natal Planets ********** -->
r  r  r   r   r   r   r,   d   r-   Tr  r  r  z=" text-decoration="underline" class="natal-planet" id="natal-">(r  z!" class="natal-planet" id="natal-">r  r  r  s	            r)   write_natalplanetsOnChart_ntscr/    s8   NNGH
-j\9JKL$X.
#G,z*84Z ',s2Z ',s2 D=#.rd%t8L>  RO  PZ  O[  [^  _e  ^f  fp   s#.rd%t8L>Qrs}r~  A  BH  AI  IR   U'(   r+   c                 0   | j                  d       |D ]  }| j                  d| d       ||   d   }||   d   }||   d   }||   d   d   }||   d   d	   }|d
k(  rd| d| d| d| d| d}nd| d| d| d| d| d}| j                  |        y )Nz2
  <!-- ********** Transit Planets ********** -->
r  r  r   r   r   r   r,   r-   Tr  r  r  zA" text-decoration="underline" class="transit-planet" id="transit-r-  r  z%" class="transit-planet" id="transit-r.  r  r  r  s	            r)    write_transitplanetsOnChart_ntscr1    s6   NNIJ
-j\9JKL$X.
#G,z*84Z ',Z ', D=#.rd%t8L>  RS  T^  S_  _b  ci  bj  jt   w#.rd%t8L>Qv  xB  wC  CE  FL  EM  MV   Y'(   r+   c                     | j                  d       |D ]g  }| j                  d| d       ||   d   }||   d   }||   d   D ]5  }|d   dz   }|d	   dz   }d
| d| d| d| d| d}| j                  |       7 i y )Nz8
  <!-- ********** Natal Planets Aspects ********** -->
r  r  r   r   r   r,   r,  r-   r  r  r  z!" class="natal-aspect" id="natal-	-aspect">r  r  r  s	            r)   %write_natalplanetsAspectsOnChart_ntscr4    s    NNOP
-j\9QRS$_5z*84&z2;?O %+B %+B $/rd%t8L>Qrs}r~  H  IO  HP  PY   \NN+,  @	  r+   c                     | j                  d       |D ]a  }| j                  d| d       ||   d   }||   d   }||   d   D ]/  }|d   }|d   }d	| d
| d| d| d| d}| j                  |       1 c y )Nz:
  <!-- ********** Transit Planets Aspects ********** -->
r  r  r   r   r   r,   r-   r  r  r  z%" class="transit-aspect" id="transit-r3  r  r  r  s	            r)   'write_transitplanetsAspectsOnChart_ntscr6    s    NNQR
-j\9QRS$_5z*84&z2;?O %B %B $/rd%t8L>Qv  xB  wC  CL  MS  LT  T]   `NN+,  @	  r+   c                    |d   dk(  s|d   dk(  r| | d}nd|v r	| d| d}n| d| d}t        |dd      }|j                  d| j                   d	| j                   d
       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       t	        || j
                         t        || j
                  d   | j                         t        ||j                         |j
                  d   dk(  rt        ||j                         t        || j                         | j
                  d   dk(  rt        || j                         |j                  d       |j                  d       |j                          y)r#  r  r  r  r  r  r   r  r  r  z" height="610" width="610" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 616 616" shape-rendering="geometricPrecision" text-rendering="geometricPrecision" charset="utf-16">
r  r$  zS    .natal-planet { font-size: 20px; font-weight: bold; font-family: sans-serif; }
zS    .natal-aspect { font-size: 22px; font-weight: bold; font-family: sans-serif; }
zU    .transit-planet { font-size: 20px; font-weight: bold; font-family: sans-serif; }
zU    .transit-aspect { font-size: 22px; font-weight: bold; font-family: sans-serif; }
r  r  r(  r$  Tr  r  rE  )r	  r  r  r  r(  r  r*  rH  r/  r  r4  r1  r6  r
  )r  r  r  parentChartObjr  r  s         r)   r  r     s   
 	(2,#"5&Z(8'9>	&Zq)9(:$?&Zq)9(:$?$cX>H
 NNy!3!3 4GH<O<O;P  Ql  o  pNN=!NNefNNijNNijNNklNNklNN>"NNEF *(H4E4EFh(9(9-(HI\I\]"8^-C-CD23t;-h8N8NO %Xx/?/?@,-5/(:J:JK NNKLNN: NNr+   __main__Lagnaz
Shyam Bhatr!   SuMoMaMeJuVeSar  )r   RaKeF)r8  z./astrocharts
LagnaChartr  limezD:\Personal)Fr  r	  r
  r  r  r  r  r  r  r  TANDHANANUJMAATASANTAANROGYUVATIAAYUBHAGYAKARMALAABAKARCHr&   rG  rf  r,   r-   r  r&  r  r  r  r   r  r  rK  r  r  r  r  r  r  r  r  r  r  r  re  r  r  r  r  r!  r  r  r(  r*  r/  r1  r4  r6  r  r  mychartrP  rn  r>  rx  r  mytransitchartr  r+   r)   <module>rT     s5   	
 

	 	
	
	



	

 3 #3cC
  ./ua,>-.ua,>-.ua,>-.ua,>-.tQu,=-.tQu,=-.ua,>-.ua,>	'( ./tQt,<-.tQu,=-.tQt,<-.tQu,=-.tQt,<-.tQt,<-.tQu,=-.tQu,=	'( ./tQu,=-.tQu,=-.tQt,<-.tQu,=-.tQt,<-.tQt,<-.tQu,=-.tQu,=	'( ./ua,>-.tQu,=-.ua,>-.tQu,=-.tQu,=-.tQu,=-.ua,>-.ua,>	'( ./tQu,=-.tQu,=-.tQu,=-.tQu,=-.tQu,=-.tQu,=-.tQu,=-.tQu,=	'( ./tQu,=-.tQu,=-.ua,>-.ua,>-.tQu,=-.tQu,=-.ua,>-.ua,>	'( ./ua,>-.ua,>-.ua,>-.ua,>-.ua,>-.ua,>-.ua,>-.ua,>	'( ./ua,>-.ua,>-.ua,>-.ua,>-.ua,>-.ua,>-.ua,>-.ua,>	'( ./ua,>-.ua,>-.ua,>-.ua,>-.ua,>-.ua,>-.ua,>-.ua,>	'( ./ua,>-.ua,>-.ua,>-.ua,>-.ua,>-.ua,>-.ua,>-.ua,>	'( ./ua,>-.ua,>-.ua,=-.ua,=-.ua,>-.ua,>-.ua,=-.ua,>	'( ./ua,=-.tQu,=-.tQu,=-.tQu,=-.tQu,=-.tQu,=-.tQu,=-.tQu,=	'(wF%& !T tE5U7NV[bfPgtE5U7OW\cgQhj tE5T7MUZaeOftDt4E6MUY`dOeg eDu5T7MUY`eOfeDu5T7NVY`dPeg eDu5T7NVZafPgeDu5T7NVZafPgi eDu5T7NVZafPgeDu5T7NVY`ePfh uU7t%9PX]diRjuT6e%8PX\chRik uU7u59QY^ejSkuU7u59QY^ejSkm uU7u59QY^ejSkuU7u59QY^ejSkm uU7u59QY^ejSkuU7u59QY^ejSkm uU7u59QY^ejSkuU7u59QY^ejSkm uU7u49PX]diRjuU7u59QY^eiSjl tE5U7NV[bfPgtE5U7NV[bfPgi]0, (d 451,=36Q,?36Q,?36R,@36S,A36S,A36S,A343,?37c,B37c,B37b,A37a,@  +.B$7 !  R("%"%"%"%"%"%"%"%	 o odp pfm mb	!4&*$$V
0" *$'Z
D **$$/d z,/Gk*s4#tD!$tD"%wtQ'wtQ'uT1%vdAX6tD"%tD!$%(	',,e
<= 'wgFNc$*d4+d4+gdA.gdA.eD!,fT1F;d4+d4+ 
.

nlE
BC	.? r+   