File: //usr/lib/python3/dist-packages/twisted/python/__pycache__/reflect.cpython-38.pyc
U
�b P � @ s4 d Z ddlZddlZddlZddlZddlZddlZddlZddlm Z ddl
mZmZ ddl
mZmZ ddlmZ ddlmZ ee�d��Zd d
� ZdKdd�ZdLd
d�ZdMdd�Zdd� Zdd� ZeZdNdd�ZG dd� de �Z!G dd� de"�Z#G dd� de#�Z$G dd� de#�Z%dd � Z&d!d"� Z'd#d$� Z(d%d&� Z)d'd(� Z*d)d*� Z+eej,ee- f e.e-d+�d,d-�Z/d.d/� Z0e.e-d0�d1d2�Z1G d3d4� d4�Z2d5d6� Z3d7d8� Z4dOd9d:�Z5dPd;d<�Z6d=d>� Z7d?d@� Z8dAdB� Z9dCdD� Z:dEdF� Z;e8dddddfdGdH�Z<dddd4dddId"dd/d2d
dddd6d&d8d:d<d>d@dBdDdFdHd$dJgZ=e=�>dH� dS )Qzt
Standardized versions of various cool and/or strange things that you can do
with Python's reflection capabilities.
� N)�deque)�IOBase�StringIO)�Type�Union)�nativeString)�_fullyQualifiedName� c 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||<