File: //usr/lib/python3/dist-packages/twisted/python/__pycache__/reflect.cpython-38.pyc
U
��W[L � @ sD d Z ddlmZmZmZ ddlZddlZddlZddlZddl Z ddl
Z
ddlZddlm
Z
ee
�d��ZddlmZmZmZ ddlmZ ddlmZ dd lmZ dd
lmZ dd� ZdKd
d�ZdLdd�ZdMdd�Z dd� Z!dd� Z"e"Z#dNdd�Z$G dd� de%�Z&G dd� de'�Z(G dd� de(�Z)G dd � d e(�Z*d!d"� Z+d#d$� Z,d%d&� Z-d'd(� Z.d)d*� Z/d+d,� Z0d-d.� Z1d/d0� Z2d1d2� Z3eG d3d4� d4��Z4d5d6� Z5d7d8� Z6dOd9d:�Z7dPd;d<�Z8d=d>� Z9d?d@� Z:dAdB� Z;dCdD� Z<dEdF� Z=e�s�e:dddddfdGdH�Z>ddd d4dddId$dd0d2ddddd6d(d8d:d<d>d@dBdDdFdHd&dJgZ?e�r@e?�@dH� dS )Qzt
Standardized versions of various cool and/or strange things that you can do
with Python's reflection capabilities.
� )�division�absolute_import�print_functionN)�deque� )�reraise�nativeString�NativeStringIO)�_PY3)�compat)�_fullyQualifiedName)� _oldStylec C s i }t | ||� t|�� �S )a�
Given a class object C{classObj}, returns a list of method names that match
the string C{prefix}.
@param classObj: A class object from which to collect method names.
@param prefix: A native string giving a prefix. Each method with a name
which begins with this prefix will be returned.
@type prefix: L{str}
@return: A list of the names of matching methods of C{classObj} (and base
classes of C{classObj}).
@rtype: L{list} of L{str}
)�addMethodNamesToDict�list�keys)�classObj�prefix�dct� r �8/usr/lib/python3/dist-packages/twisted/python/reflect.py�prefixedMethodNames s r c C s� | j D ]}t||||� q|dks,|| j kr�| j�� D ]J\}}|t|�d� }t|�tjkr6|dt|�� |kr6t|�r6d||<