Skip to main content

Call stack profiler for Python. Shows you why your code is slow!

Project description

pyinstrument

PyPI version .github/workflows/test.yml Build wheels

Documentation

Screenshot

Pyinstrument is a Python profiler. A profiler is a tool to help you optimize your code - make it faster. To get the biggest speed increase you should focus on the slowest part of your program. Pyinstrument helps you find it!

Installation

pip install pyinstrument

Pyinstrument supports Python 3.7+.

To run Pyinstrument from a git checkout, there's a build step. Take a look at Contributing for more info.

Documentation

To learn how to use pyinstrument, or to check the reference, head to the documentation.

Known issues

  • Profiling code inside a Docker container can cause some strange results, because the gettimeofday syscall that pyinstrument uses is slow in that environment. See #83
  • When using pyinstrument script.py where script.py contains a class serialized with pickle, you might encounter errors because the serialisation machinery doesn't know where __main__ is. See this issue for workarounds

Changelog

v4.0.0

  • Async support! Pyinstrument now detects when an async task hits an await, and tracks time spent outside of the async context under this await.

    So, for example, here's a simple script with an async task that does a sleep:

    import asyncio
    from pyinstrument import Profiler
    
    async def main():
        p = Profiler(async_mode='disabled')
    
        with p:
            print('Hello ...')
            await asyncio.sleep(1)
            print('... World!')
    
        p.print()
    
    asyncio.run(main())
    

    Before Pyinstrument 4.0.0, we'd see only time spent in the run loop, like this:

      _     ._   __/__   _ _  _  _ _/_   Recorded: 18:33:03  Samples:  2
     /_//_/// /_\ / //_// / //_'/ //     Duration: 1.006     CPU time: 0.001
    /   _/                      v3.4.2
    
    Program: examples/async_example_simple.py
    
    1.006 _run_once  asyncio/base_events.py:1784
    └─ 1.005 select  selectors.py:553
          [3 frames hidden]  selectors, <built-in>
             1.005 kqueue.control  <built-in>:0
    

    Now, with pyinstrument 4.0.0, we get:

      _     ._   __/__   _ _  _  _ _/_   Recorded: 18:30:43  Samples:  2
     /_//_/// /_\ / //_// / //_'/ //     Duration: 1.007     CPU time: 0.001
    /   _/                      v4.0.0
    
    Program: examples/async_example_simple.py
    
    1.006 main  async_example_simple.py:4
    └─ 1.005 sleep  asyncio/tasks.py:641
          [2 frames hidden]  asyncio
             1.005 [await]
    

    For more information, check out the async profiling documentation and the Profiler.async_mode property.

  • Pyinstrument has a documentation site, including full Python API docs!

v3.4.2

  • Fix a bug that caused --show, --show-regex, --show-all to be ignored on the command line.

v3.4.1

  • Under-the-hood modernisation

v3.4.0

  • Added timeline option (boolean) to Profiler methods output_html() and open_in_browser().

v3.3.0

  • Fixed issue with pyinstrument -m module, where pyinstrument wouldn't find modules in the current directory.
  • Dropped support for Python 2.7 and 3.5. Old versions will remain available on PyPI, and pip should choose the correct one automatically.

v3.2.0

  • Added the ability to track time in C functions. Minor note - Pyinstrument will record time spent C functions as 'leaf' functions, due to a limitation in how Python records frames. Python -> C -> Python is recorded as Python -> Python, but Python -> Python -> C will be attributed correctly. (#103)

v3.1.2

  • Fix <__array_function__ internals> frames appearing as app code in reports

v3.1.1

  • Added support for timeline mode on HTML and JSON renderers
  • Released as a tarball as well as a universal wheel

v3.1.0

  • Added PYINSTRUMENT_SHOW_CALLBACK option on the Django middleware to add a condition to showing the profile (could be used to run pyinstrument on a live server!)
  • Fixed bug in the Django middleware where file would not be written because of a unicode error

v3.0.3

  • Fixed bug with the Django middleware on Windows where profiling would fail because we were trying to put an illegal character '?' in the profile path. (#66)

v3.0.2

  • Add --show and --show-regex options, to mark certain files to be displayed. This helps to profile inside specific modules, while hiding others. For example, pyinstrument --show '*/sympy/*' script.py.

v3.0.1

  • Fix #60: pass all arguments after -m module_name to the called module
  • Fix crash during HTML/JSON output when no frames were captured.

v3.0.0

  • Pyinstrument will now hide traces through libraries that you're using by default. So instead of showing you loads of frames going through the internals of something external e.g. urllib, it lets you focus on your code.

    Before After
    image image

    To go back to the old behaviour, use --show-all on the command line.

  • 'Entry' frames of hidden groups are shown, so you know which call is the problem

  • Really slow frames in the groups are shown too, e.g. the 'read' call on the socket

  • Application code is highlighted in the console

  • Additional metrics are shown at the top of the trace - timestamp, number of samples, duration, CPU time

  • Hidden code is controlled by the --hide or --hide-regex options - matching on the path of the code files.

      --hide=EXPR           glob-style pattern matching the file paths whose
                            frames to hide. Defaults to '*/lib/*'.
      --hide-regex=REGEX    regex matching the file paths whose frames to hide.
                            Useful if --hide doesn't give enough control.
    
  • Outputting a timeline is supported from the command line.

      -t, --timeline        render as a timeline - preserve ordering and don't
                            condense repeated calls
    
  • Because there are a few rendering options now, you can load a previous profiling session using --load-prev - pyinstrument keeps the last 10 sessions.

  • Hidden groups can also call back into application code, that looks like this:

    image

  • (internal) When recording timelines, frame trees are completely linear now, allowing for the creation of super-accurate frame charts.

  • (internal) The HTML renderer has been rewritten as a Vue.js app. All the console improvements apply to the HTML output too, plus it's interactive.

  • (internal) A lot of unit and integration tests added!

Yikes! See #49 for the gory details. I hope you like it.

v2.3.0

  • Big refactor!
    • Recorders have been removed. The frame recording is now internal to the Profiler object. This means the 'frame' objects are more general-purpose, which paves the way for...
    • Processors! These are functions that mutate the tree to sculpt the output. They are used by the renderers to filter the output to the correct form. Now, instead of a time-aggregating recorder, the profiler just uses timeline-style recording (this is lower-overhead anyway) and the aggregation is done as a processing step.
    • The upshot of this is that it's now way easier to alter the tree to filter stuff out, and do more advanced things like combining frames that we don't care about. More features to come that use this in v3.0!
  • Importlib frames are removed - you won't see them at all. Their children are retained, so imports are just transparent.
  • Django profile file name is now limited to a hundred of characters (#50)
  • Fix bug with --html option (#53)
  • Add --version command line option

v2.2.1

  • Fix crash when using on the command line.

v2.2.0

  • Added support for JSON output. Use pyinstrument --renderer=json scriptfile.py. PR

  • @iddan has put together an interactive viewer using the JSON output!

    image

  • When running pyinstrument --html and you don't pipe the output to a file, pyinstrument will write the console output to a temp file and open that in a browser.

v2.1.0

  • Added support for running modules with pyinstrument via the command line. The new syntax is the -m flag e.g. pyinstrument -m module_name! PR

v2.0.4

v2.0.3

  • Pyinstrument can now be used in a with block.

    For example:

    profiler = pyinstrument.Profiler()
    with profiler:
        # do some work here...
    print(profiler.output_text())
    
  • Middleware fix for older versions of Django

v2.0.2

  • Fix for max recursion error when used to profile programs with a lot of frames on the stack.

v2.0.1

  • Ensure license is included in the sdist.

v2.0.0

  • Pyinstrument uses a new profiling mode. Rather than using signals, pyintrument uses a new statistical profiler built on PyEval_SetProfile. This means no more main thread restriction, no more IO errors when using Pyinstrument, and no need for a separate more 'setprofile' mode!

  • Renderers. Users can customize Pyinstrument to use alternative renderers with the renderer argument on Profiler.output(), or using the --renderer argument on the command line.

  • Recorders. To support other use cases of Pyinstrument (e.g. flame charts), pyinstrument now has a 'timeline' recorder mode. This mode records captured frames in a linear way, so the program execution can be viewed on a timeline.

v0.13

  • pyinstrument command. You can now profile python scripts from the shell by running $ pyinstrument script.py. This is now equivalent to python -m pyinstrument. Thanks @asmeurer!

v0.12

  • Application code is highlighted in HTML traces to make it easier to spot

  • Added PYINSTRUMENT_PROFILE_DIR option to the Django interface, which will log profiles of all requests to a file the specified folder. Useful for profiling API calls.

  • Added PYINSTRUMENT_USE_SIGNAL option to the Django interface, for use when signal mode presents problems.

Contributing

To setup a dev environment:

virtualenv --python=python3 env
. env/bin/activate
pip install -r requirements-dev.txt

To get some sample output:

pyinstrument examples/wikipedia_article_word_count.py

To run the tests:

pytest

The HTML renderer Vue.js app

The HTML renderer works by embedding a JSON representation of the sample with a Javascript 'bundle' inside an HTML file that can be viewed in any web browser.

To edit the html renderer style, do:

cd html_renderer
npm ci
npm run serve

When launched without a top-level window.profileSession object, it will fetch a sample profile so you can work with it.

To compile the JS app and bundle it back into the pyinstrument python tool:

bin/build_js_bundle.py [--force]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyinstrument-4.0.2.tar.gz (361.5 kB view details)

Uploaded Source

Built Distributions

pyinstrument-4.0.2-cp39-cp39-win_amd64.whl (97.7 kB view details)

Uploaded CPython 3.9 Windows x86-64

pyinstrument-4.0.2-cp39-cp39-win32.whl (97.0 kB view details)

Uploaded CPython 3.9 Windows x86

pyinstrument-4.0.2-cp39-cp39-manylinux2010_x86_64.whl (112.2 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

pyinstrument-4.0.2-cp39-cp39-manylinux2010_i686.whl (111.6 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ i686

pyinstrument-4.0.2-cp39-cp39-manylinux1_x86_64.whl (112.2 kB view details)

Uploaded CPython 3.9

pyinstrument-4.0.2-cp39-cp39-manylinux1_i686.whl (111.6 kB view details)

Uploaded CPython 3.9

pyinstrument-4.0.2-cp39-cp39-macosx_10_9_x86_64.whl (94.1 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

pyinstrument-4.0.2-cp39-cp39-macosx_10_9_universal2.whl (98.5 kB view details)

Uploaded CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)

pyinstrument-4.0.2-cp38-cp38-win_amd64.whl (97.7 kB view details)

Uploaded CPython 3.8 Windows x86-64

pyinstrument-4.0.2-cp38-cp38-win32.whl (97.0 kB view details)

Uploaded CPython 3.8 Windows x86

pyinstrument-4.0.2-cp38-cp38-manylinux2010_x86_64.whl (113.0 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

pyinstrument-4.0.2-cp38-cp38-manylinux2010_i686.whl (112.3 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ i686

pyinstrument-4.0.2-cp38-cp38-manylinux1_x86_64.whl (113.0 kB view details)

Uploaded CPython 3.8

pyinstrument-4.0.2-cp38-cp38-manylinux1_i686.whl (112.3 kB view details)

Uploaded CPython 3.8

pyinstrument-4.0.2-cp38-cp38-macosx_10_9_x86_64.whl (94.1 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

pyinstrument-4.0.2-cp37-cp37m-win_amd64.whl (97.6 kB view details)

Uploaded CPython 3.7m Windows x86-64

pyinstrument-4.0.2-cp37-cp37m-win32.whl (96.9 kB view details)

Uploaded CPython 3.7m Windows x86

pyinstrument-4.0.2-cp37-cp37m-manylinux2010_x86_64.whl (112.5 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64

pyinstrument-4.0.2-cp37-cp37m-manylinux2010_i686.whl (111.9 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ i686

pyinstrument-4.0.2-cp37-cp37m-manylinux1_x86_64.whl (112.5 kB view details)

Uploaded CPython 3.7m

pyinstrument-4.0.2-cp37-cp37m-manylinux1_i686.whl (111.9 kB view details)

Uploaded CPython 3.7m

pyinstrument-4.0.2-cp37-cp37m-macosx_10_9_x86_64.whl (94.1 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

File details

Details for the file pyinstrument-4.0.2.tar.gz.

File metadata

  • Download URL: pyinstrument-4.0.2.tar.gz
  • Upload date:
  • Size: 361.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for pyinstrument-4.0.2.tar.gz
Algorithm Hash digest
SHA256 abdd80708f37d0d64b43133b494c773187ef0d970a8c0bce42b3e21f4701b7eb
MD5 be00a38d594cb301a4535d5a07372c01
BLAKE2b-256 ab24635b17740b29dcf1a0c7b7013e0a87e4d5b786ce5803bf94afcb0976bbba

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.2-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: pyinstrument-4.0.2-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 97.7 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for pyinstrument-4.0.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 d313be8b25125709f5046f52a3ff0c852bb0b8b22611cec16c0b5df02dbf3a4e
MD5 7a93903e2d2eed9ec20c397de7a408aa
BLAKE2b-256 2d81fa845e15f62c58e5dd03929307f397dbd47a5cb2a2e26949410dc28e11a9

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.2-cp39-cp39-win32.whl.

File metadata

  • Download URL: pyinstrument-4.0.2-cp39-cp39-win32.whl
  • Upload date:
  • Size: 97.0 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for pyinstrument-4.0.2-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 4b8cfef48ed51eacaa41a7bedda6180ff6a70431c96f2f06d7620f0e7a1d6867
MD5 525957c839ee3c5c45ab368ee42657bd
BLAKE2b-256 04dfc0fbbb4f37a8e00fba06cf04cf15d062c484859a7f4b97415419f5ea0e5b

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.2-cp39-cp39-manylinux2010_x86_64.whl.

File metadata

  • Download URL: pyinstrument-4.0.2-cp39-cp39-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 112.2 kB
  • Tags: CPython 3.9, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for pyinstrument-4.0.2-cp39-cp39-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 ae41d5d2d5426a1e4b2b3947d6975353ee8201e02345c2359df5ea8a5bb572f3
MD5 8b27c2d6f2fe17a7711093cb886c4cda
BLAKE2b-256 29f754b370b3e4f83b16924c69e43d3dae0e7851423c85f39845994b58f0dc19

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.2-cp39-cp39-manylinux2010_i686.whl.

File metadata

  • Download URL: pyinstrument-4.0.2-cp39-cp39-manylinux2010_i686.whl
  • Upload date:
  • Size: 111.6 kB
  • Tags: CPython 3.9, manylinux: glibc 2.12+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for pyinstrument-4.0.2-cp39-cp39-manylinux2010_i686.whl
Algorithm Hash digest
SHA256 60aa8e132ace6345425926dce07b5a78f2c3821104548a9589d0c9c0c3dcff56
MD5 5f36ee1a4546835e0eeb67352f53eb56
BLAKE2b-256 262f94025d6ff2977f59770707fc76960a340899ee75293d7db10d5841fdb248

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.2-cp39-cp39-manylinux1_x86_64.whl.

File metadata

  • Download URL: pyinstrument-4.0.2-cp39-cp39-manylinux1_x86_64.whl
  • Upload date:
  • Size: 112.2 kB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for pyinstrument-4.0.2-cp39-cp39-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 285d94cb94a0165fb03ea14025a1d52f4af34ffd07a2eeeb842cff730566771c
MD5 1965a6162209c2d5f9e9eed59321ac9f
BLAKE2b-256 94f782d179c6adf97008691666f2a151b569d25ee4315b47be8b1ce190b86c79

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.2-cp39-cp39-manylinux1_i686.whl.

File metadata

  • Download URL: pyinstrument-4.0.2-cp39-cp39-manylinux1_i686.whl
  • Upload date:
  • Size: 111.6 kB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for pyinstrument-4.0.2-cp39-cp39-manylinux1_i686.whl
Algorithm Hash digest
SHA256 5f04c7175fab14022204895b01f7d2774a049f843be789824fc648c3a3aa0801
MD5 e15f1bb01a74a2c0cb55b7001f5861bb
BLAKE2b-256 0168fe24cab15612dfe97ec6569212ca9f010f988c462d16b26e2999ba8bcbe6

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.2-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: pyinstrument-4.0.2-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 94.1 kB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for pyinstrument-4.0.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 28a5ca7248a4806e94df8e60cb289f9726124f62b4a7a406c9bc003236ec3861
MD5 860c73aab3a485832b2509dd7eca25d9
BLAKE2b-256 43730479d501dfe20138bc20d4682921060a6e96ed9d4df02f3d80addd698d78

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.2-cp39-cp39-macosx_10_9_universal2.whl.

File metadata

  • Download URL: pyinstrument-4.0.2-cp39-cp39-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 98.5 kB
  • Tags: CPython 3.9, macOS 10.9+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for pyinstrument-4.0.2-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 f5ed5e6764a250d0cfcfa1dd67c0d5e44cf23633236c561977835b9961326d23
MD5 e553138f9ffc0de1f9c014347eb5d2a8
BLAKE2b-256 20128f9f69c53d524ed6496e1c7acc5d71f11a341e2894ac616bf0279b527610

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.2-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: pyinstrument-4.0.2-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 97.7 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for pyinstrument-4.0.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 8b173d7c31777a0e81d35e16bbb9b8a7bf2da14e0bc8f3a4a32c31ef9ca2ae14
MD5 d4dee5e770281ec7d419f470146735e6
BLAKE2b-256 8656504abdcfa2a5da23dd33f596ca9d28252bcee5995fcec08e0598da1f7b45

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.2-cp38-cp38-win32.whl.

File metadata

  • Download URL: pyinstrument-4.0.2-cp38-cp38-win32.whl
  • Upload date:
  • Size: 97.0 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for pyinstrument-4.0.2-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 434b29f278ef7e35761b926751df6963bd56dd6f7ff592d683bfc1737895751b
MD5 78b2d9735418627c7bbede935477ff09
BLAKE2b-256 bf36869cbfead4b3c0783ebb54f7348a2c89926273f56558342912b2a89d5aae

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.2-cp38-cp38-manylinux2010_x86_64.whl.

File metadata

  • Download URL: pyinstrument-4.0.2-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 113.0 kB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for pyinstrument-4.0.2-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 56820782228c5d2fd56c5b71276930880ff44d3b5c629afe09f46fcc1a8ecbb3
MD5 60f8e6cd959f24ae179d5ffa5654fffe
BLAKE2b-256 9f6b482316848e85f7ed8d7e8798e3ccab73ec4daf7d84236808a907b24fcfc5

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.2-cp38-cp38-manylinux2010_i686.whl.

File metadata

  • Download URL: pyinstrument-4.0.2-cp38-cp38-manylinux2010_i686.whl
  • Upload date:
  • Size: 112.3 kB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for pyinstrument-4.0.2-cp38-cp38-manylinux2010_i686.whl
Algorithm Hash digest
SHA256 70614f1b4d82254de7270c954ba73311d91973cbc0e72e12ea5cf8af243b9cae
MD5 9b060ab2624bbcc57d28da591d6ecf7e
BLAKE2b-256 76bcd00a22022b3b7d88cb988b6e98883a91e12d1300ef1159c7c2d8ea2c994a

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.2-cp38-cp38-manylinux1_x86_64.whl.

File metadata

  • Download URL: pyinstrument-4.0.2-cp38-cp38-manylinux1_x86_64.whl
  • Upload date:
  • Size: 113.0 kB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for pyinstrument-4.0.2-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 d848016ca230fe2d2a968f56c705329dbbe87a2664b563c1754f92627b4a8b14
MD5 bbdbdef9f91448a289545f3d1720eb5a
BLAKE2b-256 244006bdb87d5ee791d3e985c303160e9f813344ebbfe2a9050fe624495275a6

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.2-cp38-cp38-manylinux1_i686.whl.

File metadata

  • Download URL: pyinstrument-4.0.2-cp38-cp38-manylinux1_i686.whl
  • Upload date:
  • Size: 112.3 kB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for pyinstrument-4.0.2-cp38-cp38-manylinux1_i686.whl
Algorithm Hash digest
SHA256 f78d6bf6774fbd97697276ef9864b205ebca03682de3ddac4f23426f70550e82
MD5 d1fefa5eb6de4c2cbeac29e16fc8fa7d
BLAKE2b-256 7aa4c8913bb6422eaa4c1152f88e3ab86320eb196cbc73b5f197ab3a3476590d

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.2-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: pyinstrument-4.0.2-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 94.1 kB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for pyinstrument-4.0.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6ffd74277facd9b1c263ee0bb9e367b104cf52d5572b5b07d5095e6ab9305b44
MD5 c8d0495f056a2ccc2fd7b15b0a62a52d
BLAKE2b-256 d81158f409b54c43c3d06b018aef7c09d3d433d4c8ab136bd50f0fd73c55e3c7

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.2-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: pyinstrument-4.0.2-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 97.6 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for pyinstrument-4.0.2-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 9109e27d00fe56a7d0f00c92baa8c087e2649c258556c9cd46881bd747051484
MD5 48fd4041ca079f5eaa5f8aad0f40f9ad
BLAKE2b-256 7f4de38fc5a570c0110117c01342e78186440fef339f46cce5b22068ee093a4e

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.2-cp37-cp37m-win32.whl.

File metadata

  • Download URL: pyinstrument-4.0.2-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 96.9 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for pyinstrument-4.0.2-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 deb51666933b95ca01f993d5ddb6a60373e400fb8b95a70b9ac56a6dff4f86dc
MD5 d5686f8c39cb90b926c8df0c02737ace
BLAKE2b-256 b59cb2fb2ac2b745fad809ae6733458841963166ee79aa6f5ea7b469fe703b80

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.2-cp37-cp37m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: pyinstrument-4.0.2-cp37-cp37m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 112.5 kB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for pyinstrument-4.0.2-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 1883f6a4f39de3c924f8efa36ef18a5043c47a75923c3bf297e4027ed2e5b28e
MD5 32147c3bba95165c622870b6ccab8295
BLAKE2b-256 e10fbb30b552c6ec73be03c3c31db81a293df74a512a325684ad24f9c12e40d3

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.2-cp37-cp37m-manylinux2010_i686.whl.

File metadata

  • Download URL: pyinstrument-4.0.2-cp37-cp37m-manylinux2010_i686.whl
  • Upload date:
  • Size: 111.9 kB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for pyinstrument-4.0.2-cp37-cp37m-manylinux2010_i686.whl
Algorithm Hash digest
SHA256 d1e84f0b8037d9012ecb4d7754ed593a08dd656e3b53bd94fc0496f06c725c13
MD5 4c96271b6ad026ca7d2e55ff063c273a
BLAKE2b-256 f6c84c9ed312f138aeee70622cab6bcdb7891b0de3c496f16f3450bf355c618b

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.2-cp37-cp37m-manylinux1_x86_64.whl.

File metadata

  • Download URL: pyinstrument-4.0.2-cp37-cp37m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 112.5 kB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for pyinstrument-4.0.2-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 fecdff1086dc5e33d5a36ebf6033c1c3cc401d5b2789458bf68d6859603922fd
MD5 bf8d2725731ee2176a9611bed3a80ca8
BLAKE2b-256 c606f5beb5ffdc24f50928d082ec1d7f160f6246b931037a21d5b7ea024ec819

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.2-cp37-cp37m-manylinux1_i686.whl.

File metadata

  • Download URL: pyinstrument-4.0.2-cp37-cp37m-manylinux1_i686.whl
  • Upload date:
  • Size: 111.9 kB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for pyinstrument-4.0.2-cp37-cp37m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 5fef832e08c0165d8d5e37f936b596711aee9ea72dd719fed3477b24eeeee1c5
MD5 bf311de0a636163b25daeac338554c61
BLAKE2b-256 d44ff1356170503710f71f807ab42dcc033b9a19307750fa4e9a7d5843d0404f

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.2-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: pyinstrument-4.0.2-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 94.1 kB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for pyinstrument-4.0.2-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 470974d46bc95ff4281651d1859248393248f1c8246d96e898e8ab2327b6a52e
MD5 4665581100e0296d915ee585a218e6d0
BLAKE2b-256 47937e434067c3a54bcbed787a3110f9316fe7aa8d35fe48a279cc43c35b0c00

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page