
    [gN                     <    S SK Jr  S SKJr  S SKJr  SrS rSS jrg)	    )deepcopy)Token)	as_stringu	    	
 -c                 &    U =(       a	    U [         ;   $ N)SEPARATOR_CHARS)chars    0/usr/lib/python3/dist-packages/lunr/tokenizer.pydefault_separatorr   	   s    +DO++    Nc           	        ^ U c  / $ U=(       d    0 n[        U [        [        45      (       a=  U  Vs/ s H/  n[        [	        U5      R                  5       [        U5      5      PM1     sn$ Tc  [        nO[        T5      (       a  TnOU4S jn[        U 5      R                  5       n[        U5      n/ nSn[        US-   5       H  n	X:w  a  XY   OSn
X-
  nU" U
5      (       d  X:X  d  M&  US:  aO  0 nX/US'   [        U5      US'   UR                  U5        [        X5      nUR                  [        X]   U5      5        U	S-   nM     U$ s  snf )ak  Splits a string into tokens ready to be inserted into the search index.

Args:
    metadata (dict): Optional metadata can be passed to the tokenizer, this
        metadata will be cloned and added as metadata to every token that is
        created from the object to be tokenized.
    separator (callable or compiled regex): This tokenizer will convert its
        parameter to a string by calling `str` and then will split this
        string on characters for which `separator` is True. Lists will have
        their elements converted to strings and wrapped in a lunr `Token`.

Returns:
    List of Token instances.
c                 &   > TR                  U 5      $ r   )match)c	separators    r
   <lambda>Tokenizer.<locals>.<lambda>+   s    !3r   r       positionindex)
isinstancelisttupler   r   lowerr   r   callablestrlenrangeupdatesliceappend)objmetadatar   elementis_separatorstringlengthtokensslice_start	slice_endr	   slice_lengthtoken_metadatasls     `           r
   	Tokenizerr/      sI    {	~2H#e}%%QT
QTgE)G$**,hx.@AQT
 	
 (	)		 3X^^F[FFK6A:&	$-$7v R .!4a!#.9-Hz**-f+w'%%h/;2eFJ?@#a-K ' M=
s   6E	)NN)	copyr   
lunr.tokenr   
lunr.utilsr   r   r   r/    r   r
   <module>r4      s       $,3r   