)]}'
{"oslo_utils/strutils.py":[{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"dceecf01b1254dc345a1a2991ab68d660f61ace1","unresolved":false,"context_lines":[{"line_number":567,"context_line":""},{"line_number":568,"context_line":""},{"line_number":569,"context_line":"def safe_format(_string, *args, **kwargs):"},{"line_number":570,"context_line":"    \"\"\"Safely format a string and throws an AttribError if calls to builtins"},{"line_number":571,"context_line":"    are used. For example:"},{"line_number":572,"context_line":""},{"line_number":573,"context_line":"        {0.__class__}"}],"source_content_type":"text/x-python","patch_set":1,"id":"da36d5c6_b6853108","line":570,"range":{"start_line":570,"start_character":44,"end_line":570,"end_character":55},"updated":"2017-02-22 22:38:30.000000000","message":"AttributeError","commit_id":"3e731f68dac26a454e4a2b15fae4760842c05e47"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"2af29dd7b0361d4f3db5f4557aa3ac2aab647ffe","unresolved":false,"context_lines":[{"line_number":567,"context_line":""},{"line_number":568,"context_line":""},{"line_number":569,"context_line":"def safe_format(_string, *args, **kwargs):"},{"line_number":570,"context_line":"    \"\"\"Safely format a string and throws an AttribError if calls to builtins"},{"line_number":571,"context_line":"    are used. For example:"},{"line_number":572,"context_line":""},{"line_number":573,"context_line":"        {0.__class__}"}],"source_content_type":"text/x-python","patch_set":1,"id":"da36d5c6_a75df97a","line":570,"range":{"start_line":570,"start_character":44,"end_line":570,"end_character":55},"in_reply_to":"da36d5c6_b6853108","updated":"2017-02-23 01:20:45.000000000","message":"Done","commit_id":"3e731f68dac26a454e4a2b15fae4760842c05e47"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"dceecf01b1254dc345a1a2991ab68d660f61ace1","unresolved":false,"context_lines":[{"line_number":575,"context_line":"    :param _string: string to format"},{"line_number":576,"context_line":"    :param args: arguments"},{"line_number":577,"context_line":"    :param kwargs: keyword arguments"},{"line_number":578,"context_line":""},{"line_number":579,"context_line":"    .. versionadded:: 3.23"},{"line_number":580,"context_line":"    \"\"\""},{"line_number":581,"context_line":"    formatter \u003d SafeFormatter()"}],"source_content_type":"text/x-python","patch_set":1,"id":"da36d5c6_f6a24998","line":578,"updated":"2017-02-22 22:38:30.000000000","message":":raises AttributeError if ....","commit_id":"3e731f68dac26a454e4a2b15fae4760842c05e47"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"2af29dd7b0361d4f3db5f4557aa3ac2aab647ffe","unresolved":false,"context_lines":[{"line_number":575,"context_line":"    :param _string: string to format"},{"line_number":576,"context_line":"    :param args: arguments"},{"line_number":577,"context_line":"    :param kwargs: keyword arguments"},{"line_number":578,"context_line":""},{"line_number":579,"context_line":"    .. versionadded:: 3.23"},{"line_number":580,"context_line":"    \"\"\""},{"line_number":581,"context_line":"    formatter \u003d SafeFormatter()"}],"source_content_type":"text/x-python","patch_set":1,"id":"da36d5c6_c7566d5b","line":578,"in_reply_to":"da36d5c6_f6a24998","updated":"2017-02-23 01:20:45.000000000","message":"Done","commit_id":"3e731f68dac26a454e4a2b15fae4760842c05e47"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"d3093f518ad2655377a5d579b9800b321d87b865","unresolved":false,"context_lines":[{"line_number":31,"context_line":"from oslo_utils._i18n import _"},{"line_number":32,"context_line":"from oslo_utils import encodeutils"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"# This is a necessary API but it\u0027s undocumented and moved around"},{"line_number":35,"context_line":"# between Python releases"},{"line_number":36,"context_line":"try:"},{"line_number":37,"context_line":"    from _string import formatter_field_name_split"}],"source_content_type":"text/x-python","patch_set":3,"id":"da36d5c6_5c07abc9","line":34,"updated":"2017-02-23 07:02:09.000000000","message":"This is not a API but an internal python stuffs...","commit_id":"1f2697e136fb5f25470228b0fe0722284c889e6b"}]}
