§
    TCÄjŠ'  ã                   ó–  — d Z ddlmZmZmZmZmZ ddlZddlZ	 ddl	Z	n# e
$ r dZ	Y nw xY wddlmZ erddlmZ ddlZddlmZ ddlZe	€ej        fnej        e	j        fZ G d„ d	e¦  «        Z G d
„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Zej        ZdS )z Error classes for the GenAI SDK.é    )ÚAnyÚCallableÚOptionalÚTYPE_CHECKINGÚUnionNé   )Ú_common)ÚReplayResponse)ÚResponsec                   óš  ‡ — e Zd ZU dZeed<   eddej        df         ed<   dZ	e
e         ed<   dZe
e         ed	<   	 dded
ede
eddej        df                  fˆ fd„Zdeed         eeeef                  f         fd„Zedeeef         dd fd„¦   «         Zd
edefd„Zd
edefd„Zd
edefd„Zdej        fd„Zededej        df         ddfd„¦   «         Zeded
ede
edej        df                  ddfd„¦   «         Zededej        ddf         ddfd„¦   «         Zeded
ede
edej        df                  ddfd„¦   «         Zˆ xZ S )ÚAPIErrorz'General errors raised by the GenAI API.Úcodezrequests.Responser
   ÚAsyncAuthorizedSessionResponseÚresponseNÚstatusÚmessageÚresponse_jsonc                 ó˜  •— t          |t          ¦  «        rt          |¦  «        dk    r|d         }|| _        || _        |                      |¦  «        | _        |                      |¦  «        | _        |r|n|  	                    |¦  «        | _
        t          ¦   «                              | j
        › d| j        › d| j        › �¦  «         d S )Nr   r   ú ú. )Ú
isinstanceÚlistÚlenr   ÚdetailsÚ_get_messager   Ú_get_statusr   Ú	_get_coder   ÚsuperÚ__init__)Úselfr   r   r   Ú	__class__s       €úWC:\Projects\Historical\FacebookAutoPoster\venv\Lib\site-packages\google/genai/errors.pyr   zAPIError.__init__;   sÁ   ø€ õ �-¥Ñ&Ô&ð '­3¨}Ñ+=Ô+=ÀÒ+BÐ+BØ# AÔ&€mà€D„MØ €D„LØ×$Ò$ ]Ñ3Ô3€D„LØ×"Ò" =Ñ1Ô1€D„KØÐ?�� $§.¢.°Ñ"?Ô"?€D„Iå	�G„G×Ò˜œ	ÐAÐA D¤KÐAÐA°4´<ÐAÐAÑBÔBÐBÐBÐBó    Úreturn).r   c                 óR   — | j                              ¦   «         }| j        j        |ffS )zGReturns a tuple that can be used to reconstruct the error for pickling.)Ú__dict__Úcopyr!   Ú_rebuild)r    Ústates     r"   Ú
__reduce__zAPIError.__reduce__S   s)   € ð ŒM×ÒÑ Ô €EØŒNÔ# e XÐ.Ð.r#   r)   c                 óÜ   — t                                t           ¦  «        }|j                             | ¦  «         t                               ||j        › d|j        › d|j        › �¦  «         |S )z"Rebuilds the error from the state.r   r   )	r   Ú__new__r&   ÚupdateÚ	Exceptionr   r   r   r   )r)   Úobjs     r"   r(   zAPIError._rebuildZ   sd   € õ ×
Ò
�8Ñ
$Ô
$€CØ„L×Ò˜ÑÔÐÝ×Ò�s˜sœxÐEÐE¨#¬*ÐEÐE¸¼ÐEÐEÑFÔFÐFØ€Jr#   c                 ó¦   — 	 |                      d|                      di ¦  «                              dd ¦  «        ¦  «        }|S # t          $ r Y d S w xY w)Nr   Úerror©ÚgetÚAttributeError)r    r   r   s      r"   r   zAPIError._get_statusb   sl   € ðØ× Ò Ø
�M×%Ò% g¨rÑ2Ô2×6Ò6°xÀÑFÔFñô €fð €møÝð ð ð ð ˆTˆTðøøøó   ‚?A Á
AÁAc                 ó¦   — 	 |                      d|                      di ¦  «                              dd ¦  «        ¦  «        }|S # t          $ r Y d S w xY w)Nr   r1   r2   )r    r   r   s      r"   r   zAPIError._get_messagem   sl   € ðØ×!Ò!Ø
�]×&Ò& w°Ñ3Ô3×7Ò7¸	À4ÑHÔHñô €gð €nøÝð ð ð ð ˆTˆTðøøør5   c                 ó~   — |                      d|                      di ¦  «                              dd ¦  «        ¦  «        S )Nr   r1   )r3   )r    r   s     r"   r   zAPIError._get_codex   s?   € Ø×ÒØ�×!Ò! '¨2Ñ.Ô.×2Ò2°6¸4Ñ@Ô@ñô ð r#   c                 ó0   — d| j         | j        | j        dœiS )z©Returns a dictionary representation of the error for replay recording.

    details is not included since it may expose internal information in the
    replay file.
    r1   ©r   r   r   r9   )r    s    r"   Ú_to_replay_recordzAPIError._to_replay_record}   s*   € ð 	Ø”IØ”|Ø”kð
ð 
ðð r#   c                 ó6  — |j         dk    rdS t          |t          ¦  «        rU	 |                     ¦   «          |                     ¦   «         }n°# t          j        j        $ r |j        }||j        dœ}Y n‰w xY wt          j
        ¦   «         x}�Ot          ||j        ¦  «        r:	 |                     ¦   «         }nE# |j        j        $ r |j        |j        dœ}Y n%w xY w|j        d                              di ¦  «        }|                      |j         ||¦  «         dS )úPRaises an error with detailed error message if the response has an error status.éÈ   N©r   r   r   r1   )Ústatus_coder   Ú_HTTPX_RESPONSE_TYPESÚreadÚjsonÚdecoderÚJSONDecodeErrorÚtextÚreason_phraser	   Úloaded_requestsr   Ú
exceptionsÚreasonÚbody_segmentsr3   Úraise_error)Úclsr   r   r   Úrequestss        r"   Úraise_for_responsezAPIError.raise_for_response‹   sJ  € ð Ô˜sÒ"Ð"Ø€få�(Õ1Ñ2Ô2ð Að
Ø�Š‰ŒˆØ Ÿš™œˆˆøÝŒ\Ô)ð 
ð 
ð 
Ø”-ˆàØÔ,ð
ð 
ˆˆˆð
øøøõ Ô-Ñ/Ô/Ð
/ˆ(Ð	<ÅØ�(Ô#ñBô BÐ	<ð
ð !Ÿš™œˆˆøØÔ Ô0ð 
ð 
ð 
à”}Ø”oð
ð 
ˆˆˆð
øøøð Ô,¨QÔ/×3Ò3°G¸RÑ@Ô@€mà‡O‚O�HÔ(¨-¸ÑBÔBÐBÐBÐBs#   ¤(A Á%A5Á4A5Â#B8 Â8CÃCr?   c                 ó    — d|cxk    rdk     rn nt          |||¦  «        ‚d|cxk    rdk     rn nt          |||¦  «        ‚ | |||¦  «        ‚©aÉ  Raises an appropriate APIError subclass based on the status code.

    Args:
      status_code: The HTTP status code of the response.
      response_json: The JSON body of the response, or a dict containing error
        details.
      response: The original response object.

    Raises:
      ClientError: If the status code is in the 4xx range.
      ServerError: If the status code is in the 5xx range.
      APIError: For other error status codes.
    i�  iô  iX  ©ÚClientErrorÚServerError©rL   r?   r   r   s       r"   rK   zAPIError.raise_error¯   s€   € ð4 ˆkÐÐÒÐ˜CÒÐÐÐÐÝ˜ ]°HÑ=Ô=Ð=Ø	�Ð	!Ð	!Ò	!Ð	!˜cÒ	!Ð	!Ð	!Ð	!Ð	!Ý˜ ]°HÑ=Ô=Ð=àˆC�˜]¨HÑ5Ô5Ð5r#   zaiohttp.ClientResponsec              ƒ   óÐ  K  — t          |t          ¦  «        rq|j        dk    rdS 	 |                     ¦   «         ƒ d{V —† |                     ¦   «         }n+# t          j        j        $ r |j        }||j        dœ}Y nw xY w|j        }�n@t          |d¦  «        rFt          |d¦  «        r6|j        dk    rdS |j
        d                              di ¦  «        }|j        }nê	 ddl}|}t          |d¦  «        r|j        }t          ||j        ¦  «        rj|j        dk    rdS 	 |                     ¦   «         ƒ d{V —†}n9# |j        j        $ r' |                     ¦   «         ƒ d{V —†}||j        dœ}Y nw xY w|j        }nt'          d	t)          |¦  «        › �¦  «        ‚n-# t*          $ r  t'          d	t)          |¦  «        › �¦  «        ‚w xY w|                      |||¦  «        ƒ d{V —† dS )
r<   r=   Nr>   rJ   r?   r   r1   Ú	_responsezUnsupported response type: )r   r@   r?   ÚareadrB   rC   rD   rE   rF   ÚhasattrrJ   r3   ÚaiohttprV   ÚClientResponser   Úclient_exceptionsÚContentTypeErrorrI   Ú
ValueErrorÚtypeÚImportErrorÚraise_error_async)rL   r   r   r   r?   rY   Úunwrapped_responses          r"   Úraise_for_async_responsez!APIError.raise_for_async_responseÐ   s™  è è € õ �(Õ1Ñ2Ô2ð ,IØ	Ô	 Ò	$Ð	$Øˆð
Ø�nŠnÑÔÐÐÐÐÐÐÐØ Ÿš™œˆˆøÝŒ\Ô)ð 
ð 
ð 
Ø”-ˆàØÔ,ð
ð 
ˆˆˆð
øøøð Ô(€k�kÝ	�˜?Ñ	+Ô	+ð IµØ�-ñ1ô 1ð Ið 
Ô	 Ò	$Ð	$ØˆØÔ,¨QÔ/×3Ò3°G¸RÑ@Ô@€mØÔ(€k€kðIØˆˆˆð #+ÐÝÐ% {Ñ3Ô3ð 	<Ø1Ô;Ð
åÐ(¨'Ô*@ÑAÔAð 	KØÔ&¨#Ò-Ð-ØˆFðØ"4×"9Ò"9Ñ";Ô";Ð;Ð;Ð;Ð;Ð;Ð;ˆMˆMøØÔ*Ô;ð ð ð Ø.×3Ò3Ñ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5ˆGà"Ø,Ô3ðð ˆMˆMˆMðøøøð +Ô1ˆ+ˆ+åÐI½¸h¹¼ÐIÐIÑJÔJÐ
Jð øõ ð Ið Ið IÝÐGµt¸H±~´~ÐGÐGÑHÔHÐHðIøøøð ×
Ò
 ¨]¸HÑ
EÔ
EÐEÐEÐEÐEÐEÐEÐEÐEÐEsA   ¦.A Á%A=Á<A=Ã =F Ä D; Ä:F Ä;3E1Å.F Å0E1Å1*F Æ*Gc              ƒ   ó¤   K  — d|cxk    rdk     rn nt          |||¦  «        ‚d|cxk    rdk     rn nt          |||¦  «        ‚ | |||¦  «        ‚rP   rQ   rT   s       r"   r`   zAPIError.raise_error_async  s„   è è € ð& ˆkÐÐÒÐ˜CÒÐÐÐÐÝ˜ ]°HÑ=Ô=Ð=Ø	�Ð	!Ð	!Ò	!Ð	!˜cÒ	!Ð	!Ð	!Ð	!Ð	!Ý˜ ]°HÑ=Ô=Ð=àˆC�˜]¨HÑ5Ô5Ð5r#   )N)!Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚintÚ__annotations__r   Úhttpxr   r   r   Ústrr   r   r   Útupler   Údictr*   Ústaticmethodr(   r   r   r   r	   Ú
StringDictr:   ÚclassmethodrN   rK   rb   r`   Ú__classcell__)r!   s   @r"   r   r   .   s<  ø€ € € € € € Ø/Ð/Ø€)€)�)ØØØØ„nØ&ð(ôð ð ñ ð €&ˆ(�3Œ-ÐÐÑØ€'ˆ8�CŒ=ÐÐÑð ðCð CàðCð ðCð Ø
Ø!ØØŒnØ.ð0ôôð	Cð Cð Cð Cð Cð Cð0/àˆX�oÔ&¨¨d°3¸°8¬nÔ(=Ð=Ô>ð/ð /ð /ð /ð ð�d˜3 ˜8”nð ¨ð ð ð ñ „<ðð	 sð 	¨sð 	ð 	ð 	ð 	ð	¨ð 	°ð 	ð 	ð 	ð 	ð Sð ¨Sð ð ð ð ð
 Ô!3ð ð ð ð ð ð!CàÐ&¨¬Ð8KÐKÔLð!Cð ð!Cð !Cð !Cñ „;ð!CðF ð6àð6ð ð6ð Ø
ØØŒnØ!ð#ôôð	6ð ð6ð 6ð 6ñ „;ð6ð@ ð8FàØ
Ø
Œ.Ø
"Ø
*ð,ôð8Fð ð8Fð 8Fð 8Fñ „;ð8Fðt ð6Øð6Ø,/ð6Ø;CØ
Ð  %¤.Ð2JÐJÔ
Kô<ð6ð ð	6ð 6ð 6ñ „;ð6ð 6ð 6ð 6ð 6r#   r   c                   ó   — e Zd ZdZdS )rR   z%Client error raised by the GenAI API.N©rd   re   rf   rg   © r#   r"   rR   rR   &  ó   € € € € € Ø-Ð-Ø€$r#   rR   c                   ó   — e Zd ZdZdS )rS   z%Server error raised by the GenAI API.Nrs   rt   r#   r"   rS   rS   +  ru   r#   rS   c                   ó   — e Zd ZdZdS )Ú UnknownFunctionCallArgumentErrorzWRaised when the function call argument cannot be converted to the parameter annotation.Nrs   rt   r#   r"   rx   rx   0  s   € € € € € Ø_Ð_Ø€$r#   rx   c                   ó   — e Zd ZdZdS )ÚUnsupportedFunctionErrorz*Raised when the function is not supported.Nrs   rt   r#   r"   rz   rz   5  s   € € € € € Ø2Ð2Ø€$r#   rz   c                   ó   — e Zd ZdZdS )ÚFunctionInvocationErrorzDRaised when the function cannot be invoked with the given arguments.Nrs   rt   r#   r"   r|   r|   :  s   € € € € € ØLÐLØ€$r#   r|   c                   ó   — e Zd ZdZdS )ÚUnknownApiResponseErrorz?Raised when the response from the API cannot be parsed as JSON.Nrs   rt   r#   r"   r~   r~   ?  s   € € € € € ØGÐGØ€$r#   r~   )rg   Útypingr   r   r   r   r   rj   rB   Úhttpx2r_   Ú r	   Úreplay_api_clientr
   rY   Ú!google.auth.aio.transport.aiohttpr   r   rM   r@   r.   r   rR   rS   r]   rx   rz   r|   r~   ÚExperimentalWarningrt   r#   r"   ú<module>r…      s2  ðð  'Ð &à @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø €€€Ø €€€ðØ€-€-€-€-øØð ð ð Ø€&€&€&ðøøøð Ð Ð Ð Ð Ð ð ð Ø/Ð/Ð/Ð/Ð/Ð/Ø€.€.€.ØZÐZÐZÐZÐZÐZØ€/€/€/ð  ˜€U„^ÐÐ¨e¬n¸f¼oÐ-Nð ð
u6ð u6ð u6ð u6ð u6ˆyñ u6ô u6ð u6ðpð ð ð ð �(ñ ô ð ð
ð ð ð ð �(ñ ô ð ð
ð ð ð ð  zñ ô ð ð
ð ð ð ð ˜zñ ô ð ð
ð ð ð ð ˜jñ ô ð ð
ð ð ð ð ˜jñ ô ð ð Ô1Ð Ð Ð s   š Ÿ)¨)