
    g                     <    d Z ddlmZ ddlmZmZ dedededefdZy	)
zACode generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.    )Enum)AnyOptionalmodel	fieldnamekeyreturnc                     j                         dt        dt        t           ffd}t	        | t
              r| D ]  } ||      }||c S   ||       }||S t        d d|        )a  
    Recursively search for the discriminator attribute in a model.

    Args:
        model (Any): The model to search within.
        fieldname (str): The name of the field to search for.
        key (str): The key to search for in dictionaries.

    Returns:
        str: The name of the discriminator attribute.

    Raises:
        ValueError: If the discriminator attribute is not found.
    fieldr	   c                    t        | t              r
| v r|     S t        |       r,t        |       }t        |t              r|j
                   S | S t        |       r,t        |       }t        |t              r|j
                   S | S y)z8Search for the discriminator attribute in a given field.N)
isinstancedicthasattrgetattrr   value)r   attrr   r   upper_fieldnames     P/var/www/openai/venv/lib/python3.12/site-packages/mistralai/utils/annotations.pyget_field_discriminatorz2get_discriminator.<locals>.get_field_discriminator   s     eT"e|*&5)$5),D$%**&V5/*5/2D$%**&V    z#Could not find discriminator field z in )upperr   r   strr   list
ValueError)r   r   r   r   r   discriminatorr   s    ``   @r   get_discriminatorr      s      oo'Os x} , %E3E:M($$ 
 ,E2M 
:9+T%Q
RRr   N)__doc__enumr   typingr   r   r   r    r   r   <module>r!      s4    G   1SS 1SS 1Ss 1Ss 1Sr   