File: //usr/lib/python3/dist-packages/sphinx/ext/__pycache__/intersphinx.cpython-310.pyc
o
�$�aT � @ s� d Z ddlZddlZddlZddlZddlZddlmZ ddl m
Z
mZmZm
Z
mZmZ ddlmZmZ ddlmZ ddlmZmZ ddlmZ ddlZdd lmZ dd
lmZ ddlm Z ddl!m"Z" dd
l#m$Z$ ddl%m&Z& ddl'm(Z(m)Z) ddl*m+Z+m,Z, ddl-m.Z. ddl/m0Z0m1Z1 e+�2e3�Z4G dd� d�Z5de6de6fdd�Z7dQde6de"de
fdd�Z8de6de6fdd�Z9dede6d edefd!d"�Z:d#e6de6d$ed%eded&e;de<fd'd(�Z=deddfd)d*�Z>d+e$d,ee6 d-e1d.ed/edefd0d1�Z?d,ee6 d2e0d+e$d3e
e6 d4e6d.ed/edee fd5d6�Z@d7e&d,ee6 d2e0d8e<d+e$d3e
e6 d.ed/edee fd9d:�ZAd7e&d,ee6 d2e0d8e<d.ed/edee fd;d<�ZBd7e&d,e6de<fd=d>�ZCd7e&d,e6d.ed/edee f
d?d@�ZDd7e&d8e<d.ed/edee f
dAdB�ZEd7e&d.ed/edee fdCdD�ZFded7e&d.ed/edee f
dEdF�ZGdede"ddfdGdH�ZHdedee6ef fdIdJ�ZIdKe
e6 ddfdLdM�ZJe3dNk�r�ddl+ZKeK�L� eJejMdOd� dP� dS dS )Ra�
sphinx.ext.intersphinx
~~~~~~~~~~~~~~~~~~~~~~
Insert links to objects documented in remote Sphinx documentation.
This works as follows:
* Each Sphinx HTML build creates a file named "objects.inv" that contains a
mapping from object names to URIs relative to the HTML set's root.
* Projects using the Intersphinx extension can specify links to such mapping
files in the `intersphinx_mapping` config value. The mapping will then be
used to resolve otherwise missing references to objects into links to the
other documentation.
* By default, the mapping file is assumed to be at the same location as the
rest of the documentation; however, the location of the mapping file can
also be specified individually, e.g. if the docs should be buildable
without Internet access.
:copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
� N)�path)�IO�Any�Dict�List�Optional�Tuple)�urlsplit�
urlunsplit)�nodes)�Element�TextElement)�
relative_path)�pending_xref)�Sphinx)�INVENTORY_FILENAME)�Config)�Domain)�BuildEnvironment)�_�__)�logging�requests)�
InventoryFile)� Inventory�
InventoryItemc @ s| e Zd ZdZdeddfdd�Zedeee ee
ef f fdd��Zedefd d
��Z
edeeef fdd��Zdd
d�ZdS )�InventoryAdapterz!Inventory adapter for environment�env�returnNc C s0 || _ t|d�si | j _i | j _i | j _d S d S )N�intersphinx_cache)r �hasattrr �intersphinx_inventory�intersphinx_named_inventory)�selfr � r$ �8/usr/lib/python3/dist-packages/sphinx/ext/intersphinx.py�__init__9 s
�zInventoryAdapter.__init__c C � | j jS �N)r r �r# r$ r$ r% �cacheA � zInventoryAdapter.cachec C r'