)]}'
{"config_tempest/services/image.py":[{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"6bbfbaf41aa8ea0e9846eb1e8d2fd7d735e538fe","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from config_tempest import constants as C"},{"line_number":24,"context_line":"from config_tempest.services.base import VersionedService"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"from functools import wraps"},{"line_number":27,"context_line":"import time"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class ImageService(VersionedService):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_305e9a76","line":27,"range":{"start_line":26,"start_character":0,"end_line":27,"end_character":11},"updated":"2019-07-26 09:09:53.000000000","message":"Usually we have in python-tempestconf import ordered like this:\n\u003cbuilt in libraries\u003e\n\n\u003cthird party libraries\u003e\n\n\u003clocal libraries\u003e","commit_id":"8c173a0276e09561d614cb63df364600f58e2220"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"054d5b906ab46fde446c0adaaafade852923b3f9","unresolved":false,"context_lines":[{"line_number":224,"context_line":"        with open(path, \u0027wb\u0027) as out:"},{"line_number":225,"context_line":"            out.write(body.data)"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"    def retry(ExceptionToCheck, tries\u003d4, delay\u003d3, backoff\u003d2, logger\u003dNone):"},{"line_number":228,"context_line":"        \"\"\"Retry calling the decorated function using exponential backoff"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"        :param ExceptionToCheck: the exception to check"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_c040780a","line":227,"updated":"2019-07-29 12:24:07.000000000","message":"Shouldn\u0027t we mention the origin of the snippet, possibly with a reference to the license (BSD, which can be likely mixed inside Apache 2 sources)?\n\nhttps://www.saltycrane.com/blog/2009/11/trying-out-retry-decorator-python/","commit_id":"890b672525b90dc7bbda132acba08c9b6b063be3"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"c99302bcba9e7176b75f4d86727ffa76ef37bad6","unresolved":false,"context_lines":[{"line_number":224,"context_line":"        with open(path, \u0027wb\u0027) as out:"},{"line_number":225,"context_line":"            out.write(body.data)"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"    def retry(ExceptionToCheck, tries\u003d4, delay\u003d3, backoff\u003d2, logger\u003dNone):"},{"line_number":228,"context_line":"        \"\"\"Retry calling the decorated function using exponential backoff"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"        :param ExceptionToCheck: the exception to check"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_03d21a5d","line":227,"in_reply_to":"7faddb67_0062103f","updated":"2019-07-29 13:23:17.000000000","message":"Basically the same comment as in the original:\n\n    http://www.saltycrane.com/blog/2009/11/trying-out-retry-decorator-python/\n    original from: http://wiki.python.org/moin/PythonDecoratorLibrary#Retry\n\nand another line which points to the license, something like:\n\nLicensed under the BSD 3-Clause \"New\" or \"Revised\" License (https://github.com/saltycrane/retry-decorator/blob/master/LICENSE)","commit_id":"890b672525b90dc7bbda132acba08c9b6b063be3"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"13c321b65e39d6d3c8fe7a369d3a9e34947bcdea","unresolved":false,"context_lines":[{"line_number":224,"context_line":"        with open(path, \u0027wb\u0027) as out:"},{"line_number":225,"context_line":"            out.write(body.data)"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"    def retry(ExceptionToCheck, tries\u003d4, delay\u003d3, backoff\u003d2, logger\u003dNone):"},{"line_number":228,"context_line":"        \"\"\"Retry calling the decorated function using exponential backoff"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"        :param ExceptionToCheck: the exception to check"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_0062103f","line":227,"in_reply_to":"7faddb67_c040780a","updated":"2019-07-29 12:50:16.000000000","message":"I have no idea, what do you propose? Put the link to the snippet to the doc string of the method?","commit_id":"890b672525b90dc7bbda132acba08c9b6b063be3"}]}
