add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
f

��_�$c@sXddlZddlZddlZdgZe�dd�ZGdd�d�ZGdd�d�ZGdd	�d	�Z	dS)
�N�RobotFileParser�RequestRatezrequests secondsc@sneZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�ZdS)r�cCs2g|_g|_d|_d|_d|_|�|�d|_dS)NFr)�entries�sitemaps�
default_entry�disallow_all�	allow_all�set_url�last_checked��self�url�r�+/usr/lib64/python3.10/urllib/robotparser.py�__init__s
zRobotFileParser.__init__cCs|jS�N)r
�rrrr�mtime%szRobotFileParser.mtimecCsddl}|��|_dS)Nr)�timer
)rrrrr�modified.szRobotFileParser.modifiedcCs&||_tj�|�dd�\|_|_dS)N�i)r
�urllib�parse�urlparseZhost�pathrrrrr	6szRobotFileParser.set_urlc
Cs�ztj�|j�}WnTtjjyf}z8|jdvr8d|_n|jdkrR|jdkrRd|_WYd}~n&d}~00|�	�}|�
|�d����dS)N)i�i�Ti�i�zutf-8)
rZrequestZurlopenr
ZerrorZ	HTTPErrorZcoderr�readrZdecodeZ
splitlines)rZfZerrZrawrrrr;s
zRobotFileParser.readcCs,d|jvr|jdur(||_n|j�|�dS�N�*)�
useragentsrr�append)r�entryrrr�
_add_entryHs

zRobotFileParser._add_entrycCsPd}t�}|��|D�]}|sP|dkr4t�}d}n|dkrP|�|�t�}d}|�d�}|dkrn|d|�}|��}|s|q|�dd�}t|�dkr|d����|d<tj	�
|d���|d<|ddkr�|dkr�|�|�t�}|j�|d�d}q|ddk�r.|dk�r6|j
�t|dd��d}q|dd	k�rb|dk�r6|j
�t|dd
��d}q|ddk�r�|dk�r6|d�����r�t|d�|_d}q|ddk�r|dk�r6|d�d
�}t|�dk�r|d�����r|d�����rtt|d�t|d��|_d}q|ddkr|j�|d�q|dk�rL|�|�dS)Nrriz#z:z
user-agentZdisallowFZallowTzcrawl-delayzrequest-rate�/Zsitemap)�Entryrr!ZfindZstrip�splitZlen�lowerrr�unquoterr�	rulelines�RuleLineZisdigitZint�delayr�req_rater)rZlinesZstater �lineZiZnumbersrrrrQsj








 �
zRobotFileParser.parsecCs�|jr
dS|jrdS|jsdStj�tj�|��}tj�dd|j|j	|j
|jf�}tj�|�}|sfd}|j
D]}|�|�rl|�|�S|jr�|j�|�SdS)NFTrr")rrr
rrrr&�
urlunparserZparamsZqueryZfragment�quoter�
applies_to�	allowancer)r�	useragentr
Z
parsed_urlr rrr�	can_fetch�s&�

zRobotFileParser.can_fetchcC�<|��sdS|jD]}|�|�r|jS|jr8|jjSdSr)rrr.r)r�rr0r rrr�crawl_delay��


zRobotFileParser.crawl_delaycCr2r)rrr.r*rr3rrr�request_rate�r5zRobotFileParser.request_ratecCs|js
dS|jSr)rrrrr�	site_maps�szRobotFileParser.site_mapscCs,|j}|jdur||jg}d�tt|��S)Nz

)rr�join�map�str)rrrrr�__str__�s
zRobotFileParser.__str__N)r)�__name__�
__module__�__qualname__rrrr	rr!rr1r4r6r7r;rrrrrs
		
	I

c@s$eZdZdd�Zdd�Zdd�ZdS)r(cCs<|dkr|sd}tj�tj�|��}tj�|�|_||_dS)NrT)rrr,rr-rr/)rrr/rrrr�s
zRuleLine.__init__cCs|jdkp|�|j�Sr)rZ
startswith)r�filenamerrrr.��zRuleLine.applies_tocCs|jr
dndd|jS)NZAllowZDisallowz: )r/rrrrrr;�r@zRuleLine.__str__N)r<r=r>rr.r;rrrrr(�sr(c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
r#cCsg|_g|_d|_d|_dSr)rr'r)r*rrrrr�szEntry.__init__cCs�g}|jD]}|�d|���q
|jdur<|�d|j���|jdurf|j}|�d|j�d|j���|�tt|j	��d�
|�S)NzUser-agent: z
Crawl-delay: zRequest-rate: r"Z
)rrr)r*ZrequestsZsecondsZextendr9r:r'r8)rZret�agentZraterrrr;�s


z
Entry.__str__cCsD|�d�d��}|jD]&}|dkr*dS|��}||vrdSdS)Nr"rrTF)r$r%r)rr0rArrrr.�s
zEntry.applies_tocCs"|jD]}|�|�r|jSdS)NT)r'r.r/)rr?r+rrrr/
s


zEntry.allowanceN)r<r=r>rr;r.r/rrrrr#�s
r#)
ZcollectionsZurllib.parserZurllib.requestZ__all__Z
namedtuplerrr(r#rrrrZ<module>
sB