)]}'
{"glance/tests/utils.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"16fa0b33ba0d45b3c2da2e77625736fa5e5f0310","unresolved":false,"context_lines":[{"line_number":23,"context_line":"import socket"},{"line_number":24,"context_line":"import subprocess"},{"line_number":25,"context_line":"import signal"},{"line_number":26,"context_line":"from functools import wraps"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"import fixtures"},{"line_number":29,"context_line":"from oslo_config import cfg"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a26ad4f_fbb24ce4","line":26,"updated":"2015-11-03 06:29:54.000000000","message":"imports are not organized properly","commit_id":"21460dad34209f8b187d5fba9d0c5731efcc3539"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"16fa0b33ba0d45b3c2da2e77625736fa5e5f0310","unresolved":false,"context_lines":[{"line_number":648,"context_line":""},{"line_number":649,"context_line":""},{"line_number":650,"context_line":"def timeout(seconds\u003d10, error_message\u003dos.strerror(errno.ETIME)):"},{"line_number":651,"context_line":"    \"\"\"Decorator that raise exception if function is executed"},{"line_number":652,"context_line":"    over a predetermined time.\"\"\""},{"line_number":653,"context_line":""},{"line_number":654,"context_line":"    def decorator(func):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a26ad4f_fbe9ecb7","line":651,"updated":"2015-11-03 06:29:54.000000000","message":"multi-line docstring is not as per standard, please refer,\n\nhttp://docs.openstack.org/developer/hacking/#docstrings","commit_id":"21460dad34209f8b187d5fba9d0c5731efcc3539"},{"author":{"_account_id":17976,"name":"Drew Varner","email":"avarner@linux.vnet.ibm.com","username":"avarner"},"change_message_id":"31393bfbf4bb5ee4801abb5fc772554c1ed3c2d4","unresolved":false,"context_lines":[{"line_number":657,"context_line":""},{"line_number":658,"context_line":"        def wrapper(*args, **kwargs):"},{"line_number":659,"context_line":"            signal.signal(signal.SIGALRM, _handle_timeout)"},{"line_number":660,"context_line":"            signal.alarm(seconds)"},{"line_number":661,"context_line":"            try:"},{"line_number":662,"context_line":"                result \u003d func(*args, **kwargs)"},{"line_number":663,"context_line":"            finally:"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba8a016a_edc42941","line":660,"updated":"2015-11-23 17:28:01.000000000","message":"Using SIGALRM for this is potentially problematic, since only one alarm can be set. This function would replace any existing alarm.\n\nNotably, this function can\u0027t be used recursively (e.g. a 10 second timeout function inside a 1 hour timeout function).\n\nA separate thread could be used as the timer mechanism.","commit_id":"f9c80d0e949ea85e4a396808a687aad71e3db867"}]}
