403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /lib64/python3.9/site-packages/hgext/remotefilelog/__pycache__/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /lib64/python3.9/site-packages/hgext/remotefilelog/__pycache__/shallowutil.cpython-39.pyc
a

�+�b�<�@s�ddlmZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZddlm
Z
ddlmZmZmZmZddlmZmZmZdd	lmZejs�ddlZd
d�Zdd
�Zdd�ZdSdd�Zdd�Zdd�Z dTdd�Z!dd�Z"dd�Z#dd�Z$dd �Z%d!d"�Z&d#d$�Z'ej(e)ej*fej+e)ej*fiZ,d%d&�Z-d'd(�Z.d)d*�Z/d+d,�Z0Gd-d.�d.ej1�Z2d/d0�Z3dUd1d2�Z4d3d4�Z5d5d6�Z6d7d8�Z7d9d:�Z8dVd;d<�Z9d=d>�Z:d?d@�Z;dAdB�Z<dCdD�Z=dEdF�Z>dGdH�Z?dIdJ�Z@dWdKdL�ZAdMdN�ZBdOdP�ZCdQdR�ZDdS)X�)�absolute_importN)�_)�open)�hex)�error�pycompat�revlog�util)�hashutil�storageutil�
stringutil�)�	constantscCstj|jvS)z>returns whether the repository is remotefilelog enabled or not)rZSHALLOWREPO_REQUIREMENTZrequirements)�repo�r�E/usr/lib64/python3.9/site-packages/hgext/remotefilelog/shallowutil.py�	isenabled$srcCs4tt�|����}tj�||dd�|dd�|�S)N��rr
Zsha1�digest�os�path�join)�reponame�file�id�pathhashrrr�getcachekey)srcCs tt�|����}tj�||�S�Nr)rrrrrr�getlocalkey.srFcCs0|�dd�}|s&|rdSt�td���t�|�S)N�
remotefilelogs	cachepaths4could not find config option remotefilelog.cachepath)�configr�Abortrr	Z
expandpath)�uiZ
allowempty�	cachepathrrr�getcachepath3s�r%cCs>t|j�}|tjkr(tj�||jd|�Stj�||jd�SdS�Nspacks)r%r#rZFILEPACK_CATEGORYrrr�name)r�categoryr$rrr�getcachepackpath?s

r)cCstj�|d|�Sr&)rrr)�baser(rrr�getlocalpackpathGsr+cCs6i}|s|�d�r2|r&||d<||d<t�||�}|S)zRreturns a string that matches the revlog contents in a
    traditional revlog
    �
scopyscopyrev)�
startswithrZpackmeta)�text�copyfromZcopyrev�metarrr�createrevlogtextKsr1cCs@t�|�\}}|�d�r4|�dd�}||dd�}|p:i|fS)z parse mercurial filelog metadatar,rN)r�	parsemetar-�index)r.r0�size�srrrr2Ys

r2cGs@t�dd��}|D](}t�|�D]\}}|||7<q q|S)z�Adds all the values of *dicts together into one dictionary. This assumes
    the values in *dicts are all summable.

    e.g. [{'a': 4', 'b': 2}, {'b': 3, 'c': 1}] -> {'a': 4, 'b': 5, 'c': 1}
    cSsdS�Nrrrrrr�<lambda>h�zsumdicts.<locals>.<lambda>)�collections�defaultdictr�	iteritems)�dicts�result�dict�k�vrrr�sumdictsbs
rAcCs(i}t�|�D]\}}||||<q|S)z;Returns ``dict`` with ``prefix`` prepended to all its keys.)rr;)r>�prefixr=r?r@rrr�
prefixkeysosrCcGsBdd�|D�}tt|�|d�}|j|ddfit�|���dS)NcSsg|]}|���qSr)Z
getmetrics)�.0r5rrr�
<listcomp>xr8z%reportpackmetrics.<locals>.<listcomp>�_s
_packsizes�
)rCrA�logrZ	strkwargs)r#rBZstoresr<r>rrr�reportpackmetricswsrIcCs�i}d}t|�}||dkr�|||d�}|d7}t�d||�d}|d7}|||krbtd��||||�}|||<||7}q||kr�td��|S)aparse datapack meta, bytes (<metadata-list>) -> dict

    The dict contains raw content - both keys and values are strings.
    Upper-level business may want to convert some of them to other types like
    integers, on their own.

    raise ValueError if the data is corrupted
    r�r
�!Hrs%corrupted metadata: incomplete buffers"corrupted metadata: redundant data)�len�struct�unpack_from�
ValueError)�metabuf�metadict�offset�buflen�keyZmetalen�valuerrr�_parsepackmeta}s 	
rVcCs~d}tt�|pi��D]b\}}t|�dkr8t�d|��t|�dkrTtdt|���||7}|t�dt|��7}||7}q|S)anreverse of _parsepackmeta, dict -> bytes (<metadata-list>)

    The dict contains raw content - both keys and values are strings.
    Upper-level business may want to serialize some of other types (like
    integers) to strings before calling this function.

    raise ProgrammingError when metadata key is illegal, or ValueError if
    length limit is exceeded
    r8r
spackmeta: illegal key: %si��s)metadata value is too long: 0x%x > 0xffferK)	�sortedrr;rLr�ProgrammingErrorrOrM�pack)rQrPr?r@rrr�_buildpackmeta�s

�
rZcCsvi}t�|pi�D]Z\}}t�|tf�}t||�s@t�d|��t|vrd|t	j
kr\|dkr\qt|�}|||<qt|�S)z�like _buildpackmeta, but typechecks metadict and normalize it.

    This means, METAKEYSIZE and METAKEYSIZE should have integers as values,
    and METAKEYFLAG will be dropped if its value is 0.
    spackmeta: wrong type of key %sr)
rr;�_metaitemtypes�get�bytes�
isinstancerrX�intr�METAKEYFLAG�int2binrZ)rQZnewmetar?r@Zexpectedtyperrr�
buildpackmeta�s

rbcCs@t|�}t�|�D](\}}|tvrtt|vrt|�||<q|S)z�like _parsepackmeta, but convert fields to desired types automatically.

    This means, METAKEYFLAG and METAKEYSIZE fields will be converted to
    integers.
    )rVrr;r[r_�bin2int)rPrQr?r@rrr�
parsepackmeta�s
rdcCs0t�}|dkr(|�d|d@�|dL}qt|�S)z3convert a non-negative integer to raw binary bufferr��)�	bytearray�insertr])�n�bufrrrra�s

racCs&d}t|�D]}|dK}||O}q|S)z=the reverse of int2bin, convert a binary buffer to an integerrrf)rg)rj�x�brrrrc�s

rcc@seZdZdZdS)�BadRemotefilelogHeaderz@Exception raised when parsing a remotefilelog blob header fails.N)�__name__�
__module__�__qualname__�__doc__rrrrrm�srmcCs�tj}d}z|�d�}Wnty2td��Yn0|d|�}|�d�r�|�d�r�|�d�D]J}|�tj�r�t	|t
tj�d��}q^|�tj�r^t	|t
tj�d��}q^q�td|��nt	|�}|dur�td��|d	||fS)
z�given a remotefilelog blob, return (headersize, rawtextsize, flags)

    see remotefilelogserver.createfileblob for the format.
    raise RuntimeError if the content is illformed.
    N�z/unexpected remotefilelog header: illegal format�vsv1
rGs$unsupported remotefilelog header: %sz.unexpected remotefilelog header: no size foundr
)rZREVIDX_DEFAULT_FLAGSr3rOrmr-�splitr�METAKEYSIZEr_rLr`)�raw�flagsr4r3�headerr5rrr�parsesizeflags�s2�


��rycCsd|durtt|��}|dkr2dtj|tj|f}n.|dkrR|rHt�d��d|}nt�d|��|S)z�return the header of a remotefilelog blob.

    see remotefilelogserver.createfileblob for the format.
    approximately the reverse of parsesizeflags.

    version could be 0 or 1, or None (auto decide).
    Nr
sv1
%s%d
%s%drs!fileblob v0 does not support flags%dsunknown fileblob version %d)r_�boolrrur`rrX)r4rw�versionrxrrr�buildfileblobheaders	�

r|cCs�t|�\}}}||}i}|t|�kr�|�d|d�}|||d�}||d|d�}||d|d�}	||d|d�}
||d|�}||	|
|f||<|d}q|S)Nrr�P��(�<r
)ryrLr3)rvrRr4rw�start�mappingZdividerZcurrentnodeZp1Zp2Zlinknoder/rrr�ancestormap0s
r�cCsJt|d�}z0|��}|s.t�|�td|��|W|��S|��0dS)Nsrbsempty file: %s)r�readr�remove�IOError�close)r�fr=rrr�readfileDs

�r�cCs"tjrt�|tj�t�|�dSr)r�	iswindowsr�chmod�stat�S_IWUSR�unlink)�filepathrrr�
unlinkfileSsr�cCsHtjr8t�|tj�tj�|�r8t�|tj�t�|�t�	||�dSr)
rr�rr�r�r�r�isfiler��rename)�sourceZdestinationrrr�
renamefileZs
r�cCstj�|�\}}tj�|�s^zt�|�Wn2ty\}z|jtjkrH�WYd}~n
d}~00tj	d||d�\}}t�
|�z\t�|d�}|�
|�|�
�|r�d}	nt�d�}
t�|
�|
}	t||�t�||	�Wn8t�yzt|�Wnt�y
Yn0�Yn0dS)Ns.%s-)rB�dirswbi$r)rrrt�exists�makedirs�OSError�errno�EEXIST�tempfileZmkstempr�r	Z	posixfile�write�umaskr�r��	Exceptionr�)rZcontent�readonly�dirname�filename�ex�fdZtempr��mode�oldumaskrrr�	writefilefs4




r�cs�t���i}i}g}�D]R}�fdd�||�D�}t|�||<|D]}|�|t���|�qB|s|�|�q|��g}|r�|�d�}|�|�||vrx||}	|	D].}
||
}|�|�t|�dkr�|�d|
�q�qx|S)zUTopologically sorts the nodes, using the parentfunc to find
    the parents of nodes.csg|]}|�vr|�qSrr)rD�p��nodesrrrE�r8zsortnodes.<locals>.<listcomp>r)	�set�
setdefault�add�append�sort�popr�rLrh)r�Z
parentfuncZchildmapZ	parentmap�rootsri�parentsr��resultsZchildren�cZchildparentsrr�r�	sortnodes�s0


r�cCs4|�|�}t|�|kr0t�td�t|�|f��|S)z=read n bytes from stream.read and abort if less was availables5stream ended unexpectedly (got %d bytes, expected %d))r�rLrr"r)�streamrir5rrr�readexactly�s

��r�cCst|t�|��}t�||�Sr)r�rM�calcsize�unpack)r�Zfmt�datarrr�
readunpack�sr�cCs(t|tj�}t�tj|�d}t||�Sr6)r�rZFILENAMESIZErMr�ZFILENAMESTRUCT)r��rawlen�pathlenrrr�readpath�sr�ccs@t|tj�}t�tj|�d}t�|�D]}t|tj�Vq(dSr6)	r�rZ
NODECOUNTSIZErMr�ZNODECOUNTSTRUCTr�xrangeZNODESIZE)r�r�Z	nodecount�irrr�readnodelist�sr�ccs<t|tj�}t�tj|�d}t�|�D]}t|�Vq(dSr6)	r�rZ
PATHCOUNTSIZErMr�ZPATHCOUNTSTRUCTrr�r�)r�r�Z	pathcountr�rrr�readpathlist�sr�cCs2zt�t�|��j}|WSty,YdS0dSr)�grp�getgrnamr�fsdecode�gr_gid�KeyError)�	groupname�gidrrr�getgid�s
r�c
Csp|durdSzt�|d|�t�|d�Wn@ttfyj}z$|rV|td�||f�WYd}~n
d}~00dS)N����s unable to chown/chmod on %s: %s
)r�chownr�r�r�r)rr��warnr�rrr�setstickygroupdir�sr�cCs\d}|�dd�}|r6t|�}|dur6|�td�|�d}zt�|�}WntyZYn0|r�|jd@dksx|j|kr�t	|||j�dSt�
d�}z�|g}tj�|�}|r�tj�
|�s�|�|�tj�|�}q�t|�D]J}zt�|�Wq�t�y }z|jtjk�r�WYd}~q�d}~00q�|D]}t	|||j��q(Wt�
|�nt�
|�0dS)ziCreates the given directory (if it doesn't exist) and give it a
    particular group with setgid enabled.Nr s
cachegroups!unable to resolve group name: %s
r�r)r!r�r�rrr�r��st_mode�st_gidr�r�rr�r�r��reversed�mkdirr�r�)r#rr�r��str�Zmissingdirsr�rrr�mkstickygroupdir�s>

r�cCs*zt�|���WSty$YdS0dS)N�unknown)rZ	shortuser�usernamer�)r#rrr�getusernamesr�cCs |�dd�}|rtj�|�SdS)Nspathssdefaultr�)r!rr�basename)r#rrrr�getreponamesr�)F)NN)N)F)N)EZ
__future__rr9r�rr�rMr�Zmercurial.i18nrZmercurial.pycompatrZmercurial.noderZ	mercurialrrrr	Zmercurial.utilsr
rr�rr�r�rrrr%r)r+r1r2rArCrIrVrZr`r_Zlongrur[rbrdrarcZStorageErrorrmryr|r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr�<module>sj

	
�
		%

&%
-

Youez - 2016 - github.com/yon3zu
LinuXploit