
    Wi$                     8    d dl Zddedej                  fdZd Zy)    Nfunc
embeddingsc                 J   	 ddl }|dk(  rt	        | |j
                        r|j                  | |      \  }}||fS t        t        |             j                         }d|v r#d|v rddl	m } |j                  | |      \  }}||fS | j                  |      }|dfS |d	k(  rit	        | |j
                        r|j                  |       S t        t        |             j                         }d|v rd|v rddl	m } |j                  |       S y|d
k(  rot	        | |j
                        r|j                  | |      }|S t        t        |             j                         }d|v rd|v rddl	m } |j                  | |      }|S yy# t        t        f$ r  t        ddddi             }Y w xY w)a  Function used to select the HDBSCAN-like model for generating
    predictions and probabilities.

    Arguments:
        model: The cluster model.
        func: The function to use. Options:
                - "approximate_predict"
                - "all_points_membership_vectors"
                - "membership_vector"
        embeddings: Input embeddings for "approximate_predict"
                    and "membership_vector"
    r   Nhdbscan HDBSCANapproximate_predictcuml)r   all_points_membership_vectorsmembership_vector)r   ImportErrorModuleNotFoundErrortype
isinstancer   r	   strlowercuml.clusterpredictr   r   )modelr   r   r   predictionsprobabilitiesstr_type_modelcuml_hdbscans           c/home/sietch6/trending-topics-pipeline/venv/lib/python3.12/site-packages/bertopic/cluster/_utils.pyhdbscan_delegatorr      s   ;
 $$eW__-)0)D)DUJ)W&K--T%[)//1^#	^(C<)5)I)I%Q[)\&K--mmJ/D   ..eW__-88??T%[)//1^#	^(C<==eDD ""eW__-#55eZHM  T%[)//1^#	^(C<(::5*MM   #C ,- ;8$y"y$&78:;s   E; ;#F"!F"c                     	 ddl }t	        | |j
                        ryt        t        |             j                         }d|v rd|v ryy# t        t        f$ r  t        ddddi             }Y hw xY w)	z@Check whether the input model is a supported HDBSCAN-like model.r   Nr   r   r   Tr
   F)r   r   r   r   r   r   r   r   )r   r   r   s      r   is_supported_hdbscanr   C   sx    ; %)e%++-NI$? ,- ;8$y"y$&78:;s   A	 	#A/.A/)N)numpynpr   ndarrayr   r   r       r   <module>r"      s%    <3 <BJJ <~r!   