
    ?hp	                     N    d Z ddlmZ ddlmZ ddlmZ ddlmZ  G d de      Z	y	)
z
GraphQL `Get` command.
    )List)GraphQL)
Connection   )
GetBuilderc                   >     e Zd ZdZdee   def fdZdefdZ	 xZ
S )MultiGetBuilderz:
    GetBuilder class used to create GraphQL queries.
    get_builder
connectionc                 d   g }t         |   |       t        |t              st	        dt        |             |D ]k  }t        |t              st	        dt        |             |j                  |vr|j                  |j                         Tt	        d|j                   d       || _	        y)a  
        Initialize a MultiGetBuilder class instance.

        Parameters
        ----------
        get_builder : list of GetBuilder
            GetBuilder objects for a single request each.
        connection : weaviate.connect.Connection
            Connection object to an active and running Weaviate instance.

        Examples
        --------
        To create a 'multi_get' object using several 'get' request at the same time use:

        >>>    client.query.multi_get(
        ... [
        ...    client.query.get("Ship", ["name"]).with_alias("one"),
        ...    client.query.get("Ship", ["size"]).with_alias("two"),
        ...    client.query.get("Person", ["name"])
        ... ]
        with_alias() needs to be used if the same 'class_name' is used twice during the same 'multi_get' request.

        Raises
        ------
        TypeError
            If 'get_builder' is of wrong type.
        z)get_builder must be of type List but was zVAll objects in 'get_builder' must be of type 'GetBuilder' but at least one object was zKObjects in 'get_builder' can not have duplicate names but two were named: 'z)'. Queries can be renamed using an alias.N)
super__init__
isinstancer   	TypeErrortyper   nameappendr
   )selfr
   r   	get_namesget	__class__s        T/home/chris/cleankitchens-env/lib/python3.12/site-packages/weaviate/gql/multi_get.pyr   zMultiGetBuilder.__init__   s    8 	$+t,G[HYGZ[\\ 
	Cc:.lmqrumvlwx  xxy(  *abebjbjak  lU  V 
	 .9    returnc                 \    d}| j                   D ]  }||j                  d      z  } |dz   S )z
        Build query filter as a string.

        Returns
        -------
        str
            The GraphQL query as a string.
        z{Get{F)wrap_getz}})r
   build)r   queryr   s      r   r   zMultiGetBuilder.build?   s=     ## 	/CSYYY..E	/t|r   )__name__
__module____qualname____doc__r   r   r   r   strr   __classcell__)r   s   @r   r	   r	      s-    +9D$4 +9* +9Zs r   r	   N)
r"   typingr   weaviate.gql.filterr   weaviate.connectr   r   r   r	    r   r   <module>r)      s(     ( ?g ?r   