o
    pkj                     @   sh   d Z ddlmZ ddlmZmZmZ ddlmZ ddded	e	d
e
e	ef dede	dedefddZdS )zACode generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.    )Any)	BaseModelTypeAdapterValidationError   )construct_unvalidatedF)lenientvdisc_keyvariantsunknown_cls
union_namer   returnc                C   s   t | tr| S t | tr|| vrt| d| d| | }||}|durWzt |tr8t|tr8|| W S t|	| W S  t
yV   |rOt| | Y S || d Y S w || dS )uX  Parse an open discriminated union value with forward-compatibility.

    Known discriminator values are dispatched to their variant types.
    Unknown discriminator values — or known discriminator values whose
    payload fails variant validation (e.g. a partial variant emitted by a
    newer server) — produce an instance of the fallback class, preserving
    the raw payload for inspection.

    Non-dict values and dicts missing the discriminator deliberately raise
    instead of falling back, so pydantic can try sibling branches of an
    enclosing union (e.g. None in Optional[...]).
    z: expected object with 'z' fieldN)raw)
isinstancer   dict
ValueErrorgettype
issubclassmodel_validater   validate_pythonr   r   )r	   r
   r   r   r   r   discvariant_cls r   ]/home/djax/ivt_ai_plugin/venv/lib/python3.10/site-packages/google/genai/_gaos/utils/unions.pyparse_open_union   s"   


r   N)__doc__typingr   pydanticr   r   r   serializersr   strr   r   boolr   r   r   r   r   <module>   s(   

