)]}'
{"HACKING.rst":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6d6c81a46461ef664ad21a4a6954f6e757338b45","unresolved":false,"context_lines":[{"line_number":62,"context_line":"- [N350] Policy registration should be in the central location ``nova/policies/``"},{"line_number":63,"context_line":"- [N351] Do not use the oslo_policy.policy.Enforcer.enforce() method."},{"line_number":64,"context_line":"- [N352] LOG.warn is deprecated. Enforce use of LOG.warning."},{"line_number":65,"context_line":"- [N353] Validate that context objects is not passed in logging calls."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Creating Unit Tests"},{"line_number":68,"context_line":"-------------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa7ab95a_fb70480d","line":65,"range":{"start_line":65,"start_character":39,"end_line":65,"end_character":41},"updated":"2016-08-30 10:42:07.000000000","message":"Nit: s/is/are/","commit_id":"6959840f73ef5cd1ef3945af8f2a0e7a86ececd2"}],"nova/api/openstack/compute/volumes.py":[{"author":{"_account_id":14103,"name":"wangtianfa","email":"wang.tianfa@99cloud.net","username":"wangtianfa"},"change_message_id":"746a43dc71f1915f1c1cb72938f6795e174e8a0a","unresolved":false,"context_lines":[{"line_number":176,"context_line":"        availability_zone \u003d vol.get(\u0027availability_zone\u0027)"},{"line_number":177,"context_line":"        LOG.info(_LI(\"Create volume of %s GB\"), size)"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"        availability_zone \u003d vol.get(\u0027availability_zone\u0027, None)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"        try:"},{"line_number":182,"context_line":"            new_volume \u003d self.volume_api.create("}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_ee82dfc7","line":179,"range":{"start_line":179,"start_character":8,"end_line":179,"end_character":25},"updated":"2016-06-04 01:45:38.000000000","message":"Line 176 and line 179 I don\u0027t know what it is different,can you explain?","commit_id":"5fa9015ef696c5b7656ca365539523b563b18b09"}],"nova/compute/api.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"6ed4509c6f7431d5048c5c0abaabe25ea241926c","unresolved":false,"context_lines":[{"line_number":1667,"context_line":"                             \u0027id: %(id)s, status: %(status)s\u0027),"},{"line_number":1668,"context_line":"                         {\u0027id\u0027: migration.id,"},{"line_number":1669,"context_line":"                          \u0027status\u0027: migration.status},"},{"line_number":1670,"context_line":"                         context\u003dcontext, instance\u003dinstance)"},{"line_number":1671,"context_line":"                break"},{"line_number":1672,"context_line":"            except exception.MigrationNotFoundByStatus:"},{"line_number":1673,"context_line":"                pass"}],"source_content_type":"text/x-python","patch_set":6,"id":"bacf61ea_b98e8476","line":1670,"range":{"start_line":1670,"start_character":25,"end_line":1670,"end_character":40},"updated":"2016-08-07 07:55:03.000000000","message":"Does it need to be fixed too?","commit_id":"ab8802af6bf382d35ac16442c1d5a6c88ec9062d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"6ed4509c6f7431d5048c5c0abaabe25ea241926c","unresolved":false,"context_lines":[{"line_number":1692,"context_line":"        except KeyError:"},{"line_number":1693,"context_line":"            LOG.info(_LI(\u0027Migration %s may have been confirmed during \u0027"},{"line_number":1694,"context_line":"                         \u0027delete\u0027),"},{"line_number":1695,"context_line":"                     migration.id, context\u003dcontext, instance\u003dinstance)"},{"line_number":1696,"context_line":"            return"},{"line_number":1697,"context_line":"        quotas \u003d compute_utils.reserve_quota_delta(context, deltas, instance)"},{"line_number":1698,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"bacf61ea_99890072","line":1695,"range":{"start_line":1695,"start_character":35,"end_line":1695,"end_character":50},"updated":"2016-08-07 07:55:03.000000000","message":"ditto","commit_id":"ab8802af6bf382d35ac16442c1d5a6c88ec9062d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"6ed4509c6f7431d5048c5c0abaabe25ea241926c","unresolved":false,"context_lines":[{"line_number":2262,"context_line":"                else:"},{"line_number":2263,"context_line":"                    LOG.info(_LI(\u0027Skipping quiescing instance: \u0027"},{"line_number":2264,"context_line":"                                 \u0027%(reason)s.\u0027), {\u0027reason\u0027: err},"},{"line_number":2265,"context_line":"                             context\u003dcontext, instance\u003dinstance)"},{"line_number":2266,"context_line":""},{"line_number":2267,"context_line":"        bdms \u003d objects.BlockDeviceMappingList.get_by_instance_uuid("},{"line_number":2268,"context_line":"                context, instance.uuid)"}],"source_content_type":"text/x-python","patch_set":6,"id":"bacf61ea_f9eabc0d","line":2265,"range":{"start_line":2265,"start_character":29,"end_line":2265,"end_character":44},"updated":"2016-08-07 07:55:03.000000000","message":"ditto","commit_id":"ab8802af6bf382d35ac16442c1d5a6c88ec9062d"}],"nova/compute/manager.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"6ed4509c6f7431d5048c5c0abaabe25ea241926c","unresolved":false,"context_lines":[{"line_number":2903,"context_line":"            LOG.warning(_LW(\u0027trying to reboot a non-running instance:\u0027"},{"line_number":2904,"context_line":"                            \u0027 (state: %(state)s expected: %(running)s)\u0027),"},{"line_number":2905,"context_line":"                        {\u0027state\u0027: state, \u0027running\u0027: running},"},{"line_number":2906,"context_line":"                        context\u003dcontext, instance\u003dinstance)"},{"line_number":2907,"context_line":""},{"line_number":2908,"context_line":"        def bad_volumes_callback(bad_devices):"},{"line_number":2909,"context_line":"            self._handle_bad_volumes_detached("}],"source_content_type":"text/x-python","patch_set":6,"id":"bacf61ea_397a9477","line":2906,"range":{"start_line":2906,"start_character":24,"end_line":2906,"end_character":39},"updated":"2016-08-07 07:55:03.000000000","message":"Does it need to be fixed too?","commit_id":"ab8802af6bf382d35ac16442c1d5a6c88ec9062d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"6ed4509c6f7431d5048c5c0abaabe25ea241926c","unresolved":false,"context_lines":[{"line_number":4603,"context_line":"        LOG.info(_LI(\u0027Attaching volume %(volume_id)s to %(mountpoint)s\u0027),"},{"line_number":4604,"context_line":"                  {\u0027volume_id\u0027: bdm.volume_id,"},{"line_number":4605,"context_line":"                  \u0027mountpoint\u0027: bdm[\u0027mount_device\u0027]},"},{"line_number":4606,"context_line":"                 context\u003dcontext, instance\u003dinstance)"},{"line_number":4607,"context_line":"        try:"},{"line_number":4608,"context_line":"            bdm.attach(context, instance, self.volume_api, self.driver,"},{"line_number":4609,"context_line":"                       do_check_attach\u003dFalse, do_driver_attach\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":6,"id":"bacf61ea_39f1f401","line":4606,"range":{"start_line":4606,"start_character":17,"end_line":4606,"end_character":32},"updated":"2016-08-07 07:55:03.000000000","message":"ditto","commit_id":"ab8802af6bf382d35ac16442c1d5a6c88ec9062d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"6ed4509c6f7431d5048c5c0abaabe25ea241926c","unresolved":false,"context_lines":[{"line_number":4613,"context_line":"                                  \"at %(mountpoint)s\"),"},{"line_number":4614,"context_line":"                              {\u0027volume_id\u0027: bdm.volume_id,"},{"line_number":4615,"context_line":"                               \u0027mountpoint\u0027: bdm[\u0027mount_device\u0027]},"},{"line_number":4616,"context_line":"                              context\u003dcontext, instance\u003dinstance)"},{"line_number":4617,"context_line":"                self.volume_api.unreserve_volume(context, bdm.volume_id)"},{"line_number":4618,"context_line":""},{"line_number":4619,"context_line":"        info \u003d {\u0027volume_id\u0027: bdm.volume_id}"}],"source_content_type":"text/x-python","patch_set":6,"id":"bacf61ea_79dfec68","line":4616,"range":{"start_line":4616,"start_character":30,"end_line":4616,"end_character":45},"updated":"2016-08-07 07:55:03.000000000","message":"ditto","commit_id":"ab8802af6bf382d35ac16442c1d5a6c88ec9062d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"6ed4509c6f7431d5048c5c0abaabe25ea241926c","unresolved":false,"context_lines":[{"line_number":4627,"context_line":""},{"line_number":4628,"context_line":"        LOG.info(_LI(\u0027Detach volume %(volume_id)s from mountpoint %(mp)s\u0027),"},{"line_number":4629,"context_line":"                  {\u0027volume_id\u0027: volume_id, \u0027mp\u0027: mp},"},{"line_number":4630,"context_line":"                  context\u003dcontext, instance\u003dinstance)"},{"line_number":4631,"context_line":""},{"line_number":4632,"context_line":"        connection_info \u003d jsonutils.loads(bdm.connection_info)"},{"line_number":4633,"context_line":"        # NOTE(vish): We currently don\u0027t use the serial when disconnecting,"}],"source_content_type":"text/x-python","patch_set":6,"id":"bacf61ea_59dae878","line":4630,"range":{"start_line":4630,"start_character":18,"end_line":4630,"end_character":33},"updated":"2016-08-07 07:55:03.000000000","message":"ditto","commit_id":"ab8802af6bf382d35ac16442c1d5a6c88ec9062d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"6ed4509c6f7431d5048c5c0abaabe25ea241926c","unresolved":false,"context_lines":[{"line_number":4656,"context_line":"                LOG.exception(_LE(\u0027Failed to detach volume %(volume_id)s \u0027"},{"line_number":4657,"context_line":"                                  \u0027from %(mp)s\u0027),"},{"line_number":4658,"context_line":"                              {\u0027volume_id\u0027: volume_id, \u0027mp\u0027: mp},"},{"line_number":4659,"context_line":"                              context\u003dcontext, instance\u003dinstance)"},{"line_number":4660,"context_line":"                self.volume_api.roll_detaching(context, volume_id)"},{"line_number":4661,"context_line":""},{"line_number":4662,"context_line":"        return connection_info"}],"source_content_type":"text/x-python","patch_set":6,"id":"bacf61ea_b9e5e438","line":4659,"range":{"start_line":4659,"start_character":30,"end_line":4659,"end_character":45},"updated":"2016-08-07 07:55:03.000000000","message":"ditto","commit_id":"ab8802af6bf382d35ac16442c1d5a6c88ec9062d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"6ed4509c6f7431d5048c5c0abaabe25ea241926c","unresolved":false,"context_lines":[{"line_number":4803,"context_line":"                              \"for %(new_volume_id)s\")"},{"line_number":4804,"context_line":"                    LOG.exception(msg, {\u0027old_volume_id\u0027: old_volume_id,"},{"line_number":4805,"context_line":"                                        \u0027new_volume_id\u0027: new_volume_id},"},{"line_number":4806,"context_line":"                                  context\u003dcontext,"},{"line_number":4807,"context_line":"                                  instance\u003dinstance)"},{"line_number":4808,"context_line":"                else:"},{"line_number":4809,"context_line":"                    msg \u003d _LE(\"Failed to connect to volume %(volume_id)s \""}],"source_content_type":"text/x-python","patch_set":6,"id":"bacf61ea_99e0e027","line":4806,"range":{"start_line":4806,"start_character":34,"end_line":4806,"end_character":49},"updated":"2016-08-07 07:55:03.000000000","message":"ditto","commit_id":"ab8802af6bf382d35ac16442c1d5a6c88ec9062d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"6ed4509c6f7431d5048c5c0abaabe25ea241926c","unresolved":false,"context_lines":[{"line_number":4810,"context_line":"                              \"with volume at %(mountpoint)s\")"},{"line_number":4811,"context_line":"                    LOG.exception(msg, {\u0027volume_id\u0027: new_volume_id,"},{"line_number":4812,"context_line":"                                        \u0027mountpoint\u0027: bdm[\u0027device_name\u0027]},"},{"line_number":4813,"context_line":"                                  context\u003dcontext,"},{"line_number":4814,"context_line":"                                  instance\u003dinstance)"},{"line_number":4815,"context_line":"                self.volume_api.roll_detaching(context, old_volume_id)"},{"line_number":4816,"context_line":"                self.volume_api.unreserve_volume(context, new_volume_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"bacf61ea_f9d11c58","line":4813,"range":{"start_line":4813,"start_character":34,"end_line":4813,"end_character":49},"updated":"2016-08-07 07:55:03.000000000","message":"ditto","commit_id":"ab8802af6bf382d35ac16442c1d5a6c88ec9062d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"6ed4509c6f7431d5048c5c0abaabe25ea241926c","unresolved":false,"context_lines":[{"line_number":4819,"context_line":"            if new_cinfo:"},{"line_number":4820,"context_line":"                LOG.debug(\"swap_volume: calling Cinder terminate_connection \""},{"line_number":4821,"context_line":"                          \"for %(volume)s\", {\u0027volume\u0027: conn_volume},"},{"line_number":4822,"context_line":"                          context\u003dcontext, instance\u003dinstance)"},{"line_number":4823,"context_line":"                self.volume_api.terminate_connection(context,"},{"line_number":4824,"context_line":"                                                     conn_volume,"},{"line_number":4825,"context_line":"                                                     connector)"}],"source_content_type":"text/x-python","patch_set":6,"id":"bacf61ea_39c8d4a7","line":4822,"range":{"start_line":4822,"start_character":26,"end_line":4822,"end_character":41},"updated":"2016-08-07 07:55:03.000000000","message":"ditto","commit_id":"ab8802af6bf382d35ac16442c1d5a6c88ec9062d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"6ed4509c6f7431d5048c5c0abaabe25ea241926c","unresolved":false,"context_lines":[{"line_number":4832,"context_line":"                                                      error\u003dfailed)"},{"line_number":4833,"context_line":"            LOG.debug(\"swap_volume: Cinder migrate_volume_completion \""},{"line_number":4834,"context_line":"                      \"returned: %(comp_ret)s\", {\u0027comp_ret\u0027: comp_ret},"},{"line_number":4835,"context_line":"                      context\u003dcontext, instance\u003dinstance)"},{"line_number":4836,"context_line":""},{"line_number":4837,"context_line":"        return (comp_ret, new_cinfo)"},{"line_number":4838,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"bacf61ea_19cb50a5","line":4835,"range":{"start_line":4835,"start_character":22,"end_line":4835,"end_character":37},"updated":"2016-08-07 07:55:03.000000000","message":"ditto","commit_id":"ab8802af6bf382d35ac16442c1d5a6c88ec9062d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"6ed4509c6f7431d5048c5c0abaabe25ea241926c","unresolved":false,"context_lines":[{"line_number":4855,"context_line":""},{"line_number":4856,"context_line":"        LOG.info(_LI(\u0027Swapping volume %(old_volume)s for %(new_volume)s\u0027),"},{"line_number":4857,"context_line":"                  {\u0027old_volume\u0027: old_volume_id, \u0027new_volume\u0027: new_volume_id},"},{"line_number":4858,"context_line":"                  context\u003dcontext, instance\u003dinstance)"},{"line_number":4859,"context_line":"        comp_ret, new_cinfo \u003d self._swap_volume(context, instance,"},{"line_number":4860,"context_line":"                                                         bdm,"},{"line_number":4861,"context_line":"                                                         connector,"}],"source_content_type":"text/x-python","patch_set":6,"id":"bacf61ea_59c1487f","line":4858,"range":{"start_line":4858,"start_character":18,"end_line":4858,"end_character":33},"updated":"2016-08-07 07:55:03.000000000","message":"ditto","commit_id":"ab8802af6bf382d35ac16442c1d5a6c88ec9062d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"6ed4509c6f7431d5048c5c0abaabe25ea241926c","unresolved":false,"context_lines":[{"line_number":4880,"context_line":"        LOG.debug(\"swap_volume: Updating volume %(volume_id)s BDM record with \""},{"line_number":4881,"context_line":"                  \"%(updates)s\", {\u0027volume_id\u0027: bdm.volume_id,"},{"line_number":4882,"context_line":"                                  \u0027updates\u0027: values},"},{"line_number":4883,"context_line":"                  context\u003dcontext, instance\u003dinstance)"},{"line_number":4884,"context_line":"        bdm.update(values)"},{"line_number":4885,"context_line":"        bdm.save()"},{"line_number":4886,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"bacf61ea_b9bcc406","line":4883,"range":{"start_line":4883,"start_character":18,"end_line":4883,"end_character":33},"updated":"2016-08-07 07:55:03.000000000","message":"ditto","commit_id":"ab8802af6bf382d35ac16442c1d5a6c88ec9062d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"6ed4509c6f7431d5048c5c0abaabe25ea241926c","unresolved":false,"context_lines":[{"line_number":6693,"context_line":"                                migration.save()"},{"line_number":6694,"context_line":"                        except exception.MigrationNotFound:"},{"line_number":6695,"context_line":"                            LOG.warning(_LW(\"Migration %s is not found.\"),"},{"line_number":6696,"context_line":"                                        migration.id, context\u003dcontext,"},{"line_number":6697,"context_line":"                                        instance\u003dinstance)"},{"line_number":6698,"context_line":"                        break"},{"line_number":6699,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"bacf61ea_99b74020","line":6696,"range":{"start_line":6696,"start_character":54,"end_line":6696,"end_character":69},"updated":"2016-08-07 07:55:03.000000000","message":"ditto","commit_id":"ab8802af6bf382d35ac16442c1d5a6c88ec9062d"}],"nova/hacking/checks.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1c2d249fcf6863f6228a730c6a5374d50ca683a0","unresolved":false,"context_lines":[{"line_number":774,"context_line":"        return"},{"line_number":775,"context_line":""},{"line_number":776,"context_line":"    if pep8.noqa(physical_line):"},{"line_number":777,"context_line":"        return"},{"line_number":778,"context_line":"    if log_remove_context.match(logical_line):"},{"line_number":779,"context_line":"        yield(0,"},{"line_number":780,"context_line":"              \"N353: Nova is using oslo.context\u0027s RequestContext \""}],"source_content_type":"text/x-python","patch_set":8,"id":"1ac06dbe_b6d720be","line":777,"updated":"2016-08-22 15:52:36.000000000","message":"nit: insert a new line after this","commit_id":"59a3cd57eebdf1baf364a5ce73bfcf7e0671bef5"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6d6c81a46461ef664ad21a4a6954f6e757338b45","unresolved":false,"context_lines":[{"line_number":109,"context_line":"    r\"\\b(then?|[iao]n|i[fst]|but|f?or|at|and|[dt]o)\\s+\\1\\b\")"},{"line_number":110,"context_line":"opt_help_text_min_char_count \u003d 10"},{"line_number":111,"context_line":"log_remove_context \u003d re.compile("},{"line_number":112,"context_line":"    r\"(.)*LOG\\.(.*)\\(.*(context\u003dcontext)+.*\\)\")"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"class BaseASTChecker(ast.NodeVisitor):"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa7ab95a_3bfc703d","line":112,"range":{"start_line":112,"start_character":32,"end_line":112,"end_character":39},"updated":"2016-08-30 10:42:07.000000000","message":"This isn\u0027t always called context, it could be admin_context or ctx, an other such things.\n\nI think you should check for valid identifier names up to the next \",\"","commit_id":"6959840f73ef5cd1ef3945af8f2a0e7a86ececd2"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"bcd892cb8ec28479336a3151f3ab37eb07135618","unresolved":false,"context_lines":[{"line_number":780,"context_line":"        yield(0,"},{"line_number":781,"context_line":"              \"N353: Nova is using oslo.context\u0027s RequestContext \""},{"line_number":782,"context_line":"              \"which means the context object is in scope when \""},{"line_number":783,"context_line":"              \"doing logging using oslo.log,so no need to pass it as \""},{"line_number":784,"context_line":"              \"kwarg.\")"},{"line_number":785,"context_line":""},{"line_number":786,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9a89bdaa_41f909c8","line":783,"range":{"start_line":783,"start_character":40,"end_line":783,"end_character":46},"updated":"2016-09-03 06:58:31.000000000","message":"Missing a space at here.","commit_id":"9f684c253e0cb78e9bc0b3161234c3f0ddad980e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cbbe83cbe74121163d0813afe0554122349e598a","unresolved":false,"context_lines":[{"line_number":107,"context_line":"contextlib_nested \u003d re.compile(r\"^with (contextlib\\.)?nested\\(\")"},{"line_number":108,"context_line":"doubled_words_re \u003d re.compile("},{"line_number":109,"context_line":"    r\"\\b(then?|[iao]n|i[fst]|but|f?or|at|and|[dt]o)\\s+\\1\\b\")"},{"line_number":110,"context_line":"opt_help_text_min_char_count \u003d 10"},{"line_number":111,"context_line":"log_remove_context \u003d re.compile("},{"line_number":112,"context_line":"    r\"(.)*LOG\\.(.*)\\(.*(context\u003d[a-zA-Z0-9].*)+.*\\)\")"},{"line_number":113,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7a8ec9b2_74b0de43","line":110,"updated":"2016-09-22 01:00:10.000000000","message":"Where is this used?","commit_id":"2ad5cde5d30105896e541c03517dacfb2a3d5d69"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cbbe83cbe74121163d0813afe0554122349e598a","unresolved":false,"context_lines":[{"line_number":109,"context_line":"    r\"\\b(then?|[iao]n|i[fst]|but|f?or|at|and|[dt]o)\\s+\\1\\b\")"},{"line_number":110,"context_line":"opt_help_text_min_char_count \u003d 10"},{"line_number":111,"context_line":"log_remove_context \u003d re.compile("},{"line_number":112,"context_line":"    r\"(.)*LOG\\.(.*)\\(.*(context\u003d[a-zA-Z0-9].*)+.*\\)\")"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"class BaseASTChecker(ast.NodeVisitor):"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a8ec9b2_b45fc60d","line":112,"range":{"start_line":112,"start_character":33,"end_line":112,"end_character":42},"updated":"2016-09-22 01:00:10.000000000","message":"Seems you\u0027d want to handle underscores in here too?","commit_id":"2ad5cde5d30105896e541c03517dacfb2a3d5d69"},{"author":{"_account_id":18339,"name":"Sivasathurappan Radhakrishnan","email":"siva.radhakrishnan@intel.com","username":"sivakrishnan"},"change_message_id":"e23734eeace848f07f05ba55376d9340e842ffe0","unresolved":false,"context_lines":[{"line_number":109,"context_line":"    r\"\\b(then?|[iao]n|i[fst]|but|f?or|at|and|[dt]o)\\s+\\1\\b\")"},{"line_number":110,"context_line":"opt_help_text_min_char_count \u003d 10"},{"line_number":111,"context_line":"log_remove_context \u003d re.compile("},{"line_number":112,"context_line":"    r\"(.)*LOG\\.(.*)\\(.*(context\u003d[a-zA-Z0-9].*)+.*\\)\")"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"class BaseASTChecker(ast.NodeVisitor):"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a8bc5a2_17482c87","line":112,"range":{"start_line":112,"start_character":33,"end_line":112,"end_character":42},"in_reply_to":"7a8ec9b2_b45fc60d","updated":"2016-09-27 19:55:41.000000000","message":"thanks for pointing it out , now I have changed it to handle cases with underscore infront of it(_context).","commit_id":"2ad5cde5d30105896e541c03517dacfb2a3d5d69"}]}
