§
    >xÅjC  ã            
       óî   — d dl Z d dlZd dlmZ d dlmZ d dlZd dlmZ d dl	m
Z
 d dlmZ d dlmZmZmZmZmZmZ d dlmZ d d	lmZ d d
lmZ d dlmZ g d¢Zg d¢Zdedededdfd„Zdededededdf
d„Z dS )é    N)Úcycle)Údedent)Ú	HTTPError)ÚText)ÚRichToolkit)ÚSUCCESSFUL_STATUSESÚ	APIClientÚBuildFailureÚDeploymentStatusÚStreamLogErrorÚTooManyRetriesError)ÚCreateDeploymentResponse)Úprint_build_error)ÚFastAPIRichToolkit)Úis_ci_enabled)
)õ   ðŸš€z&Preparing for liftoff! Almost there...)u   ðŸ‘¹z<Sneaking past the dependency gremlins... Don't wake them up!)u   ðŸ¤�z9Squishing code into a tiny digital sandwich. Nom nom nom.)u   ðŸ�±z6Removing cat videos from our servers to free up space.)u   ðŸ�¢zHUploading at blazing speeds of 1 byte per hour. Patience, young padawan.)u   ðŸ”ŒzIConnecting to server... Please stand by while we argue with the firewall.)u   ðŸ’¥zLOops! We've angered the Python God. Sacrificing a rubber duck to appease it.)u   ðŸ§™z.Sprinkling magic deployment dust. Abracadabra!)õ   ðŸ‘€z=Hoping that @tiangolo doesn't find out about this deployment.)u   ðŸ�ªzACookie monster detected on server. Deploying anti-cookie shields.))u   ðŸ˜…zNWell, that's embarrassing. We're still waiting for the deployment to finish...)u   ðŸ¤”z4Maybe we should have brought snacks for this wait...)u   ðŸ¥±zYawn... Still waiting...)u   ðŸ¤¯zFTime is relative... Especially when you're waiting for a deployment...ÚtoolkitÚclientÚ
deploymentÚreturnc           	      óÂ  — d }|                       ddd¬¦  «        5 }	 |                     |j        ¦  «        }nK# t          t          t
          f$ r1 d|j        d<   d|j        › d|j        › d	�|_        Y d d d ¦  «         d S w xY w|t          v rd
|_        n%d|j        d<   d|_        t          j        |¦  «        }d d d ¦  «         n# 1 swxY w Y   |�S|                      ¦   «          |                      d|› d|j        › d|j        › d	�d¬¦  «         t          j        d¦  «        ‚|                      ¦   «          |                      d|j        › d|j        › d	�¦  «         d S )NzVerifying deployment...Tu   âœ…)ÚtitleÚinline_logsÚ
done_emojiu   âš ï¸�r   z@Could not confirm deployment status. Check the dashboard: [link=ú]ú[/link]u   Ready the chicken! ðŸ�”õ   â�ŒzDeployment failedzOh no! Deployment failed: z. Check out the logs at [link=õ   ðŸ˜”©Úemojié   zYour app is ready at [link=)ÚprogressÚpoll_deployment_statusÚidÚTimeoutErrorr   r   ÚmetadataÚdashboard_urlÚcurrent_messager   r   Úto_human_readableÚ
print_lineÚprintÚtyperÚExitÚurl)r   r   r   Úfailed_statusr#   Úfinal_statuss         úWC:\Projects\Historical\venv\Lib\site-packages\fastapi_cloud_cli/commands/deploy/wait.pyÚ_verify_deploymentr3   4   s[  € ð
 !%€Mà	×	Ò	Ø'ØØð 
ñ 
ô 
ð Mð 
ð	Ø!×8Ò8¸¼ÑGÔGˆLˆLøÝÕ1µ>ÐBð 	ð 	ð 	Ø.6ˆHÔ˜lÑ+ðkØ.8Ô.Fðkð kØISÔIaðkð kð kð Ô$ð ðMð Mð Mñ Mô Mð Mð Mð Mð	øøøð Õ.Ð.Ð.Ø'@ˆHÔ$Ð$à.3ˆHÔ˜lÑ+Ø':ˆHÔ$å,Ô>¸|ÑLÔLˆMð+Mð Mð Mñ Mô Mð Mð Mð Mð Mð Mð Møøøð Mð Mð Mð Mð. Ð Ø×ÒÑÔÐØ�Šðh¨ð hð hØ+5Ô+Cðhð hØFPÔF^ðhð hð hàð 	ñ 	
ô 	
ð 	
õ
 Œj˜‰mŒmÐà×ÒÑÔÐØ‡M‚MØN j¤nÐNÐN°z´~ÐNÐNÐNñô ð ð ð s1   ›C�8·C¸9B Á1CÁ?B Â 9CÃC	ÃC	Úapp_idc                 ó^  — t          t          ¦  «        }d}t          j        ¦   «         }t          j        ¦   «         }|                      dddt          ¦   «         dd¬¦  «        5 }d}	d}
d }	 |                     |j        ¦  «        D �]d}t          j        ¦   «         |z
  }|j        d	k    r>| 	                    t          j        |j                             ¦   «         ¦  «        ¦  «         |j        d
k    rd}	d|_         nî|j        dk    rwd}
d }t          j        t"          ¦  «        5  |                     |j        ¦  «        j        }d d d ¦  «         n# 1 swxY w Y   |d u|_        d|_        d|_        d|j        d<    nl|dk    rt          t.          ¦  «        }t          j        ¦   «         |z
  dk    r6t1          |¦  «        \  }}||j        d<   ||_        t          j        ¦   «         }�Œfn|# t2          t4          t6          f$ rb}|                     t;          d|› d|j        › d|j        › d�¦  «                             ¦   «         ¦  «         tA          j!        d¦  «        d ‚d }~ww xY wd d d ¦  «         n# 1 swxY w Y   |
r�|�'tE          | |¦  «         |  #                    ¦   «          d}n|  #                    ¦   «          d}|  $                    |› d|j        › d|j        › d�|�dnd¬¦  «         tA          j!        d¦  «        ‚|	r(|  #                    ¦   «          tK          | ||¬¦  «         d S d S )Ng        z&Checking the status of your deploymentTé   r   r   )r   Úlines_to_showÚpreserve_logsr!   r   FÚmessageÚcompletezBuild complete!ÚfailedzBuild failedr   r   é   é   r!   z8
                    [error]Build log streaming failed: z\[/]

                    Unable to stream build logs. Check the dashboard for status: [link=r   z[/link]
                    r"   zCheck out the logs atz2Oh no! Something went wrong. Check out the logs atz [link=r   r   r    )r   r   r   )&r   ÚWAITING_MESSAGESÚtimeÚ	monotonicr#   r   Ústream_build_logsr%   ÚtypeÚlogr   Ú	from_ansir9   Úrstripr   Ú
contextlibÚsuppressr   Úget_deploymentÚfailureÚ	transientr)   r'   ÚLONG_WAIT_MESSAGESÚnextr   r   r&   Ú	set_errorr   r(   Ústripr-   r.   r   r+   r,   r3   )r   r   r4   r   ÚmessagesÚtime_elapsedÚ
started_atÚlast_message_changed_atr#   Úbuild_completeÚbuild_failedÚbuild_errorrC   r!   r   Úer9   s                    r2   Ú_wait_for_deploymentrW   a   s*  € õ Õ%Ñ&Ô&€Hà€Lå”Ñ!Ô!€Jå"œnÑ.Ô.Ðð 	×ÒØ4ØØå'™/œ/ØØð 	ñ 	
ô 	
ð=*ð àˆØˆØ+/ˆð.	*Ø×/Ò/°
´Ñ>Ô>ð "?ñ "?�Ý#œ~Ñ/Ô/°*Ñ<�à”8˜yÒ(Ð(Ø—L’L¥¤°´×0BÒ0BÑ0DÔ0DÑ!EÔ!EÑFÔFÐFà”8˜zÒ)Ð)Ø%)�NØ%6�H”NØ�Eà”8˜xÒ'Ð'Ø#'�LØ"&�Kå#Ô,­YÑ7Ô7ð Sð SØ&,×&;Ò&;¸J¼MÑ&JÔ&JÔ&R˜ðSð Sð Sñ Sô Sð Sð Sð Sð Sð Sð Søøøð Sð Sð Sð Sð *5¸DÐ)@�HÔ&ð &4�H”NØ/=�HÔ,Ø6;�HÔ% lÑ3Ø�Eà "Ò$Ð$Ý$Õ%7Ñ8Ô8�Hå”NÑ$Ô$Ð'>Ñ>À!ÒCÐCÝ#'¨¡>¤>‘L�E˜5Ø16�HÔ% gÑ.Ø%*�H”Nå.2¬nÑ.>Ô.>Ð+ùøøåÕ 3µ\ÐBð 		*ð 		*ð 		*Ø×ÒÝð Ø89ðð ð YcÔXpðð ð t~ô  tLðð ð ñ ô ÷ š™œñô ð õ ”*˜Q‘-”- TÐ)øøøøð		*øøøði=*ð =*ð =*ñ =*ô =*ð =*ð =*ð =*ð =*ð =*ð =*øøøð =*ð =*ð =*ð =*ð~ ð ØÐ"Ý˜g {Ñ3Ô3Ð3Ø×ÒÑ Ô Ð Ø-ˆGˆGà×ÒÑ Ô Ð ØJˆGØ�ŠØÐ[Ð[˜zÔ7Ð[Ð[¸*Ô:RÐ[Ð[Ð[Ø'Ð3�&�&¸ð 	ñ 	
ô 	
ð 	
õ Œj˜‰mŒmÐàð RØ×ÒÑÔÐå 7°6ÀjÐQÑQÔQÐQÐQÐQðRð Rs]   Á$I5Á,B:G-Ä& EÅG-ÅEÅG-ÅEÅBG-Ç,I5Ç-I&ÈAI!É!I&É&I5É5I9É<I9)!rF   r?   Ú	itertoolsr   Útextwrapr   r-   Úhttpxr   Ú	rich.textr   Úrich_toolkitr   Úfastapi_cloud_cli.apir   r	   r
   r   r   r   Ú'fastapi_cloud_cli.commands.deploy.cloudr   Ú"fastapi_cloud_cli.utils.build_logsr   Úfastapi_cloud_cli.utils.clir   Ú!fastapi_cloud_cli.utils.executionr   r>   rK   r3   ÚstrrW   © ó    r2   ú<module>re      s×  ðØ Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð MÐ LÐ LÐ LÐ LÐ LØ @Ð @Ð @Ð @Ð @Ð @Ø :Ð :Ð :Ð :Ð :Ð :Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;ðð ð Ð ð ð ð Ð ð*Øð*àð*ð )ð*ð 
ð	*ð *ð *ð *ðZ^RØð^Ràð^Rð ð^Rð )ð	^Rð
 
ð^Rð ^Rð ^Rð ^Rð ^Rð ^Rrd   