Metadata-Version: 2.1
Name: wsgi_lineprof
Version: 0.14.0
Summary: WSGI middleware for line-by-line profiling
Home-page: https://github.com/ymyzk/wsgi_lineprof
Author: Yusuke Miyazaki
Author-email: miyazaki.dev@gmail.com
License: MIT
Project-URL: Bug Reports, https://github.com/ymyzk/wsgi_lineprof/issues
Project-URL: Source, https://github.com/ymyzk/wsgi_lineprof
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX
Classifier: Operating System :: Unix
Classifier: Programming Language :: C
Classifier: Programming Language :: Cython
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Middleware
Classifier: Topic :: Software Development
Classifier: Topic :: System :: Benchmark
Requires-Python: >=3.6
Provides-Extra: benchmark
Provides-Extra: benchmark-deps
Provides-Extra: build
Provides-Extra: docs
Provides-Extra: test
License-File: LICENSE

wsgi_lineprof
=============
.. image:: https://badge.fury.io/py/wsgi-lineprof.svg
   :target: https://pypi.python.org/pypi/wsgi-lineprof/
   :alt: PyPI version
.. image:: https://img.shields.io/pypi/pyversions/wsgi_lineprof.svg
   :target: https://pypi.python.org/pypi/wsgi-lineprof/
   :alt: PyPI Supported Python Versions
.. image:: https://github.com/ymyzk/wsgi_lineprof/workflows/Tests/badge.svg
   :target: https://github.com/ymyzk/wsgi_lineprof/actions?workflow=Tests
   :alt: GitHub Actions (Tests)
.. image:: https://readthedocs.org/projects/wsgi_lineprof/badge/?version=latest
   :target: https://wsgi_lineprof.readthedocs.io/
   :alt: Documentation Status

**wsgi_lineprof** is a WSGI middleware for line-by-line profiling.

wsgi_lineprof has the following features:

* *WSGI middleware*: It can be integrated with any WSGI-compatible applications and frameworks including Django, Pyramid, Flask, Bottle, and more.
* *Easily pluggable*: All configurations for profiling in one place. Users don't need to make any changes to their application.

wsgi_lineprof is *not recommended to be used in production environment* because of the overhead of profiling.

At a Glance
-----------
You can use wsgi_lineprof as a WSGI middleware of existing applications.

::

   $ pip install wsgi_lineprof

Apply wsgi_lineprof to the existing WSGI web application:

.. code-block:: python

   from wsgi_lineprof.middleware import LineProfilerMiddleware
   app = LineProfilerMiddleware(app)

Start the web application and access the application.
wsgi_lineprof writes results to stdout every time an HTTP request is processed by default.
You can see the output like this in your console:

::

   ... (snip) ...

   File: ./app.py
   Name: index
   Total time: 1.00518 [sec]
     Line      Hits         Time  Code
   ===================================
        9                         @app.route('/')
       10                         def index():
       11         1      1005175      time.sleep(1)
       12         1            4      return "Hello world!!"

   ... (snip) ...

Also, you can check the result on your web browser by accessing the special endpoint ``/wsgi_lineprof/``.

Please check `the documentation <https://wsgi-lineprof.readthedocs.io/en/latest/index.html>`_ for more details.


