
    ^NjN                     0   d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
mZ d dlZd dlmZ d dlmZ  ed      Zdded	ed
ededef
dZdedeej,                     defdZde
e   dede
ee      fdZddedz  defdZdee   fdZdedefdZy)    N)Path)islice)IterableTypeVar)NDArray)
NumpyArrayTinput_arraypdimepsreturnc                     t         j                  j                  | ||d      }t        j                  ||      }| |z  }|S )NT)ordaxiskeepdims)nplinalgnormmaximum)r
   r   r   r   r   normalized_arrays         g/Users/ahmed/devFolder/Ultron/claude-voice/.venv/lib/python3.12/site-packages/fastembed/common/utils.py	normalizer      s=    99>>+13>FD::dC D"T)    attention_maskc                 N   t        j                  |d      j                  t         j                        }t        j                  |dd| j
                  d   f      }t        j                  | |z  d      }t        j                  |d      }|t        j                  |d      z  }|S )N)r      g&.>)r   expand_dimsastypeint64tileshapesumr   )r
   r   input_mask_expandedsum_embeddingssum_maskpooled_embeddingss         r   mean_poolingr)      s    ..bAHHR''"51k>O>OPR>S7TUVVK*==AFNvv)2H&Hd)CCr   iterablesizec              #   ~   K   t        |       }|r,t        t        ||            }t        |      dk(  ry| |r+yyw)zF
    >>> list(iter_batch([1,2,3,4,5], 3))
    [[1, 2, 3], [4, 5]]
    r   N)iterlistr   len)r*   r+   source_iterbs       r   
iter_batchr2   #   s=     
 x.K
T*+q6Q;	 s   8==	cache_dirc                     | Rt         j                  j                  t        j                         d      }t        t        j                  d|            }nt        |       }|j                  dd       |S )z2
    Define the cache directory for fastembed
    fastembed_cacheFASTEMBED_CACHE_PATHT)parentsexist_ok)ospathjointempfile
gettempdirr   getenvmkdir)r3   default_cache_dir
cache_paths      r   define_cache_dirrB   0   sb     GGLL)<)<)>@QR"))$:<MNO
)_
TD1r   c                  T    t        d t        t        j                        D              S )Nc              3      K   | ]=  }t        j                  t        |            j                  d       s1t        |       ? yw)PN)unicodedatacategorychr
startswith).0is     r   	<genexpr>z&get_all_punctuation.<locals>.<genexpr>?   s6      -11E1Ec!f1M1X1XY\1]A-s
   2AA)setrangesys
maxunicode r   r   get_all_punctuationrR   >   s%     cnn-  r   textc                 P    t        j                  dd| t         j                        S )Nz[^\w\s] )flags)resubUNICODE)rS   s    r   remove_non_alphanumericrZ   D   s    66*c4rzz::r   )   r   g-q=)N)r9   rO   rW   r<   rF   pathlibr   	itertoolsr   typingr   r   numpyr   numpy.typingr   fastembed.common.typesr   r	   intfloatr   r!   r)   r.   r2   strrB   rM   rR   rZ   rQ   r   r   <module>re      s    	 
 	     $    -CL: #  e Xb j '"((:K PZ 
! 
C 
HT!W4E 
d
 d SX ;# ;# ;r   