)]}'
{"oslo_cache/core.py":[{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"d99f60eb40c4c7f9b9b551c7de245db4f4dd6526","unresolved":false,"context_lines":[{"line_number":151,"context_line":"    return util.sha1_mangle_key(key)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"def _key_generate_to_str(s):"},{"line_number":155,"context_line":"    # NOTE(morganfainberg): Since we need to stringify all arguments, attempt"},{"line_number":156,"context_line":"    # to stringify and handle the Unicode error explicitly as needed."},{"line_number":157,"context_line":"    try:"},{"line_number":158,"context_line":"        return str(s)"},{"line_number":159,"context_line":"    except UnicodeEncodeError:"},{"line_number":160,"context_line":"        return s.encode(\u0027utf-8\u0027)"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"def function_key_generator(namespace, fn, to_str\u003d_key_generate_to_str):"},{"line_number":164,"context_line":"    # NOTE(morganfainberg): This wraps dogpile.cache\u0027s default"},{"line_number":165,"context_line":"    # function_key_generator to change the default to_str mechanism."},{"line_number":166,"context_line":"    return util.function_key_generator(namespace, fn, to_str\u003dto_str)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"def kwarg_function_key_generator(namespace, fn, to_str\u003d_key_generate_to_str):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f1d235d_2fe65218","line":166,"range":{"start_line":154,"start_character":0,"end_line":166,"end_character":68},"updated":"2017-06-29 11:15:16.000000000","message":"just keep these two functions in original place, this chnage will lead trouble for git blame. you can just modify the function name to function_key_generator","commit_id":"65c2e089db5e8b329c5e6b132879ddda98c54cb8"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"291dcd712346c3d25e89fe88a43d709149aef965","unresolved":false,"context_lines":[{"line_number":151,"context_line":"    return util.sha1_mangle_key(key)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"def _key_generate_to_str(s):"},{"line_number":155,"context_line":"    # NOTE(morganfainberg): Since we need to stringify all arguments, attempt"},{"line_number":156,"context_line":"    # to stringify and handle the Unicode error explicitly as needed."},{"line_number":157,"context_line":"    try:"},{"line_number":158,"context_line":"        return str(s)"},{"line_number":159,"context_line":"    except UnicodeEncodeError:"},{"line_number":160,"context_line":"        return s.encode(\u0027utf-8\u0027)"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"def function_key_generator(namespace, fn, to_str\u003d_key_generate_to_str):"},{"line_number":164,"context_line":"    # NOTE(morganfainberg): This wraps dogpile.cache\u0027s default"},{"line_number":165,"context_line":"    # function_key_generator to change the default to_str mechanism."},{"line_number":166,"context_line":"    return util.function_key_generator(namespace, fn, to_str\u003dto_str)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"def kwarg_function_key_generator(namespace, fn, to_str\u003d_key_generate_to_str):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f1d235d_6f832a06","line":166,"range":{"start_line":154,"start_character":0,"end_line":166,"end_character":68},"in_reply_to":"3f1d235d_2fe65218","updated":"2017-06-29 11:17:03.000000000","message":"Done","commit_id":"65c2e089db5e8b329c5e6b132879ddda98c54cb8"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7ed22b5c2f80a404f13ebed8b1ac8b3d8f8bd714","unresolved":false,"context_lines":[{"line_number":151,"context_line":"    return util.sha1_mangle_key(key)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"def _key_generate_to_str(s):"},{"line_number":155,"context_line":"    # NOTE(morganfainberg): Since we need to stringify all arguments, attempt"},{"line_number":156,"context_line":"    # to stringify and handle the Unicode error explicitly as needed."},{"line_number":157,"context_line":"    try:"},{"line_number":158,"context_line":"        return str(s)"},{"line_number":159,"context_line":"    except UnicodeEncodeError:"},{"line_number":160,"context_line":"        return s.encode(\u0027utf-8\u0027)"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"def function_key_generator(namespace, fn, to_str\u003d_key_generate_to_str):"},{"line_number":164,"context_line":"    # NOTE(morganfainberg): This wraps dogpile.cache\u0027s default"},{"line_number":165,"context_line":"    # function_key_generator to change the default to_str mechanism."},{"line_number":166,"context_line":"    return util.function_key_generator(namespace, fn, to_str\u003dto_str)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"def kwarg_function_key_generator(namespace, fn, to_str\u003d_key_generate_to_str):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f1d235d_8f18c6d3","line":166,"range":{"start_line":154,"start_character":0,"end_line":166,"end_character":68},"in_reply_to":"3f1d235d_6f832a06","updated":"2017-06-29 11:23:39.000000000","message":"Now I remember why I moved those functions in top of \"kwarg_function_key_generator\": to avoid those pep8 problems.\n\n./oslo_cache/core.py:154:56: F821 undefined name \u0027_key_generate_to_str\u0027\ndef kwarg_function_key_generator(namespace, fn, to_str\u003d_key_generate_to_str):\n                                                       ^\n./oslo_cache/core.py:160:28: F821 undefined name \u0027function_key_generator\u0027\ndef create_region(function\u003dfunction_key_generator):\n\n\nI need to move those functions there to be used by the following functions.","commit_id":"65c2e089db5e8b329c5e6b132879ddda98c54cb8"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"ebe4d9969b2995dab8732155c9047d135e059a35","unresolved":false,"context_lines":[{"line_number":151,"context_line":"    return util.sha1_mangle_key(key)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"def _key_generate_to_str(s):"},{"line_number":155,"context_line":"    # NOTE(morganfainberg): Since we need to stringify all arguments, attempt"},{"line_number":156,"context_line":"    # to stringify and handle the Unicode error explicitly as needed."},{"line_number":157,"context_line":"    try:"},{"line_number":158,"context_line":"        return str(s)"},{"line_number":159,"context_line":"    except UnicodeEncodeError:"},{"line_number":160,"context_line":"        return s.encode(\u0027utf-8\u0027)"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"def function_key_generator(namespace, fn, to_str\u003d_key_generate_to_str):"},{"line_number":164,"context_line":"    # NOTE(morganfainberg): This wraps dogpile.cache\u0027s default"},{"line_number":165,"context_line":"    # function_key_generator to change the default to_str mechanism."},{"line_number":166,"context_line":"    return util.function_key_generator(namespace, fn, to_str\u003dto_str)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"def kwarg_function_key_generator(namespace, fn, to_str\u003d_key_generate_to_str):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f1d235d_2aae40e7","line":166,"range":{"start_line":154,"start_character":0,"end_line":166,"end_character":68},"in_reply_to":"3f1d235d_8f18c6d3","updated":"2017-06-29 11:45:04.000000000","message":"yes, got it","commit_id":"65c2e089db5e8b329c5e6b132879ddda98c54cb8"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"ebe4d9969b2995dab8732155c9047d135e059a35","unresolved":false,"context_lines":[{"line_number":182,"context_line":""},{"line_number":183,"context_line":"        You must call :func:`configure_cache_region` with this region before"},{"line_number":184,"context_line":"        a memoized method is called."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    :returns: The new region."},{"line_number":187,"context_line":"    :rtype: :class:`dogpile.cache.region.CacheRegion`"},{"line_number":188,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f1d235d_2a976093","line":185,"updated":"2017-06-29 11:45:04.000000000","message":"Need document the new parameter.","commit_id":"65c2e089db5e8b329c5e6b132879ddda98c54cb8"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"d4b05a082464140042a96f1c6f354bd1b3bb0777","unresolved":false,"context_lines":[{"line_number":182,"context_line":""},{"line_number":183,"context_line":"        You must call :func:`configure_cache_region` with this region before"},{"line_number":184,"context_line":"        a memoized method is called."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    :returns: The new region."},{"line_number":187,"context_line":"    :rtype: :class:`dogpile.cache.region.CacheRegion`"},{"line_number":188,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f1d235d_4513ad0e","line":185,"in_reply_to":"3f1d235d_2a976093","updated":"2017-06-29 12:24:14.000000000","message":"Done","commit_id":"65c2e089db5e8b329c5e6b132879ddda98c54cb8"}]}
