File: //usr/lib/python3/dist-packages/sphinx/ext/autodoc/__pycache__/preserve_defaults.cpython-310.pyc
o
�W�a� � @ s� d Z ddlZddlZddlZddlmZmZmZmZ ddl m
Z
ddlmZ ddl
mZ ddl
mZ ddlmZ e�e�ZG d d
� d
�Zdedejfd
d�Zdee dejdee fdd�Zde
dededdfdd�Zde
deeef fdd�ZdS )aF
sphinx.ext.autodoc.preserve_defaults
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Preserve the default argument values of function signatures in source code
and keep them not evaluated for readability.
:copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
� N)�Any�Dict�List�Optional)�Sphinx)�__)�parse)�unparse)�loggingc @ s, e Zd Zdeddfdd�Zdefdd�ZdS )�DefaultValue�name�returnNc C s
|| _ d S �N�r )�selfr � r �F/usr/lib/python3/dist-packages/sphinx/ext/autodoc/preserve_defaults.py�__init__ s
zDefaultValue.__init__c C s | j S r r )r r r r �__repr__ s zDefaultValue.__repr__)�__name__�
__module__�__qualname__�strr r r r r r r s r �objr
c C s` z#t �| �}|�d�rtd| �}|jd jd W S t|�}|jd W S ttfy/ Y dS w )z�Get FunctionDef object from living object.
This tries to parse original code for living object and returns
AST node for given *obj*.
�� z\tz if True:
r N)�inspect� getsource�
startswith� ast_parse�body�OSError� TypeError)r �source�moduler r r �get_function_def"