)]}'
{"neutron_lib/api/converters.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"834f3ecae7669761209d2b6c155e7223ccbb8b65","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        key, value \u003d convert_kvp_str_to_list(kvp_str)"},{"line_number":129,"context_line":"        kvp_map.setdefault(key, set())"},{"line_number":130,"context_line":"        kvp_map[key].add(value)"},{"line_number":131,"context_line":"    return dict((x, list(y)) for x, y in kvp_map.items())"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"def convert_none_to_empty_list(value):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a77a97e_251a2318","line":131,"range":{"start_line":131,"start_character":41,"end_line":131,"end_character":56},"updated":"2016-11-22 08:51:50.000000000","message":"This won\u0027t work with PY3","commit_id":"6dfec7480bea092f2341ee07e6094a30bd70c460"}],"neutron_lib/api/validators.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"834f3ecae7669761209d2b6c155e7223ccbb8b65","unresolved":false,"context_lines":[{"line_number":700,"context_line":"    # TODO(salv-orlando): Structure of dict attributes should be improved"},{"line_number":701,"context_line":"    # to avoid iterating over items"},{"line_number":702,"context_line":"    val_func \u003d val_params \u003d None"},{"line_number":703,"context_line":"    for (k, v) in key_validator.items():"},{"line_number":704,"context_line":"        if k.startswith(\u0027type:\u0027):"},{"line_number":705,"context_line":"            # ask forgiveness, not permission"},{"line_number":706,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a77a97e_c5e16f00","line":703,"range":{"start_line":703,"start_character":18,"end_line":703,"end_character":39},"updated":"2016-11-22 08:51:50.000000000","message":"This won\u0027t work with PY3","commit_id":"6dfec7480bea092f2341ee07e6094a30bd70c460"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"834f3ecae7669761209d2b6c155e7223ccbb8b65","unresolved":false,"context_lines":[{"line_number":735,"context_line":"        return"},{"line_number":736,"context_line":""},{"line_number":737,"context_line":"    # Check whether all required keys are present"},{"line_number":738,"context_line":"    required_keys \u003d [key for key, spec in key_specs.items()"},{"line_number":739,"context_line":"                     if spec.get(\u0027required\u0027)]"},{"line_number":740,"context_line":""},{"line_number":741,"context_line":"    if required_keys:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a77a97e_e5e66b15","line":738,"range":{"start_line":738,"start_character":41,"end_line":738,"end_character":59},"updated":"2016-11-22 08:51:50.000000000","message":"ditto","commit_id":"6dfec7480bea092f2341ee07e6094a30bd70c460"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"834f3ecae7669761209d2b6c155e7223ccbb8b65","unresolved":false,"context_lines":[{"line_number":752,"context_line":""},{"line_number":753,"context_line":"    # Perform validation and conversion of all values"},{"line_number":754,"context_line":"    # according to the specifications."},{"line_number":755,"context_line":"    for key, key_validator in [(k, v) for k, v in key_specs.items()"},{"line_number":756,"context_line":"                               if k in data]:"},{"line_number":757,"context_line":"        msg \u003d _validate_dict_item(key, key_validator, data)"},{"line_number":758,"context_line":"        if msg:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a77a97e_45ee3fed","line":755,"range":{"start_line":755,"start_character":50,"end_line":755,"end_character":67},"updated":"2016-11-22 08:51:50.000000000","message":"ditto","commit_id":"6dfec7480bea092f2341ee07e6094a30bd70c460"}],"neutron_lib/tests/_base.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"23e982f062c91bb110f0f44e9e6b2e67bcd1927e","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from oslo_db import options as db_options"},{"line_number":25,"context_line":"from oslo_utils import strutils"},{"line_number":26,"context_line":"import pbr.version"},{"line_number":27,"context_line":"import six"},{"line_number":28,"context_line":"import testtools"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"from neutron_lib._i18n import _"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a77a97e_1edbb81c","line":27,"range":{"start_line":27,"start_character":7,"end_line":27,"end_character":10},"updated":"2016-11-22 09:43:18.000000000","message":"remove this import","commit_id":"6dfec7480bea092f2341ee07e6094a30bd70c460"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"834f3ecae7669761209d2b6c155e7223ccbb8b65","unresolved":false,"context_lines":[{"line_number":222,"context_line":"        self.assertEqual(expect_val, actual_val)"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"    def sort_dict_lists(self, dic):"},{"line_number":225,"context_line":"        for key, value in dic.items():"},{"line_number":226,"context_line":"            if isinstance(value, list):"},{"line_number":227,"context_line":"                dic[key] \u003d sorted(value)"},{"line_number":228,"context_line":"            elif isinstance(value, dict):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a77a97e_85be97d2","line":225,"range":{"start_line":225,"start_character":26,"end_line":225,"end_character":38},"updated":"2016-11-22 08:51:50.000000000","message":"ditto","commit_id":"6dfec7480bea092f2341ee07e6094a30bd70c460"}],"neutron_lib/utils/helpers.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"834f3ecae7669761209d2b6c155e7223ccbb8b65","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    each item in dic."},{"line_number":93,"context_line":"    \"\"\""},{"line_number":94,"context_line":"    return \u0027,\u0027.join(\"%s\u003d%s\" % (key, val)"},{"line_number":95,"context_line":"                    for key, val in sorted(dic.items()))"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"def str2dict(string):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a77a97e_a5b39309","line":95,"range":{"start_line":95,"start_character":42,"end_line":95,"end_character":54},"updated":"2016-11-22 08:51:50.000000000","message":"ditto","commit_id":"6dfec7480bea092f2341ee07e6094a30bd70c460"}]}
