o
    -wi                     @  sZ  d Z ddlmZ ddlmZmZmZmZmZ ddl	m
Z
mZmZmZmZ ddlmZmZmZmZ ddlmZmZ ddlmZ erFdd	lmZ G d
d deddZedddZG dd dee
ZG dd deZedZesoerzeeedddf Z neZ eeeddddf Z!dddZ"eserddl	m#Z#m$Z$ eee e#e"e$ef Z%dS ee Z%dS ) zCBase classes and other customizations for generated pydantic types.    )annotations)TYPE_CHECKINGAnyCallableLiteralTypeVar)	BaseModel
ConfigDictFieldJson	StrictStr)	Annotated	TypedDictUnpackoverride   )IS_PYDANTIC_V2to_json)PydanticCompatMixin)IncExc                   @  sj   e Zd ZU dZded< ded< ded< ded< d	ed
< d	ed< d	ed< d	ed< ded< ded< d	ed< dS )ModelDumpKwargsz@Shared keyword arguments for `BaseModel.model_{dump,dump_json}`.zIncEx | Noneincludeexcludezdict[str, Any] | Nonecontextzbool | Noneby_aliasboolexclude_unsetexclude_defaultsexclude_none
round_tripz'bool | Literal['none', 'warn', 'error']warningszCallable[[Any], Any] | Nonefallbackserialize_as_anyN)__name__
__module____qualname____doc____annotations__ r(   r(   Q/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/wandb/_pydantic/base.pyr      s   
 r   F)totalT)r   r   c                   @  s   e Zd ZdZdS )CompatBaseModelN)r#   r$   r%   r&   r(   r(   r(   r)   r+   )   s    r+   c                      s\   e Zd Zeddddddddddd
Zeddd fddZeddd fddZ  ZS )GQLBaseTalwaysr(   )
populate_by_namevalidate_by_namevalidate_by_aliasserialize_by_aliasvalidate_assignmentvalidate_defaultuse_attribute_docstringsfrom_attributesrevalidate_instancesprotected_namespacesjson)moder9   Literal['json', 'python'] | strkwargsUnpack[ModelDumpKwargs]returndict[str, Any]c                  "   i t |}t jdd|i|S )Nr9   r(   )MODEL_DUMP_DEFAULTSsuper
model_dump)selfr9   r;   	__class__r(   r)   rB   =      zGQLBase.model_dumpN)indentrG   
int | Nonestrc                  r?   )NrG   r(   )r@   rA   model_dump_json)rC   rG   r;   rD   r(   r)   rJ   G   rF   zGQLBase.model_dump_json)r9   r:   r;   r<   r=   r>   )rG   rH   r;   r<   r=   rI   )	r#   r$   r%   r	   model_configr   rB   rJ   __classcell__r(   r(   rD   r)   r,   /   s&    	r,   T)reprfrozen
__typename)rN   rO   aliasvr   r=   c                 C  s   t | ttfr	| S t| S )zIn case the incoming value isn't serialized JSON, reserialize it.

    This lets us use `Json[...]` fields with values that are already deserialized.
    )
isinstancerI   bytesr   )rR   r(   r(   r)   ensure_jsonk   s   rU   )BeforeValidatorPlainSerializerN)rR   r   r=   r   )&r&   
__future__r   typingr   r   r   r   r   pydanticr   r	   r
   r   r   typing_extensionsr   r   r   r   utilsr   r   	v1_compatr   pydantic.mainr   r   r@   r+   r,   rM   GQLIdTypenamerU   rV   rW   SerializedToJsonr(   r(   r(   r)   <module>   sN    %


