File: //usr/lib/python3/dist-packages/sphinx/builders/html/__pycache__/__init__.cpython-310.pyc
o
�+�a� � @ s� d Z ddlZddlZddlZddlZddlZddlmZ ddlmZ ddlm Z m
Z
mZmZm
Z
mZmZmZmZ ddlmZ ddlmZ ddlmZ dd lmZ dd
lmZmZ ddlmZ ddlm Z dd
l!m"Z"m#Z# ddl!m$Z% ddl&m'Z' ddl(m)Z) ddl*m+Z+m,Z, ddl-m.Z.m/Z/m0Z0 ddl1m2Z2 ddl3m4Z4 ddl5m6Z6 ddl7m8Z8m9Z9 ddl:m;Z; ddl<m=Z=m>Z> ddl?m@Z@ ddlAmBZB ddlCmDZDmEZEmFZFmGZGmHZH ddlImJZJmKZK ddlLmMZM ddlNmOZO ddlPmQZQ dd lRmSZSmTZTmUZU dd!lVmWZWmXZXmYZYmZZZ dd"l[m\Z\ dd#l]m^Z^m_Z_ eJ� �rdd$l`maZa d%Zbnd&Zbd'ZceE�dee�Zfe�gd(�Zhd)e
d*eifd+d,�ZjG d-d.� d.ei�ZkG d/d0� d0ei�ZlG d1d2� d2�ZmG d3d4� d4e)�Znd5e'd6e,d*dfd7d8�Zod5e'd6e,d*dfd9d:�Zpd5e'd;eid<eid=ed>ed*dfd?d@�Zqd5e'd;eid<eid=ed>ed*dfdAdB�Zrd5e'd;eid<eid=ed>ed*dfdCdD�Zsd5e'd*dfdEdF�Ztd5e'd6e,d*dfdGdH�Zud5e'd6e,d*dfdIdJ�Zvd5e'd6e,d*dfdKdL�Zwd5e'd6e,d*dfdMdN�ZxG dOdP� dP�Zyey� Zzd5e'd6e,d*dfdQdR�Z{ddl|Z!ddl}Z!d5e'd*eeie
f fdSdT�Z~dS )Uz�
sphinx.builders.html
~~~~~~~~~~~~~~~~~~~~
Several HTML builders.
:copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
� N)�datetime)�path) �IO�Any�Dict�Iterable�Iterator�List�Set�Tuple�Type)�quote)�nodes)�
publish_parts)�OptionParser)�DocTreeInput�StringOutput)�Node)�
relative_path)�__display_version__�package_dir)�version_info)�Sphinx)�Builder)�ENUM�Config)�Domain�Index�
IndexEntry)�ImageAdapter)�IndexEntries)�TocTree)�ConfigError�
ThemeError)�PygmentsBridge)�_�__)�js_index)�HTMLThemeFactory)�isurl�logging�md5�progress_message�status_iterator)�is_html5_writer_available�new_document)�
copy_asset)�format_date)�
InventoryFile)�DOTFILES�Matcher�patmatch)�copyfile� ensuredir�os_path�relative_uri)�Tags)�HTMLTranslator�
HTMLWriter)�HTML5TranslatorTFzobjects.invz[
]+�obj�returnc C sN t | t�r
tt| �� ��S t | ttf�rtdd� | D ��} tt| �� � ��
� S )z�
Return a stable hash for a Python data structure. We can't just use
the md5 of str(obj) since for example dictionary items are enumerated
in unpredictable order due to hash randomization in newer Pythons.
c s s � | ]}t |�V qd S �N)�get_stable_hash)�.0�o� rD �?/usr/lib/python3/dist-packages/sphinx/builders/html/__init__.py� <genexpr>K � � z"get_stable_hash.<locals>.<genexpr>)�
isinstance�dictrA �list�items�tuple�sortedr+ �str�encode� hexdigest)r>