§
    >xÅj�6  ã                   óH  — d dl Z d dlZd dlmZ d dlmZmZ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 d dlmZmZ d dlmZmZmZmZmZ d d	lmZ d d
lmZmZ d dlm Z  d dl!m"Z" d dl#m$Z$ d dl%m&Z& d dl'm(Z(m)Z) d dl*m+Z+ d dl,m-Z-m.Z.  e j/        e0¦  «        Z1 G d„ de
¦  «        Z2dede2fd„Z3de4e5ee6f                  de6de4e7e8ef                  fd„Z9de(de+de8de8ddf
d„Z:de(de+de8de8ddf
d„Z;de(de+de8de8ddf
d „Z< ej=        ¦   «          ej=        ¦   «         	 	 	 	 	 d5d#eedz   ej>        d$¬%¦  «        f         d&ee? ej@        d'd(¬%¦  «        f         d)ee8dz   ej@        d*d+d,¬-¦  «        f         d.ee6 ej@        d/d0d1¬2¦  «        f         d3e-defd4„¦   «         ¦   «         ZAdS )6é    N)ÚPath)Ú	AnnotatedÚAnyÚcast)Ú	BaseModel)ÚappÚ	cloud_app)Ú	APIClientÚDeploymentStatus)Ú_get_large_filesÚarchive)ÚAppResponseÚArchiveTooLargeErrorÚCreateDeploymentResponseÚ_create_deploymentÚ_get_app)Ú_configure_app)Ú_cancel_uploadÚ_upload_deployment)Ú_wait_for_deployment)Ú_interactive_login)Úget_app_config)ÚIdentity)ÚFastAPIRichToolkitÚget_rich_toolkit)Ú	ErrorCode)ÚJsonOutputOptionÚis_ci_enabledc                   óL   — e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   dS )ÚDeployOutputÚdeployment_idÚapp_idÚslugÚstatusÚdashboard_urlÚurlN)Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__r   © ó    úZC:\Projects\Historical\venv\Lib\site-packages\fastapi_cloud_cli/commands/deploy/command.pyr    r        sO   € € € € € € ØÐÐÑØ€K€K�KØ
€I€I�IØÐÐÑØÐÐÑØ	€H€H�H€H€Hr-   r    Ú
deploymentÚreturnc                 óh   — t          | j        | j        | j        | j        | j        | j        ¬¦  «        S )N)r!   r"   r#   r$   r%   r&   )r    Úidr"   r#   r$   r%   r&   )r/   s    r.   Ú_get_deploy_outputr3   )   s:   € ÝØ ”mØÔ ØŒ_ØÔ Ø Ô.ØŒNðñ ô ð r-   Úlarge_filesÚthreshold_mbc                ór   — | sg S t          | ¦  «        }|dk    rd|› d�n|› d|› d�}d|d„ | D ¦   «         dœgS )Né   z1 uploaded file is larger than z MB.z  uploaded files are larger than r4   c                 óB   — g | ]\  }}|                      ¦   «         |d œ‘ŒS ))ÚpathÚ
size_bytes)Úas_posix)Ú.0r9   Úsizes      r.   ú
<listcomp>z,_get_large_file_warnings.<locals>.<listcomp>G   s<   € ð ð ð á�D˜$ð Ÿš™œ¸Ð=Ð=ðð ð r-   )ÚcodeÚmessageÚfiles)Úlen)r4   r5   Úcountr@   s       r.   Ú_get_large_file_warningsrD   4   s�   € ð
 ð Øˆ	å�ÑÔ€Eð �AŠ:ˆ:ð 	=¨,Ð<Ð<Ð<Ð<àÐIÐI°|ÐIÐIÐIð ð "Øðð à"-ðñ ô ð	
ð 	
ð	ð 	r-   Útoolkitr?   r@   Úhintc                ó‚   — |                       |¦  «         |                      ¦   «          |                      |¦  «         d S ©N)Úprint_errorÚ
print_lineÚ
print_hint©rE   r?   r@   rF   s       r.   Ú_render_app_id_mismatchrM   O   sD   € ð ×Ò˜Ñ Ô Ð Ø×ÒÑÔÐØ×Ò�tÑÔÐÐÐr-   c                ó.   — |                       ¦   «          d S rH   )rJ   rL   s       r.   Ú_render_app_not_foundrO   W   s   € ð ×ÒÑÔÐÐÐr-   c                óV   — t          | |||¬¦  «         |                      d¦  «         d S )N)r?   r@   rF   zeIf you deleted this app, you can run [bold]fastapi cloud unlink[/] to unlink the local configuration.)rO   rK   rL   s       r.   Ú_render_linked_app_not_foundrQ   ]   s@   € õ ˜'¨°gÀDÐIÑIÔIÐIØ×ÒØoñô ð ð ð r-   Fé
   r9   zTPath to the directory with your app's pyproject.toml (defaults to current directory))ÚhelpÚ	skip_waitz	--no-waitz"Skip waiting for deployment statusÚprovided_app_idz--app-idzApplication ID to deploy toÚFASTAPI_CLOUD_APP_ID)rS   ÚenvvarÚlarge_file_thresholdz7File size threshold in MB for warning about large filesr7   Ú"FASTAPI_CLOUD_LARGE_FILE_THRESHOLD)rS   ÚminrW   Újson_outputc                 óø  — t                                d¦  «         t                                d| ||¦  «         t          ¦   «         }|                     ¦   «         }|p|                     ¦   «         }t                                d|rdnd¦  «         t          |¬¦  «        5 }|�snt                                d¦  «         t          ¦   «         r|                     dd	d
¬¦  «         |r|                     ddd¬¦  «         |                     dddd¬¦  «         | 	                    ¦   «          |j
        r*|                     ¦   «         r|                     d¦  «         n|                     d¦  «         | 	                    ¦   «          |                     dd¬¦  «        }	|	s=| 	                    ¦   «          |                     d¦  «         t          j        d¦  «        ‚| 	                    ¦   «          t!          |¦  «         | 	                    ¦   «          t#          |¬¦  «        5 }
|r+|                     dd¬¦  «         | 	                    ¦   «          |r)|                     d¦  «         | 	                    ¦   «          | pt%          j        ¦   «         }t                                d|¦  «         t)          |¦  «        }|r7|r5|j        |k    r*|                     dd|› d|j        › d �d!t,          ¬"¦  «         |r|}nk|r|j        }na|r|                     d#d$d%¬¦  «         t                                d&¦  «         t/          ||
|¬'¦  «        }| 	                    ¦   «          |j        }|r|                     d(|› d)�d*¬+¦  «         n|                     d,d*¬+¦  «         | 	                    ¦   «          |                     d-d¬.¦  «        5 }|
                     ||¬/¦  «        5  t                                d0|¦  «         t5          |
|¬1¦  «        }d2d2d2¦  «         n# 1 swxY w Y   |€/t                                d3¦  «         |                     d4¦  «         d2d2d2¦  «         n# 1 swxY w Y   |€&|                     d5d4|rt8          nt:          ¬6¦  «         t=          t>          |¦  «        }tA          ||¬7¦  «        }tC          ||¬7¦  «        }|ræ|                     d8|› d9�d:¬+¦  «         | 	                    ¦   «          |d2d;…         D ]&\  }}|d<z  }|                     d=|› d>|› d?�¦  «         Œ'tE          |¦  «        d;k    }|r)|                     d@tE          |¦  «        d;z
  › dA�¦  «         dB}| 	                    ¦   «          |                     dC|› dD|› dE�dF¬+¦  «         | 	                    ¦   «          | o| }tG          j$        ¦   «         5 }t                                dG¦  «         t%          |¦  «        dHz  }tK          ||¦  «         | &                    ¦   «         j'        }|                     dI|dJ¬K¦  «        5 }|
                     ||¬/¦  «        5  t                                dL|j(        ¦  «         	 tS          |
|j(        |¬M¦  «        }n<# tT          $ r/}|                     dtW          |¦  «        dN¬¦  «         Y d2}~nd2}~ww xY w	 | ,                    dO|j-        › �¦  «         t]          |
|j(        |||¬P¦  «        }| ,                    dQ¦  «         n%# t^          $ r ta          |
|j(        ¬R¦  «         ‚ w xY w	 d2d2d2¦  «         n# 1 swxY w Y   d2d2d2¦  «         n# 1 swxY w Y   d2d2d2¦  «         n# 1 swxY w Y   |r3t                                dS¦  «         tc          ||
|j(        |¬T¦  «         nœ| 	                    ¦   «          t                                dU¦  «         |rF| 2                    tg          |¦  «        |dV|j4        › �¬W¦  «         	 d2d2d2¦  «         d2d2d2¦  «         d2S |                     dX|j4        › dD|j4        › dE�¦  «         d2d2d2¦  «         n# 1 swxY w Y   d2d2d2¦  «         d2S # 1 swxY w Y   d2S )Yz=
    Deploy a [bold]FastAPI[/bold] app to FastAPI Cloud.
    zDeploy command startedz*Deploy path: %s, skip_wait: %s, app_id: %szAuthentication mode: %szdeploy tokenz
user token)r[   z"User not logged in, starting loginÚnot_logged_inz2FASTAPI_CLOUD_TOKEN is required to deploy from CI.zhRun `fastapi cloud setup-ci` to configure a deploy token, or set FASTAPI_CLOUD_TOKEN in your CI secrets.)rF   zNo credentials found.z5Run `fastapi cloud login` or set FASTAPI_CLOUD_TOKEN.zWelcome to FastAPI Cloud!zFastAPI Cloudu   ðŸ‘‹T)ÚtagÚemojiÚanimatez.Your session has expired. Please log in again.z4You need to be logged in to deploy to FastAPI Cloud.zDo you want to log in now?)ÚdefaultzDeployment cancelled.r   )Úuse_deploy_token)r`   zGUsing token from [bold blue]FASTAPI_CLOUD_TOKEN[/] environment variablezDeploying from path: %sÚinvalid_inputzProvided app ID (z#) does not match the local config (z).z�Run `fastapi cloud unlink` to remove the local config, or remove --app-id / unset FASTAPI_CLOUD_APP_ID to use the configured app.)rF   Úrender_outputÚmissing_required_inputzApp ID is required.z>Pass --app-id or run `fastapi cloud apps create --link` first.z(No app config found, configuring new app)rE   ÚclientÚpath_to_deployzDeploying to app [blue]z
[/blue]...u   ðŸš€)r_   zDeploying app...zChecking app...)Ú	transient)rE   zChecking app with ID: %s)rf   r"   NzApp not found in APIz>App not found. Make sure you're logged in the correct account.Ú	not_found)rd   )r5   z$Some uploaded files are larger than z MB:u   âš ï¸�é   i   u
   â€¢ [bold]z[/bold] [yellow](z MB)[/yellow]z[dim]...and z more[/dim]zKhttps://fastapicloud.com/docs/fastapi-cloud-cli/deploy/#large-files-warningzRead more: [link=ú]z[/link]u   ðŸ’¡zCreating archive for deploymentzarchive.tarzCreating deploymentu   ðŸ“¦)Útitlerh   Ú
done_emojizCreating deployment for app: %s)rf   r"   Úarchive_size_byteszJYou can exclude files from the deployment with a .fastapicloudignore file.z2Deployment created successfully! Deployment slug: )Úfastapi_clientr!   Úarchive_pathÚarchive_sizeÚprogressz!Deployment uploaded successfully!)rf   r!   z"Waiting for deployment to complete)rE   rf   r"   r/   z%Skipping deployment wait as requestedz8Check deployment status in the FastAPI Cloud dashboard: )ÚwarningsrF   z-Check the status of your deployment at [link=)5ÚloggerÚdebugr   Úhas_deploy_tokenÚis_logged_inr   r   ÚfailÚprint_titlerJ   Ú
user_tokenÚis_user_token_expiredÚprintÚconfirmÚtyperÚExitr   r
   r   Úcwdr   r"   rM   r   rr   Úhandle_http_errorsr   Ú	set_errorrO   rQ   r   r   r   rD   rB   ÚtempfileÚTemporaryDirectoryr   ÚstatÚst_sizer2   r   r   r*   Úlogr#   r   ÚKeyboardInterruptr   r   Úsuccessr3   r%   )r9   rT   rU   rX   r[   Úidentityrb   Úhas_authrE   Úshould_loginrf   rg   Ú
app_configÚtarget_app_idrr   r   r4   rs   ÚfnameÚfsizeÚfsize_mbÚis_moreÚlarge_files_docs_urlÚ	will_waitÚtemp_dirrp   rq   r/   Úes                                r.   Údeployr—   f   s}  € õH ‡L‚LÐ)Ñ*Ô*Ð*Ý
‡L‚LØ4°d¸IÀñô ð õ ‰zŒz€HØ×0Ò0Ñ2Ô2ÐØÐ: 8×#8Ò#8Ñ#:Ô#:€Hå
‡L‚LØ!Ð5EÐ#W > >È<ñô ð õ 
 kÐ	2Ñ	2Ô	2ð p°gØñ .	!Ý�LŠLÐ=Ñ>Ô>Ð>å‰Œð Ø—’Ø#ØHðIð	 ñ ô ð ð ð Ø—’Ø#Ø+ØPð ñ ô ð ð ×ÒØ+Ø#ØØð	  ñ ô ð ð ×ÒÑ Ô Ð àÔ"ð V x×'EÒ'EÑ'GÔ'Gð VØ—’ÐNÑOÔOÐOÐOà—’ÐTÑUÔUÐUà×ÒÑ Ô Ð Ø"Ÿ?š?Ø,Øð +ñ ô ˆLð
  ð $Ø×"Ò"Ñ$Ô$Ð$Ø—’Ð5Ñ6Ô6Ð6Ý”j ‘m”mÐ#à×ÒÑ Ô Ð Ý˜wÑ'Ô'Ð'Ø×ÒÑ Ô Ð åÐ(8Ð9Ñ9Ô9ð 	¸Vàð %Ø×#Ò# O¸TÐ#ÑBÔBÐBØ×"Ò"Ñ$Ô$Ð$àð %Ø—’Ø]ñô ð ð ×"Ò"Ñ$Ô$Ð$à!Ð/¥T¤X¡Z¤ZˆNÝ�LŠLÐ2°NÑCÔCÐCå'¨Ñ7Ô7ˆJàð 	˜oð 	°*Ô2CÀÒ2VÐ2VØ—’Ø#Øq¨ÐqÐqÐ\fÔ\mÐqÐqÐqðeõ #:ð ñ ô ð ð ð 2Ø /��Øð 2Ø *Ô 1��àð Ø—L’LØ0Ø-Ø]ð !ñ ô ð õ —’ÐGÑHÔHÐHå+Ø#Ø!Ø#1ðñ ô �
ð
 ×"Ò"Ñ$Ô$Ð$à *Ô 1�àð @Ø—’ØG¨mÐGÐGÐGÈvð ñ ô ð ð ð —’Ð0¸�Ñ?Ô?Ð?à×ÒÑ Ô Ð à×!Ò!Ð"3¸tÐ!ÑDÔDð 	ÈØ×.Ò.¨xÀÐ.ÑIÔIð Hð HÝ—L’LÐ!;¸]ÑKÔKÐKÝ"¨&¸ÐGÑGÔG�CðHð Hð Hñ Hô Hð Hð Hð Hð Hð Hð Høøøð Hð Hð Hð Hð �;Ý—L’LÐ!7Ñ8Ô8Ð8Ø×&Ò&ØXñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð ˆ{Ø—’ØØTð +ð:Õ-Ð-å9ð ñ ô ð õ •{ CÑ(Ô(ˆCå*ØÐ-Aðñ ô ˆKõ 0ØØ1ðñ ô ˆHð ð %Ø—’ØUÐ;OÐUÐUÐUØ"ð ñ ô ð ð ×"Ò"Ñ$Ô$Ð$Ø$/°°°¤Oð ð ‘L�E˜5Ø$¨Ñ5�HØ—M’MØT UÐTÐT¸XÐTÐTÐTñô ð ð õ ˜kÑ*Ô*¨QÒ.�Øð TØ—M’MÐ"Rµ°[Ñ1AÔ1AÀAÑ1EÐ"RÐ"RÐ"RÑSÔSÐSà'tÐ$Ø×"Ò"Ñ$Ô$Ð$Ø—’Ø\Ð(<Ð\Ð\Ð?SÐ\Ð\Ð\Ø ð ñ ô ð ð ×"Ò"Ñ$Ô$Ð$à%˜Ð9¨k¨/ˆIåÔ,Ñ.Ô.ð 1°(Ý—’Ð>Ñ?Ô?Ð?Ý# H™~œ~°Ñ=�Ý˜¨Ñ5Ô5Ð5Ø+×0Ò0Ñ2Ô2Ô:�ð ×$Ò$Ø3à"+Ø#)ð	 %ñ ô ð+ð "Ø×-Ò-¨hÀÐ-ÑHÔHð+ð +õ —L’LÐ!BÀCÄFÑKÔKÐKðÝ%7Ø#)Ø#&¤6Ø/;ð&ñ &ô &˜
˜
øõ
 0ð ð ð ØŸšØ+Ý ™FœFð!Cð	 %ñ ô ð ð ð ð ð ð øøøøðøøøðØ ŸšØbÐQ[ÔQ`ÐbÐbñô ð õ &8Ø+1Ø*4¬-Ø)5Ø)5Ø%-ð&ñ &ô &˜
ð !ŸšÐ%HÑIÔIÐIÐIøÝ,ð ð ð Ý&¨fÀJÄMÐRÑRÔRÐRØðøøøð JðQ+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð +ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ðf ð Ý—’ÐAÑBÔBÐBÝ$Ø#Ø!Øœ6Ø)ð	ñ ô ð ð ð ×"Ò"Ñ$Ô$Ð$Ý—’ÐDÑEÔEÐEØð 	Ø—O’OÝ*¨:Ñ6Ô6Ø!)ð:Ø)Ô7ð:ð :ð	 $ñ ô ð ð ðw	ð 	ð 	ñ 	ô 	ð 	ðcpð pð pñ pô pð pð pð pð\ —’ð AÀJÔD\ð  Að  AÐ_iÔ_wð  Að  Að  Añô ð ð{	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ðcpð pð pñ pô pð pð pð pð pð pð pð pøøøð pð pð pð pð pð ps>  ÂFa/È!F!aÏQÏ-P	ÐQÐPÐQÐPÐ4QÑaÑQÑaÑ"QÑ#E#a×A.]/Ø4]	Ù!]Ù.Z
Ú]Ú
Z?Ú%Z:Ú5]Ú:Z?Ú?]ÛA\
Ü]Ü"\1Ü1]Ü5]	Ý]Ý]	Ý]Ý	]	Ý]/Ý]Ý]/Ý]Ý ]/Ý#aÝ/]3Ý3aÝ6]3Ý7Baàa/à%&aáa/áa	áa/áa	áa/á/a3á6a3)NFNrR   F)BÚloggingrƒ   Úpathlibr   Útypingr   r   r   r~   Úpydanticr   Úfastapi_cloud_cli._appr   r	   Úfastapi_cloud_cli.apir
   r   Ú)fastapi_cloud_cli.commands.deploy.archiver   r   Ú'fastapi_cloud_cli.commands.deploy.cloudr   r   r   r   r   Ú+fastapi_cloud_cli.commands.deploy.configurer   Ú(fastapi_cloud_cli.commands.deploy.uploadr   r   Ú&fastapi_cloud_cli.commands.deploy.waitr   Ú fastapi_cloud_cli.commands.loginr   Úfastapi_cloud_cli.utils.appsr   Úfastapi_cloud_cli.utils.authr   Úfastapi_cloud_cli.utils.clir   r   Úfastapi_cloud_cli.utils.errorsr   Ú!fastapi_cloud_cli.utils.executionr   r   Ú	getLoggerr'   rt   r    r3   ÚlistÚtupleÚintÚdictr*   rD   rM   rO   rQ   ÚcommandÚArgumentÚboolÚOptionr—   r,   r-   r.   ú<module>r²      sW  ðØ €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'à €€€Ø Ð Ð Ð Ð Ð à 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ø OÐ OÐ OÐ OÐ OÐ OÐ OÐ Oðð ð ð ð ð ð ð ð ð ð ð ð ð ð GÐ FÐ FÐ FÐ FÐ FØ WÐ WÐ WÐ WÐ WÐ WÐ WÐ WØ GÐ GÐ GÐ GÐ GÐ GØ ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø LÐ LÐ LÐ LÐ LÐ LÐ LÐ LØ 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø MÐ MÐ MÐ MÐ MÐ MÐ MÐ Mà	ˆÔ	˜8Ñ	$Ô	$€ðð ð ð ð �9ñ ô ð ðÐ#;ð Àð ð ð ð ðØ�e˜D #˜IÔ&Ô'ðð ðð 
ˆ$ˆs�CˆxŒ.Ôð	ð ð ð ð6ØðØ*3ðØ>AðØILðà	ðð ð ð ðØðØ*3ðØ>AðØILðà	ðð ð ð ðØðØ*3ðØ>AðØILðà	ðð ð ð ð €„�„Ø€ÔÑÔð 	ð 	ð 	ð 	Ø$)ð;_ð _Ø
Øˆt‰ØˆŒð2ð	
ñ 	
ô 	
ð	ôð_ð ØˆlˆeŒl˜;Ð-QÐRÑRÔRÐRôð_ð Øˆd‰
ØˆŒØØ.Ø)ð	
ñ 	
ô 	
ð	ôð_ð* $ØØˆŒØJØØ7ð	
ñ 	
ô 	
ð	ôð+_ð: "ð;_ð< 	ð=_ð _ð _ñ Ôñ „ð_ð _ð _r-   