관리-도구
편집 파일: urls.cpython-39.pyc
a �)g M � @ s� d Z ddlmZmZmZ eZddlZddlZddl Z ddlZ ddlZ ddl Z ddlZ ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlmZ zddlZdZdZW n" e y� dZe�!� Ze"Z#Y n0 ej#Z#zddl$Z W n e �y& ddl%Z Y n0 zddl&Z&W n e �yT ddl'm(Z& Y n0 ddl)m* m+ m,Z- ddl.m* m/ m0 m1Z2 ddl3m* m/ m0 m4 m5Z6 ddl7m8Z8m9Z9 ddl:m;Z;m<Z<m=Z= dd l>m?Z? dd l@mAZAmBZB ddlCmDZDmEZEmFZF z ddlGmHZI ddlGmJZJmKZK W n, e �yP ddlLZIddlLmJZJmKZK Y n0 eIjMjNeIjM_Ozdd lPmQZQmRZRmSZS dZTW n eU�y� dZTY n0 zddlVZVdZWW n eU�y� dZWY n0 zddlVmXZXmYZY dZZW n e �y� dZZY n0 dZ[dZ\eZ�s�z:zddl]m^Z^ W n eU�y0 ddl_m^Z^ Y n0 dZ[W nd eU�y� z:zddl]m`Z` W n eU�yz ddl_m`Z` Y n0 dZ\W n eU�y� Y n0 Y n0 eW�r�eVjaZbeZ�s4eW�r4zddlcZcddldZcW n e �y� Y nV0 ecje�fd�Zgec�heg�ZidD ]6Zjzeiej eVjkZbW �q2W n el�y, Y n0 �q�[iddd�Zmen� ZodZpzddlVmqZqmrZr W nB e �y� zddlsmqZqmrZr W n e �y� dZpY n0 Y n0 dZtz4ddlumvZv ddlwmxZx ddlymzZz ddl{m|Z| W n e �y� dZtY n0 zddl}Z}dZ~W n e �y dZ~Y n0 dZzddl�Z�G dd� deK�Z�W n e �y\ e�!� ZdZ�Y n0 ep�s�zddl�m�Z� e�ZrW n$ e �y� G dd� de��ZrY n0 d d!� Z�d"d#� Z�d$d%� Z�d&d'� ZqdZpd(Z�ej�d)ej�ej�B d*�Z�G d+d,� d,eU�Z�G d-d.� d.e��Z�G d/d0� d0e��Z�G d1d2� d2e��Z�G d3d4� d4eU�Z�dZ�dZ�dZ�dZ�e�e&d5��r�e�eId6��r�G d7d8� d8e&j��Z�G d9d:� d:eIj��Z�G d;d<� d<eIj��Z�ed=d>� �Z�G d?d@� d@e&j��Z�G dAdB� dBe&j��Z�G dCdD� dDeIj��Z�G dEdF� dFe��Z�dGdH� Z�dIdJ� Z�dKdL� Z�dMdN� Z�G dOdP� dPe#�Z�G dQdR� dReIj��Z�ddSdT�Z�d�dUdV�Z�dWdX� Z�d�dYdZ�Z�d�d[d\�Z�G d]d^� d^eIjK�Z�d�d_d`�Z�d�dadb�Z�dcdd� Z�d�dfdg�Z�G dhdi� di�Z�d�dldm�Z�dndo� Z�dpdq� Z�drds� Z�d�dtdu�Z�dvdw� Z�d�d{d|�Z�d�d}d~�Z�dS )�a� The **urls** utils module offers a replacement for the urllib2 python library. urllib2 is the python stdlib way to retrieve files from the Internet but it lacks some security features (around verifying SSL certificates) that users should care about in most situations. Using the functions in this module corrects deficiencies in the urllib2 module wherever possible. There are also third-party libraries (for instance, requests) which can be used to replace urllib2 with a more secure library. However, all third party libraries require that the library be installed on the managed machine. That is an extra step for users making use of a module. If possible, avoid third party libraries by using this code instead. � )�absolute_import�division�print_functionN)�contextmanagerTF)�Mapping�is_sequence)�PY2�PY3�string_types)� cStringIO)�get_distribution�missing_required_lib)�to_bytes� to_native�to_text)�AbstractHTTPHandler�BaseHandler)�urlparse� urlunparse�unquote)�create_default_context� SSLContext)�PyOpenSSLContext)�ssl_wrap_socket�ssl)ZTLSv1_1_methodZTLSv1_2_methodzbackports.ssl_match_hostnamez3.7.0.1)Z pypi_name�version)�match_hostname�CertificateError)�x509)�default_backend)�hashes)�UnsupportedAlgorithmc @ s<