�
dĜc. � � � d Z ddlZddlZej d dk ZerddlmZ ddlmZ ddl m
Z
n#ddlZddlmZ ddl
mZ
n# e$ r ddlmZ
Y nw xY w ddlZddlmZmZ ej ee� � n# e$ r Y nw xY w G d� d � � Zed
k r� eej � � dk rdZn
ej d
Z e� � Ze� e� � ee� � � � � ed� � ddlZ ej e� � � � � ee� ej � � � � ee� � � d � � e� � � dS dS )z.A high-level interface to the pycurl extension� N� )�urljoin)�BytesIO)�StringIO)�SIGPIPE�SIG_IGNc �z � e Zd ZdZdd�Zd� Zd� Zd� Zd� Zdd �Z dd
�Z
dd�Zd� Zd
� Z
d� Zd� Zd� Zd� Zd� Zd� ZdS )�Curlz)High-level interface to pycurl functions.� Nc � � � t j � � � _ � � |� � d� _ |pg � _ d � _ t � � � _ d� _ � �
t j d� � � �
t j d� � � �
t j
d� � � �
t j d� � � �
t j d� � � � d� � � �
t j d� � � �
t j � j j � � � fd�}� �
t j |� � d S ) Nr r � � � z /dev/null� c �N �� �xj | � d� � z
c_ d S )N�ascii)�hdr�decode)�x�selfs ��//usr/lib/python3/dist-packages/curl/__init__.py�header_callbackz&Curl.__init__.<locals>.header_callback= s# �� ��H�H�����)�)�)�H�H�H�H� )�pycurlr
�handle�set_url� verbosity�fakeheaders�payloadr �
payload_ior �
set_option�SSL_VERIFYHOST�FOLLOWLOCATION� MAXREDIRS�NOSIGNAL�
COOKIEFILE�set_timeout�NETRC�
WRITEFUNCTION�write�HEADERFUNCTION)r �base_urlr r s ` r �__init__z
Curl.__init__% s? �� ��k�m�m������X�������&�,�"������!�)�)����������-�q�1�1�1�����-�q�1�1�1�����(�!�,�,�,�������+�+�+�
����)�;�7�7�7�������������a�(�(�(�����,�d�o�.C�D�D�D� *� *� *� *� *�����-��?�?�?�?�?r c �F � | � t j |� � dS )z&Set timeout for a retrieving an objectN)r! r �TIMEOUT)r �timeouts r r' |