)]}'
{"openstack/cloud/_utils.py":[{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"3fda73f21a1d43ec952a4874a70a43bf3b43cdd8","unresolved":false,"context_lines":[{"line_number":379,"context_line":"    return func_wrapper"},{"line_number":380,"context_line":""},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"def _func_wrap(f):"},{"line_number":383,"context_line":"    # NOTE(morgan): This extra wrapper is intended to eliminate ever"},{"line_number":384,"context_line":"    # passing a bound method to dogpile.cache\u0027s cache_on_arguments. In"},{"line_number":385,"context_line":"    # 0.7.0 and later it is impossible to pass bound methods to the"},{"line_number":386,"context_line":"    # decorator. This was introduced when utilizing the decorate module in"},{"line_number":387,"context_line":"    # lieu of a direct wrap implementation."},{"line_number":388,"context_line":"    @functools.wraps(f)"},{"line_number":389,"context_line":"    def inner(*args, **kwargs):"},{"line_number":390,"context_line":"        return f(*args, **kwargs)"},{"line_number":391,"context_line":"    return inner"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":""},{"line_number":394,"context_line":"def cache_on_arguments(*cache_on_args, **cache_on_kwargs):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_f11a587f","line":391,"range":{"start_line":382,"start_character":0,"end_line":391,"end_character":16},"updated":"2018-12-14 22:54:38.000000000","message":"Maybe move down to where line 396 is now.","commit_id":"e8ef3e541358245918c59c03f1ff3fa3fd3b8dbc"}]}
