
    f
                        U d dl mZ d dlZd dlZd dlZd dlZd dlmZmZm	Z	m
Z
 d dlZd dlmZ  ej                         Zi Zded<   daded<    ej&                         dd	       Zdd
ZddZddZy)    )annotationsN)AnyCallableOptionalSequence)Encodingzdict[str, Encoding]	ENCODINGSz1Optional[dict[str, Callable[[], dict[str, Any]]]]ENCODING_CONSTRUCTORSc                     g } t        j                  t        j                  t        j                  dz         }|D ]  \  }}}| j                  |        | S )N.)pkgutiliter_modulestiktoken_ext__path____name__append)modsplugin_mods_mod_names       P/opt/lhia/ganansol/python/venv/lib/python3.12/site-packages/tiktoken/registry.py_available_plugin_modulesr      sS     D&&|'<'<l>S>SVY>YZK% 8QHK    c            	     x   t         5  t        
	 d d d        y i at               D ]^  } t        j                  |       }	 |j                  }|j                         D ]'  \  }}|t        v rt        d| d|        |t        |<   ) ` 	 d d d        y # t
        $ r}t        d|  d      |d }~ww xY w# 1 sw Y   y xY w)Nztiktoken plugin z& does not define ENCODING_CONSTRUCTORSzDuplicate encoding name z in tiktoken plugin )_lockr
   r   	importlibimport_moduleAttributeError
ValueErroritems)r   modconstructorseenc_nameconstructors         r   _find_constructorsr&       s    	 > ,> > !#13 	>H))(3C"88
 *6););)= >%+44$28*<PQYPZ[  3>%h/>	>> > "  &xj0VW> >s3   B0$B0B	<B0	B-B((B--B00B9c                J   | t         v r	t         |    S t        5  | t         v rt         |    cd d d        S t        t                t        J | t        vrt	        d|  dt                      t        |    }t        di  |       }|t         | <   |cd d d        S # 1 sw Y   y xY w)NzUnknown encoding z. Plugins found:  )r	   r   r
   r&   r   r   r   )encoding_namer%   encs      r   get_encodingr+   7   s    	!''	 I%]+  !( (444 55#M?2CD]D_C`a  ,M:''#&	- !  s   BABB"c                     t         5  t        t                t        J t        t              cd d d        S # 1 sw Y   y xY w)N)r   r
   r&   listr(   r   r   list_encoding_namesr.   N   s;    	 + ( (444)*	+ + +s	   '8A)returnzSequence[str])r/   None)r)   strr/   r   )r/   z	list[str])
__future__r   	functoolsr   r   	threadingtypingr   r   r   r   r   tiktoken.corer   RLockr   r	   __annotations__r
   	lru_cacher   r&   r+   r.   r(   r   r   <module>r:      ss    "     4 4  "	!#	 #KO H O 
 
>..+r   