Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
app.cpython-313.pyc405 linesDownload Raw Back to __pycache__
1�

2��jڔ����SSKJr SSKrSSKrSSKrSSKrSSKJr SSK	J3r4 SSKJr SSKJ
r
 SSKJr SSKJr SS	KJr SS5KJr SSKJr SSKJr SS
KJr SSKJr SSKJr SSKJr SSKJr SSK J!r! SSK J"r" SSK#J$r$ SSK#J%r% SSKJ&r& SSK'J(r( SSK'J)r) SSK*J+r+ SSK*J,r, SSK*J-r- SSK*J.r. \R^(aSSK0Jr1 SSK2J3r3 SS K2J4r4 SS!K5J6r6 \Rn"S"\RpS#9r9\Rn"S$\RtS#9r;\Rn"S%\RxS#9r=\Rn"S&\R|S#9r?\Rn"S'\R�S#9rAS+S(jrB"S)S*\-5rCg),�)�annotationsN)�	timedelta)�chain)�Aborter)�6BadRequest)�BadRequestKeyError)�7BuildError)�Map)�Rule)�Response)�cached_property)�redirect�)�typing)�Config)�ConfigAttribute)�_AppCtxGlobals)�_split_blueprint_path)�get_debug_flag)�DefaultJSONProvider)�JSONProvider��
create_logger��DispatchingJinjaLoader)�Environment�)�_endpoint_from_view_func)�find_package)�Scaffold)�setupmethod)�FlaskClient)�FlaskCliRunner)�	Blueprint�T_shell_context_processor)�bound�8T_teardown�T_template_filter�T_template_global�T_template_testc�H�Ub[U[5(aU$[US9$)N)�seconds)�9isinstancer)�values �VD:\code\apps\devtools\python\user_packages\Python313\site-packages\flask/sansio/app.py�_make_timedeltar04s#���}�10�5�)�4�4����U�#�#�c�^�\rSrSr%Sr\r\r\	r11\r\
\"S5r\
\R"\\S4"S5r\
\"S\S9r\rS\S	'0rS12\S'\r\rSr S\S
'Sr!S\S'S13\S'S\S'S2S3U4Sjjjr"S4Sjr#\$S5Sj5r%\$S6Sj5r&\$S7Sj5r'S7Sjr(S8S9Sjjr)S:Sjr*S5Sjr+S;Sjr,S<Sjr-\.S=Sj5r/\/R`S>Sj5r/\1S?S j5r2S@S!jr3\1SASBS"jj5r4\1SCSDS#jj5r5\1SCSES$jj5r6\1SCSFS%jj5r7\1SCSGS&jj5r8\1SCSHS'jj5r9\1SCSIS(jj5r:\1SJS)j5r;\1SKS*j5r<SLS+jr=SMS,jr>SNS-jr?SOSPS.jjr@SQS/jrASRS0jrBS1rCU=rD$)S�App�;a�The flask object implements a WSGI application and acts as the central14object.  It is passed the name of the module or package of the15application.  Once it is created it will act as a central registry for16the view functions, the URL rules, template configuration and much more.17 18The name of the package is used to resolve resources from inside the19package or the folder the module is contained in depending on if the20package parameter resolves to an actual python package (a folder with21an :file:`__init__.py` file inside) or a standard module (just a ``.py`` file).22 23For more information about resource loading, see :func:`open_resource`.24 25Usually you create a :class:`Flask` instance in your main module or26in the :file:`__init__.py` file of your package like this::27 28    from flask import Flask29    app = Flask(__name__)30 31.. admonition:: About the First Parameter32 33    The idea of the first parameter is to give Flask an idea of what34    belongs to your application.  This name is used to find resources35    on the filesystem, can be used by extensions to improve debugging36    information and a lot more.37 38    So it's important what you provide there.  If you are using a single39    module, `__name__` is always the correct value.  If you however are40    using a package, it's usually recommended to hardcode the name of41    your package there.42 43    For example if your application is defined in :file:`yourapplication/app.py`44    you should create it with one of the two versions below::45 46        app = Flask('yourapplication')47        app = Flask(__name__.split('.')[0])48 49    Why is that?  The application will work even with `__name__`, thanks50    to how resources are looked up.  However it will make debugging more51    painful.  Certain extensions can make assumptions based on the52    import name of your application.  For example the Flask-SQLAlchemy53    extension will look for the code in your application that triggered54    an SQL query in debug mode.  If the import name is not properly set55    up, that debugging information is lost.  (For example it would only56    pick up SQL queries in `yourapplication.app` and not57    `yourapplication.views.frontend`)58 59.. versionadded:: 0.760   The `static_url_path`, `static_folder`, and `template_folder`61   parameters were added.62 63.. versionadded:: 0.864   The `instance_path` and `instance_relative_config` parameters were65   added.66 67.. versionadded:: 0.1168   The `root_path` parameter was added.69 70.. versionadded:: 1.071   The ``host_matching`` and ``static_host`` parameters were added.72 73.. versionadded:: 1.074   The ``subdomain_matching`` parameter was added. Subdomain75   matching needs to be enabled manually now. Setting76   :data:`SERVER_NAME` does not implicitly enable it.77 78:param import_name: the name of the application package79:param static_url_path: can be used to specify a different path for the80                        static files on the web.  Defaults to the name81                        of the `static_folder` folder.82:param static_folder: The folder with static files that is served at83    ``static_url_path``. Relative to the application ``root_path``84    or an absolute path. Defaults to ``'static'``.85:param static_host: the host to use when adding the static route.86    Defaults to None. Required when using ``host_matching=True``87    with a ``static_folder`` configured.88:param host_matching: set ``url_map.host_matching`` attribute.89    Defaults to False.90:param subdomain_matching: consider the subdomain relative to91    :data:`SERVER_NAME` when matching routes. Defaults to False.92:param template_folder: the folder that contains the templates that should93                        be used by the application.  Defaults to94                        ``'templates'`` folder in the root path of the95                        application.96:param instance_path: An alternative instance path for the application.97                      By default the folder ``'instance'`` next to the98                      package or module is assumed to be the instance99                      path.100:param instance_relative_config: if set to ``True`` relative filenames101                                 for loading the config are assumed to102                                 be relative to the instance path instead103                                 of the application root.104:param root_path: The path to the root of the application files.105    This should only be set manually when it can't be detected106    automatically, such as for namespace packages.107�TESTINGN�108SECRET_KEY�PERMANENT_SESSION_LIFETIME)�
get_converterztype[JSONProvider]�json_provider_class�dict[str, t.Any]�
jinja_optionsztype[FlaskClient] | None�test_client_classztype[FlaskCliRunner] | None�test_cli_runner_class�default_configztype[Response]�response_classc��>�[TU]UUUUU109S9 UcUR5nO/[RRU5(d[
S5eX�lURU	5Ul	UR5UlURU5Ul
/Ul/Ul/Ul0Ul0UlUR'US9UlX`lSUlg)N)�import_name�
static_folder�static_url_path�template_folder�	root_pathzWIf an instance path is provided it must be absolute. A relative path was given instead.)�
host_matchingF)�super�__init__�auto_find_instance_path�os�path�isabs�110ValueError�
instance_path�make_config�config�make_aborter�aborterr9�json�url_build_error_handlers�teardown_appcontext_funcs�shell_context_processors�111blueprints�112extensions�
url_map_class�url_map�subdomain_matching�_got_first_request)�selfrArCrB�static_hostrFr[rDrN�instance_relative_configrE�	__class__s           �r/rH�App.__init__s���	���#�'�+�+��	�	113�� � �8�8�:�M������}�-�-��6��
�+��114�&�&�'?�@����(�(�*���"&�":�":�4�"@��	�
	�2
�	
�%�EG��&�QS��%�13���-/���"�)�)�
�)�F���"4��#(��r1c�D�UR(a[SUS35eg)NzThe setup method 'z�' can no longer be called on the application. It has already handled its first request, any changes will not be applied consistently.115Make sure all imports, decorators, functions, etc. needed to set up the application are done before running it.)r\�AssertionError)r]�f_names  r/�_check_setup_finished�App._check_setup_finished�s.���"�"� �$�V�H�-���
�#r1c���URS:Xaa[[RSSS5nUcg[R116R
[R117RU55S$UR$)a/The name of the application.  This is usually the import name118with the difference that it's guessed from the run file if the119import name is main.  This name is used as a display name when120Flask needs the name of the application.  It can be set and overridden121to change the value.122 123.. versionadded:: 0.8124�__main__�__file__Nr)rA�getattr�sys�modulesrJrK�splitext�basename)r]�fns  r/�name�App.name�sf�����z�)�$�S�[�[��%<�j�$�O�B��z�!��7�7�#�#�B�G�G�$4�$4�R�$8�9�!�<�<����r1c��[U5$)a3A standard Python :class:`~logging.Logger` for the app, with125the same name as :attr:`name`.126 127In debug mode, the logger's :attr:`~logging.Logger.level` will128be set to :data:`~logging.DEBUG`.129 130If there are no handlers configured, a default handler will be131added. See :doc:`/logging` for more information.132 133.. versionchanged:: 1.1.0134    The logger takes the same name as :attr:`name` rather than135    hard-coding ``"flask.app"``.136 137.. versionchanged:: 1.0.0138    Behavior was simplified. The logger is always named139    ``"flask.app"``. The level is only set during configuration,140    it doesn't check ``app.debug`` each time. Only one format is141    used, not different ones depending on ``app.debug``. No142    handlers are removed, and a handler is only added if no143    handlers are already configured.144 145.. versionadded:: 0.3146r�r]s r/�logger�147App.logger�s��2�T�"�"r1c�"�UR5$)z�The Jinja environment used to load templates.148 149The environment is created the first time this property is150accessed. Changing :attr:`jinja_options` after that will have no151effect.152)�create_jinja_environmentrss r/�	jinja_env�
App.jinja_env�s���,�,�.�.r1c��[5e�N)�NotImplementedErrorrss r/rw�App.create_jinja_environment�s��!�#�#r1c��URnU(aURn[UR5n[	5US'URX#5$)a4Used to create the config attribute by the Flask constructor.153The `instance_relative` parameter is passed in from the constructor154of Flask (there named `instance_relative_config`) and indicates if155the config should be relative to the instance path or the root path156of the application.157 158.. versionadded:: 0.8159�DEBUG)rErN�dictr>r�config_class)r]�instance_relativerE�defaultss    r/rO�App.make_config�sI���N�N�	���*�*�I���+�+�,��*�,����� � ��5�5r1c�"�UR5$)a&Create the object to assign to :attr:`aborter`. That object160is called by :func:`flask.abort` to raise HTTP errors, and can161be called directly as well.162 163By default, this creates an instance of :attr:`aborter_class`,164which defaults to :class:`werkzeug.exceptions.Aborter`.165 166.. versionadded:: 2.2167)�
aborter_classrss r/rQ�App.make_aborter�s���!�!�#�#r1c���[UR5upUc [RR	US5$[RR	USUR168S35$)z�Tries to locate the instance path if it was not provided to the169constructor of the application class.  It will basically calculate170the path to a folder named ``instance`` next to your main file or171the package.172 173.. versionadded:: 0.8174�instance�varz	-instance)rrArJrK�joinrp)r]�prefix�package_paths   r/rI�App.auto_find_instance_path�sS�� ,�D�,<�,<�=����>��7�7�<�<��j�9�9��w�w�|�|�F�E�d�i�i�[�	�+B�C�Cr1c��[U5$)agCreates the loader for the Jinja environment.  Can be used to175override just the loader and keeping the rest unchanged.  It's176discouraged to override this function.  Instead one should override177the :meth:`jinja_loader` function instead.178 179The global loader dispatches between the loaders of the application180and the individual blueprints.181 182.. versionadded:: 0.7183rrss r/�create_global_jinja_loader�App.create_global_jinja_loaders��&�d�+�+r1c�,�UcgURS5$)z�Returns ``True`` if autoescaping should be active for the given184template name. If no template name is given, returns `True`.185 186.. versionchanged:: 2.2187    Autoescaping is now enabled by default for ``.svg`` files.188 189.. versionadded:: 0.5190T)z.htmlz.htmz.xmlz.xhtmlz.svg)�endswith)r]�filenames  r/�select_jinja_autoescape�App.select_jinja_autoescapes������ � �!L�M�Mr1c� �URS$)arWhether debug mode is enabled. When using ``flask run`` to start the191development server, an interactive debugger will be shown for unhandled192exceptions, and the server will be reloaded when code changes. This maps to the193:data:`DEBUG` config key. It may not behave as expected if set late.194 195**Do not enable debug mode when deploying in production.**196 197Default: ``False``198r)rPrss r/�debug�	App.debug%s���{�{�7�#�#r1c�b�XRS'URScXRlgg)Nr�TEMPLATES_AUTO_RELOAD)rPrx�auto_reload)r]r.s  r/r�r�2s-��$���G���;�;�.�/�7�).�N�N�&�8r1c�&�URX5 g)a�Register a :class:`~flask.Blueprint` on the application. Keyword199arguments passed to this method will override the defaults set on the200blueprint.201 202Calls the blueprint's :meth:`~flask.Blueprint.register` method after203recording the blueprint in the application's :attr:`blueprints`.204 205:param blueprint: The blueprint to register.206:param url_prefix: Blueprint routes will be prefixed with this.207:param subdomain: Blueprint routes will match on this subdomain.208:param url_defaults: Blueprint routes will use these default values for209    view arguments.210:param options: Additional keyword arguments are passed to211    :class:`~flask.blueprints.BlueprintSetupState`. They can be212    accessed in :meth:`~flask.Blueprint.record` callbacks.213 214.. versionchanged:: 2.0.1215    The ``name`` option can be used to change the (pre-dotted)216    name the blueprint is registered with. This allows the same217    blueprint to be registered multiple times with unique names218    for ``url_for``.219 220.. versionadded:: 0.7221N)�register)r]�	blueprint�optionss   r/�register_blueprint�App.register_blueprint9s��4	���4�)r1c�6�URR5$)zXIterates over all blueprints by the order they were registered.222 223.. versionadded:: 0.11224)rW�valuesrss r/�iter_blueprints�App.iter_blueprintsUs��225���%�%�'�'r1c��Uc[U5nX%S'URSS5nUc[USS5=(d Sn[U[5(a[S5eUVs1sHowR
5iM nn[[USS55nUc
[USS5nUc0SU;a(URS	(aS226nURS5 OSnXh-nUR"U4SU0UD6n	XIlURRU	5 Ub@URRU5n227U228bX�:wa[SU35eX0RU'ggs snf)
N�endpoint�methods)�GETzYAllowed methods must be a list of strings, for example: @app.route(..., methods=["POST"])�required_methods��provide_automatic_options�OPTIONS�PROVIDE_AUTOMATIC_OPTIONSTFzDView function mapping is overwriting an existing endpoint function: )r�poprjr-�str�	TypeError�upper�setrP�add�url_rule_classr�rZ�view_functions�getrc)r]�ruler��	view_funcr�r�r��itemr��rule_obj�old_funcs           r/�add_url_rule�App.add_url_rule\s�����/�	�:�H�&�229���+�+�i��.��230�?��i��D�9�E�X�G��g�s�#�#��>��
�-4�4�G�D�:�:�<�G��4�&)���<N�PR�)S�%T��%�,�(/��6��)�%�%�,���'�D�K�K�8S�,T�,0�)� �$�$�Y�/�,1�)�	�#���&�&�t�H�W�H��H��-F�*�������"�� ��*�*�.�.�x�8�H��#��(=�$�+�+3�*�6���-6����)�!��55s�"Ec�^^�SUU4SjjnU$)a?A decorator that is used to register custom template filter.231You can specify a name for the filter, otherwise the function232name will be used. Example::233 234  @app.template_filter()235  def reverse(s):236      return s[::-1]237 238:param name: the optional name of the filter, otherwise the239             function name will be used.240c�(>�TRUTS9 U$�N)rp)�add_template_filter��frpr]s ��r/�	decorator�&App.template_filter.<locals>.decorator������$�$�Q�T�$�2��Hr1)r�r(�returnr(r��r]rpr�s`` r/�template_filter�App.template_filter�s��� 	�	��r1c�Z�XRRU=(d UR'g)z�Register a custom template filter.  Works exactly like the241:meth:`template_filter` decorator.242 243:param name: the optional name of the filter, otherwise the244             function name will be used.245N)rx�filters�__name__�r]r�rps   r/r��App.add_template_filter�s��67�����t�1�q�z�z�2r1c�^^�SUU4SjjnU$)a�A decorator that is used to register custom template test.246You can specify a name for the test, otherwise the function247name will be used. Example::248 249  @app.template_test()250  def is_prime(n):251      if n == 2:252          return True253      for i in range(2, int(math.ceil(math.sqrt(n))) + 1):254          if n % i == 0:255              return False256      return True257 258.. versionadded:: 0.10259 260:param name: the optional name of the test, otherwise the261             function name will be used.262c�(>�TRUTS9 U$r�)�add_template_testr�s ��r/r��$App.template_test.<locals>.decorator�s����"�"�1�4�"�0��Hr1)r�r*r�r*r�r�s`` r/�
template_test�App.template_test�s���.	�	��r1c�Z�XRRU=(d UR'g)z�Register a custom template test.  Works exactly like the263:meth:`template_test` decorator.264 265.. versionadded:: 0.10266 267:param name: the optional name of the test, otherwise the268             function name will be used.269N)rx�testsr�r�s   r/r��App.add_template_test�s��45�����T�/�Q�Z�Z�0r1c�^^�SUU4SjjnU$)awA decorator that is used to register a custom template global function.270You can specify a name for the global function, otherwise the function271name will be used. Example::272 273    @app.template_global()274    def double(n):275        return 2 * n276 277.. versionadded:: 0.10278 279:param name: the optional name of the global function, otherwise the280             function name will be used.281c�(>�TRUTS9 U$r�)�add_template_globalr�s ��r/r��&App.template_global.<locals>.decorator�r�r1)r�r)r�r)r�r�s`` r/�template_global�App.template_global�s���$	�	��r1c�Z�XRRU=(d UR'g)z�Register a custom template global function. Works exactly like the282:meth:`template_global` decorator.283 284.. versionadded:: 0.10285 286:param name: the optional name of the global function, otherwise the287             function name will be used.288N)rx�globalsr�r�s   r/r��App.add_template_global�s��67�����t�1�q�z�z�2r1c�<�URRU5 U$)aRegisters a function to be called when the application289context is popped. The application context is typically popped290after the request context for each request, at the end of CLI291commands, or after a manually pushed context ends.292 293.. code-block:: python294 295    with app.app_context():296        ...297 298When the ``with`` block exits (or ``ctx.pop()`` is called), the299teardown functions are called just before the app context is300made inactive. Since a request context typically also manages an301application context it would also be called when you pop a302request context.303 304When a teardown function was called because of an unhandled305exception it will be passed an error object. If an306:meth:`errorhandler` is registered, it will handle the exception307and the teardown will not receive it.308 309Teardown functions must avoid raising exceptions. If they310execute code that might fail they must surround that code with a311``try``/``except`` block and log any errors.312 313The return values of teardown functions are ignored.314 315.. versionadded:: 0.9316)rU�append�r]r�s  r/�teardown_appcontext�App.teardown_appcontext317s��>	
�&�&�-�-�a�0��r1c�<�URRU5 U$)zFRegisters a shell context processor function.318 319.. versionadded:: 0.11320)rVr�r�s  r/�shell_context_processor�App.shell_context_processor,s��	
�%�%�,�,�Q�/��r1c��UR[U55up4/UQSP7nUbUS4OSHVnUHMnURUUnU(dMURHn	UR	U	5n321U322cMU323s s s $ MO MX g)aReturn a registered error handler for an exception in this order:324blueprint handler for a specific code, app handler for a specific code,325blueprint handler for an exception class, app handler for an exception326class, or ``None`` if a suitable handler is not found.327Nr{)�_get_exc_class_and_code�type�error_handler_spec�__mro__r�)r]�erW�	exc_class�code�names�crp�handler_map�cls�handlers           r/�_find_error_handler�App._find_error_handler7s����6�6�t�A�w�?��	�#�*�#�d�#��!%�!1�$���w�>�A���"�5�5�d�;�A�>��"��$�,�,�C�)�o�o�c�2�G��*�&��	-�
�?�r1c���URS(agURSnUc'UR(a[U[5(agU(a[U[5$g)a�Checks if an HTTP exception should be trapped or not.  By default328this will return ``False`` for all exceptions except for a bad request329key error if ``TRAP_BAD_REQUEST_ERRORS`` is set to ``True``.  It330also returns ``True`` if ``TRAP_HTTP_EXCEPTIONS`` is set to ``True``.331 332This is called for all HTTP exceptions raised by a view function.333If it returns ``True`` for any exception the error handler for this334exception is not called and it shows up as regular exception in the335traceback.  This is helpful for debugging implicitly raised HTTP336exceptions.337 338.. versionchanged:: 1.0339    Bad request errors are not trapped by default in debug mode.340 341.. versionadded:: 0.8342�TRAP_HTTP_EXCEPTIONST�TRAP_BAD_REQUEST_ERRORSF)rPr�r-rr)r]r��trap_bad_requests   r/�trap_http_exception�App.trap_http_exceptionPsW��"�;�;�-�.���;�;�'@�A��
�$��343�344��1�0�1�1����a��,�,�r1c��g)z�This is called to figure out if an error should be ignored345or not as far as the teardown system is concerned.  If this346function returns ``True`` then the teardown handlers will not be347passed the error.348 349.. versionadded:: 0.10350Fr�)r]�errors  r/�should_ignore_error�App.should_ignore_errorss��r1c�,�[UUURS9$)aCreate a redirect response object.351 352This is called by :func:`flask.redirect`, and can be called353directly as well.354 355:param location: The URL to redirect to.356:param code: The status code for the redirect.357 358.. versionadded:: 2.2359    Moved from ``flask.redirect``, which calls this method.360)r�r)�_wz_redirectr?)r]�locationr�s   r/r�App.redirect}s ������(�(�361�	362r1c363���SnSU;a0[U[[URS5S555nUH2nX@R;dMURUHnU"X5 M
 M4 g)z�Injects the URL defaults for the given endpoint directly into364the values dictionary passed.  This is used internally and365automatically called on URL building.366 367.. versionadded:: 0.7368r{�.rN)r�reversedr�369rpartition�url_default_functions)r]r�r�r�rp�funcs      r/�inject_url_defaults�App.inject_url_defaults�sq��)0���(�?���x� 5�h�6I�6I�#�6N�q�6Q� R�S��E��D��1�1�1� �6�6�t�<�D���*�=�r1c��URHnU"XU5nUbUs $M U[R"5SLaeUe![a
nUnSnAMHSnAff=f)a?Called by :meth:`.url_for` if a370:exc:`~werkzeug.routing.BuildError` was raised. If this returns371a value, it will be returned by ``url_for``, otherwise the error372will be re-raised.373 374Each function in :attr:`url_build_error_handlers` is called with375``error``, ``endpoint`` and ``values``. If a function returns376``None`` or raises a ``BuildError``, it is skipped. Otherwise,377its return value is returned by ``url_for``.378 379:param error: The active ``BuildError`` being handled.380:param endpoint: The endpoint being built.381:param values: The keyword arguments passed to ``url_for``.382Nr)rTr	rk�exc_info)r]rr�r�r��rvr�s       r/�handle_url_build_error�App.handle_url_build_error�sj��"�4�4�G�
��U�f�5��383�>��I�"�5��C�L�L�N�1�%�%������
����
�s�	A�384A�
A�A)r\rRrWrPrXrNrSrVr[rUrTrZ)	N�staticNFF�	templatesNFN)rAr�rC�385str | NonerB�str | os.PathLike[str] | Noner^rrF�boolr[rrDrrNrr_rrErr��None)rdr�r�r)r�r�)r�zlogging.Logger)r�r)F)r�rr�r)r�r)r�r)r�rr�r)r�r)r.rr�r)r�r$r��t.Anyr�r)r�zt.ValuesView[Blueprint])NNN)r�r�r�rr�zft.RouteCallable | Noner�zbool | Noner�rr�rr{)rprr�z2t.Callable[[T_template_filter], T_template_filter])r�zft.TemplateFilterCallablerprr�r)rprr�z.t.Callable[[T_template_test], T_template_test])r�zft.TemplateTestCallablerprr�r)rprr�z2t.Callable[[T_template_global], T_template_global])r�zft.TemplateGlobalCallablerprr�r)r�r'r�r')r�r%r�r%)r��	ExceptionrWz	list[str]r�zft.ErrorHandlerCallable | None)r�rr�r)rzBaseException | Noner�r)i.)rr�r��intr��BaseResponse)r�r�r�r:r�r)rr	r�r�r�r:r�r�)Er��386__module__�__qualname__�__firstlineno__�__doc__rr�r�jinja_environmentr�app_ctx_globals_classrr�rr�testing�t�Unionr��bytes�387secret_keyrr0�permanent_session_lifetimerr9�__annotations__r;rr�r388rYr<r=rHrer
rprtrxrwrOrQrIr�r��propertyr��setterr!r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr�__static_attributes__�
__classcell__)r`s@r/r3r3;s���^�P�M�389$�� +���L��d�#�I�.�G�!�����e�T�)9�!:�;�L�I�J�"1��!;�$�%�"��390/B��+�A�	�(')�M�#�(��N��M�37��/�6�:>��6�=�$�$�"�"�391'+�7?�"&�#�#(�9D�$(�).� $�A(��A(�$�A(�5�	A(�392 �A(��
A(�!�A(�7�A(�"�A(�#'�A(��A(�393�A(�A(�F394�� �� � �#��#�4�/��/�$�6� 395$�D�,�N��396$��397$��\�\�/��/��*��*�6(�� $�-1�15�86��86��86�+�	86�398$/�86��
86�399�86��86�t�!%����	;����*�?C�	7�*�	7�2<�	7�	
�	7��	7��!%����	7����8�=A�5�(�5�0:�5�	
�5��5��!%����	;����.�?C�7�*�7�2<�7�	
�7��7�����B��*��	"�������(1��	'��2!�F�400�$+�* �� �+.� �8H� �	� � r1r3)r.ztimedelta | int | Noner�ztimedelta | None)D�401__future__r�loggingrJrkrr'�datetimer�	itertoolsr�werkzeug.exceptionsrrr�werkzeug.routingr	r402r�werkzeug.sansio.responser�werkzeug.utilsr
rr��ftrPrr�ctxr�helpersrr�
json.providerrrr�403templatingrr�scaffoldrrr r!�
TYPE_CHECKING�werkzeug.wrappersrr&r"r#rWr$�TypeVar�ShellContextProcessorCallabler%�TeardownCallabler'�TemplateFilterCallabler(�TemplateGlobalCallabler)�TemplateTestCallabler*r0r3r�r1r/�<module>rHs��"��	�404����'�*�2�'� �!�-�*�3���$� �+�$�/�(�#�/�$�.�"��!��?�?�:�%�(�%��I�I��r�'G�'G����Y�Y�|�2�+>�+>�
?�405��I�I�1��9R�9R�S���I�I�1��9R�9R�S���)�)�-�R�5L�5L�M��$�I�(�Ir1
codekingpro/portable-devtools · Team Ai