File: //lib/python3/dist-packages/sphinx/util/__pycache__/inspect.cpython-310.pyc
o
u�am} �
@ s$ d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl
mZmZ ddl
mZ ddlmZmZmZmZmZ ddlmZ ddlmZ ddlmZmZmZmZmZmZmZmZmZ dd l m!Z! dd
l"m#Z# ddl"m$Z% ddl&m'Z' dd
l(m)Z) ddl(m*Z+ ej,dkr�ddlm-Z-m.Z.m/Z/ ne0e1j2�Z-e0e3j4�Z.e0e5j6d �Z/ e'�7e8�Z9e�:dej;�Z<dedefdd�Z=dedefdd�Z>dd�dededefdd�Z?dedeee3 fd d!�Z@dedee3ef fd"d#�ZAdedee3ef fd$d%�ZBdedeed&f fd'd(�ZCdedeeed&f fd)d*�ZDdedee fd+d,�ZEdedeFfd-d.�ZGd/edeFfd0d1�ZHd/edeFfd2d3�ZIdedefd4d5�ZJdedeFfd6d7�ZKd�ded8ed9e3deFfd:d;�ZLd�ded8ed9e3deFfd<d=�ZMd/edeFfd>d?�ZNdedeFfd@dA�ZOdedeFfdBdC�ZPdedeFfdDdE�ZQdedeFfdFdG�ZRdedeFfdHdI�ZSdedeFfdJdK�ZTdedeFfdLdM�ZUdedeFfdNdO�ZVdedeFfdPdQ�ZWdedeFfdRdS�ZXdedeFfdTdU�ZYdedeFfdVdW�ZZded9e3dXedefdYdZ�Z[d[ede3fd\d]�Z\ded^e3deFfd_d`�Z]G dadb� db�Z^G dcdd� dd�Z_G dedf� df�Z`G dgdh� dhee3ef �ZadiedeFfdjdk�Zbddi fdiedleFdmeFdnedejcf
dodp�Zdd�dqejcdredsedejcfdtdu�Ze v vd�dqejcdweFdxeFde3fdydz�Zfdpe3dejcfd{d|�Zgd�d~e#jhde3dejcfd�d��Zie[dddfded�ed�eFd8ed9e3de3fd�d��ZjdS )�z�
sphinx.util.inspect
~~~~~~~~~~~~~~~~~~~
Helpers for inspecting Python modules.
:copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
� N)�partial�
partialmethod)�
import_module)� Parameter�isclass�ismethod�ismethoddescriptor�ismodule)�StringIO)�
ModuleType) �Any�Callable�Dict�Mapping�Optional�Sequence�Tuple�Type�cast)�RemovedInSphinx50Warning)�ast)�unparse)�logging)�
ForwardRef)� stringify)� � )�ClassMethodDescriptorType�MethodDescriptorType�WrapperDescriptorType�fromkeysF)r z at 0x[0-9a-f]{8,16}(?=>)�func�returnc C s6 t jdtdd� t�| �}g }d}d}g }d}i }d}i }|j|jur(|j|d<