§
    >xÅjY  ã            	       ó†  — d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlmZ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mZ d dlmZ d d	lmZ  ej        e¦  «        Zd
Zde› �Zde› d�ZdZdZ e	d¬¦  «        ZdZ  ej!        d¦  «        Z" ed¬¦  «         G d„ d¦  «        ¦   «         Z# G d„ de¦  «        Z$ G d„ de¦  «        Z% G d„ de¦  «        Z&de'de(e)d f         dz  fd!„Z*d"e'd#e'de+fd$„Z,ed%œd&ed'e	de'dz  fd(„Z-dd)œd&ed*e'd+edz  ddfd,„Z.de'dz  fd-„Z/de#dz  fd.„Z0de'fd/„Z1d0e#de'fd1„Z2 G d2„ d3¦  «        Z3dS )4é    N)Úsuppress)Ú	dataclass)ÚdatetimeÚ	timedeltaÚtimezone)ÚPath)Údetect_installer)ÚAwareDatetimeÚ	BaseModelÚValidationError)Ú__version__)Úget_version_check_cache_pathzfastapi-cloud-clizpip install --upgrade zhttps://pypi.org/pypi/z/jsong       @gš™™™™™É?é   )ÚhoursÚ#FASTAPI_CLOUD_DISABLE_VERSION_CHECKz\d+(?:\.\d+)*T)Úfrozenc                   ó$   — e Zd ZU eed<   eed<   dS )ÚVersionUpdateÚcurrentÚlatestN©Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__© ó    úVC:\Projects\Historical\venv\Lib\site-packages\fastapi_cloud_cli/utils/version_check.pyr   r      s"   € € € € € € à€L€L�LØ€K€K�K€K€Kr   r   c                   ó$   — e Zd ZU eed<   eed<   dS )ÚVersionCheckCacheÚlatest_versionÚ
checked_atN)r   r   r   r   r   r
   r   r   r   r!   r!   #   s*   € € € € € € ØÐÐÑØÐÐÑÐÐr   r!   c                   ó   — e Zd ZU eed<   dS )ÚPyPIProjectInfoÚversionNr   r   r   r   r%   r%   (   s   € € € € € € Ø€L€L�L€L€Lr   r%   c                   ó   — e Zd ZU eed<   dS )ÚPyPIProjectResponseÚinfoN)r   r   r   r%   r   r   r   r   r(   r(   ,   s   € € € € € € Ø
ÐÐÑÐÐr   r(   r&   Úreturn.c                 óÈ   — t                                | ¦  «        st                               d| ¦  «         d S t	          d„ |                      d¦  «        D ¦   «         ¦  «        S )Nz&Skipping non-simple version string: %rc              3   ó4   K  — | ]}t          |¦  «        V — Œd S ©N)Úint)Ú.0Úparts     r   ú	<genexpr>z0_parse_simple_release_version.<locals>.<genexpr>5   s(   è è € Ð:Ð:˜t•�T‘”Ð:Ð:Ð:Ð:Ð:Ð:r   ú.)ÚSIMPLE_RELEASE_VERSION_REÚ	fullmatchÚloggerÚdebugÚtupleÚsplit)r&   s    r   Ú_parse_simple_release_versionr9   0   s[   € Ý$×.Ò.¨wÑ7Ô7ð Ý�ŠÐ=¸wÑGÔGÐGØˆtåÐ:Ð: w§}¢}°SÑ'9Ô'9Ð:Ñ:Ô:Ñ:Ô:Ð:r   r   r   c                 óV   — t          | ¦  «        }t          |¦  «        }|�|€dS ||k    S )NF)r9   )r   r   Úlatest_partsÚcurrent_partss       r   Úis_newer_versionr=   8   s7   € Ý0°Ñ8Ô8€LÝ1°'Ñ:Ô:€MàÐ˜}Ð4Øˆuà˜-Ò'Ð'r   )ÚttlÚ
cache_pathr>   c                ól  — t          j        t          j        ¦  «        }	 t                               |                      d¬¦  «        ¦  «        }n:# t          t          f$ r&}t           
                    d|¦  «         Y d }~d S d }~ww xY wt          |j        ¦  «        €d S ||j        z
  |k    rd S |j        S )Núutf-8©Úencodingz$Could not read CLI version cache: %s)r   Únowr   Úutcr!   Úmodel_validate_jsonÚ	read_textÚOSErrorr   r5   r6   r9   r"   r#   )r?   r>   rD   ÚcacheÚerrors        r   Úread_cached_latest_versionrK   B   sÆ   € õ
 Œ,•x”|Ñ
$Ô
$€CðÝ!×5Ò5Ø× Ò ¨'Ð Ñ2Ô2ñ
ô 
ˆˆøõ •_Ð%ð ð ð Ý�ŠÐ;¸UÑCÔCÐCØˆtˆtˆtˆtˆtøøøøðøøøõ % UÔ%9Ñ:Ô:ÐBØˆtà
ˆUÔÑ Ò#Ð#ØˆtàÔÐs    .A ÁBÁ BÂB)rD   r"   rD   c                óf  — |pt          j        t          j        ¦  «        }||                     ¦   «         dœ}	 | j                             dd¬¦  «         |                      t          j	        |¦  «        d¬¦  «         d S # t          $ r&}t                               d|¦  «         Y d }~d S d }~ww xY w)N)r"   r#   T)ÚparentsÚexist_okrA   rB   z%Could not write CLI version cache: %s)r   rD   r   rE   Ú	isoformatÚparentÚmkdirÚ
write_textÚjsonÚdumpsrH   r5   r6   )r?   r"   rD   ÚdatarJ   s        r   Úwrite_latest_version_cacherV   Z   sÉ   € ð Ð
+•”�hœlÑ+Ô+€Cà(Ø—m’m‘o”oðð €Dð
EØÔ×Ò¨°tÐÑ<Ô<Ð<Ø×Ò�dœj¨Ñ.Ô.¸ÐÑAÔAÐAÐAÐAøÝð Eð Eð EÝ�ŠÐ<¸eÑDÔDÐDÐDÐDÐDÐDÐDÐDøøøøðEøøøs   ¹AB  Â 
B0Â
B+Â+B0c                  óØ  — ddt           › �i} 	 t          j        t          j        t          ¦  «        | ¬¦  «        5 }|                     t          ¦  «        }|                     ¦   «          t           	                    |j
        ¦  «        }d d d ¦  «         n# 1 swxY w Y   n?# t          j        t          f$ r&}t                               d|¦  «         Y d }~d S d }~ww xY w|j        j        S )Nz
User-Agentzfastapi-cloud-cli/)ÚtimeoutÚheadersz&Could not check latest CLI version: %s)r   ÚhttpxÚClientÚTimeoutÚVERSION_CHECK_TIMEOUT_SECONDSÚgetÚPYPI_JSON_URLÚraise_for_statusr(   rF   ÚtextÚ	HTTPErrorr   r5   r6   r)   r&   )rY   ÚclientÚresponserU   rJ   s        r   Úfetch_latest_versionre   m   s7  € ØÐ?µ+Ð?Ð?Ð@€Gð
ÝŒ\Ý”MÕ"?Ñ@Ô@Øð
ñ 
ô 
ð 	Jð Ø—z’z¥-Ñ0Ô0ˆHØ×%Ò%Ñ'Ô'Ð'Ý&×:Ò:¸8¼=ÑIÔIˆDð	Jð 	Jð 	Jñ 	Jô 	Jð 	Jð 	Jð 	Jð 	Jð 	Jð 	Jøøøð 	Jð 	Jð 	Jð 	Jøøõ ŒO�_Ð-ð ð ð Ý�ŠÐ=¸uÑEÔEÐEØˆtˆtˆtˆtˆtøøøøðøøøð Œ9ÔÐs;   Ž-B! »ABÂ	B! ÂBÂB! ÂBÂB! Â!CÂ7CÃCc                  óà   — t          ¦   «         } t          | ¦  «        x}€#t          ¦   «         x}€d S t          | |¬¦  «         t	          |t
          ¦  «        sd S t          t
          |¬¦  «        S )N)r"   )r   r   )r   rK   re   rV   r=   r   r   )r?   r"   s     r   Úcheck_for_updaterg      s   € Ý-Ñ/Ô/€Jå4°ZÑ@Ô@Ð@ˆÐIÝ2Ñ4Ô4Ð4ˆNÐ=Ø�4å"ØØ)ð	
ñ 	
ô 	
ð 	
õ
 ˜N­KÑ8Ô8ð Øˆtå¥°^ÐDÑDÔDÐDr   c                  óX   — t          t          ¦  «        } | �| j        €t          S | j        S r-   )r	   ÚPACKAGE_NAMEÚupgrade_cmdÚDEFAULT_UPGRADE_COMMAND)Úinstaller_infos    r   Úget_upgrade_commandrm   ‘   s,   € Ý%¥lÑ3Ô3€NàÐ Ô!;Ð!CÝ&Ð&àÔ%Ð%r   Úupdatec                 óF   — d| j         › d| j        › dt          ¦   «         › d�S )Nz0A newer FastAPI Cloud CLI version is available: u    â†’ [bold]z[/]

Run "[blue]z[/]" to upgrade.)r   r   rm   )rn   s    r   Úformat_update_messagerp   š   sB   € ð	>ØŒ>ð	>ð 	>Ø&,¤mð	>ð 	>å)Ñ+Ô+ð	>ð 	>ð 	>ðr   c                   ó8   — e Zd Zdd„Zdd„Zdd„Zdedz  fd„ZdS )ÚBackgroundVersionCheckr*   Nc                 ób   — t          j        | j        d¬¦  «        | _        d | _        d| _        d S )NT)ÚtargetÚdaemonF)Ú	threadingÚThreadÚ_runÚ_threadÚ_updateÚ_message_returned©Úselfs    r   Ú__init__zBackgroundVersionCheck.__init__¥   s0   € Ý Ô'¨t¬yÀÐFÑFÔFˆŒØ-1ˆŒØ!&ˆÔÐÐr   c                 ó8   — | j                              ¦   «          d S r-   )ry   Ústartr|   s    r   r€   zBackgroundVersionCheck.startª   s   € ØŒ×ÒÑÔÐÐÐr   c                 ó†   — t          t          ¦  «        5  t          ¦   «         | _        d d d ¦  «         d S # 1 swxY w Y   d S r-   )r   Ú	Exceptionrg   rz   r|   s    r   rx   zBackgroundVersionCheck._run­   s�   € Ý•iÑ Ô ð 	.ð 	.Ý+Ñ-Ô-ˆDŒLð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð 	.ð 	.s   •6¶:½:c                 óœ   — | j         rd S | j                             t          ¬¦  «         | j        rd| _         t          | j        ¦  «        S d S )N)rX   T)r{   ry   ÚjoinÚ"VERSION_CHECK_JOIN_TIMEOUT_SECONDSrz   rp   r|   s    r   Úget_update_messagez)BackgroundVersionCheck.get_update_message±   sS   € ØÔ!ð 	Ø�4àŒ×ÒÕ"DÐÑEÔEÐEàŒ<ð 	7Ø%)ˆDÔ"Ý(¨¬Ñ6Ô6Ð6àˆtr   )r*   N)r   r   r   r~   r€   rx   r   r†   r   r   r   rr   rr   ¤   so   € € € € € ð'ð 'ð 'ð 'ð
ð ð ð ð.ð .ð .ð .ð
 C¨$¡Jð 
ð 
ð 
ð 
ð 
ð 
r   rr   )4rS   ÚloggingÚrerv   Ú
contextlibr   Údataclassesr   r   r   r   Úpathlibr   rZ   r	   Úpydanticr
   r   r   Úfastapi_cloud_clir   Úfastapi_cloud_cli.utils.configr   Ú	getLoggerr   r5   ri   rk   r_   r]   r…   ÚVERSION_CHECK_CACHE_TTLÚDISABLE_VERSION_CHECK_ENVÚcompiler3   r   r!   r%   r(   r   r7   r.   r9   Úboolr=   rK   rV   re   rg   rm   rp   rr   r   r   r   ú<module>r”      s±  ðØ €€€Ø €€€Ø 	€	€	€	Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø Ð Ð Ð Ð Ð à €€€Ø -Ð -Ð -Ð -Ð -Ð -Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >à )Ð )Ð )Ð )Ð )Ð )Ø GÐ GÐ GÐ GÐ GÐ Gà	ˆÔ	˜8Ñ	$Ô	$€à"€ØA°<ÐAÐAÐ Ø<¨Ð<Ð<Ð<€Ø #Ð Ø%(Ð "Ø#˜)¨"Ð-Ñ-Ô-Ð ØAÐ Ø&˜BœJÐ'7Ñ8Ô8Ð ð €�$ÐÑÔðð ð ð ð ñ ô ñ Ôðð
ð ð ð ð ˜	ñ ô ð ð
ð ð ð ð �iñ ô ð ðð ð ð ð ˜)ñ ô ð ð;¨3ð ;°5¸¸c¸´?ÀTÑ3Ið ;ð ;ð ;ð ;ð(˜Sð (¨3ð (°4ð (ð (ð (ð (ð -ð ð  ð  Øð ð 
ð ð 	ˆ4�Zð	 ð  ð  ð  ð8  ð	Eð Eð EØðEð ðEð 
�D‰ð	Eð
 
ðEð Eð Eð Eð&˜c D™jð ð ð ð ð$E˜-¨$Ñ.ð Eð Eð Eð Eð$&˜Sð &ð &ð &ð &ðØðàðð ð ð ðð ð ð ð ñ ô ð ð ð r   