For who may be reviewing cProfile / profile context manager problem, I prepare a post for explaining why the problem become, and why the patch will fix this problem:
post: https://blog.louie.lu/2017/04/23/python-libs-profile-cant-context-manager/ Thanks, Louie. 2017-04-23 11:21 GMT+08:00 Louie Lu <m...@louie.lu>: > 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. _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com