Файловый менеджер - Редактировать - /opt/imh-python/lib/python3.9/site-packages/tornado/__pycache__/web.cpython-39.pyc
Ðазад
a _�h;* � @ s� d Z ddlZddlZddlZddlZddlZddlZddlZddl Z ddl Zddlm Z ddlmZ ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlmZ ddlmZm Z ddlm!Z! ddlm"Z" dd l#m$Z$ dd lm%Z% ddlm&Z& ddl'Zddlm(Z( dd l)m*Z*m+Z+m,Z, ddlm-Z- ddl.m/Z/m0Z0 ddl1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9 ddl:m;Z;m<Z<m=Z= e8Z>ddl?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZL ddlmMZM ddl?Z?e?jN�r�ddl?mOZO eBePe<eQejRejf ZSeBeTePe@eQeTf e@eQePf f ZUdZVdZWdZXdZYG dd� d�ZZeZ� Z[G dd� de\�Z]eJe] eJe] d�dd�Z^eJe] e_d�dd�Z`eGd eCeDd f eGd eCeDd f d!�d"d#�ZaeGd eCeDd f eGd eCeDd f d!�d$d%�ZbG d&d'� d'e7�ZcG d(d)� d)e5�ZdG d*d+� d+e%je�ZfG d,d-� d-eg�ZhG d.d/� d/eg�ZiG d0d1� d1eh�ZjG d2d3� d3e]�ZkG d4d5� d5e]�ZlG d6d7� d7e]�ZmG d8d9� d9e]�ZnG d:d;� d;e\�ZoG d<d=� d=eo�ZpeGd eCeDd f eGd eCeDd f d!�d>d?�ZqG d@dA� dAe\�ZrG dBdC� dCer�ZsG dDdE� dEer�ZtG dFdG� dGer�ZuG dHdI� dIe\�ZvdgeUeTeBeTePf eQeGg ewf eQePdJ�dKdL�Zxe�ydM�ZzePeQdN�dOdP�Z{dheUeTeBdeTePf eQeGg ewf eQeCeP dR�dSdT�Z|eBeTePf eTePeQeGg ewf eCeP dU�dVdW�Z}ePeEeQePePePePf dN�dXdY�Z~eUeTePeQeGg ewf eCeP dU�dZd[�ZeBeTePf eCeQ dN�d\d]�Z�eBeTePf eBeTePf ePd^�d_d`�Z�eBeTePf ePePda�dbdc�Z�eTe_dd�dedf�Z�dS )ia3 ``tornado.web`` provides a simple web framework with asynchronous features that allow it to scale to large numbers of open connections, making it ideal for `long polling <http://en.wikipedia.org/wiki/Push_technology#Long_polling>`_. Here is a simple "Hello, world" example app: .. testcode:: import tornado.ioloop import tornado.web class MainHandler(tornado.web.RequestHandler): def get(self): self.write("Hello, world") if __name__ == "__main__": application = tornado.web.Application([ (r"/", MainHandler), ]) application.listen(8888) tornado.ioloop.IOLoop.current().start() .. testoutput:: :hide: See the :doc:`guide` for additional information. Thread-safety notes ------------------- In general, methods on `RequestHandler` and elsewhere in Tornado are not thread-safe. In particular, methods such as `~RequestHandler.write()`, `~RequestHandler.finish()`, and `~RequestHandler.flush()` must only be called from the main thread. If you use multiple threads it is important to use `.IOLoop.add_callback` to transfer control back to the main thread before finishing the request, or to limit your use of other threads to `.IOLoop.run_in_executor` and ensure that your callbacks running in the executor do not refer to Tornado objects. � N)�isclass)�BytesIO)� urlencode)�Future�"future_set_result_unless_cancelled)�escape)�gen)� HTTPServer)�httputil)�iostream)�locale)� access_log�app_log�gen_log)�template)�utf8�_unicode)� AnyMatches�DefaultHostMatches�HostMatches�ReversibleRouter�Rule�ReversibleRuleRouter�URLSpec� _RuleList)� ObjectDict�unicode_type�_websocket_mask) �Dict�Any�Union�Optional� Awaitable�Tuple�List�Callable�Iterable� Generator�Type�cast�overload)� TracebackType)�Set� � c @ s e Zd ZdS )�_ArgDefaultMarkerN)�__name__� __module__�__qualname__� r3 r3 �{/root/rpmbuild/BUILDROOT/imh-python39-modules-3.9.7-92.el8.x86_64/opt/imh-python/lib/python3.9/site-packages/tornado/web.pyr/ � s r/ c s� e Zd ZdZdZi Ze�� Ze � d�ZdZdZ dZdZdejedd�� fdd �Zdd �dd�ZeZeeeef d �d d��Zeedd�dd�ZeZeZeZeZeZeZ eZ!e"e#d d �dd�Z$dd �dd�Z%dd �dd�Z&dd �dd�Z'dd �dd�Z(d�e)edd�dd�Z*e)d �dd �Z+ee,dd!�d"d#�Z-ee,dd!�d$d%�Z.edd&�d'd(�Z/e � d)�Z0e,ed*�d+d,�Z1e2d�eee3ed.�d/d0��Z4e2e5d-fee6e3ed.�d1d0��Z4e2d�ede3e"e d.�d2d0��Z4e5d-fee7dee6f e3e"e d.�d3d0�Z4d�ee3e8e d4�d5d6�Z9e5d-fee7dee6f e3e"e d.�d7d8�Z:d�ee3e8e d4�d9d:�Z;e5d-fee7dee6f e3e"e d.�d;d<�Z<d�ee3e8e d4�d=d>�Z=d�ee7dee6f eee8e> f e3e"e d?�d@dA�Z?d�eeee8e> f e3e8e dB�dCdD�Z@d�e>eedE�dFdG�ZAeeeeBjCjDf d �dHdI��ZCd�eee"e dJ�dKdL�ZEd�ee7ee>f ee7eFeGeHjHf ee)eddN�dOdP�ZId�eeeddQ�dRdS�ZJd�eeddT�dUdV�ZKd�ee7ee>f e)e)eddX�dYdZ�ZLd�ee7ee>f e)e>d[�d\d]�ZMd�eee)e)e"e> d_�d`da�ZNd�eee"e) d!�dbdc�ZOd�ee3e)ddd�dedf�ZPe7ee>eQf ddg�dhdi�ZReedjdk�dldm�ZSeTe edn�dodp�ZUeTe> e>dq�drds�ZVeTe edt�dudv�ZWeTe> e>dw�dxdy�ZXeee>dk�dzd{�ZYeeef d �d|d}�ZZee[j\d~�dd��Z]d�e3djd��d�d��Z^d�e7ee>eQf djdg�d�d��Z_e`jad �d�d��Zbdd �d�d��Zcd�e)edd��d�d��Zde)edd��d�d��Zeeefjgjhd �d�d���Zgegjiefjgjhdd*�d�d���Zge"efjgjh d �d�d��Zjd�eefjgjhd��d�d��Zkeed �d�d���Zleljiedd*�d�d���Zled �d�d��Zmed �d�d��Zne"e d �d�d��Zoee>d �d�d���ZpeGe"e) e>eFf d �d�d��ZqeeGe"e) e"e> e"eF f d��d�d��Zrdd �d�d��Zsed �d�d��Ztd�ee3eed��d�d��Zud�eedd��d�d��Zveeed��d�d��Zwe"e d �d�d��Zxdd �d�d��Zye3d �d�d��Zze8d� e>e>dd��d�d��Z{e>e"e#d dg�d�dZ|dd �d�dĄZ}ed �d�dƄZ~eddǜd�dɄZ�d�e"e e"e� dd˜d�d̈́Z�ee�d� e�d�ef dМd�d҄Z�e�d�ef e�d�ef dӜd�dՄZ�dd �d�dׄZ�� Z�S )��RequestHandleraF Base class for HTTP request handlers. Subclasses must define at least one of the methods defined in the "Entry points" section below. Applications should not construct `RequestHandler` objects directly and subclasses should not override ``__init__`` (override `~RequestHandler.initialize` instead). )�GET�HEAD�POST�DELETE�PATCH�PUT�OPTIONSz[\x00-\x08\x0e-\x1f]FN�Application)�application�request�kwargs�returnc s� t t� ��� |� _|� _d� _d� _d� _d � _t � fdd�|j �� D ��� _t � |j�� jd<