File: //lib/python3/dist-packages/sphinx/ext/autodoc/__pycache__/importer.cpython-310.pyc
o
�$�a- �
@ s� d Z ddlZddlZddlZddlmZmZmZmZm Z m
Z
mZ ddlm
Z
ddlmZmZ ddlmZmZ ddlmZ ddlmZmZmZmZmZmZ e� e!�Z"ded
e#de#fdd�Z$ded
e#de
e# fdd�Z%d(de#de&defdd�Z'ded fde#dee# de#deee#gef de&defdd�Z(dedeee#ef fdd�Z)G d d!� d!e �Z* d)dedee# ded"edee#e*f f
d#d$�Z+dedee# dedee#d%f fd&d'�Z,dS )*z�
sphinx.ext.autodoc.importer
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Importer utilities for autodoc
:copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
� N)�Any�Callable�Dict�List�
NamedTuple�Optional�Tuple)�RemovedInSphinx50Warning)�ismock�
undecorate)�ModuleAnalyzer�PycodeError)�logging)�getannotations�getmro�getslots�isclass�isenumclass�safe_getattrF)�Type)�ObjectMember�subject�name�returnc C sT zt | �r|�d�r|�d�sd| j|f W S W |S W |S W |S ty) Y |S w )zMangle the given name.�__z_%s%s)r �
startswith�endswith�__name__�AttributeError)r r � r �=/usr/lib/python3/dist-packages/sphinx/ext/autodoc/importer.py�mangle s �����r! c C s� z8t | �r0|�d�s3d| j }|�|�r|�|dd�W S | jD ]}d|j }|�|�r/ W dS qW |S W |S W |S tyB Y |S w )zUnmangle the given name.r z_%s__� N)r r r r �replace�__mro__r )r r �prefix�clsr r r �unmangle+ s(
��
�
���r'