HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/sphinx/ext/autodoc/__pycache__/preserve_defaults.cpython-310.pyc
o

�W�a��@s�dZddlZddlZddlZddlmZmZmZmZddl	m
Z
ddlmZddl
mZddl
mZddlmZe�e�ZGd	d
�d
�Zdedejfd
d�Zdeedejdeefdd�Zde
dededdfdd�Zde
deeeffdd�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,eZdZdeddfdd�Zdefdd�ZdS)�DefaultValue�name�returnNcCs
||_dS�N�r)�selfr�r�F/usr/lib/python3/dist-packages/sphinx/ext/autodoc/preserve_defaults.py�__init__s
zDefaultValue.__init__cCs|jSrr)rrrr�__repr__szDefaultValue.__repr__)�__name__�
__module__�__qualname__�strrrrrrrrsr�objr
c	Cs`z#t�|�}|�d�rtd|�}|jdjdWSt|�}|jdWSttfy/YdSw)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:
rN)�inspect�	getsource�
startswith�	ast_parse�body�OSError�	TypeError)r�source�modulerrr�get_function_def"s

�r%�lines�positionc	Cs\z!tjdkr	WdS|j|jkr||jd}||j|j�WSWdSttfy-YdSw)N)���)�sys�version_info�lineno�
end_lineno�
col_offset�end_col_offset�AttributeError�
IndexError)r&r'�linerrr�get_default_value5s
�r4�app�bound_methodc
Cs�|jjsdSzt�|���}|d�d�r|�dd�Wn
ttfy)g}Ynwz�t	|�}|j
js7|j
jr�t�
|�}t|j
j�}t|j
j�}t|j���}t|�D]L\}	}
|
j|
jur�|
j|
j|
jfvr�|�d�}t||�}|durxt|�}|
jt|�d�||	<qS|�d�}t||�}|dur�t|�}|
jt|�d�||	<qS|j|d�}||_WdSWdSttfy�YdSty�}
zt� t!d�||
�WYd}
~
dSd}
~
ww)z2Update defvalue info of *obj* using type_comments.Nrr�)�default)�
parametersz3Failed to parse a default argument value for %r: %s)"�config�autodoc_preserve_defaultsrr�
splitlinesr�insertr!r"r%�args�defaults�kw_defaults�	signature�listr9�values�	enumerater8�empty�kind�POSITIONAL_ONLY�POSITIONAL_OR_KEYWORD�popr4�ast_unparse�replacer�
__signature__r1�NotImplementedError�logger�warningr)r5rr6r&�function�sigr?r@r9�i�paramr8�value�excrrr�update_defvalueCsP��




�� ��rVcCs$|�ddd�|�dt�ddd�S)Nr;FTz autodoc-before-process-signaturez1.0)�version�parallel_read_safe)�add_config_value�connectrV)r5rrr�setupms
�r[) �__doc__�astrr+�typingrrrr�sphinx.applicationr�
sphinx.localer�sphinx.pycode.astrrr	rJ�sphinx.utilr
�	getLoggerrrNr�FunctionDefr%r�ASTr4�boolrVr[rrrr�<module>s 
 *