§ ø;i¾$ãóÀ—ddlmZddlZddlmZddlmZddlmZ ddlm Z ddl m Z dd lmZdd lmZejrdd lmZGd „d e ¦«ZGd„de ¦«Z dS)é)Ú annotationsN)Ú BadRequest)Ú HTTPException)ÚRequest)ÚResponseé)Újson)Ú current_app)Ú_split_blueprint_path)ÚRulecó–‡—eZdZUdZeZded<dZded<dZded<dZ d ed <dZ d ed <dZ d ed <dZ d ed<e d!ˆfd„ ¦«Zejd"d„¦«Ze d!ˆfd„ ¦«Zejd"d„¦«Ze d!ˆfd„ ¦«Zejd"d„¦«Ze d#d„¦«Ze d#d„¦«Ze d$d„¦«Zd%ˆfd„ Zd&ˆfd „ ZˆxZS)'raÎThe request object used by default in Flask. Remembers the matched endpoint and view arguments. It is what ends up as :class:`~flask.request`. If you want to replace the request object used you can subclass this and set :attr:`~flask.Flask.request_class` to your subclass. The request object is a :class:`~werkzeug.wrappers.Request` subclass and provides all of the attributes Werkzeug defines plus a few Flask specific ones. út.AnyÚ json_moduleNz Rule | NoneÚurl_rulezdict[str, t.Any] | NoneÚ view_argszHTTPException | NoneÚrouting_exceptionú int | NoneÚ_max_content_lengthÚ_max_form_memory_sizeÚ_max_form_partsÚreturncóx•—|j|jStst¦«jStjdS)a·The maximum number of bytes that will be read during this request. If this limit is exceeded, a 413 :exc:`~werkzeug.exceptions.RequestEntityTooLarge` error is raised. If it is set to ``None``, no limit is enforced at the Flask application level. However, if it is ``None`` and the request has no ``Content-Length`` header and the WSGI server does not indicate that it terminates the stream, then no data is read to avoid an infinite stream. Each request defaults to the :data:`MAX_CONTENT_LENGTH` config, which defaults to ``None``. It can be set on a specific ``request`` to apply the limit to that specific view. This should be set appropriately based on an application's or view's specific needs. .. versionchanged:: 3.1 This can be set per-request. .. versionchanged:: 0.6 This is configurable through Flask config. NÚMAX_CONTENT_LENGTH)rr ÚsuperÚmax_content_lengthÚconfig©ÚselfÚ __class__s €úBC:\PYTHON\MyICR_Workspace\venv\Lib\site-packages\flask/wrappers.pyrzRequest.max_content_length;s;ø€ð* Ô #Ð /ØÔ+Ð +åð .Ý‘7”7Ô-Ð -åÔ!Ð"6Ô7Ð7óÚvalueÚNonecó—||_dS©N)r©rr"s r rzRequest.max_content_lengthXs€à#(ˆÔ Ð Ð r!cóx•—|j|jStst¦«jStjdS)a°The maximum size in bytes any non-file form field may be in a ``multipart/form-data`` body. If this limit is exceeded, a 413 :exc:`~werkzeug.exceptions.RequestEntityTooLarge` error is raised. If it is set to ``None``, no limit is enforced at the Flask application level. Each request defaults to the :data:`MAX_FORM_MEMORY_SIZE` config, which defaults to ``500_000``. It can be set on a specific ``request`` to apply the limit to that specific view. This should be set appropriately based on an application's or view's specific needs. .. versionchanged:: 3.1 This is configurable through Flask config. NÚMAX_FORM_MEMORY_SIZE)rr rÚmax_form_memory_sizerrs €r r)zRequest.max_form_memory_size\s;ø€ð Ô %Ð 1ØÔ-Ð -åð 0Ý‘7”7Ô/Ð /åÔ!Ð"8Ô9Ð9r!có—||_dSr%)rr&s r r)zRequest.max_form_memory_sizess€à%*ˆÔ"Ð"Ð"r!cóx•—|j|jStst¦«jStjdS)a The maximum number of fields that may be present in a ``multipart/form-data`` body. If this limit is exceeded, a 413 :exc:`~werkzeug.exceptions.RequestEntityTooLarge` error is raised. If it is set to ``None``, no limit is enforced at the Flask application level. Each request defaults to the :data:`MAX_FORM_PARTS` config, which defaults to ``1_000``. It can be set on a specific ``request`` to apply the limit to that specific view. This should be set appropriately based on an application's or view's specific needs. .. versionchanged:: 3.1 This is configurable through Flask config. NÚMAX_FORM_PARTS)rr rÚmax_form_partsrrs €r r-zRequest.max_form_partsws;ø€ð Ô Ð +ØÔ'Ð 'åð *Ý‘7”7Ô)Ð )åÔ!Ð"2Ô3Ð3r!có—||_dSr%)rr&s r r-zRequest.max_form_partsŽs€à$ˆÔÐÐr!ú str | Nonecó,—|j |jjSdS)aThe endpoint that matched the request URL. This will be ``None`` if matching failed or has not been performed yet. This in combination with :attr:`view_args` can be used to reconstruct the same URL or a modified URL. N)rÚendpoint)rs r r1zRequest.endpoint’s€ð Œ=Ð $Ø”=Ô)Ð )àˆtr!cóV—|j}|d|vr| d¦«dSdS)ajThe registered name of the current blueprint. This will be ``None`` if the endpoint is not part of a blueprint, or if URL matching failed or has not been performed yet. This does not necessarily match the name the blueprint was created with. It may have been nested, or registered with a different name. Nú.r)r1Ú rpartition)rr1s r Ú blueprintzRequest.blueprint¡s7€ð”=ˆà Ð  C¨8 O OØ×&Ò& sÑ+Ô+¨AÔ.Ð .àˆtr!ú list[str]có6—|j}|€gSt|¦«S)zëThe registered names of the current blueprint upwards through parent blueprints. This will be an empty list if there is no current blueprint, or if URL matching failed. .. versionadded:: 2.0.1 )r5r )rÚnames r Ú blueprintszRequest.blueprints´s#€ðŒ~ˆà ˆ<؈Iå$ TÑ*Ô*Ð*r!cóÄ•—t¦« ¦«tr1tjr'|jdkr|jsddlm}||¦«dSdSdSdSdS)Nzmultipart/form-datar)Úattach_enctype_error_multidict)rÚ_load_form_datar ÚdebugÚmimetypeÚfilesÚ debughelpersr;)rr;rs €r r<zRequest._load_form_dataÅs–ø€Ý ‰Œ×ÒÑ!Ô!Ð!õ ð 1åÔ!ð 1ð” Ð!6Ò6Ð6Ø”Jð7ð EÐ DÐ DÐ DÐ DÐ Dà *Ð *¨4Ñ 0Ô 0Ð 0Ð 0Ð 0ð 1ð 1ð 1ð 1ð7Ð6Ð6Ð6r!ÚeúValueError | Nonec󲕗 t¦« |¦«S#t$r(}tr tjr‚t¦«|‚d}~wwxYwr%)rÚon_json_loading_failedrr r=)rrAÚebrrs €r rDzRequest.on_json_loading_failedÔs`ø€ð (Ý‘7”7×1Ò1°!Ñ4Ô4Ð 4øÝð (ð (ð (Ýð {Ô0ð Øå‘,”, CÐ 'øøøøð  (øøøsƒ $¤ A®#AÁA)rr)r"rrr#)rr/)rr6)rr#)rArBrr)Ú__name__Ú __module__Ú __qualname__Ú__doc__r rÚ__annotations__rrrrrrÚpropertyrÚsetterr)r-r1r5r9r<rDÚ __classcell__©rs@r rrs1ø€€€€€€ð ð ð€KÐÐÐÑð!€HÐ Ð Ð Ñ ð*.€IÐ-Ð-Ð-Ñ-ð /3ÐÐ2Ð2Ð2Ñ2à&*ÐÐ*Ð*Ð*Ñ*Ø(,ÐÐ,Ð,Ð,Ñ,Ø"&€OÐ&Ð&Ð&Ñ&à ð8ð8ð8ð8ð8ñ„Xð8ð8Ôð)ð)ð)ñÔð)ðð:ð:ð:ð:ð:ñ„Xð:ð,Ô ð+ð+ð+ñ!Ô ð+ðð4ð4ð4ð4ð4ñ„Xð4ð,Ôð%ð%ð%ñÔð%ðð ð ð ñ„Xð ððððñ„Xðð$ð+ð+ð+ñ„Xð+ð 1ð 1ð 1ð 1ð 1ð 1ð(ð(ð(ð(ð(ð(ð(ð(ð(ð(r!rcóL‡—eZdZUdZdZded<eZdZe d ˆfd„ ¦«Z ˆxZ S) ra¬The response object that is used by default in Flask. Works like the response object from Werkzeug but is set to have an HTML mimetype by default. Quite often you don't have to create this object yourself because :meth:`~flask.Flask.make_response` will take care of that for you. If you want to replace the response object used you can subclass this and set :attr:`~flask.Flask.response_class` to your subclass. .. versionchanged:: 1.0 JSON support is added to the response, like the request. This is useful when testing to get the test client response data as JSON. .. versionchanged:: 1.0 Added :attr:`max_cookie_size`. z text/htmlr/Údefault_mimetypeFrÚintcó\•—trtjdSt¦«jS)zŸRead-only view of the :data:`MAX_COOKIE_SIZE` config key. See :attr:`~werkzeug.wrappers.Response.max_cookie_size` in Werkzeug's docs. ÚMAX_COOKIE_SIZE)r rrÚmax_cookie_sizers €r rTzResponse.max_cookie_sizeös+ø€õ ð 9ÝÔ%Ð&7Ô8Ð 8õ‰wŒwÔ&Ð&r!)rrQ) rFrGrHrIrPrJr rÚautocorrect_location_headerrKrTrMrNs@r rrÞsrø€€€€€€ððð"$/ÐÐ.Ð.Ð.Ñ.à€Kà"'Ðà ð 'ð 'ð 'ð 'ð 'ñ„Xð 'ð 'ð 'ð 'ð 'r!r)Ú __future__rÚtypingÚtÚwerkzeug.exceptionsrrÚwerkzeug.wrappersrÚ RequestBaserÚ ResponseBaseÚr Úglobalsr Úhelpersr Ú TYPE_CHECKINGÚwerkzeug.routingr ©r!r úrcs$ðØ"Ð"Ð"Ð"Ð"Ð"àÐÐÐà*Ð*Ð*Ð*Ð*Ð*Ø-Ð-Ð-Ð-Ð-Ð-Ø4Ð4Ð4Ð4Ð4Ð4Ø6Ð6Ð6Ð6Ð6Ð6àÐÐÐÐÐØ Ð Ð Ð Ð Ð Ø*Ð*Ð*Ð*Ð*Ð*à„?ð&Ø%Ð%Ð%Ð%Ð%Ð%ðI(ðI(ðI(ðI(ðI(ˆkñI(ôI(ðI(ðX#'ð#'ð#'ð#'ð#'ˆ|ñ#'ô#'ð#'ð#'ð#'r!