Sindbad~EG File Manager
�
'ٜg� � � � d Z ddlmZ ddlZddlZddlZddlZddl m
Z
ddlmZ ej rddlmZ ddlmZ ddlmZ G d � d
� Zy# e
$ r ddlmZ Y �6w xY w)a9
Application Profiler
====================
This module provides a middleware that profiles each request with the
:mod:`cProfile` module. This can help identify bottlenecks in your code
that may be slowing down your application.
.. autoclass:: ProfilerMiddleware
:copyright: 2007 Pallets
:license: BSD-3-Clause
� )�annotationsN)�Stats)�Profile)�
StartResponse)�WSGIApplication)�WSGIEnvironmentc �f � e Zd ZdZej
ddddf dd�Z d d�Zy)
�ProfilerMiddlewarea Wrap a WSGI application and profile the execution of each
request. Responses are buffered so that timings are more exact.
If ``stream`` is given, :class:`pstats.Stats` are written to it
after each request. If ``profile_dir`` is given, :mod:`cProfile`
data files are saved to that directory, one file per request.
The filename can be customized by passing ``filename_format``. If
it is a string, it will be formatted using :meth:`str.format` with
the following fields available:
- ``{method}`` - The request method; GET, POST, etc.
- ``{path}`` - The request path or 'root' should one not exist.
- ``{elapsed}`` - The elapsed time of the request in milliseconds.
- ``{time}`` - The time of the request.
If it is a callable, it will be called with the WSGI ``environ`` and
be expected to return a filename string. The ``environ`` dictionary
will also have the ``"werkzeug.profiler"`` key populated with a
dictionary containing the following fields (more may be added in the
future):
- ``{elapsed}`` - The elapsed time of the request in milliseconds.
- ``{time}`` - The time of the request.
:param app: The WSGI application to wrap.
:param stream: Write stats to this stream. Disable with ``None``.
:param sort_by: A tuple of columns to sort stats by. See
:meth:`pstats.Stats.sort_stats`.
:param restrictions: A tuple of restrictions to filter stats by. See
:meth:`pstats.Stats.print_stats`.
:param profile_dir: Save profile data files to this directory.
:param filename_format: Format string for profile data file names,
or a callable returning a name. See explanation above.
.. code-block:: python
from werkzeug.middleware.profiler import ProfilerMiddleware
app = ProfilerMiddleware(app)
.. versionchanged:: 3.0
Added the ``"werkzeug.profiler"`` key to the ``filename_format(environ)``
parameter with the ``elapsed`` and ``time`` fields.
.. versionchanged:: 0.15
Stats are written even if ``profile_dir`` is given, and can be
disable by passing ``stream=None``.
.. versionadded:: 0.15
Added ``filename_format``.
.. versionadded:: 0.9
Added ``restrictions`` and ``profile_dir``.
)�time�calls� Nz/{method}.{path}.{elapsed:.0f}ms.{time:.0f}.profc �X � || _ || _ || _ || _ || _ || _ y �N)�_app�_stream�_sort_by�
_restrictions�_profile_dir�_filename_format)�self�app�stream�sort_by�restrictions�profile_dir�filename_formats �G/usr/local/lib/python3.12/site-packages/werkzeug/middleware/profiler.py�__init__zProfilerMiddleware.__init__Y s1 � � �� ������
�)���'��� /��� c � � ����� g �d��fd� �d���� fd�}t � }t j � }|j |� dj �� }t j � |z
}� j ��t � j � r/|dz t j � d��d<