�
Ϫ�f�s � �\ � d Z ddlZddlZddlZddlZddlmZ ddlmZ ddl m
Z
mZ ddlm
Z ddlmZ ddlmZ dd lmZ dd
lmZmZ ddlmZmZ ddlmZ dd
lmZmZm Z ddl!m"Z"m#Z# ddl$m%Z% ddl&m'Z'm(Z( ddl)m*Z*m+Z+m,Z,m-Z- ddl.m/Z/ ddl0m1Z1 dZ2g d�Z3 e% edddd� ddd� e% edddd� ddd� e*jh Z5e*jl Z7dZ8d� Z
d� Z9 ee+jt � G d � d!e'e*jv ejx � � Z; ee+jz � G d"� d#� � Z> ee+j~ � G d$� d%� � Z@ G d&� d'� ZA G d(� d)ejx � ZB e#d*ej� � �� ZC eej� � G d+� d,e*j� � � ZFy)-a�
This is a web server which integrates with the twisted.internet infrastructure.
@var NOT_DONE_YET: A token value which L{twisted.web.resource.IResource.render}
implementations can return to indicate that the application will later call
C{.write} and C{.finish} to complete the request, and that the HTTP
connection should be left open.
@type NOT_DONE_YET: Opaque; do not depend on any particular type for this
value.
� N)�hexlify)�escape)�List�Optional)�quote)�implementer)�Version)� copyright)�address�
interfaces)�
AlreadyCalled�AlreadyCancelled)�Logger)�
components�failure�reflect)�nativeString�
networkString)�deprecatedModuleAttribute)�Copyable� ViewPoint)�http�iweb�resource�util)�UnsupportedMethod)�unquote� )�supportedMethods�Request�Session�Site�version�NOT_DONE_YET�GzipEncoderFactory�Twisted� z4Please use twisted.web.http.datetimeToString insteadztwisted.web.server�date_time_stringz4Please use twisted.web.http.stringToDatetime instead�string_date_time)� GET� HEADs POSTc �\ � t | j d� g|��i |��j d� S )N�charmap)�_quote�decode�encode)�string�args�kwargss �4/usr/lib/python3/dist-packages/twisted/web/server.pyr r K s+ � ��&�-�-� �*�<�T�<�V�<�C�C�I�N�N� c �� � t | t j � rd| j | j fS t | t j
� rd| j fS t | � S )N�INET�UNIX)�
isinstancer �IPv4Address�host�port�UNIXAddress�name�tuple)�addrs r4 �_addressToTuplerA O sP � ��$��+�+�,��� � �4�9�9�-�-� �D�'�-�-� .��� � �"�"��T�{�r5 c �4 � e Zd ZU dZdZee ed< |