
    <fhg                    .   U d 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
 erddlmZ ddlmZmZ d	ed
<   	 ddlmZ 	 	 	 	 ddZ	 	 	 	 	 	 ddZedk(  r ej,                         j/                         Zedz  j3                         sJ edz  Zedz  Zej9                  d      Z ee      D  ci c]&  \  } }| j=                  d      j=                  d      |( c}} Z eee      Z  ejB                   e"e              yy# e$ r	 ddlmZ Y w xY wc c}} w )zhSync Requirements - Automatically upgrade test requirements pinned
versions from pre-commit config file.    )annotationsN)Path)TYPE_CHECKING)load)	Generator)CLoaderLoaderztype[_CLoader | _Loader]r	   )r   )r	   c              #     K   t        | t              }|d   D ]?  }d|vsd|vr|d   }|j                  dd      d   }|d   j                  d      }||f A yw)	z5Yield (name, rev) tuples from pre-commit config file.reposreporev/   vN)	load_yamlr	   rsplitremoveprefix)pre_commit_textpre_commit_configr   urlnamer   s         P/var/www/zara/venv/lib/python3.12/site-packages/trio/_tools/sync_requirements.pyyield_pre_commit_version_datar      sv      "/6:!'* d!26lzz#q!"%5k&&s+Cis   AAc                x   d}| j                  d      j                  d      }| j                  dd      5 }|D ]  }|j                  d      sd|vr|j	                  |       *|j                  dd      \  }}|j                         }d	}	d
|v r*|j                  d
d      \  }}	|j                         }d|	z   }	|j                  |      }
|
|j	                  |       | d|
 |	 }||k7  r%|sd}t        d       t        | d| d| d|
        |j	                  |        	 ddd       |S # 1 sw Y   |S xY w)zeReturn if updated requirements file.

    Update requirements file to match versions in version_data.Futf-8encodingTw#z==r   
;z ;Nz5Changed test requirements version to match pre-commitz -> )		read_text
splitlinesopen
startswithwritesplitstripgetprint)requirementsversion_datachanged	old_linesfileliner   restold_versionextraversionnew_lines               r   update_requirementsr7   )   s^    G&&&8CCDII			3		1 !T 	!Ds#t4'7

4 D!,JD$**,KEd{%)ZZQ%7"U)//1u"&&t,G

4 r'5'2H4"GQRbT$r'CDJJx 3	!!6 N7!6 Ns   C-D//D9__main__LICENSEz.pre-commit-config.yamlztest-requirements.txtr   r   z-mirrorz-pre-commit)r   strreturnz&Generator[tuple[str, str], None, None])r,   r   r-   zdict[str, str]r;   bool)#__doc__
__future__r   syspathlibr   typingr   yamlr   r   collections.abcr   r   _CLoaderr	   _Loader__annotations__ImportErrorr   r7   __name__cwdabsolutesource_rootexists
pre_committest_requirementsr#   r   removesuffixpre_commit_versionsr.   exitint)r   r5   s   00r   <module>rS      sJ  ) # 
    ");$$&
+%% % 
%P z$((*%%'K )#++---88J#&== **G*<O ;?KD' 	)$11-@'I ""35HIGCHHS\# u  Ls   D  .+D DD