�
Ϫ�fP � �P � d Z ddlZddlZddlZddlZddlZddlZddlZddlm Z ddl
mZmZ ddl
mZmZ ddlmZ ddlmZ e ej, d� � Zd � Zd3d
�Zd4d�Zd5d�Zd
� Zd� ZeZd3d�Z G d� de � Z! G d� de"� Z# G d� de#� Z$ G d� de#� Z%d� Z&d� Z'd� Z(dee) de*fd�Z+d� Z,d� Z-d eej\ ee* f d!e)de*fd"�Z/d#� Z0d!e)de*fd$�Z1 G d%� d&� Z2d'� Z3d(� Z4d3d)�Z5d3d*�Z6d+� Z7d,� Z8d-� Z9d.� Z:d/� Z;e8dddddfd0�Z<g d1�Z=e=j} d2� y)6zt
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 �R � i }t | ||� t |j � � 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�dcts �8/usr/lib/python3/dist-packages/twisted/python/reflect.py�prefixedMethodNamesr s& |