
    =wg                        d Z ddlZi 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!Zd"d#dd"d"d#d#d$Zd%Zd&Zd'Zd(Z ej                  d)ez   d*z   ez   ez         Z	 ej                  d)ez   d*z   ez   ez   d+z   ez   d,z         Z
 ej                  d)ez   d*z   ez   ez   ez   ez         Z ej                  d)ez   d*z   ez         Z ej                  d-ez   ez   d.z         Z ej                  d/      Z ej                  d0      Z ej                  d1      Z ej                  d2      Z ej                  d3      Z ej                  d4      Z ej                  d5      Z ej                  d6      Zd7 Zy)8z
Reimplementation of the
`Porter stemming algorithm <http://tartarus.org/~martin/PorterStemmer/>`_
in Python.

In my quick tests, this implementation about 3.5 times faster than the
seriously weird Python linked from the official page.
    Nationalatetionaltionencienceancianceizerizeblibleallialentlientelieousliousizationationatoralismivenessivefulnessfulousnesslog)alitiivitibilitilogiic )icateativealizeicitiicalr   nessz[^aeiou]z[aeiouy]z
[^aeiouy]+z[aeiou]+z^(z)?(z)?$^z[^aeiouwxy]$z^(.*)(ed|ing)$z(at|bl|iz)$z([^aeiouylsz])\1$z^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$z.^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$zS^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$z^(.+?)(s|t)(ion)$z^(.+?)e$c                    t        |       dk  r| S | d   dk(  }|rd| dd z   } | j                  d      r;| j                  d      r| dd	 } n$| j                  d
      r| dd	 } n| d	   dk7  r| dd } | j                  d      r | dd }t        j                  |      r| dd } nt        j                  |       }|rx|j                  d      }t        j                  |      rR|} t        j                  |       r| dz  } n5t        j                  |       r| dd } nt        j                  |       r| dz  } | j                  d      r| dd }t        j                  |      r|dz   } t        j                  |       }|rC|j                  d      }|j                  d      }t        j                  |      r|t        |   z   } t        j                  |       }|rC|j                  d      }|j                  d      }t        j                  |      r|t        |   z   } t        j                  |       }|r)|j                  d      }t        j                  |      rT|} nQt         j                  |       }|r:|j                  d      |j                  d      z   }t        j                  |      r|} t"        j                  |       }|rR|j                  d      }t        j                  |      s*t$        j                  |      rt        j                  |      s|} | j                  d      rt        j                  |       r| dd } |rd| dd z   } | S )zUses the Porter stemming algorithm to remove suffixes from English
    words.

    >>> stem("fundamentally")
    "fundament"
       r   yY   Nsssesieseedr   i   ll)lenendswith_mgr0match_ed_inggroup_s_v	_at_bl_iz_step1b_c_v_step2
_step2list_step3
_step3list_step4_1_mgr1_step4_2_step5_meq1)w
first_is_yr4   mstemsuffixs         I/var/www/horilla/myenv/lib/python3.12/site-packages/whoosh/lang/porter.pyrT   rT   O   s    1vz1J!AB%K 	zz#::f#2AZZ#2ArUc\#2A 	zz%crF;;q>#2AMM!771:Dzz$??1%HA]]1%#2AZZ]HA 	zz#"v::ds
A 	QAwwqz;;tz&))A 	QAwwqz;;tz&))A 	qAwwqz;;tANN1771:
*D{{4  	QAwwqz;;tT!24::d;KAzz$EKKNcrF!AB%KH    )__doc__rerI   rK   _cons_vowel	_cons_seq
_vowel_seqcompiler@   rP   rM   rD   rG   rB   rE   rF   rH   rJ   rL   rN   rO   rT    rW   rV   <module>r`      s   
 f f	
 e U d u S u  u e t   !" #$ +
2 
 			
 	

4)#d*Z7)CD

4)#d*Z7)CcIJVY^^_

4)#d*Z7)CjPS\\]rzz$"T)F23rzz#	/F*^;< "**%
&BJJ}%	
"**)
*	  _  
`	D	E2::kl2::)*	J	
`rW   