- Add support for Python 3.9.
- Drop support for Python 3.5.
- Added the ability to pass a text-mode file object to the
stdout
kwarg of the@profile()
decorator andFuncProfiler()
constructor for capturing output: #26.
- Fix breakage with
@functools.lru_cache()
: #25. - Use
@functools.wraps()
so decorated functions now correctly set the__wrapped__
attribute.
- Add support for Python 3.8.
- Detect Python source file encoding correctly in
@coverage
. #24.
- New options:
@timecall(log_name='logger', log_level=DEBUG)
. #20. - Add Python 3.7 support.
- Drop Python 3.3 and 3.4 support.
@timecall()
now defaults to the highest-precision timer (timeit.default_timer()
) instead oftime.time()
: #11
- 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.
- Include PID in temporary filenames: #6.
- Claim Python 3.5 compatibility.
- New option:
@profile(stdout=False)
to suppress output to sys.stdout.
- 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.
- Explicitly claim Python 3.3 compatibility.
- Fix Python 3.x bug with @coverage (stop using sys.maxint): #2.
- Added Python 3.2 compatibility, dropped Python 2.3, 2.4 and 2.5 compatibility.
- Migrated the source repository to https://github.com/mgedmin/profilehooks
- Added a changelog.
- New argument to @timecall: timer (defaults to time.time). Example: @timecall(timer=time.clock)
- Better documentation.
- Added support for cProfile, make it the default profiler when available. Previously profilehooks supported profile and hotshot only.
- Store profile results (when you pass filename to @profile) in pstats format instead of pickles. Contributed by Florian Schulze.
- New argument to: @timecall: immediate (defaults to False).
- Added a test suite.
- 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.
- 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.
- 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