Hi all,

I'm now looking for cProfile/profile lib's issue, and have solve a series of dependent problem, here is the list:

#9285 - Add a profile decorator to profile and cProfile
#30113 - Allow helper functions to wrap sys.setprofile
#18971 - Use argparse in the profile/cProfile modules
#30118 - Add unittest for cProfile/profile command line interface

It can divide into two categories, first is the context manager problem, and the second is optparse to argparse problem.

1. context manager problem:

Relative issue: #9285, #30113
Relative PR: #287, #1212, #1253

This is an issue since 2010, and stop at profile can't simply add a __enter__ and __exit__ to make it a context manager. The main problem is, sys.setprofile() will hit the return and get bad return in profile dispatch_return function. The solution is to insert a simulate call in the helper function, to provide the context between helper frame and where the profile is defined.

2. optparse to argparse problem:

Relative issue: #18971, #30118
Relative PR: #1232
Relative patch: profile_argparse.patch

Serhiy have provide the patch of replace optparse to argparse in the profile and cProfile, but block by Ezio request of unittest for command line interface. The unittest is provide at #1232, and need to be reivew. If the unittest is add and argparse patch is apply, we can then solve more problem, e.g.: #23420, #29238, #21862


This is what I've investigated for cProfile / profile library now, 
to be move on, it will need others to review the work.

Thanks!

Best Regards,
Louie.