
    Ig                         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m	Z	m
Z
 d dlZd dlZd dlZd dlZd dlmZ ddej"                  fdZde
eef   d	edefd
Zdde	e   defdZdee   fdZdedefdZy)    N)islice)Path)	GeneratorIterableOptionalUnion)Setreturnc                     t         j                  j                  | ||d      }t        j                  ||      }| |z  }|S )NT)ordaxiskeepdims)nplinalgnormmaximum)input_arraypdimepsr   normalized_arrays         S/var/www/html/answerous/venv/lib/python3.12/site-packages/fastembed/common/utils.py	normalizer      s=    99>>+13>FD::dC D"T)    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_batchr#      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)r$   default_cache_dir
cache_paths      r   define_cache_dirr3   "   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>1   s6      1E1Ec!f1M1X1XY\1]As
   2AA)setrangesys
maxunicode r   r   get_all_punctuationrC   0   s%     cnn-  r   textc                 P    t        j                  dd| t         j                        S )Nz[^\w\s] )flags)resubUNICODE)rD   s    r   remove_non_alphanumericrK   6   s    66*c4rzz::r   )      g-q=)N)r*   r-   	itertoolsr   pathlibr   typingr   r   r   r   r7   r@   numpyr   rH   r	   ndarrayr   intr#   strr3   rC   rK   rB   r   r   <module>rU      s    	    7 7  
  	 RZZ 
x23 
3 
8 
  SX ;# ;# ;r   