File: //usr/lib/python3/dist-packages/sphinx/builders/__pycache__/linkcheck.cpython-310.pyc
o
�$�amp � @ s d Z ddlZddlZddlZddlZddlZddlmZmZ ddlm Z ddl
mZ ddlm
Z
ddlmZmZ ddlmZ dd lmZmZmZmZmZmZmZmZmZmZmZ dd
lm Z m!Z!m"Z" ddl#m$Z$ ddl%m&Z& dd
l'm(Z( ddl)m*Z*m+Z+m,Z, ddl-m.Z. ddl/m0Z0 ddl1m2Z2 ddl3m4Z4 ddl5m6Z6 ddl7m8Z8 ddl9m:Z: ddl;m<Z<m=Z=m'Z' ddl>m?Z?m@Z@mAZAmBZBmCZC ddlDmEZE e=�FeG�ZHe�Id�ZJeddeKfdeKfdeeL ff�ZMeddeNfd eeM ff�ZOed!deKfdeKfdeLfd"eKfd#eKfd$eLff�ZPed%d&eNfdeNff�ZQeeOeeNeKeKeLf f ZRd'd(iZSdZTd)ZUd*ZVd+e&d,eLfd-d.�ZWG d/d0� d0e�ZXd1e'j'j(d2eKd,eYfd3d4�ZZG d5d6� d6e0�Z[G d7d8� d8�Z\G d9d:� d:e�Z]G d;d<� d<e:�Z^d=e.deKd,eeK fd>d?�Z_d=e.d@e2d,dfdAdB�Z`d=e.d,eeKef fdCdD�ZadS )Ez�
sphinx.builders.linkcheck
~~~~~~~~~~~~~~~~~~~~~~~~~
The CheckExternalLinksBuilder class.
:copyright: Copyright 2007-2021 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]+:)?//� Hyperlink�uri�docname�lineno�CheckRequest�
next_check� hyperlink�CheckResult�status�message�code� RateLimit�delay�Acceptz/text/html,application/xhtml+xml;q=0.9,*/*;q=0.8� g N@�node�returnc C s t jdtdd� t| �p
dS )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- )r= � rD �;/usr/lib/python3/dist-packages/sphinx/builders/linkcheck.py�node_line_or_0F s �rF c s@ e Zd ZdZdeddf� fdd�Zdededdfd d
�Z� ZS )�AnchorCheckParserz9Specialized HTML parser that looks for a specific anchor.�
search_anchorr>