Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

profilehooks

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

profilehooks

Decorators for profiling/timing/tracing individual functions

  • 1.12.0
  • PyPI
  • Socket score

Maintainers
1

profilehooks

.. image:: https://github.com/mgedmin/profilehooks/workflows/build/badge.svg?branch=master :target: https://github.com/mgedmin/profilehooks/actions

.. image:: https://ci.appveyor.com/api/projects/status/github/mgedmin/profilehooks?branch=master&svg=true :target: https://ci.appveyor.com/project/mgedmin/profilehooks

.. image:: https://coveralls.io/repos/mgedmin/profilehooks/badge.svg?branch=master :target: https://coveralls.io/r/mgedmin/profilehooks

It's a collection of decorators for profiling functions. E.g. to profile a single function::

from profilehooks import profile

@profile
def my_function(args, etc):
    pass

The results will be printed when the program exits (or you can use @profile(immediate=True)).

If you're interested in coarse timings and don't want to pay for the overhead of profiling, use ::

from profilehooks import timecall

@timecall       # or @timecall(immediate=True)
def my_function(args, etc):
    pass

Finally, you may be interested in seeing line coverage for a single function ::

from profilehooks import coverage

@coverage
def my_function(args, etc):
    pass

Also functions can be available in Python console or module if run it with -m arg ::

 $ python -m profilehooks
 >>> profile
 <function profile at 0x1005c6488>

 $ python -m profilehooks yourmodule

Full documentation is available through pydoc profilehooks after installation.

The home page for this module is https://mg.pov.lt/profilehooks. It has screensho, uh, that is, more examples.

Changelog

1.13.0 (2024-10-09)

  • Add support for Python 3.9, 3.10, 3.11, 3.12, and 3.13.

  • Drop support for Python 2.7, 3.5 and 3.6.

  • Drop support for hotshot (which was only available for Python 2.7).

1.12.0 (2020-08-20)

1.11.2 (2020-03-03)

1.11.1 (2020-01-30)

1.11.0 (2019-04-23)

1.10.0 (2017-12-09)

1.9.0 (2017-01-02)

  • Drop claim of Python 3.2 compatibility. Everything still works, except I'm no longer running automated tests on 3.2, so things might regress.

  • Drop Python 2.6 compatibility.

  • Add Python 3.6 compatibility.

1.8.1 (2015-11-21)

1.8.0 (2015-03-25)

  • New option: @profile(stdout=False) to suppress output to sys.stdout.

1.7.1 (2014-12-02)

  • Make @profile(profiler='hotshot') work again. This was probably broken in 1.0 or 1.1, but nobody complained.

  • Fix missing space in the output of @profile(skip=N).

  • Make @coverage_with_hotshot output match @coverage output precisely.

  • 100% test coverage.

  • Claim Python 3.4 and PyPy compatibility.

1.7 (2013-10-16)

1.6 (2012-06-05)

1.5 (2010-08-13)

  • New argument to @timecall: timer (defaults to time.time). Example: @timecall(timer=time.clock)

  • Better documentation.

1.4 (2009-03-31)

  • Added support for cProfile, make it the default profiler when available. Previously profilehooks supported profile and hotshot only.

1.3 (2008-06-10)

  • Store profile results (when you pass filename to @profile) in pstats format instead of pickles. Contributed by Florian Schulze.

1.2 (2008-03-07)

  • New argument to: @timecall: immediate (defaults to False).

  • Added a test suite.

1.1 (2007-11-07)

  • First release to PyPI, with a setup.py and everything.

  • New arguments to @profile: dirs, sort, entries. Contributed by Hanno Schlichting.

  • Preserve function attributes such as doc and module when decorating them.

  • Pydoc-friendly docstring wrapping and other docstring improvements.

1.0 (2006-12-06)

  • Changed licence from GPL to MIT.

  • New decorator: @timecall

  • New arguments to @profile: skip, filename, immediate.

  • Added support for profile, after becoming convinced hotshot was unreliable. Made it the default profiler.

0.1 (2004-12-30)

  • First public release (it didn't actually have a version number), announced on my blog: https://mg.pov.lt/blog/profiling.html

  • @profile and @coverage decorators that didn't accept any arguments.

  • hotshot was the only profiler supported for @profile, while @coverage used trace.py

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc