
    _i                        S SK r S SKrS SKJr  S SKJrJrJr  S SKJ	r	  S SK
Jr  S SKJrJr  S SKJrJr  S SKJrJr  S S	KJr  \" \5      rS
r " S S\\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      rg)    N)ABC)AnyOptionalUnion)urlparse)InferenceProviderMapping)RequestParameters_as_dict)TaskProviderHelperfilter_none)get_sessionhf_raise_for_status)
get_loggerg      ?c                   r   ^  \ rS rSrS\4U 4S jjrS\S\S\4S jr SS\\\	4   S	\
\   S\4S
 jjrSrU =r$ )WavespeedAITask   taskc                 $   > [         TU ]  SSUS9  g )N	wavespeedzhttps://api.wavespeed.ai)providerbase_urlr   super__init__)selfr   	__class__s     j/var/www/html/land-ocr/venv/lib/python3.13/site-packages/huggingface_hub/inference/_providers/wavespeed.pyr   WavespeedAITask.__init__   s    +8RY]^    mapped_modelapi_keyreturnc                     SU 3$ )Nz/api/v3/ )r   r    r!   s      r   _prepare_routeWavespeedAITask._prepare_route   s    ,((r   responserequest_paramsc                 >   [        U5      nUR                  S0 5      nUR                  S0 5      R                  S5      nU(       d  [        S5      eUc  [        S5      e[        UR                  5      nUR
                  S:X  a  UR                   SUR
                   S3nOUR                   SUR
                   3n[        U[        5      (       a  [        U5      R                  nOUnU U 3n	[        R                  S	5         [        R                  " [        5        [        5       R                  XR                   S
9n
[#        U
5        U
R%                  5       nUR                  S0 5      nUR                  S5      nUS:X  a^  UR                  S5      (       a  ['        US   5      S:X  a  [        S5      eUS   S   n[        5       R                  U5      R(                  $ US:X  a   UR                  SS5      n[        SU 35      eUS;   a  GM  [        SU 35      e)Ndataurlsgetz#No result URL found in the responsezSA `RequestParameters` object should be provided to get responses with WaveSpeed AI.zrouter.huggingface.coz://z
/wavespeedz*Processing request, polling for results...)headersstatus	completedoutputsr   z#No output URL in completed responsefailederrorz*Task failed with no specific error messagezWaveSpeed AI task failed: )
processingcreatedzUnknown status: )r
   r,   
ValueErrorr   urlnetlocscheme
isinstancestrpathloggerinfotimesleep_POLLING_INTERVALr   r-   r   jsonlencontent)r   r'   r(   response_dictr*   result_path
parsed_urlr   result_url_path
result_urlresult_responseresulttask_resultr.   
output_url	error_msgs                   r   get_responseWavespeedAITask.get_response   s   
 !*  ,hhvr*..u5BCC!rss n001
 77$++,C
0A0A/B*MH$++,C
0A0A/BCH k3''&{388O)O z/!23
@A JJ())m//
DZDZ/[O0$))+F **VR0K __X.F$"y11SY9O5PTU5U$%JKK(3A6
"}((4<<<8#'OOG5ab	 #=i[!IJJ44 #3F8!<==r   r$   )N)__name__
__module____qualname____firstlineno__r:   r   r%   r   bytesdictr   r	   r   rN   __static_attributes____classcell__r   s   @r   r   r      se    _S _)3 ) ) ) 7;7>t$7> !!237> 
	7> 7>r   r   c            	       H   ^  \ rS rSrU 4S jrS\S\S\S\\   4S jr	Sr
U =r$ )	WavespeedAITextToImageTaskU   c                 $   > [         TU ]  S5        g )Nztext-to-imager   r   r   s    r   r   #WavespeedAITextToImageTask.__init__V   s    )r   inputs
parametersprovider_mapping_infor"   c                      SU0[        U5      E$ )Nprompt)r   )r   r_   r`   ra   s       r   _prepare_payload_as_dict3WavespeedAITextToImageTask._prepare_payload_as_dictY   s     &<K
$;<<r   r$   rP   rQ   rR   rS   r   r   rU   r   r   rd   rV   rW   rX   s   @r   rZ   rZ   U   s<    *== =  8	=
 
$= =r   rZ   c                       \ rS rSrS rSrg)WavespeedAITextToVideoTaskb   c                 0    [         R                  U S5        g )Nztext-to-videor   r   r   s    r   r   #WavespeedAITextToVideoTask.__init__c   s      7r   r$   NrP   rQ   rR   rS   r   rV   r$   r   r   rh   rh   b   s    8r   rh   c            	       H   ^  \ rS rSrU 4S jrS\S\S\S\\   4S jr	Sr
U =r$ )	WavespeedAIImageToImageTaskg   c                 $   > [         TU ]  S5        g )Nzimage-to-imager   r]   s    r   r   $WavespeedAIImageToImageTask.__init__h   s    )*r   r_   r`   ra   r"   c                    [        U[        5      (       a  UR                  S5      (       a  UnO[        U[        5      (       aP  [        US5       nUR	                  5       nS S S 5        [
        R                  " W5      R                  S5      nSU 3nO*[
        R                  " U5      R                  S5      nSU 3nUR                  SS 5      nSU0[        U5      En	Ub  XS'   U	$ ! , (       d  f       N= f)N)zhttp://zhttps://rbzutf-8zdata:image/jpeg;base64,rc   image)
r9   r:   
startswithopenreadbase64	b64encodedecodepopr   )
r   r_   r`   ra   rv   ffile_content	image_b64rc   payloads
             r   rd   4WavespeedAIImageToImageTask._prepare_payload_as_dictk   s     fc""v'8'89P'Q'QE$$fd#q vvx $((6==gFI-i[9E ((077@I-i[9E $/E=[%<= &H $#s   C((
C6r$   rf   rX   s   @r   rp   rp   g   s<    +   8	
 
$ r   rp   c                       \ rS rSrS rSrg)WavespeedAIImageToVideoTask   c                 0    [         R                  U S5        g )Nzimage-to-videork   rl   s    r   r   $WavespeedAIImageToVideoTask.__init__   s      '78r   r$   Nrn   r$   r   r   r   r      s    9r   r   )rz   r>   abcr   typingr   r   r   urllib.parser   huggingface_hub.hf_apir   !huggingface_hub.inference._commonr	   r
   ,huggingface_hub.inference._providers._commonr   r   huggingface_hub.utilsr   r   huggingface_hub.utils.loggingr   rP   r<   r@   r   rZ   rh   rp   r   r$   r   r   <module>r      s}       ' ' ! ; I X B 4 
H	  >>(# >>B
= 
=8!; 8
/ B9"= 9r   