
    3i?                         S r SSKJrJrJr  SSKrSSKrSSKJr  S\\	   4S jr
S\\	\\	\	4   4   4S jrS\\	   4S	 jrg)
z
Schema Registry for Embedding Functions

This module provides a registry of all available schemas for embedding functions.
It can be used to get information about available schemas and their versions.
    )DictListSetN   )SCHEMAS_DIRreturnc                      / n [         R                  " [        5       H7  nUR                  S5      (       d  M  US:w  d  M#  U R	                  USS 5        M9     U $ )ze
Get a list of all available schemas.

Returns:
    A list of schema names (without .json extension)
.jsonzbase_schema.jsonN)oslistdirr   endswithappend)schemasfilenames     m/home/james-whalen/.local/lib/python3.13/site-packages/chromadb/utils/embedding_functions/schemas/registry.pyget_available_schemasr      sN     GJJ{+W%%(6H*HNN8CR=) , N    c                  d   0 n [        5        H  n[        R                  R                  [        U S35      n[        US5       n[        R                  " U5      nUR                  SS5      UR                  SS5      UR                  SS5      S.X'   S	S	S	5        M     U $ ! , (       d  f       M  = f)
z~
Get information about all available schemas.

Returns:
    A dictionary mapping schema names to information about the schema
r
   rversionz1.0.0title description)r   r   r   N)	r   r   pathjoinr   openjsonloadget)schema_infoschema_nameschema_pathfschemas        r   get_schema_infor&      s     K,.ggll;;-u0EF+s#qYYq\F!::i9GR0%zz-<(K$ $# /  $#s   AB  
B/	c                  (    [        [        5       5      $ )zn
Get a set of all embedding function names that have schemas.

Returns:
    A set of embedding function names
)setr    r   r   get_embedding_function_namesr*   0   s     $&''r   )__doc__typingr   r   r   r   r   schema_utilsr   strr   r&   r*   r)   r   r   <module>r/      sY    # " 	  %tCy c4S>12 ((c#h (r   