Sindbad~EG File Manager
3
�uGh� � . @ s� d Z ddlmZmZmZmZ ddlmZmZm Z m
Z
ddlmZ ddl
mZ ddl
mZ ddlmZ ddlZddlZddlZdd lmZ ddlZdd
lmZ er�ddlmZ nddlmZ dd
ddddddddddddddgZdZ dZ!dZ"dZ#d Z$d!Z%d"Z&d#Z'd$Z(d%Z)d&Z*d'Z+d(Z,d)Z-d*Z.d+Z/d,Z0d-Z1d.Z2d/Z3d0Z4d1Z5d2Z6d3Z7d4Z8d5Z9d6Z:d7Z;d8Z<d9Z=d:Z>d;Z?d<Z@d=ZAd>ZBd?ZCd@ZDdAZEdBZFdCZGdDZHdEZIdFZJdGZKdHZLdIZMdJZNdKZOdLZPdMZQdNZRdOZSdPZTdQZUdRZVdSZWdTZXdUZYdVZZdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dd�d�d�d�d��-Z[d�Z\d�Z]d"Z^G d�d�� d�ej_�Z`e`fd�d��Zaeb� ZcG d�d� dejd�ZeG d�d
� d
eb�ZfyddlgZgdd�lgmhZh W n eik
�r� Y nX G d�d�� d�ef�Zjejkd�� G d�d� del�ZmG d�d� dem�ZnG d�d� dem�ZoG d�d� dem�ZpG d�d� dem�ZqG d�d� dem�ZrG d�d� dem�ZsG d�d� dem�ZtG d�d� det�ZuG d�d� det�ZvG d�d� det�ZwG d�d� dem�ZxG d�d�� d�em�ZyemZzdS )�aD
HTTP/1.1 client library
A backport of the Python 3.3 http/client.py module for python-future.
<intro stuff goes here>
<other stuff, too>
HTTPConnection goes through a number of "states", which define when a client
may legally make another request or fetch the response for a particular
request. This diagram details these state transitions:
(null)
|
| HTTPConnection()
v
Idle
|
| putrequest()
v
Request-started
|
| ( putheader() )* endheaders()
v
Request-sent
|
| response = getresponse()
v
Unread-response [Response-headers-read]
|\____________________
| |
| response.read() | putrequest()
v v
Idle Req-started-unread-response
______/|
/ |
response.read() | | ( putheader() )* endheaders()
v v
Request-started Req-sent-unread-response
|
| response.read()
v
Request-sent
This diagram presents the following rules:
-- a second request may not be started until {response-headers-read}
-- a response [object] cannot be retrieved until {request-sent}
-- there is no differentiation between an unread response body and a
partially read response body
Note: this enforcement is applied by the HTTPConnection class. The
HTTPResponse class does not enforce this state machine, which
implies sophisticated clients may accelerate the request/response
pipeline. Caution should be taken, though: accelerating the states
beyond the above pattern may imply knowledge of the server's
connection-close behavior for certain requests. For example, it
is impossible to tell whether the server will close the connection
UNTIL the response headers have been read; this means that further
requests cannot be placed into the pipeline until it is known that
the server will NOT be closing the connection.
Logical State __state __response
------------- ------- ----------
Idle _CS_IDLE None
Request-started _CS_REQ_STARTED None
Request-sent _CS_REQ_SENT None
Unread-response _CS_IDLE <response_class>
Req-started-unread-response _CS_REQ_STARTED <response_class>
Req-sent-unread-response _CS_REQ_SENT <response_class>
� )�absolute_import�division�print_function�unicode_literals)�bytes�int�str�super)�PY2)�parser)�message)�create_connectionN)�urlsplit)�array)�Iterable�HTTPResponse�HTTPConnection�
HTTPException�NotConnected�UnknownProtocol�UnknownTransferEncoding�UnimplementedFileMode�IncompleteRead�
InvalidURL�ImproperConnectionState�CannotSendRequest�CannotSendHeader�ResponseNotReady�
BadStatusLine�error� responses�P i� �UNKNOWN�IdlezRequest-startedzRequest-sent�d �e �f �� �� �� �� �� �� �� �� �� i, i- i. i/ i0 i1 i3 i� i� i� i� i� i� i� i� i� i� i� i� i� i� i� i� i� i� i� i� i� i� i� i� i� i� i� i� i� i� i� i� i� i� �ContinuezSwitching Protocols�OK�Created�AcceptedzNon-Authoritative Informationz
No Contentz
Reset ContentzPartial ContentzMultiple ChoiceszMoved Permanently�Foundz See OtherzNot Modifiedz Use Proxyz(Unused)zTemporary RedirectzBad Request�UnauthorizedzPayment Required� Forbiddenz Not FoundzMethod Not AllowedzNot AcceptablezProxy Authentication RequiredzRequest Timeout�Conflict�GonezLength RequiredzPrecondition FailedzRequest Entity Too LargezRequest-URI Too LongzUnsupported Media TypezRequested Range Not SatisfiablezExpectation FailedzPrecondition RequiredzToo Many RequestszRequest Header Fields Too LargezInternal Server ErrorzNot ImplementedzBad GatewayzService UnavailablezGateway TimeoutzHTTP Version Not SupportedzNetwork Authentication Required)-r$ r% r'