403Webshell
Server IP : 198.38.94.13  /  Your IP : 216.73.217.33
Web Server : Apache
System : Linux d4744.dxb1.stableserver.net 5.14.0-611.49.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Apr 21 16:39:08 EDT 2026 x86_64
User : revivere ( 1140)
PHP Version : 8.2.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/saltstack/salt/lib/python3.10/site-packages/git/repo/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/saltstack/salt/lib/python3.10/site-packages/git/repo/__pycache__/fun.cpython-310.pyc
o

;j�[�@s�dZddlmZgd�ZddlZddlmZddlm	Z	ddl
Z
ddlZddlm
Z
ddlmZmZddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZmZmZddlm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&ddl'm(Z(m)Z)m*Z*e"r�ddl+m,Z,ddlm-Z-ddl.m/Z/ddl0m1Z1m2Z2ddl3m4Z4ddl5m6Z6d�dd�Z7d�dd �Z8d�d#d$�Z9d�d&d'�Z:d�d,d-�Z;d�d1d2�Z<e&d�d�d7d8��Z=e&d�d;d8��Z=d�d�d=d8�Z=d�d@dA�Z>d�dEdF�Z?d�dGdH�Z@d�dJdK�ZAd�dMdN�ZBd�dPdQ�ZCd�dUdV�ZDd�dXdY�ZEd�d[d\�ZFd�d^d_�ZGd�dadb�ZHd�dedf�ZId�didj�ZJd�dkdl�ZK	<d�d�dodp�ZLd�drds�ZMd�dvdw�ZNd�dxdy�ZOd�d{d|�ZPd�d~d�ZQd�d�d��ZRd�d�d��ZSdS)�z%General repository-related functions.�)�annotations)	�	rev_parse�
is_git_dir�touch�find_submodule_git_dir�name_to_object�
short_to_long�	deref_tag�	to_commit�find_worktree_git_dirN)�Path)�digits)�BadName�	BadObject)�Git)�WorkTreeRepositoryUnsupported)�Object)�
parse_date)�SymbolicReference)�cygpath�
bin_to_hex�
hex_to_bin)�Iterator�Optional�
TYPE_CHECKING�Tuple�Union�cast�overload)�AnyGitObject�Literal�PathLike)�GitCmdObjectDB)�Commit)�	Reference)�RefLog�RefLogEntry)�Tag�)�Repo�filename�str�returncCs0t|d��	Wd�|S1swY|S)N�ab)�open)r*�r/�@/opt/saltstack/salt/lib/python3.10/site-packages/git/repo/fun.pyr6s
��r�dr!�boolcCs�t�|�rSt�t�|d��sdtjvr4t�t�|d��r4t�|d�}t�|�p3t�|�o3t�|��d�St�t�|d��rSt�t�|d��rSt�t�|d��rSt	|��dS)	axThis is taken from the git setup.c:is_git_directory function.

    :raise git.exc.WorkTreeRepositoryUnsupported:
        If it sees a worktree directory. It's quite hacky to do that here, but at least
        clearly indicates that we don't support it. There is the unlikely danger to
        throw if we see directories which just look like a worktree dir, but are none.
    ZobjectsZGIT_OBJECT_DIRECTORYZrefs�HEAD�gitdirZ	commondirZgitfileF)
�osp�isdir�join�os�environ�isfile�islink�readlink�
startswithr)r1Zheadrefr/r/r0r<s
 
�$���r�dotgit�
Optional[str]cCs�zt�|�}Wn
tyYdSwt�|j�sdSz t|�����}dd�|D�D]
\}}|dkr7|WSq*WdStyDYdSw)z&Search for a gitdir for this worktree.NcSsg|]	}|���d��qS)z: )�strip�split)�.0�liner/r/r0�
<listcomp>^sz)find_worktree_git_dir.<locals>.<listcomp>r4)	r8�stat�OSError�S_ISREG�st_moder�	read_text�
splitlines�
ValueError)r>Zstatbuf�lines�key�valuer/r/r0rSs&�
����r�Optional[PathLike]cCs�t|�r|Szt|��}|����}Wd�n1swYWn
ty,YdSw|�d�rU|dd�}t��r@t|�}t	�
|�sQt	�t	�t	�
|�|��}t|�SdS)zSearch for a submodule repo.Nzgitdir: �)rr.�read�rstrip�IOErrorr=rZ	is_cygwinrr5�isabs�normpathr7�dirnamer)r1�fp�content�pathr/r/r0rfs&
���

r�odb�'GitCmdObjectDB'�hexsha�Optional[bytes]cCs&zt|�|��WStyYdSw)z�
    :return:
        Long hexadecimal sha1 from the given less than 40 byte hexsha, or ``None`` if no
        candidate could be found.

    :param hexsha:
        hexsha with less than 40 bytes.
    N)rZpartial_to_complete_sha_hexr)rZr\r/r/r0r�s
	�r�repo�'Repo'�namecCslt�d|�}|durt�d|�}|durt�d|�}|dur dS|�d�}t|�dkr0|�d�St|j|�S)zHResolve git-describe style names to the abbreviated object they contain.z(^.+-\d+-g([0-9A-Fa-f]{4,40})(?:-dirty)?$Nz$^.+-g([0-9A-Fa-f]{4,40})(?:-dirty)?$z^([0-9A-Fa-f]{4,40})-dirty$r(�(�ascii)�re�match�group�len�encoderrZ)r^r`rdr\r/r/r0�_describe_to_long�s

rh.�
return_ref�Literal[False]rcC�dS�Nr/�r^r`rir/r/r0r��r�
Literal[True]�&Union[AnyGitObject, SymbolicReference]cCrkrlr/rmr/r/r0r�rnFc	Cs�d}|j�|�rt|�dkrt|j|�}n|}|dur@dD]"}zt�|||�}|r4t|||�WSWn	ty?Yqw|durIt||�}|rQt	d|��|durYt
|��t�|t
|��S)ah
    :return:
        Object specified by the given name - hexshas (short and long) as well as
        references are supported.

    :param return_ref:
        If ``True``, and name specifies a reference, we will return the reference
        instead of the object. Otherwise it will raise :exc:`~gitdb.exc.BadObject` or
        :exc:`~gitdb.exc.BadName`.
    Nra)z%szrefs/%szrefs/tags/%sz
refs/heads/%szrefs/remotes/%szrefs/remotes/%s/HEADz Couldn't find reference named %r)Zre_hexsha_shortenedrdrfrrZrZdereference_recursiverKrhrrr�new_from_shar)r^r`rir\�baser/r/r0r�s,�
�tag�'Tag'cCs$	z|j}Wn
tyY|Swq)z>Recursively dereference a tag and return the resulting object.)�object�AttributeError)rsr/r/r0r	�s
��r	�objr�'Commit'cCs,|jdkr	t|�}|jdkrtd|��|S)z?Convert the given object to a commit if possible and return it.rs�commitz'Cannot convert object %r to type commit)�typer	rK)rwr/r/r0r
�s


r
cCst�|t|��Srl)rrqr)r^r\r/r/r0�_object_from_hexsha�sr{rcCs$z|jjWSty|jYSwrl)�head�ref�	TypeError)r^r/r/r0�_current_reflog_refs


�rr}cCs(|j|jkrdSt�t�|jd�|j�S)N�logs)Z
common_dirZgit_dirrZ_get_validated_pathr5r7rY)r^r}r/r/r0�_common_reflog_path
sr��'RefLog'cCs�z|��WStyAt||�}|r%t�|�r%ddlm}|�|�YSz|j|j	j
jkr6|j	��WYSW�ty@Y�ww�Nr)r%)�log�FileNotFoundErrorr�r5r:�git.refs.logr%Z	from_filerYr|r}r~)r^r}�common_pathr%r/r/r0�_ref_logs"

����r��index�int�
'RefLogEntry'cCs�z|�|�WStyDt||�}|r't�|�r'ddlm}|�||�YSz|j|j	j
jkr9|j	�|�WYSW�tyCY�wwr�)Z	log_entryr�r�r5r:r�r%Zentry_atrYr|r}r~)r^r}r�r�r%r/r/r0�_ref_log_entry&s"
����r��specc
Cs~zt|�\}}Wnty}ztd�|�d}~wwt||�}|s'td|��t|�D]}|jd|kr9|jSq+|djS)Nz3Support for additional @{...} modes not implementedzInvalid revlog date: %sr)rrK�NotImplementedErrorr��
IndexError�reversed�time�	newhexsha)r^r}r��	timestamp�_offset�er��entryr/r/r0�_find_reflog_entry_by_date;s
��

�
r��nthcCs�|dkr
td|��d}tt||j��D],}|jpd}d}|�|�s#q|t|�d��dd�d}|d7}||kr@t||�Sqt	d|��)Nrz'Invalid previous checkout selector: -%i�zcheckout: moving from z to r()
rKr�r�r|�messager=rfrArr�)r^r��seenr�r��prefixZprevious_branchr/r/r0�_previous_checked_out_branchNs

�r��Optional[SymbolicReference]c
Cs�ddlm}|dur!z|j}Wn0ty }ztd�|�d}~wwt||�r)|}nt�|j��	d�r9|||j�}ntd|j
��|��}|durOtd|j
��|jS)Nr)�Headz@{upstream}zrefs/heads/z
%s@{upstream})
Z
git.refs.headr�Z
active_branchr~r�
isinstancer8�fspathrYr=r`�tracking_branchry)r^r}r�r|r�r�r/r/r0�_tracking_branch_objectds"

��
r�rXc
CsH|�d�r|dd�}|�d�r@|durtd��|dkr td��zt|t|dd���WSty?}ztd|�|�d}~ww|��}|dvrMt||�S|pRt|�}zt|�}Wntyht|||�}Yn7w|d	krvt||d
|�}n)|dkr}|jSzt	|||d�}Wnt
y�}zt
d|�|�d}~ww|j}t||�S)
N�+r(�-z7Previous checkout selectors do not take an explicit refz-0z+Negative zero is invalid in reflog selectorz&Invalid previous checkout selector: %s)�uZupstream�pushi�z%s +0000rzInvalid revlog index: %i)
r=rKr�r��lowerr�rr�ryr�r�r�r{)r^r}rXr�Z
content_lowerZentry_nor\r�r/r/r0�
_apply_reflog{sD

��
���
r��rev�startcCs~d}d}t|dt|��D]+}||}|rd}q
|dkrd}q
|dkr(|d7}q
|dkr8|d8}|dkr8|Sq
td|��)	Nr(F�\T�{�}rz*Missing closing brace to define type in %s)�rangerfrK)r�r��depth�escaped�idx�charr/r/r0�_find_closing_brace�s 
�r��pattern�Tuple[str, bool]cCsZ|std��|�d�r|dd�dfS|�d�r |dd�dfS|�d�r)td	��|dfS)
Nz"Revision search requires a patternz!-�Tz!!r(F�!z(Need one character after /!, typically -)rKr=)r�r/r/r0�
_parse_search�s


r�cCs�g}d}|t|�krH||}|dkr9|dt|�kr9||d}|dvr*|�|�n
|�|�|�|�|d7}q|�|�|d7}|t|�ks
d�|�S)Nrr�r(z{}\r�r�)rf�appendr7)r��outr�r��	next_charr/r/r0�_unescape_braced_regex�s 


�
r��Optional[AnyGitObject]�bracedc
Cs�t|rt|�n|�\}}zt�|�}Wntjy'}ztd|�|�d}~ww|dur1t|�}n
ttt	t
|��g�}|D]"}|j}	t|	t
�rN|	�|jd�}	|�|	pSd�du}
|
|kr_|Sq=td|��)NzInvalid commit message regex %r�replacer�z+No commit found matching message pattern %r)r�r�rc�compile�errorrK�_all_ref_commits�_reachable_commitsr
rrr�r��bytes�decode�encoding�searchr)r^r�r�r�ZnegatedZregexr�Zcommitsryr��matchesr/r/r0�_find_commit_by_message�s&��

�r��Iterator['Commit']c
Csrg}|jD]}z
|�ttt|j���WqttfyYqwz|�|jj	�Wt
|�Sty8Yt
|�Swrl)Z
referencesr�r
rrrurrKr|ryr�)r^�startsr}r/r/r0r��s
���r�r��list['Commit']ccsj�t�}|dd�}|r3|jdd�dd�|�d�}|j|vr q
|�|j�|V|�|j�|sdSdS)NcSs|jSrl)Zcommitted_date)ryr/r/r0�<lambda>sz$_reachable_commits.<locals>.<lambda>T)rM�reverser)�set�sort�popZbinsha�add�extend�parents)r�r��pendingryr/r/r0r�
s�

�r�c
Cs�|std��d}|}t|�dkr(|ddkr(|ddvr(t|d�}|dd�}z|jj||f�|�WStyI}z	td||f�|�d}~ww)Nz':' must be followed by a pathrr�r(�:Z0123z.Path %r did not exist in the index at stage %i)rKrfr�r��entriesZto_blob�KeyErrorr)r^r�ZstagerYr�r/r/r0�
_index_lookups$��r�rYcCs*|jdkr
ttt|��j}|s|S||S)N�tree)rzr
rrr�)rwrYr/r/r0�_tree_lookup.s

r��output_typecCs�|�d�rt|||dd�dd�S|dkr |jdkrt|�S|S|dkr&|S|dkr1ttt|��S|d	krD|jd	krBttt|��jS|S|d
krc|jdkrQt|�n|}|j|krZ|Std||jf��|dkrw|j|krn|Std||jf��td||f��)
N�/r(T)r�r�rsruryr�Zblobz6Could not accommodate requested object type %r, got %sz!Invalid output type: %s ( in %s ))	r=r�rzr	r
rrr�rK)rwr�r^r�r/r/r0�_peel7s(


r��
Optional[int]cCsvt|�D]4\}}|dvr|S|dkr8|dt|�kr"||dnd}|dkr0|dvr0|S|dkr8|SqdS)Nz^~:�@r(r)N�^�~r�r�r�)�	enumeraterf)r�r�r�r�r/r/r0�_first_rev_tokenQs �r�c

Cs|�d�rt|d|dd��S|�d�rt||dd��Sd}d}t|�}t|�}|dur2t||�S|dkrS|ddkrBtd|��t|�}|j}|�d	�rPdnd}n#||dkrkt	d
t||d|�dd��}|j}n	t||d|��}|}||k�rz||}|dkr�|d|ks�||dd
kr�td|��t
||d�}t||dkr�||kr�|nd||d|��}d}|d}qv|dkr�t|||dd��S|d7}|dkr�||kr�||d
kr�t
||�}t
|||d|�||�}d}|d}qvd}	d}
||k�r||tv�r|	dt||�}	|d7}d}
nn||ks�|
�s d}	z6|dk�r8t|�}t|	�D]}|jd}�q.n|dk�rOt|�}|	dk�rGn|j|	d}ntd|��Wnttf�yu}ztd|�d|�t|	��d��|�d}~ww||ks{|du�r�td|��|S)a�Parse a revision string. Like :manpage:`git-rev-parse(1)`.

    :return:
        `~git.objects.base.Object` at the given revision.

        This may be any type of git object:

        * :class:`Commit <git.objects.commit.Commit>`
        * :class:`TagObject <git.objects.tag.TagObject>`
        * :class:`Tree <git.objects.tree.Tree>`
        * :class:`Blob <git.objects.blob.Blob>`

    :param rev:
        :manpage:`git-rev-parse(1)`-compatible revision specification as string.
        Please see :manpage:`git-rev-parse(1)` for details.

    :raise gitdb.exc.BadObject:
        If the given revision could not be found.

    :raise ValueError:
        If `rev` couldn't be parsed.

    :raise IndexError:
        If an invalid reflog index is specified.
    z:/Nr�r�r(rr�z5Revision specifier must start with an object name: %sz@{r$T)rir�z)Invalid @ token in revision specifier: %sr�F�
r�zInvalid token: %rzInvalid revision spec 'z(' - not enough parent commits to reach '�'z*Revision specifier could not be parsed: %s)r=r�r�rfr�rrKrryrr�r�r�r�r
r�r
r�r�r�rvr)
r^r�rwr}ZlrZfirst_tokenr��token�end�numZfound_digit�_r�r/r/r0ras�



,

�

�

������
Cr)r*r+r,r+)r1r!r,r2)r>r!r,r?)r1r!r,rO)rZr[r\r+r,r])r^r_r`r+r,r]).)r^r_r`r+rirjr,r)r^r_r`r+riror,rp)F)r^r_r`r+rir2r,rp)rsrtr,r)rwrr,rx)r^r_r\r+r,r)r^r_r,r)r^r_r}rr,r?)r^r_r}rr,r�)r^r_r}rr�r�r,r�)r^r_r}rr�r+r,r+)r^r_r�r�r,r)r^r_r}r�r,r)r^r_r}r�rXr+r,r)r�r+r�r�r,r�)r�r+r,r�)r�r+r,r+)
r^r_r�r�r�r+r�r2r,r)r^r_r,r�)r�r�r,r�)r^r_r�r+r,r)rwrrYr+r,r)
rwrr�r+r^r_r�r+r,r)r�r+r,r�)r^r_r�r+r,r)T�__doc__�
__future__r�__all__r8Zos.pathrYr5�pathlibrrcrE�stringr
Z	gitdb.excrrZgit.cmdrZgit.excrZgit.objectsrZgit.objects.utilrZgit.refsrZgit.utilrrr�typingrrrrrrrZ	git.typesrr r!Zgit.dbr"r#Zgit.refs.referencer$r�r%r&Zgit.refs.tagr'rrr)rrrrrrhrr	r
r{rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr/r/r/r0�<module>sv$






>










,

�




	


Youez - 2016 - github.com/yon3zu
LinuXploit