403Webshell
Server IP : 127.0.0.1  /  Your IP : 216.73.216.109
Web Server : Apache/2.4.54 (Win64) OpenSSL/1.1.1q PHP/8.1.10
System : Windows NT DESKTOP-E5T4RUN 10.0 build 19045 (Windows 10) AMD64
User : SERVERWEB ( 0)
PHP Version : 8.1.10
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : OFF |  Perl : OFF |  Python : OFF |  Sudo : OFF |  Pkexec : OFF
Directory :  C:/cygwin64/lib/python3.9/site-packages/sphinx/builders/__pycache__/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : C:/cygwin64/lib/python3.9/site-packages/sphinx/builders/__pycache__/linkcheck.cpython-39.pyc
a

�abq�@s�dZddlZddlZddlZddlZddlZddlmZmZddlm	Z	ddl
mZddlm
Z
ddlmZmZddlmZdd	lmZmZmZmZmZmZmZmZmZmZmZdd
lm Z m!Z!m"Z"ddl#m$Z$ddl%m&Z&dd
l'm(Z(ddl)m*Z*m+Z+m,Z,ddl-m.Z.ddl/m0Z0ddl1m2Z2ddl3m4Z4ddl5m6Z6ddl7m8Z8ddl9m:Z:ddl;m<Z<m=Z=m'Z'ddl>m?Z?m@Z@mAZAmBZBmCZCddlDmEZEe=�FeG�ZHe�Id�ZJGdd�de�ZKGdd�de�ZLGdd�de�ZMGd d!�d!e�ZNeeLeeOePePeQffZRd"d#iZSdZTd$ZUd%ZVe&eQd&�d'd(�ZWGd)d*�d*e�ZXe'j'j(ePeYd+�d,d-�ZZGd.d/�d/e0�Z[Gd0d1�d1�Z\Gd2d3�d3e�Z]Gd4d5�d5e:�Z^e.ePeePd6�d7d8�Z_e.e2dd9�d:d;�Z`e.eePefd<�d=d>�ZadS)?z�
    sphinx.builders.linkcheck
    ~~~~~~~~~~~~~~~~~~~~~~~~~

    The CheckExternalLinksBuilder class.

    :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
    :license: BSD, see LICENSE for details.
�N)�datetime�timezone)�parsedate_to_datetime)�
HTMLParser)�path)�
PriorityQueue�Queue)�Thread)�Any�Dict�	Generator�List�
NamedTuple�Optional�Pattern�Set�Tuple�Union�cast)�unquote�urlparse�
urlunparse)�nodes)�Element)�Response)�ConnectionError�	HTTPError�TooManyRedirects)�Sphinx)�DummyBuilder)�Config)�RemovedInSphinx50Warning)�BuildEnvironment)�__)�SphinxPostTransform)�
encode_uri�logging�requests)�darkgray�	darkgreen�purple�red�	turquoise)�
get_node_linez([a-z]+:)?//c@s*eZdZUeed<eed<eeed<dS)�	Hyperlink�uri�docname�linenoN)�__name__�
__module__�__qualname__�str�__annotations__r�int�r8r8�=/usr/lib/python3.9/site-packages/sphinx/builders/linkcheck.pyr./s
r.c@s"eZdZUeed<eeed<dS)�CheckRequest�
next_check�	hyperlinkN)r2r3r4�floatr6rr.r8r8r8r9r:5s
r:c@s>eZdZUeed<eed<eed<eed<eed<eed<dS)�CheckResultr/r0r1�status�message�codeN)r2r3r4r5r6r7r8r8r8r9r>:s
r>c@seZdZUeed<eed<dS)�	RateLimit�delayr;N)r2r3r4r=r6r8r8r8r9rBCs
rBZAcceptz/text/html,application/xhtml+xml;q=0.9,*/*;q=0.8�gN@)�node�returncCstjdtdd�t|�pdS)z�
    PriorityQueue items must be comparable. The line number is part of the
    tuple used by the PriorityQueue, keep an homogeneous type for comparison.
    znode_line_or_0() is deprecated.���
stacklevelr)�warnings�warnr!r-)rEr8r8r9�node_line_or_0Ss�rLcs:eZdZdZedd��fdd�Zeedd�dd�Z�ZS)	�AnchorCheckParserz9Specialized HTML parser that looks for a specific anchor.N)�
search_anchorrFcst���||_d|_dS�NF)�super�__init__rN�found)�selfrN��	__class__r8r9rQ`s
zAnchorCheckParser.__init__)�tag�attrsrFcCs.|D]$\}}|dvr||jkrd|_q*qdS)N)�id�nameT)rNrR)rSrVrW�key�valuer8r8r9�handle_starttagfsz!AnchorCheckParser.handle_starttag)	r2r3r4�__doc__r5rQr
r\�
__classcell__r8r8rTr9rM]srM)�response�anchorrFcCsPt|�}|jddd�D]*}t|t�r,|��}|�|�|jrqBq|��|jS)z�Reads HTML data from a response object `response` searching for `anchor`.
    Returns True if anchor was found, False otherwise.
    iT)Z
chunk_sizeZdecode_unicode)rMZiter_content�
isinstance�bytes�decodeZfeedrR�close)r_r`�parser�chunkr8r8r9�check_anchorms

rgc@sbeZdZdZdZed�Zdd�dd�Zee	e
d�dd	��Zee	ee
e
fd�d
d��Zee	e
d�dd
��Zeeed�dd��Zeeeefd�dd��Zeeeeeeffd�dd��Zdd�dd�Zeeed�dd�Zeed�dd�Zee	ed�dd�Zeed�dd�Z e!dd�d d!�Z"eeeeedd"�d#d$�Z#e$dd%�d&d'�Z%dd�d(d)�Z&dS)*�CheckExternalLinksBuilderz+
    Checks for broken external links.
    �	linkcheckzCLook for any errors in the above output or in %(outdir)s/output.txtN�rFcCs8i|_t�|_i|_i|_t�d�t�|_t	�|_
dS)Ng@)�
hyperlinks�set�_good�_broken�_redirected�socketZsetdefaulttimeoutr�_wqueuer�_rqueue�rSr8r8r9�init�s
zCheckExternalLinksBuilder.initcCs.tjd|jjdftdd�dd�|jjD�S)N�%s.%s is deprecated.�anchors_ignorerGrHcSsg|]}t�|��qSr8��re�compile��.0�xr8r8r9�
<listcomp>��z<CheckExternalLinksBuilder.anchors_ignore.<locals>.<listcomp>)rJrKrUr2r!�config�linkcheck_anchors_ignorersr8r8r9rv�s�z(CheckExternalLinksBuilder.anchors_ignorecCs.tjd|jjdftdd�dd�|jjD�S)Nru�authrGrHcSsg|]\}}t�|�|f�qSr8rw�r{�pattern�	auth_infor8r8r9r}�r~z2CheckExternalLinksBuilder.auth.<locals>.<listcomp>)rJrKrUr2r!r�linkcheck_authrsr8r8r9r��s��zCheckExternalLinksBuilder.authcCs.tjd|jjdftdd�dd�|jjD�S)Nru�	to_ignorerGrHcSsg|]}t�|��qSr8rwrzr8r8r9r}�r~z7CheckExternalLinksBuilder.to_ignore.<locals>.<listcomp>)rJrKrUr2r!r�linkcheck_ignorersr8r8r9r��s�z#CheckExternalLinksBuilder.to_ignorecCs"tjd|jjdftdd�|jS)Nru�goodrGrH)rJrKrUr2r!rmrsr8r8r9r��s�zCheckExternalLinksBuilder.goodcCs"tjd|jjdftdd�|jS)Nru�brokenrGrH)rJrKrUr2r!rnrsr8r8r9r��s�z CheckExternalLinksBuilder.brokencCs"tjd|jjdftdd�|jS)Nru�
redirectedrGrH)rJrKrUr2r!rorsr8r8r9r��s�z$CheckExternalLinksBuilder.redirectedcCs tjd|jjdftdd�dS)Nru�check_threadrGrH�rJrKrUr2r!rsr8r8r9r��s
�z&CheckExternalLinksBuilder.check_thread�r_rFcCs:tjd|jjdftdd�t|j|jddi�}|�|�S)Nru�
limit_raterGrH)	rJrKrUr2r!� HyperlinkAvailabilityCheckWorker�envrr�)rSr_Zworkerr8r8r9r��s�
�z$CheckExternalLinksBuilder.limit_ratecCs"tjd|jjdftdd�|jS)Nru�rqueuerGrH)rJrKrUr2r!rr�rSr_r8r8r9r��s�z CheckExternalLinksBuilder.rqueuecCs tjd|jjdftdd�gS)Nru�workersrGrHr�r�r8r8r9r��s�z!CheckExternalLinksBuilder.workerscCs"tjd|jjdftdd�|jS)Nru�wqueuerGrH)rJrKrUr2r!rqr�r8r8r9r��s�z CheckExternalLinksBuilder.wqueue)�resultrFcCs�|j�|jd�}t||j|j|j|j|jd�}|�	|�|jdkrFdS|jdkr^|jdkr^dS|jrzt
jd|j|jdd�|jdkr�|jr�t
�td	�|jd
|j�nt
�td	�|j��n�|jdkr�t
�td�|j�|�
d|j||j|j��n�|jdk�r&t
�td
�|j|j��n�|jdk�r�|jj�sF|jj�rjt
jtd�|j|j|j|jfd�n"t
�td�|jtd|j��|�
d|j||j|jd
|j��n|jdk�r�z2dtfdtfdtfdtfdtfd�|j\}}Wnt�ydt}}Yn0||d<|jj�rRt
jd|jd|d|j|j|jfd�n*t
�|d�|j|d|d|j��|�
d||j||j|jd|j�ntd|j��dS)N)�filenamer1r?rAr/�info�	unchecked�working�oldz(%16s: line %4d) T)Znonl�ignoredz
-ignored- z: �localz
-local-   z
ok        r�zbroken link: %s (%s))�locationz
broken    z - r�Zpermanentlyz
with Foundzwith See OtherZtemporarily)i-i.i/i3i4zwith unknown code�textz
redirect  z to zredirected zUnknown status %s.)r��doc2pathr0�dictr1r?rAr/r@�write_linkstat�loggerr�r(�write_entryr)�app�quietZwarningiserror�warningr#r+r*r,�KeyErrorr�linkcheck_allowed_redirects�
ValueError)rSr�r�Zlinkstatr�Zcolorr8r8r9�process_result�sp�


 

�"���
�
���z(CheckExternalLinksBuilder.process_result)�whatr0r��liner/rFcCs|j�d||||f�dS)Nz%s:%s: [%s] %s
)�txt_outfile�write)rSr�r0r�r�r/r8r8r9r�+sz%CheckExternalLinksBuilder.write_entry)�datarFcCs"|j�t�|��|j�d�dS)N�
)�json_outfiler��json�dumps)rSr�r8r8r9r�/sz(CheckExternalLinksBuilder.write_linkstatc	Cs�t|j|j|�}t�d�tt�|jd�d��d|_	tt�|jd�d��.|_
|�|j�D]}|�
|�qVWd�n1sz0YWd�n1s�0Y|jr�d|j_dS)N�z
output.txt�wzoutput.jsonrD)�HyperlinkAvailabilityCheckerr�rr�r��openr�joinZoutdirr�r��checkrkr�rnr�Z
statuscode)rSZcheckerr�r8r8r9�finish3s
�Hz CheckExternalLinksBuilder.finish)'r2r3r4r]rYr#�epilogrt�propertyr
rrvrr
r�r�rr5r�rr�r7r�r�rrr=r�rr�r	r�r�r>r�r�r�r�r�r8r8r8r9rhs6	 
7�rhc@speZdZdeeedd�dd�Zdd�dd�Zdd�dd	�Ze	e
efee
ddfd
�dd�Ze
ed
�dd�ZdS)r�N)r�r�builderrFcCs\||_||_||_i|_g|_dd�|jjD�|_|rH|j|_|j	|_
nt�|_t�|_
dS)NcSsg|]}t�|��qSr8rwrzr8r8r9r}Lr~z9HyperlinkAvailabilityChecker.__init__.<locals>.<listcomp>)
r�rr��rate_limitsr�r�r�rrr�rqr�rr)rSr�rr�r8r8r9rQAs
z%HyperlinkAvailabilityChecker.__init__rjcCsHt|jj�D]6}t|j|j|j|j|j|j�}|�	�|j
�|�qdS�N)�ranger�linkcheck_workersr�r�r�r�r�r��startr��append)rSZ_i�threadr8r8r9�invoke_threadsUs
�z+HyperlinkAvailabilityChecker.invoke_threadscCs.|j��|jD]}|j�ttd�d�qdSrO)r�r�r��putr:�CHECK_IMMEDIATELY)rSZ_workerr8r8r9�shutdown_threads]s

z-HyperlinkAvailabilityChecker.shutdown_threads)rkrFccs�|��d}|��D]H}|�|j�r@t|j|j|jddd�Vq|j�t	t
|�d�|d7}qd}||kr�|j��V|d7}qb|�
�dS)Nrr�r�FrD)r��values�is_ignored_urir/r>r0r1r�r�r:r�r��getr�)rSrkZtotal_linksr<Zdoner8r8r9r�bs�

z"HyperlinkAvailabilityChecker.check)r/rFcst�fdd�|jD��S)Nc3s|]}|���VqdSr�)�match)r{�pat�r/r8r9�	<genexpr>vr~z>HyperlinkAvailabilityChecker.is_ignored_uri.<locals>.<genexpr>)�anyr��rSr/r8r�r9r�usz+HyperlinkAvailabilityChecker.is_ignored_uri)N)r2r3r4r"r rhrQr�r�rr5r.rr>r��boolr�r8r8r8r9r�@s��"r�c	s^eZdZdZdeeeeeee	fe
dd��fdd�
Zdd�dd�Ze
eed	�d
d�Z�ZS)
r�z;A worker class for checking the availability of hyperlinks.N)r�rr�r�r�r�rFcs�||_||_||_||_||_dd�|jjD�|_dd�|jjD�|_dd�|jj	D�|_
|rx|j|_|j|_|j
|_
nt�|_i|_i|_
t�jdd�dS)NcSsg|]}t�|��qSr8rwrzr8r8r9r}�s�z=HyperlinkAvailabilityCheckWorker.__init__.<locals>.<listcomp>cSsg|]}t�|��qSr8rw)r{�docr8r8r9r}�s�cSsg|]\}}t�|�|f�qSr8rwr�r8r8r9r}�r~T)�daemon)rr�r�r�r�r�rv�linkcheck_exclude_documents�documents_excluder�r�rmrnrorlrPrQ)rSr�rr�r�r�r�rTr8r9rQ|s,���
z)HyperlinkAvailabilityCheckWorker.__init__rjc
	s�i��jjr�jj�d<td���fdd��ttttfd�������fdd��tttd��fdd	��tttttfd
����fdd�}�j��}z$|\}��dur�W�q��\�}}Wnt	y�|\}�}}Yn0�dur�q�t
��j}z�j|j
}Wnt�yYn0|t��k�rLt�t��j�t|��d
��j��q�||�\}}}	|dk�r�t�td��td��n�j�t�|||||	���j��q�dS)N�timeoutrjcsht��}d|j|jfd|j|jf�dg}|D]2}|�jjvr0tt�}|��jj|�|Sq0iS)Nz%s://%sz%s://%s/�*)r�scheme�netlocr�linkcheck_request_headersr��DEFAULT_REQUEST_HEADERS�update)�url�
candidates�u�headersr�r8r9�get_request_headers�s�
zAHyperlinkAvailabilityCheckWorker.run.<locals>.get_request_headersc
s:d�vr8��dd�\}}�jD]}|�|�rd}q@qn�}d}z|�d�Wntyht|�}Yn0�jD]\}}|���rpq�qpd}���d<z�|r�jjr�t	j
|fd�j|d����}|��t|t
|��}|s�ttd�|��n�z(t	j|fd�j|d����}|��Wnltttf�y�}zLt|t��rH|jjd	k�rH�t	j
|fd�j|d����}|��WYd}~n
d}~00W�nt�yj}z�|jjd
k�r�WYd}~dS|jjd	k�r��|j�}|du�r��j�t|��d�WYd}~d
Sdt|�dfWYd}~S|jjdk�r<dt|�dfWYd}~Sdt|�dfWYd}~SWYd}~nhd}~0t�y�}zdt|�dfWYd}~Sd}~00t|�j}	z�j|	=Wnt�y�Yn0|j �!d�|�!d�k�r�dS|j }
|�r�|
d|7}
�||
��rdS|j"�r,|j"dj}d|
|fSd|
dfSdS)N�#rD�asciir�T)�streamrr�zAnchor '%s' not found)Zallow_redirectsrr�i�i�)r�z - unauthorizedrF)�rate-limitedr�rr�ri�r��/�r�r�r���r�)#�splitrvr��encode�UnicodeErrorr%r�r�linkcheck_anchorsr'r�Zraise_for_statusrgr�	Exceptionr#�headrrrrar_Zstatus_coder�r�r�r:r5rr�r�r�r��rstrip�history)Zreq_urlr`Zrexr�r�r_rR�errr;r��new_urlrA)�allowed_redirectr�r<�kwargsrSr/r8r9�	check_uri�s�



��
��
��$
.$

z7HyperlinkAvailabilityCheckWorker.run.<locals>.check_uri)r�r�rFcs4�jj��D]"\}}|�|�r|�|�rdSqdS)NTF)rr��itemsr�)r�r�Zfrom_urlZto_urlrsr8r9r�sz>HyperlinkAvailabilityCheckWorker.run.<locals>.allowed_redirect)r0rFcsp�jD].}|�|�r|�d|j�d�}d|dfSqt��dksL��d�rPdS��d�s�t���rhdSt��j�	|��}t�
t�|���r�dSd	�j�<d
SnP��j
vr�dS��jvr�d�j�dfS��jvr�d
�j�d�j�dfSt�jj�D]"}��\}}}|dk�r��q �q�|dk�r8�j
���n.|dk�rN|�j�<n|d
k�rf||f�j�<|||fS)Nz	 matched z! from linkcheck_exclude_documentsr�r)r�zmailto:ztel:)r�r�r)zhttp:zhttps:r�r�)r�r�r)r�r�rr�r�rDr�)r�r�r��len�
startswith�uri_rer�dirnamer�r��existsr�rnrmror�r�linkcheck_retries�add)r0Zdoc_matcherr�Zsrcdir�_r?rA)r�rSr/r8r9r�s@

�










z3HyperlinkAvailabilityCheckWorker.run.<locals>.checkFr�z-rate limited-   z | sleeping...)r�linkcheck_timeoutrrr5r7r�r�r�r�rr�r�r;r��time�sleep�QUEUE_POLL_SECSr�r:Z	task_doner�r�r(r�r>)
rSr�Z
check_requestr;r0r1r�r?r�rAr8)r�r�r�r<r�rSr/r9�run�s@&`"/




z$HyperlinkAvailabilityCheckWorker.runr�c
Csd}|j�d�}|r�zt|�}WnTtytzt|�}WnttfyPYn 0t�|�}|t�t	j
���}Yn0t��|}t
|j�j}|dur�|jj}z|j|}Wnty�t}Yn$0|j}	d|	}||kr�|	|kr�|}||kr�dSt��|}t||�|j|<|S)NzRetry-Afterg@)r�r�r=r�r�	TypeErrorrZ	timestampZnowrZutcZ
total_secondsrrr�r�r�linkcheck_rate_limit_timeoutr�r��
DEFAULT_DELAYrCrB)
rSr_r;Zretry_afterrCZuntilr�Z	max_delayZ
rate_limitZlast_wait_timer8r8r9r�js:

z+HyperlinkAvailabilityCheckWorker.limit_rate)N)r2r3r4r]r"r rrr5rBrhrQrrrr=r�r^r8r8rTr9r�ys�� Or�c@s$eZdZdZdZedd�dd�ZdS)�HyperlinkCollector)ri� N)r�rFc
Ks�tt|jj�}|j}|j�tj�D]T}d|vr0q"|d}|j�	d|�}|rN|}t
|�}t||jj
|�}||vr"|||<q"|j�tj�D]\}	|	d�d�}|r�d|vr�|j�	d|�}|r�|}t
|	�}t||jj
|�}||vr�|||<q�dS)NZrefuri�linkcheck-process-urir��?z://)rrhr�r�rkZdocument�findallrZ	referenceZemit_firstresultr-r.r�r0Zimager�)
rSr�r�rkZrefnoder/Znewurir1Zuri_infoZimgnoder8r8r9r�s.
zHyperlinkCollector.run)r2r3r4ZbuildersZdefault_priorityr
rr8r8r8r9r�sr)r�r/rFcCsHt|�}|jdkrD|jrD|j�d�}|sDd|j��}t|j|d��SdS)z�Rewrite anchor name of the hyperlink to github.com

    The hyperlink anchors in github.com are dynamically generated.  This rewrites
    them before checking and makes them comparable.
    z
github.comz
user-content-)�fragmentN)r�hostnamer
r�r�_replace)r�r/�parsedZprefixedr
r8r8r9�rewrite_github_anchor�sr)r�rrFcCs�t|jj���D]�\}}zlzt�|�|jjt�|�<Wn<tjyr}z"t�t	d�|j
|j�WYd}~n
d}~00W|jj�|�q|jj�|�0qdS)zFCompile patterns in linkcheck_allowed_redirects to the regexp objects.z=Failed to compile regex in linkcheck_allowed_redirects: %r %sN)
�listrr�r�rxry�errorr�r�r#r��msg�pop)r�rr�r��excr8r8r9�#compile_linkcheck_allowed_redirects�s
�r)r�rFcCs�|�t�|�t�|�dgd�|�dgd�|�did�|�dgd�|�did�|�ddd�|�dddtg�|�d	d
d�|�ddd�|�d
dgd�|�ddd�|�d�|jdtdd�dddd�S)Nr�r�r�r�r�r�rDrr��r�Tr�z^!rg�r@r
z
config-initedr	)�priorityZbuiltin)�versionZparallel_read_safeZparallel_write_safe)	Zadd_builderrhZadd_post_transformrZadd_config_valuer7Z	add_eventZconnectr)r�r8r8r9�setup�s&


�r)br]r�rxrprrJrrZemail.utilsrZhtml.parserr�osrZqueuerr�	threadingr	�typingr
rrr
rrrrrrr�urllib.parserrrZdocutilsrZdocutils.nodesrr'rZrequests.exceptionsrrrZsphinx.applicationrZsphinx.builders.dummyrZ
sphinx.configr Zsphinx.deprecationr!Zsphinx.environmentr"Z
sphinx.localer#Z!sphinx.transforms.post_transformsr$Zsphinx.utilr%r&Zsphinx.util.consoler(r)r*r+r,Zsphinx.util.nodesr-Z	getLoggerr2r�ryr�r.r:r>rBr=r5r7ZCheckRequestTyper�r�rrrLrMr�rgrhr�r�rrrrr8r8r8r9�<module>sh
4

	�
B9$

Youez - 2016 - github.com/yon3zu
LinuXploit