§
    Ý
@g¢  ã                  ó¸   — d dl mZ d dlZd dlmZmZ d dlmZ d dlZddl	m
Z
 ddlmZmZ ddlmZmZ  ed	¦  «        Zd%d„Zd&d„Zd'd„Zd(d„Zd)d„Zd*d!„Zd+d$„ZdS ),é    )ÚannotationsN)ÚAnyÚTypeVar)Ú	TypeGuardé   )Ú	NOT_GIVEN)Úis_dictÚis_list)ÚPYDANTIC_V2Úmodel_json_schemaÚ_TÚmodelú4type[pydantic.BaseModel] | pydantic.TypeAdapter[Any]Úreturnúdict[str, Any]c                ó  — t          j        | ¦  «        rt          | ¦  «        rt          | ¦  «        }nHt          r/t          | t          j        ¦  «        r|                      ¦   «         }nt          d| › �¦  «        ‚t          |d|¬¦  «        S )Nz:Non BaseModel types are only supported with Pydantic v2 - © ©ÚpathÚroot)ÚinspectÚisclassÚis_basemodel_typer   r   Ú
isinstanceÚpydanticÚTypeAdapterÚjson_schemaÚ	TypeErrorÚ_ensure_strict_json_schema)r   Úschemas     úH/var/www/piapp/venv/lib/python3.11/site-packages/openai/lib/_pydantic.pyÚto_strict_json_schemar"      s“   € Ý„�uÑÔð ^Õ"3°EÑ":Ô":ð ^Ý" 5Ñ)Ô)ˆˆÝ	ð ^� E­8Ô+?Ñ@Ô@ð ^Ø×"Ò"Ñ$Ô$ˆˆåÐ\ÐUZÐ\Ð\Ñ]Ô]Ð]å% f°2¸FÐCÑCÔCÐCó    r   Úobjectr   útuple[str, ...]r   údict[str, object]c               ó¾  ‡‡— t          | ¦  «        st          d| › d‰› �¦  «        ‚|                      d¦  «        }t          |¦  «        r3|                     ¦   «         D ]\  }}t	          |g ‰¢d‘|‘R ‰¬¦  «         Œ|                      d¦  «        }t          |¦  «        r3|                     ¦   «         D ]\  }}t	          |g ‰¢d‘|‘R ‰¬¦  «         Œ|                      d¦  «        }	|	dk    r	d| vrd	| d<   |                      d
¦  «        }
t          |
¦  «        rEd„ |
                     ¦   «         D ¦   «         | d<   ˆˆfd„|
                     ¦   «         D ¦   «         | d
<   |                      d¦  «        }t          |¦  «        rt	          |g ‰¢d‘R ‰¬¦  «        | d<   |                      d¦  «        }t          |¦  «        rˆˆfd„t          |¦  «        D ¦   «         | d<   |                      d¦  «        }t          |¦  «        rzt          |¦  «        dk    rH|  	                    t	          |d         g ‰¢d‘d‘R ‰¬¦  «        ¦  «         |  
                    d¦  «         nˆˆfd„t          |¦  «        D ¦   «         | d<   |                      dt          ¦  «        €|  
                    d¦  «         |                      d¦  «        }|r•t          | d¦  «        r…t          |t          ¦  «        sJ d|› �¦   «         ‚t          ‰|¬¦  «        }t          |¦  «        st!          d|› d|› �¦  «        ‚|  	                    i |¥| ¥¦  «         |  
                    d¦  «         | S )zkMutates the given JSON schema to ensure it conforms to the `strict` standard
    that the API expects.
    z	Expected z to be a dictionary; path=z$defsr   ÚdefinitionsÚtyper$   ÚadditionalPropertiesFÚ
propertiesc                ó   — g | ]}|‘ŒS r   r   )Ú.0Úprops     r!   ú
<listcomp>z._ensure_strict_json_schema.<locals>.<listcomp>9   s   € Ð"FÐ"FÐ"F¨D 4Ð"FÐ"FÐ"Fr#   Úrequiredc                óJ   •— i | ]\  }}|t          |g ‰¢d ‘|‘R ‰¬¦  «        “Œ S )r+   r   )r   )r-   ÚkeyÚprop_schemar   r   s      €€r!   ú
<dictcomp>z._ensure_strict_json_schema.<locals>.<dictcomp>:   sT   ø€ ð %
ð %
ð %
á ��[ð Õ+¨KÐ>XÀÐ>XÀlÐ>XÐTWÐ>XÐ>XÐ_cÐdÑdÔdð%
ð %
ð %
r#   ÚitemsÚanyOfc           	     ób   •— g | ]+\  }}t          |g ‰¢d ‘t          |¦  «        ‘R ‰¬¦  «        ‘Œ,S )r6   r   ©r   Ústr)r-   ÚiÚvariantr   r   s      €€r!   r/   z._ensure_strict_json_schema.<locals>.<listcomp>H   sV   ø€ ð  
ð  
ð  
á��7õ ' wÐ5M°tÐ5M¸WÐ5MÅcÈ!ÁfÄfÐ5MÐ5MÐTXÐYÑYÔYð 
ð  
ð  
r#   ÚallOfé   r   Ú0c           	     ób   •— g | ]+\  }}t          |g ‰¢d ‘t          |¦  «        ‘R ‰¬¦  «        ‘Œ,S )r<   r   r8   )r-   r:   Úentryr   r   s      €€r!   r/   z._ensure_strict_json_schema.<locals>.<listcomp>T   sV   ø€ ð $ð $ð $á�A�uõ +¨5Ð7O¸Ð7O¸wÐ7OÍÈAÉÌÐ7OÐ7OÐVZÐ[Ñ[Ô[ð$ð $ð $r#   ÚdefaultNz$refzReceived non-string $ref - )r   ÚrefzExpected `$ref: z&` to resolved to a dictionary but got )r	   r   Úgetr5   r   Úkeysr
   Ú	enumerateÚlenÚupdateÚpopr   Úhas_more_than_n_keysr   r9   Úresolve_refÚ
ValueError)r   r   r   ÚdefsÚdef_nameÚ
def_schemar(   Údefinition_nameÚdefinition_schemaÚtypr+   r5   Úany_ofÚall_ofrB   Úresolveds    ``             r!   r   r      s"  øø€ õ �;ÑÔð SÝÐQ KÐQÐQÈ4ÐQÐQÑRÔRÐRà�?Š?˜7Ñ#Ô#€DÝˆt�}„}ð _Ø$(§J¢J¡L¤Lð 	_ð 	_Ñ ˆH�jÝ& zÐ8R¸$Ð8RÀÐ8RÈÐ8RÐ8RÐY]Ð^Ñ^Ô^Ð^Ð^à—/’/ -Ñ0Ô0€KÝˆ{ÑÔð sØ2=×2CÒ2CÑ2EÔ2Eð 	sð 	sÑ.ˆOÐ.Ý&Ð'8Ð?fÀÐ?fÀ}Ð?fÐVeÐ?fÐ?fÐmqÐrÑrÔrÐrÐrà
�/Š/˜&Ñ
!Ô
!€CØ
ˆh‚€Ð1¸ÐDÐDØ.3ˆÐ*Ñ+ð —’ Ñ.Ô.€JÝˆzÑÔð 
Ø"FÐ"F°J·O²OÑ4EÔ4EÐ"FÑ"FÔ"Fˆ�JÑð%
ð %
ð %
ð %
ð %
à$.×$4Ò$4Ñ$6Ô$6ð%
ñ %
ô %
ˆ�LÑ!ð �OŠO˜GÑ$Ô$€EÝˆu�~„~ð cÝ9¸%ÐFVÈÐFVÈgÐFVÐFVÐ]aÐbÑbÔbˆ�GÑð �_Š_˜WÑ%Ô%€FÝˆv�„ð 
ð 
ð  
ð  
ð  
ð  
å'¨Ñ/Ô/ð 
ñ  
ô  
ˆ�GÑð �_Š_˜WÑ%Ô%€FÝˆv�„ð Ýˆv‰;Œ;˜!ÒÐØ×ÒÕ9¸&À¼)ÐJ_ÈDÐJ_ÐRYÐJ_Ð[^ÐJ_ÐJ_ÐfjÐkÑkÔkÑlÔlÐlØ�OŠO˜GÑ$Ô$Ð$Ð$ð$ð $ð $ð $ð $å )¨&Ñ 1Ô 1ð$ñ $ô $ˆK˜Ñ ð ‡‚�y¥)Ñ,Ô,Ð4Ø�Š˜	Ñ"Ô"Ð"ð �/Š/˜&Ñ
!Ô
!€CØ
ð 	 Õ# K°Ñ3Ô3ð 	 Ý˜#�sÑ#Ô#ÐHÐHÐ%HÀ3Ð%HÐ%HÑHÔHÐHå D¨cÐ2Ñ2Ô2ˆÝ�xÑ Ô ð 	gÝÐe°ÐeÐeÐ[cÐeÐeÑfÔfÐfð 	×ÒÐ6˜hÐ6¨+Ð6Ñ7Ô7Ð7Ø�Š˜ÑÔÐàÐr#   rB   r9   c                óð   — |                      d¦  «        st          d|›d�¦  «        ‚|dd …                              d¦  «        }| }|D ]+}||         }t          |¦  «        sJ d|› d|› �¦   «         ‚|}Œ,|S )Nz#/zUnexpected $ref format z; Does not start with #/r   ú/z1encountered non-dictionary entry while resolving z - )Ú
startswithrK   Úsplitr	   )r   rB   r   rT   r2   Úvalues         r!   rJ   rJ   s   s    € Ø�>Š>˜$ÑÔð TÝÐR°3ÐRÐRÐRÑSÔSÐSàˆqˆrˆrŒ7�=Š=˜ÑÔ€DØ€HØð ð ˆØ˜”ˆÝ�u‰~Œ~ÐeÐeÐeÐSVÐeÐeÐ[cÐeÐeÑeÔeÐeØˆˆà€Or#   rQ   r)   ú#TypeGuard[type[pydantic.BaseModel]]c                ó6   — t          | t          j        ¦  «        S ©N)Ú
issubclassr   Ú	BaseModel©rQ   s    r!   r   r   �   s   € Ý�c�8Ô-Ñ.Ô.Ð.r#   Úboolc                ó"   — t          | d¦  «        S )z@Returns True if the given type likely used `@pydantic.dataclass`Ú__pydantic_config__)Úhasattrr_   s    r!   Úis_dataclass_like_typerd   …   s   € å�3Ð-Ñ.Ô.Ð.r#   ÚobjúTypeGuard[dict[str, object]]c                ó    — t          | ¦  «        S r\   )Ú_is_dict)re   s    r!   r	   r	   Š   s   € õ �C‰=Œ=Ðr#   ÚnÚintc                óT   — d}|                       ¦   «         D ]}|dz  }||k    r dS ŒdS )Nr   r=   TF)rD   )re   ri   r:   Ú_s       r!   rI   rI   �   sA   € Ø	€AØ�XŠX‰ZŒZð ð ˆØ	ˆQ‰ˆØˆqŠ5ˆ5Ø�4�4ð àˆ5r#   )r   r   r   r   )r   r$   r   r%   r   r&   r   r   )r   r&   rB   r9   r   r$   )rQ   r)   r   rZ   )rQ   r)   r   r`   )re   r$   r   rf   )re   r&   ri   rj   r   r`   )Ú
__future__r   r   Útypingr   r   Útyping_extensionsr   r   Ú_typesr   Ú_utilsr	   rh   r
   Ú_compatr   r   r   r"   r   rJ   r   rd   rI   r   r#   r!   ú<module>rs      sA  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ð Ð Ð Ð Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'à €€€à Ð Ð Ð Ð Ð Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4à€WˆT�]„]€ðDð Dð Dð DðUð Uð Uð Uðpð ð ð ð/ð /ð /ð /ð/ð /ð /ð /ð
ð ð ð ðð ð ð ð ð r#   