avatar Bite 88. Write a performance monitoring context manager

It's time for Context Managers part II. In Bite 20 you used it to roll back a transaction implementing the __enter__ and __exit__ dunder methods.

In this Bite you will write a context manager using contextlib.contextmanager that measures performance of operations executed in its context:

with timeit():
  ... measure time in seconds of the the stuff done in this block ...

Complete the timeit context manager implementing mentioned timing in seconds (duration).

Keep track of performance violations which we define as duration >= 2.2 (OPERATION_THRESHOLD_IN_SECONDS).

If there are >= 3 (ALERT_THRESHOLD) violations the same day, print ALERT: suffering performance hit today (ALERT_MSG).

Good luck and keep calm and code in Python!

Login and get coding
go back Advanced level
Bitecoin 4X

184 out of 184 users completed this Bite.
Will you be Pythonista #185 to crack this Bite?
Resolution time: ~54 min. (avg. submissions of 5-240 min.)
Pythonistas rate this Bite 6.71 on a 1-10 difficulty scale.
» Up for a challenge? 💪

Focus on this Bite hiding sidebars, turn on Focus Mode.

Ask for Help