
    Zǻi                    ^    d dl mZ d dlZd dlmZmZmZmZmZ 	 d	 	 	 	 	 ddZ		 	 	 	 	 	 ddZ
y)	    )annotationsN)OptionalTupleUnioncastTypec                H    t        |      t        |       z  st        d      y )Nz;You must provide exactly one of query_vector or query_text.)bool
ValueError)
query_textquery_vectors     ]/opt/lhia/marcimex/agent/venv/lib/python3.12/site-packages/neo4j_graphrag/utils/validation.pyvalidate_search_query_inputr      s'     j!11VWW 2    c                V    t        |t              rt         fd|D              S t         |      ryt	        j
                   j                        }t        ||j                  d       }t        t        t        t        t           df   t        t           f   |      }t         |      ryy)Nc              3  6   K   | ]  }t        |        y w)N)issubclass_safe).0baseclss     r   	<genexpr>z"issubclass_safe.<locals>.<genexpr>    s     I$?3-Is   T.F)
isinstancetupleany
issubclass	importlibimport_module
__module__getattr__name__r   r   r   object)r   class_or_tuple
cls_modulelatest_bases   `   r   r   r      s     .%(I.III#~& ((8J*n&=&=tDKuU4<#45tF|CDkRK#{#r   )NN)r   zOptional[str]r   zOptional[list[float]]returnNone)r   zType[object]r"   z(Union[Type[object], Tuple[Type[object]]]r%   r
   )
__future__r   r   typingr   r   r   r   r   r   r    r   r   <module>r*      sX    #  5 5 MQXX4IX	X	'O	r   