File: //opt/alt/python38/lib/python3.8/site-packages/funcsigs/__pycache__/__init__.cpython-38.pyc
U
�.W�v � @ s\ d Z ddlmZmZmZ ddlZddlZddlZddlZzddl m
Z
W n ek
rh ddlm
Z
Y nX ddl
mZ dddd gZeej�Zeej�ZeeejfZd"d
d�Zdd
� Zdd � ZG dd� de�ZG dd� de�ZG dd� de�Zeddd�Zeddd�Z eddd�Z!eddd�Z"eddd�Z#G dd� de�Z$G d d� de�Z%G d!d� de�Z&dS )#z�Function signature objects for callables
Back port of Python 3.3's function signature tools from the inspect module,
modified to be compatible with Python 2.6, 2.7 and 3.3+.
� )�absolute_import�division�print_functionN)�OrderedDict)�__version__�BoundArguments� Parameter� Signature� signaturec C s8 t | t�r0| jdd|fkr | jS | jd | j S t| �S )N�builtinsZ__builtin__�.)�
isinstance�type�
__module__�__name__�repr)�
annotation�base_module� r �B/opt/alt/python38/lib/python3.8/site-packages/funcsigs/__init__.py�formatannotation s
r c G s\ z2| t krW d S t| |�}|D ]}t|||�}qW n tk
rH Y d S X t|t�sX|S d S �N)r �getattr�AttributeErrorr
�_NonUserDefinedCallables)�cls�method_name�nested�meth�namer r r �_get_user_defined_method'