CasperSecurity
o
_�Kj,Z � @ s� d dl mZ d dlZd dlZd dlZd dlZd dlmZ d dl m
Z
d dl mZ d dlZ
d dlmZ d dlmZ d dlmZ d d
lmZ d dlmZ d dlmZ d d
lmZ d dlmZ d dlmZ ejrkd dlmZ djdd�Z dkdldd�Z!dmdd�Z"dnd d!�Z#ddddd"�dod,d-�Z$ dpdqd4d5�Zdrd9d:�Zdsd=d>�Z%dtdudBdC�Z& EdvdwdJdK�Z'dxdMdN�Z( D dydzd[d\�Z)d{d`da�Z*d|dcdd�Z+e
dde�d}dhdi��Z,dS )~� )�annotationsN)�datetime)� lru_cache)�update_wrapper)�abort)�redirect)�Response� )�_cv_request)�current_app)�request)�request_ctx)�session)�message_flashed�return�boolc C s t j�d�} t| o| �� dv�S )z�Get whether debug mode should be enabled for the app, indicated by the
:envvar:`FLASK_DEBUG` environment variable. The default is ``False``.
�FLASK_DEBUG> �0�no�false)�os�environ�getr �lower)�val� r �@/opt/hikvison/venv/lib/python3.10/site-packages/flask/helpers.py�get_debug_flag s r T�defaultc C s t j�d�}|s
| S |�� dv S )z�Get whether the user has disabled loading default dotenv files by
setting :envvar:`FLASK_SKIP_DOTENV`. The default is ``True``, load
the files.
:param default: What to return if the env var isn't set.
�FLASK_SKIP_DOTENV)r r r )r r r r )r r r r r �get_load_dotenv# s r �generator_or_function�<t.Iterator[t.AnyStr] | t.Callable[..., t.Iterator[t.AnyStr]]�t.Iterator[t.AnyStr]c sX zt ��� W n ty d�fdd�}t|�� Y S w d� fdd �}|� }t|� |S )
a� Request contexts disappear when the response is started on the server.
This is done for efficiency reasons and to make it less likely to encounter
memory leaks with badly written WSGI middlewares. The downside is that if
you are using streamed responses, the generator cannot access request bound
information any more.
This function however can help you keep the context around for longer::
from flask import stream_with_context, request, Response
@app.route('/stream')
def streamed_response():
@stream_with_context
def generate():
yield 'Hello '
yield request.args['name']
yield '!'
return Response(generate())
Alternatively it can also be used around a specific generator::
from flask import stream_with_context, request, Response
@app.route('/stream')
def streamed_response():
def generate():
yield 'Hello '
yield request.args['name']
yield '!'
return Response(stream_with_context(generate()))
.. versionadded:: 0.9
�args�t.Any�kwargsr c s � | i |��}t |�S )N)�stream_with_context)r$ r&