a
    ^g                     @  s   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	 d dl
Z
d dlZd dlmZ e Zi Zded< daded< ejd	d
ddZdd
ddZdddddZdd
ddZdS )    )annotationsN)AnyCallableSequence)Encodingzdict[str, Encoding]	ENCODINGSz.dict[str, Callable[[], dict[str, Any]]] | NoneENCODING_CONSTRUCTORSzSequence[str])returnc                  C  s6   g } t tjtjd }|D ]\}}}| | q| S )N.)pkgutiliter_modulestiktoken_ext__path____name__append)modsZplugin_mods_mod_name r   _/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/tiktoken/registry.py_available_plugin_modules   s
    r   Nonec                  C  s   t  td urW d    d S i azt D ]} t| }z
|j}W n6 tyx } ztd|  d|W Y d }~n
d }~0 0 | D ],\}}|tv rtd| d|  |t|< qq*W n ty   d a Y n0 W d    n1 s0    Y  d S )Nztiktoken plugin z& does not define ENCODING_CONSTRUCTORSzDuplicate encoding name z in tiktoken plugin )	_lockr   r   	importlibimport_moduleAttributeError
ValueErroritems	Exception)r   modconstructorseZenc_nameconstructorr   r   r   _find_constructors!   s0    



r#   strr   )encoding_namer	   c              	   C  s   t | tstdt|  | tv r,t|  S t | tv rPt|  W  d    S td u rjt  td usjJ | tvrtd|  dt  dt	j
 dt|  }tf i | }|t| < |W  d    S 1 s0    Y  d S )Nz'Expected a string in get_encoding, got zUnknown encoding z.
Plugins found: z
tiktoken version: z (are you on latest?))
isinstancer$   r   typer   r   r   r#   r   tiktoken__version__r   )r%   r"   encr   r   r   get_encoding?   s,    
r+   z	list[str]c                   C  sJ   t 2 td u r t  td us J ttW  d    S 1 s<0    Y  d S )N)r   r   r#   listr   r   r   r   list_encoding_names[   s
    r-   )
__future__r   	functoolsr   r   	threadingtypingr   r   r   r   r(   Ztiktoken.corer   RLockr   r   __annotations__r   	lru_cacher   r#   r+   r-   r   r   r   r   <module>   s    