File: //lib/python3.6/site-packages/ndg/httpsclient/__pycache__/urllib2_build_opener.cpython-36.pyc
3
�<�Y�
� @ s� d Z dZdZdZdZdZdZddlZddlZej d d krle
Zdd
lm
Z
mZmZmZmZmZmZmZmZ n:ddlZejZdd
lm
Z
mZmZmZmZmZmZmZmZ ddlmZ eje�Zdd
� ZdS )zTurllib2 style build opener integrates with HTTPSConnection class from this
package.
zP J Kershawz21/12/10z2(C) 2011 Science and Technology Facilities Councilz-BSD - see LICENSE file in top-level directoryzPhilip.Kershaw@stfc.ac.ukz$Id$� N� ) �ProxyHandler�UnknownHandler�HTTPDefaultErrorHandler�
FTPHandler�FileHandler�HTTPErrorProcessor�HTTPHandler�OpenerDirector�HTTPRedirectHandler)�HTTPSContextHandlerc O s� dd� }t � }ttttttttg}t |�}|j
t� g }xL|D ]D}x>| D ]6}||�rjt||�r~|j
|� qHt
||�rH|j
|� qHW q>W x |D ]}||kr�|j|� � q�W |jd�} t|kr�|jt| �� x$| D ]}
||
�r�|
� }
|j|
� q�W |S )a Create an opener object from a list of handlers.
The opener will use several default handlers, including support
for HTTP and FTP.
If any of the handlers passed as arguments are subclasses of the
default handlers, the default handlers will not be used.
c S s t | t�pt| d�S )N� __bases__)�
isinstance�class_type_�hasattr)�obj� r �*/usr/lib/python3.6/urllib2_build_opener.py�isclass, s zbuild_opener.<locals>.isclass�ssl_context)r
r r r r r r r r �list�appendr �
issubclassr Zadd_handler�get)Zhandlers�kwr �openerZdefault_classesZ
check_classes�skip�klassZcheckr �hr r r �build_opener# s4
r )�__doc__�
__author__Z__date__Z
__copyright__Z__license__Z__contact__Z__revision__Zlogging�sys�version_info�typer Zurllib.requestr r r r r r r r
r �typesZ ClassTypeZurllib2Zndg.httpsclient.httpsr Z getLogger�__name__�logr r r r r �<module> s"