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.3

  • CPython 3.10 support
  • Improve error messages when trying to use Profiler from multiple threads
  • Fix crash when rendering sessions that contain a module in a FrameGroup

v4.0.2

  • Fix some packaging issues

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.3.tar.gz (363.0 kB view details)

Uploaded Source

Built Distributions

pyinstrument-4.0.3-cp310-cp310-win_amd64.whl (99.7 kB view details)

Uploaded CPython 3.10 Windows x86-64

pyinstrument-4.0.3-cp310-cp310-win32.whl (99.0 kB view details)

Uploaded CPython 3.10 Windows x86

pyinstrument-4.0.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (114.6 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.12+ x86-64 manylinux: glibc 2.5+ x86-64

pyinstrument-4.0.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (114.0 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.12+ i686 manylinux: glibc 2.5+ i686

pyinstrument-4.0.3-cp310-cp310-macosx_10_9_x86_64.whl (96.2 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

pyinstrument-4.0.3-cp310-cp310-macosx_10_9_universal2.whl (100.5 kB view details)

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

pyinstrument-4.0.3-cp39-cp39-win_amd64.whl (99.7 kB view details)

Uploaded CPython 3.9 Windows x86-64

pyinstrument-4.0.3-cp39-cp39-win32.whl (99.0 kB view details)

Uploaded CPython 3.9 Windows x86

pyinstrument-4.0.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (114.3 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64 manylinux: glibc 2.5+ x86-64

pyinstrument-4.0.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (113.6 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ i686 manylinux: glibc 2.5+ i686

pyinstrument-4.0.3-cp39-cp39-macosx_10_9_x86_64.whl (96.2 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

pyinstrument-4.0.3-cp39-cp39-macosx_10_9_universal2.whl (100.5 kB view details)

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

pyinstrument-4.0.3-cp38-cp38-win_amd64.whl (99.7 kB view details)

Uploaded CPython 3.8 Windows x86-64

pyinstrument-4.0.3-cp38-cp38-win32.whl (99.0 kB view details)

Uploaded CPython 3.8 Windows x86

pyinstrument-4.0.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (115.0 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64 manylinux: glibc 2.5+ x86-64

pyinstrument-4.0.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (114.4 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ i686 manylinux: glibc 2.5+ i686

pyinstrument-4.0.3-cp38-cp38-macosx_10_9_x86_64.whl (96.2 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

pyinstrument-4.0.3-cp38-cp38-macosx_10_9_universal2.whl (100.5 kB view details)

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

pyinstrument-4.0.3-cp37-cp37m-win_amd64.whl (99.7 kB view details)

Uploaded CPython 3.7m Windows x86-64

pyinstrument-4.0.3-cp37-cp37m-win32.whl (99.0 kB view details)

Uploaded CPython 3.7m Windows x86

pyinstrument-4.0.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (114.6 kB view details)

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

pyinstrument-4.0.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (114.0 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ i686 manylinux: glibc 2.5+ i686

pyinstrument-4.0.3-cp37-cp37m-macosx_10_9_x86_64.whl (96.1 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for pyinstrument-4.0.3.tar.gz
Algorithm Hash digest
SHA256 08caf41d21ae8f24afe79c664a34af1ed1e17aa5d4441cd9b1dc15f87bbbac95
MD5 a349d17efeff8c98a84d3bddaf1b6ebe
BLAKE2b-256 7040f0fcd90f3128c43d9e20ae3e37b166e26885c5250e8386a7abf4b6b5dc05

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.3-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pyinstrument-4.0.3-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 99.7 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for pyinstrument-4.0.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 7fe969e23c878332426f7f2df84a2d6e1f9677b56f4a9e4ff9ca4a6a7a90ab6f
MD5 e2b47e5e037da0d2fb8b06eaeaba84d8
BLAKE2b-256 c3ec83c7de1bdd42a1fb00ec9f3b9834a361a9c773f472d7a8b9b69eacb02cf2

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.3-cp310-cp310-win32.whl.

File metadata

  • Download URL: pyinstrument-4.0.3-cp310-cp310-win32.whl
  • Upload date:
  • Size: 99.0 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for pyinstrument-4.0.3-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 13fa02a8593124c87ecccaa9ad5d483bc8a3bb286f41fe5ed48cfb864f6c03e9
MD5 85c9fb774cf6bf6d89181a55d25c4901
BLAKE2b-256 0c53452332553c3f4e8f0fc99cd2e4ac7246821282fd906a124d2dc99dd4fc47

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for pyinstrument-4.0.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 5447686b3f7364b9cc7e29bc47bd06a1c533374f921e729a930a840e1b22ab80
MD5 ef96c90d72879140939d3bdcd289a5f1
BLAKE2b-256 409a1c2258e311a50da36c954c5dc312694e0e0f9ea5ce798ae7eddf74b7b274

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for pyinstrument-4.0.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 82b9f4583df41dec5b1e51f32c220a2760e9b337644950ca2d1fceefb7e5ecd7
MD5 b2c64414348bf677115c3625070b7eca
BLAKE2b-256 93a79039cd7e3af72f7cd46e66066c0370f2a0373d8650af44e24a7abcf719ff

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.3-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: pyinstrument-4.0.3-cp310-cp310-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 96.2 kB
  • Tags: CPython 3.10, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for pyinstrument-4.0.3-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9cc789ca3a3fe063e6bc9adf5dbb802cc2392d0cc3db72dbc8577591d32f8464
MD5 fa09bf8e89f356f83586939d7e4b54c5
BLAKE2b-256 87ec0051eeb75c6ce3c2a3fed2d5a0f7d26844a20cbfd67edd937b592471aa9c

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.3-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

  • Download URL: pyinstrument-4.0.3-cp310-cp310-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 100.5 kB
  • Tags: CPython 3.10, macOS 10.9+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for pyinstrument-4.0.3-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 f7262dc3521286c4aa24db76387d0dcdf2e72bec10e97f3c016a523ada80419e
MD5 b4499e1941c629c025f37f91ff23c8b8
BLAKE2b-256 a0067bf7c470a0f87da674fa96198724f35fc4b1b554e88b645470e80f3bc936

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pyinstrument-4.0.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 eaa9fd274a05d05f148913200e796a8b87764c03974aa292ff0d71a3ad829aac
MD5 da9208668142652566c9403f245c9ffc
BLAKE2b-256 c0f4dfea642a11d1c399edc41991d34d9414aaf6541b4d6155e78c28fed7172c

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pyinstrument-4.0.3-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 aba2b10adf7c89870dd1175084000a44fc019bd9d6d2ed1ed6c0277310fae1d2
MD5 a9b56cede3833221d7bbd690fa62ed35
BLAKE2b-256 a47f81f42ebef8bd82e625c69b8aa4a891e39d28e340b07d5db752c6c35d99fd

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for pyinstrument-4.0.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 997d5b19f890dcdb69c9359a2f7764702eb5afc4aa072a28e341f95f05887d8e
MD5 fc2cc153b3038498ebcb5535ff312137
BLAKE2b-256 e5a81633ef10c77cc139613ce4f38c54fc39147f444ec981083e98781ff76bf2

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for pyinstrument-4.0.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 2f1d968362dacbf6ec8fc5d391e31c83f1b8bc06f7ebbed1ee8caad2ed95ea5b
MD5 c79cd45fa59e8626d62a46e555a24dce
BLAKE2b-256 5f66e6de79eade9c8d3a03afc45739db911b5c46c78ad9fd781305a42cc67dea

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstrument-4.0.3-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 96.2 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.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for pyinstrument-4.0.3-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 232f413169e96bb97cf5ec1b5b2d7060bd17fc1e31351a96532aca29c004e017
MD5 b1a31c9a604eb35944ee9d85450debc5
BLAKE2b-256 7c4e82dfc40729a2a271773b80ee57c4ed9e07bb2f01daed7503369eb9894071

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstrument-4.0.3-cp39-cp39-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 100.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.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for pyinstrument-4.0.3-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 bf923e8058d49c88a6c52cafe6a7bbcbbf577a5ba2336bf57269acda735e1f12
MD5 c750571de171a358042d7248b5e1d5c8
BLAKE2b-256 9c44aef4e1b1a1d169ecfb55c0df2fe0366f5a7c69a854a3c30e7685c0ad8643

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pyinstrument-4.0.3-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 3b88ced15935be0dd58d4a11b0a0147467c0d58f4cace2e9bb68517464c44940
MD5 c3a2f1944ea0725070e93093fc069771
BLAKE2b-256 606c56755c89ae74c3871b3a4c05b13709369f701f120a3cc198dfe093f7818a

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pyinstrument-4.0.3-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 d33387ed3d3ec02494325559957e37985c67e23ed838ba94d82494cc11237cdf
MD5 258534bd41c7b5b16ee9791cefa71140
BLAKE2b-256 255b75b9bc122a371e9b0ad8905245ae80b5d170a7513fb08897c23ba192340d

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for pyinstrument-4.0.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 2f98b321f6e01f56ec7532c8519ab13158aa6aac61e11017a0510a758d3897aa
MD5 e543e6db35691c51662ce8421707b956
BLAKE2b-256 8425b5a4c17678b6ef3c5655bc28747e592c977d8e5704f3cf54be918f8314f2

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for pyinstrument-4.0.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 1bfb92d9e3e94158132b36c0470ec6b2bb5484355b2ea0c9101c32a3cbf76f03
MD5 fcece3b34468787836286d36b672cdc0
BLAKE2b-256 41d7a81ec85031e4bf6ac07ee081af707cb2391a8172c505251b94e51cea1e78

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstrument-4.0.3-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 96.2 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.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for pyinstrument-4.0.3-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3a399d0500ae7603790e3b32a6561817d50e7da6daa0c7ec308ef76e22779c42
MD5 fdedc2d1c23801897194f2f27f446908
BLAKE2b-256 a1d4e903e83803b66af2907cb75a43980595e687ad7c3258ab82aaa2f33106d5

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.3-cp38-cp38-macosx_10_9_universal2.whl.

File metadata

  • Download URL: pyinstrument-4.0.3-cp38-cp38-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 100.5 kB
  • Tags: CPython 3.8, macOS 10.9+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for pyinstrument-4.0.3-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 2fdd220faa7c7715584fcf6bd2b23532ddaacc1cdb2473fc38b0170aaad18ac5
MD5 b6a42f8cb3ee55f07336c03f86506b4e
BLAKE2b-256 a35cf0388adeb35085e4f05cd8bd3e2ecb96bf846d17b56bce25431fdb50aaa6

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pyinstrument-4.0.3-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 45e5f39448a3348243c18483c9939c7cf0bb3305d484cb4ed466ab5bcce4a5ea
MD5 a1b5d1a9513022c89b781b2ec860b3ff
BLAKE2b-256 d810d6174daeb2831fcbca236db9fd4f9d6afcc66d85f6f1d3e2af2b00a63ea8

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pyinstrument-4.0.3-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 cc4794a0264e1068a5d5f82287d72c1fbfdb9760fb8d709aa712ae001f4af6ba
MD5 4700936e90febdc56bd4cf5a48e57e9e
BLAKE2b-256 48be1fa2fe00a492ad01e42c921703d90e2302def8a4c1063b8198ec31137932

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for pyinstrument-4.0.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 cdbef2760206f17c9193fbaf962b733da69cfc9cb38e78cd02096b2c411166a5
MD5 a46dfdcdc3146ef03f3912f9eb6880f1
BLAKE2b-256 25fa9d9970e95e0434d70c13fa758310d09288d1df6fe8b5982cd1e4476e9172

See more details on using hashes here.

File details

Details for the file pyinstrument-4.0.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for pyinstrument-4.0.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 9218f1eb435a37ade66641dc07e9e0b0b2da7146a4eec0082bf2cd8fbbcae668
MD5 345e06e2c6ba8feca1080519d7dd6eb3
BLAKE2b-256 923c847e8896adb430a05ac1d8665cd2b2cf22c0d5dda49eab54a7db162efc4b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinstrument-4.0.3-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 96.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.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for pyinstrument-4.0.3-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f8b2feba40bf43ec16c1f14b3f5371ce1a1b7c2d636979c59d496e354833830e
MD5 6d5af227c98045edcb4a365672716a03
BLAKE2b-256 e00c2ad5509d36cdd4bd02e8d6cca3d03c1f7bdc29b17f32570ff5d450da8b7e

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