
    ch                        S SK Jr  S SKrS SKrS SKJrJr  S SKJr  \(       a  S SK	J
r
JrJrJr  SrSrSr " S	 S
5      rg)    )annotationsN)TYPE_CHECKINGcast)util)CommitRemoteRemoteReferenceRepoz/^https://(www\.)?github.com/(.+)/(.+)(?:.git)?$z#^git@github.com:(.+)/(.+)(?:.git)?$)      r   c                      \ rS rSr% S\S'   SS jrSS jrSS jr\SS j5       r	\SS j5       r
\SS	 j5       r\SS
 j5       r\SS j5       rSS jrSS jrSS jrSrg)GitRepo$   zRepo | Nonerepoc                   S U l          SS KnUR                  USS9U l        U R                  R                  R                  U l         U R                   b_  U R                   [
        :  aJ  U R                  R                  R                  S5      n[        R                  R                  X5      U l
        g g g ! [         a
    S U l         g f = f)Nr   T)search_parent_directoriesz--show-toplevel)git_versiongitr
   r   version_infoMIN_GIT_VERSION	rev_parseospathrelpathmodule	Exception)selfr   r   git_roots       eC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\streamlit/git_util.py__init__GitRepo.__init__'   s     48	FDI#yy}}99D+0@0@O0S99==223DE ggood= 1T+  	 DI	s   B(B4 4CCc                .    [         R                  " U 5      $ N)r   repr_r   s    r   __repr__GitRepo.__repr__=   s    zz$    c                |    U R                   SL=(       a(    U R                  SL=(       a    U R                  [        :  $ )zDTrue if there's a git repo here, and git.version >= MIN_GIT_VERSION.N)r   r   r   r%   s    r   is_validGitRepo.is_valid@   s;     IIT! 4  ,4  O3	
r(   c                    U R                   b  U R                  5       (       d  g U R                  (       a  g U R                   R                  R	                  5       $ r#   )r   r*   is_head_detachedactive_branchtracking_branchr%   s    r   r/   GitRepo.tracking_branchH   s>    99DMMOO  yy&&6688r(   c                t    U R                   b  U R                  5       (       d  g U R                   R                  $ r#   )r   r*   untracked_filesr%   s    r   r2   GitRepo.untracked_filesR   s)    99DMMOOyy(((r(   c                    U R                   b  U R                  5       (       d  gU R                   R                  R                  $ )NF)r   r*   headis_detachedr%   s    r   r-   GitRepo.is_head_detachedY   s-    99DMMOOyy~~)))r(   c                    U R                   b  U R                  5       (       d  g U R                   R                  R                  S 5       Vs/ s H  n[	        SUR
                  5      PM     sn$ s  snf )Nstr)r   r*   indexdiffr   a_path)r   items     r   uncommitted_filesGitRepo.uncommitted_files`   sQ    99DMMOO59YY__5I5I$5OP5OTUDKK(5OPPPs    A.c                   U R                   b  U R                  5       (       d  g  U R                  5       nUc  g Uu  p#UR                   SU 3n[	        U R                   R                  U SU 35      5      $ ! [         a    / s $ f = f)N/z..)r   r*   get_tracking_branch_remotenamelistiter_commitsr   )r   tracking_branch_inforemotebranch_nameremote_branchs        r   ahead_commitsGitRepo.ahead_commitsg   s    99DMMOO
	#'#B#B#D #+"6F%{{m1[M:M		..-;-/PQRR 	I	s   A7 =A7 7BBc                    U R                   b  U R                  5       (       d  g U R                  nUc  g UR                  R	                  S5      tp#SR                  U5      nU R                   R                  U5      U4$ )NrA   )r   r*   r/   rC   splitjoinrG   )r   r/   remote_namebranchrH   s        r   rB   "GitRepo.get_tracking_branch_remotex   sn    99DMMOO..".3399#>hhv&yy,k99r(   c                    U R                  5       (       d  gU R                  5       nUc  gUu  p#UR                   H=  n[        R                  " [
        U5      c  [        R                  " [        U5      c  M=    g   g)NFT)r*   rB   urlsrematchGITHUB_HTTP_URLGITHUB_SSH_URL)r   remote_inforG   _branchurls        r   is_github_repoGitRepo.is_github_repo   sf    }}557%;;C#.:88NC0<  r(   c                   U R                  5       (       d  g U R                  5       nUc  g Uu  p#S nUR                   H  n[        R                  " [
        U5      n[        R                  " [        U5      nUb'  UR                  S5       SUR                  S5       3n  O.Uc  Mh  UR                  S5       SUR                  S5       3n  O   Uc  g XCU R                  4$ )Nr   rA         )	r*   rB   rS   rT   rU   rV   rW   groupr   )r   rX   rG   rP   r   rZ   https_matchesssh_matchess           r   get_repo_infoGitRepo.get_repo_info   s    }}557$;;CHH_c:M((>37K('--a01=3F3Fq3I2JK&%++A./q1B1B11E0FG  <T[[((r(   )r   r   r   N)r   r9   returnNone)re   r9   )re   bool)re   zRemoteReference | None)re   zlist[str] | None)re   zlist[Commit] | None)re   ztuple[Remote, str] | None)re   ztuple[str, str, str] | None)__name__
__module____qualname____firstlineno____annotations__r    r&   r*   propertyr/   r2   r-   r>   rJ   rB   r[   rc   __static_attributes__ r(   r   r   r   $   s    
, 
 9 9 ) ) * * Q Q   :&)r(   r   )
__future__r   r   rT   typingr   r   	streamlitr   r   r   r   r	   r
   rV   rW   r   r   ro   r(   r   <module>rs      s?    # 	 	 & 99 E7
 N) N)r(   