)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"4a55351c2785734893fcd901cb23d1c513d7fd59","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implement not typed separator in names of columns in HBase"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"It should to avoid from incorrect parsing thru stored  data in HBase."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Closes-bug: #1328114"},{"line_number":12,"context_line":"Change-Id: I8f816055bb76e67d239de73a57b7cb0baa94dee5"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"baada198_4400f665","line":9,"updated":"2014-07-14 11:35:58.000000000","message":"It should -\u003e this is needed\nDouble space after /stored/ is not necessary too :)","commit_id":"a1b61bcb2148e5129d457ff64717de01866c0ce3"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"0034e8eed16ae3d402572f06f43d9a35eb821721","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implement not typed separator in names of columns in HBase"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"It should to avoid from incorrect parsing thru stored  data in HBase."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Closes-bug: #1328114"},{"line_number":12,"context_line":"Change-Id: I8f816055bb76e67d239de73a57b7cb0baa94dee5"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"baada198_b753bfe0","line":9,"in_reply_to":"baada198_4400f665","updated":"2014-07-14 13:04:58.000000000","message":"Done","commit_id":"a1b61bcb2148e5129d457ff64717de01866c0ce3"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"bc3af8a3ec7e0c24710b255efdd6e1e5059e8074","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implement redesigned separator in names of columns in HBase"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This is needed to avoid from incorrect parsing thru stored data in HBase."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Closes-bug: #1328114"},{"line_number":12,"context_line":"Change-Id: I8f816055bb76e67d239de73a57b7cb0baa94dee5"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"baada198_9fdde26f","line":9,"updated":"2014-08-04 12:43:35.000000000","message":"This sentence doesn\u0027t make any sense. Is there a wrong word or ordering or something missing?","commit_id":"8a7352e460b4cbd8c555e16312442dcb8ef631fb"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"83f0fe8f6b052950bf3a0fa9828181a8e31d7803","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implement redesigned separator in names of columns in HBase"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This is needed to avoid from incorrect parsing thru stored data in HBase."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Closes-bug: #1328114"},{"line_number":12,"context_line":"Change-Id: I8f816055bb76e67d239de73a57b7cb0baa94dee5"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"baada198_735da515","line":9,"in_reply_to":"baada198_9fdde26f","updated":"2014-08-04 14:09:56.000000000","message":"I will improve it. Thanks.","commit_id":"8a7352e460b4cbd8c555e16312442dcb8ef631fb"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"f808fde81b5fc82a0756ab8b6833944c9f00deba","unresolved":false,"context_lines":[{"line_number":10,"context_line":"we are using separators \"_!+\" to construct the \"key\", but we don\u0027t restrict"},{"line_number":11,"context_line":"any character inside the names of metrics, so it could be a reason of"},{"line_number":12,"context_line":"incorrect parsing of stored data."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"In this patch only one separator \":\" is used, and new method \"prepare_key\""},{"line_number":15,"context_line":"helps to avoid incorrect parsing by \"quoting\" columns and rows names."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":19,"id":"baa201ad_f0c8fc56","line":13,"updated":"2014-10-06 13:29:31.000000000","message":"\"prepare_key\" is introduced not in this patch","commit_id":"06619d498132655a87d226a1ccc3d77c5197791a"}],"ceilometer/alarm/storage/impl_hbase.py":[{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"19c1b038c09df7e356adcfafab674a4d6b99d546","unresolved":false,"context_lines":[{"line_number":221,"context_line":"        with self.conn_pool.connection() as conn:"},{"line_number":222,"context_line":"            alarm_history_table \u003d conn.table(self.ALARM_HISTORY_TABLE)"},{"line_number":223,"context_line":"            alarm_history_table.put("},{"line_number":224,"context_line":"                hbase_utils.prepare_key(alarm_change.get(\u0027alarm_id\u0027),rts),"},{"line_number":225,"context_line":"                alarm_change_dict)"}],"source_content_type":"text/x-python","patch_set":14,"id":"baada198_b9d462bb","line":224,"range":{"start_line":224,"start_character":68,"end_line":224,"end_character":69},"updated":"2014-08-05 07:09:42.000000000","message":"quite strange that pep8 did not find the whitespace missing after the comma... although that\u0027s included to the pep8 check :-\\ anyway, please add this as that might cause failures in future","commit_id":"bb6080d0e84345efd8d797f9faffc0a5e848a1d4"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"1f532ee8c23f23766cbb6078f01dcd90c8e8b2fd","unresolved":false,"context_lines":[{"line_number":221,"context_line":"        with self.conn_pool.connection() as conn:"},{"line_number":222,"context_line":"            alarm_history_table \u003d conn.table(self.ALARM_HISTORY_TABLE)"},{"line_number":223,"context_line":"            alarm_history_table.put("},{"line_number":224,"context_line":"                hbase_utils.prepare_key(alarm_change.get(\u0027alarm_id\u0027),rts),"},{"line_number":225,"context_line":"                alarm_change_dict)"}],"source_content_type":"text/x-python","patch_set":14,"id":"baada198_2f8ac419","line":224,"in_reply_to":"baada198_b9d462bb","updated":"2014-08-05 08:06:18.000000000","message":"Done","commit_id":"bb6080d0e84345efd8d797f9faffc0a5e848a1d4"}],"ceilometer/storage/hbase/utils.py":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"dd6f46c0432ea3cb7d18bf6955ba6cce1651d18f","unresolved":false,"context_lines":[{"line_number":407,"context_line":"    return bson.json_util.object_hook(dct)"},{"line_number":408,"context_line":""},{"line_number":409,"context_line":""},{"line_number":410,"context_line":"def quote(s, *args):"},{"line_number":411,"context_line":"    \"\"\"Return quoted string even if it is unicode one."},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"    :param s: string that should be quoted"}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_310c9739","line":410,"updated":"2014-07-23 11:23:28.000000000","message":"I\u0027d be quite surprised if these two methods weren\u0027t already in some more general utility library somewhere, as as such can be reused from there?","commit_id":"f8e94ec4473f34e15b43fa70a36bd45698ad2aea"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"8ab9c8641d0178967c022d9dd159bcdfefd62c8e","unresolved":false,"context_lines":[{"line_number":407,"context_line":"    return bson.json_util.object_hook(dct)"},{"line_number":408,"context_line":""},{"line_number":409,"context_line":""},{"line_number":410,"context_line":"def quote(s, *args):"},{"line_number":411,"context_line":"    \"\"\"Return quoted string even if it is unicode one."},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"    :param s: string that should be quoted"}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_b8e4070f","line":410,"in_reply_to":"baada198_310c9739","updated":"2014-07-23 13:21:59.000000000","message":"Here I use urllib to implement URI to columns names. This library was created for URLs, that can only contain ASCII characters. My search for some similar methods that can contain unicode was failed. So I have to wrote these two. If you have met methods in other general libraries that can be use here please let me know.","commit_id":"f8e94ec4473f34e15b43fa70a36bd45698ad2aea"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"45509b096eb79ee0fbfed941df5ae6e2d846566b","unresolved":false,"context_lines":[{"line_number":335,"context_line":"            sources.append(k[4:])"},{"line_number":336,"context_line":"        elif k.startswith(\u0027f:r_metadata.\u0027):"},{"line_number":337,"context_line":"            metadata_flattened[k[len(\u0027f:r_metadata.\u0027):]] \u003d load(v)"},{"line_number":338,"context_line":"        elif k.startswith(\"f:m_\"):"},{"line_number":339,"context_line":"            meter \u003d (k[4:], load(v))"},{"line_number":340,"context_line":"            meters.append(meter)"},{"line_number":341,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_95985a1c","line":338,"updated":"2014-07-28 13:12:14.000000000","message":"here you may return not tuple of (str,str) but (str, list). List may contain unquoted strings","commit_id":"4960df905f8eff38cc390838aa890e9b796be482"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"b32428304dd9349aea05ab934e21ec0e33f20b73","unresolved":false,"context_lines":[{"line_number":335,"context_line":"            sources.append(k[4:])"},{"line_number":336,"context_line":"        elif k.startswith(\u0027f:r_metadata.\u0027):"},{"line_number":337,"context_line":"            metadata_flattened[k[len(\u0027f:r_metadata.\u0027):]] \u003d load(v)"},{"line_number":338,"context_line":"        elif k.startswith(\"f:m_\"):"},{"line_number":339,"context_line":"            meter \u003d (k[4:], load(v))"},{"line_number":340,"context_line":"            meters.append(meter)"},{"line_number":341,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_3822fea6","line":338,"in_reply_to":"baada198_7ba1f7a7","updated":"2014-07-29 09:01:15.000000000","message":"Sorry for wrong comment. I meant not (str, list) but (list, str). So we will not unquote values but only key","commit_id":"4960df905f8eff38cc390838aa890e9b796be482"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"dbd3be41d4251791a94bd0b329bb1a9673b78ce2","unresolved":false,"context_lines":[{"line_number":335,"context_line":"            sources.append(k[4:])"},{"line_number":336,"context_line":"        elif k.startswith(\u0027f:r_metadata.\u0027):"},{"line_number":337,"context_line":"            metadata_flattened[k[len(\u0027f:r_metadata.\u0027):]] \u003d load(v)"},{"line_number":338,"context_line":"        elif k.startswith(\"f:m_\"):"},{"line_number":339,"context_line":"            meter \u003d (k[4:], load(v))"},{"line_number":340,"context_line":"            meters.append(meter)"},{"line_number":341,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_7ba1f7a7","line":338,"in_reply_to":"baada198_95985a1c","updated":"2014-07-28 13:46:21.000000000","message":"Could you clarify why do we need list for values, actually we don\u0027t need to quote and unquote values because all problems with incorrect parsing are lying in keys.","commit_id":"4960df905f8eff38cc390838aa890e9b796be482"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"bc3af8a3ec7e0c24710b255efdd6e1e5059e8074","unresolved":false,"context_lines":[{"line_number":15,"context_line":"import copy"},{"line_number":16,"context_line":"import datetime"},{"line_number":17,"context_line":"import json"},{"line_number":18,"context_line":"import urllib"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import bson.json_util"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"baada198_ff7dfe1e","line":18,"updated":"2014-08-04 12:43:35.000000000","message":"Does it any sense to use six here for future smoothness? I think quote and unquote are in \"six.moves.urllib.parse\".","commit_id":"8a7352e460b4cbd8c555e16312442dcb8ef631fb"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"83f0fe8f6b052950bf3a0fa9828181a8e31d7803","unresolved":false,"context_lines":[{"line_number":15,"context_line":"import copy"},{"line_number":16,"context_line":"import datetime"},{"line_number":17,"context_line":"import json"},{"line_number":18,"context_line":"import urllib"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import bson.json_util"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"baada198_73bf65ab","line":18,"in_reply_to":"baada198_ff7dfe1e","updated":"2014-08-04 14:09:56.000000000","message":"You are right urllib.quote (.unquote) are in the \"six.moves.urllib.parse\" and I think you are right we can use that library for future smoothness.","commit_id":"8a7352e460b4cbd8c555e16312442dcb8ef631fb"}],"ceilometer/storage/impl_hbase.py":[{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"8ef2321e0cf00bd73a395eff9009d303e9a2c97c","unresolved":false,"context_lines":[{"line_number":111,"context_line":"          - all meters for this resource in format:"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"            .. code-block:: python"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"              \"%s:%s:%s:%s:%s\" % (rts, source, counter_name, counter_type,"},{"line_number":116,"context_line":"              counter_unit)"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_d9650446","line":114,"updated":"2014-07-18 14:27:12.000000000","message":"why are you changing separators here? We are going to have a separate patch for that, aren\u0027t we?","commit_id":"2283000ca134f768b495d9ebde31f7a8fd5932ef"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"d9d82c3b73b00eeaf2846dbb89af04e4e7b5b19e","unresolved":false,"context_lines":[{"line_number":111,"context_line":"          - all meters for this resource in format:"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"            .. code-block:: python"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"              \"%s:%s:%s:%s:%s\" % (rts, source, counter_name, counter_type,"},{"line_number":116,"context_line":"              counter_unit)"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_13dba64f","line":114,"in_reply_to":"baada198_d9650446","updated":"2014-07-21 09:57:14.000000000","message":"we won\u0027t need separate patch for that if we implement quoting of HBase column names.","commit_id":"2283000ca134f768b495d9ebde31f7a8fd5932ef"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"45509b096eb79ee0fbfed941df5ae6e2d846566b","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"             f:r_metadata.display_name or f:r_metadata.tag"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"          - sources for all corresponding meters with prefix \u0027s\u0027"},{"line_number":106,"context_line":"          - all meters for this resource in format:"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"            .. code-block:: python"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_d559f28d","line":105,"updated":"2014-07-28 13:12:14.000000000","message":"Please add \"with prefix m\" here","commit_id":"4960df905f8eff38cc390838aa890e9b796be482"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"dbd3be41d4251791a94bd0b329bb1a9673b78ce2","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"             f:r_metadata.display_name or f:r_metadata.tag"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"          - sources for all corresponding meters with prefix \u0027s\u0027"},{"line_number":106,"context_line":"          - all meters for this resource in format:"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"            .. code-block:: python"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_8079fafd","line":105,"in_reply_to":"baada198_d559f28d","updated":"2014-07-28 13:46:21.000000000","message":"Done","commit_id":"4960df905f8eff38cc390838aa890e9b796be482"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"45509b096eb79ee0fbfed941df5ae6e2d846566b","unresolved":false,"context_lines":[{"line_number":255,"context_line":"            # user+resource+project for purposes of uniqueness"},{"line_number":256,"context_line":"            m \u003d hashlib.md5()"},{"line_number":257,"context_line":"            m.update(\"%s%s%s\" % (data[\u0027user_id\u0027], data[\u0027resource_id\u0027],"},{"line_number":258,"context_line":"                                 data[\u0027project_id\u0027]))"},{"line_number":259,"context_line":"            row \u003d \"%s:%d:%s\" % (hbase_utils.quote(data[\u0027counter_name\u0027]), rts,"},{"line_number":260,"context_line":"                                m.hexdigest())"},{"line_number":261,"context_line":"            record \u003d hbase_utils.serialize_entry("}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_b53d5e90","line":258,"updated":"2014-07-28 13:12:14.000000000","message":"Not a blocker:\nMaybe it\u0027s better to create a method \u0027serialize_key\u0027 or refactor \u0027serialize_entry\u0027.\nThe thing is that \u0027deserialize_entry\u0027 works with *both* keys and values but serialise_entry modifies a value only.","commit_id":"4960df905f8eff38cc390838aa890e9b796be482"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"dbd3be41d4251791a94bd0b329bb1a9673b78ce2","unresolved":false,"context_lines":[{"line_number":255,"context_line":"            # user+resource+project for purposes of uniqueness"},{"line_number":256,"context_line":"            m \u003d hashlib.md5()"},{"line_number":257,"context_line":"            m.update(\"%s%s%s\" % (data[\u0027user_id\u0027], data[\u0027resource_id\u0027],"},{"line_number":258,"context_line":"                                 data[\u0027project_id\u0027]))"},{"line_number":259,"context_line":"            row \u003d \"%s:%d:%s\" % (hbase_utils.quote(data[\u0027counter_name\u0027]), rts,"},{"line_number":260,"context_line":"                                m.hexdigest())"},{"line_number":261,"context_line":"            record \u003d hbase_utils.serialize_entry("}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_e06c7609","line":258,"in_reply_to":"baada198_b53d5e90","updated":"2014-07-28 13:46:21.000000000","message":"We already have a small refactor part in serialize_entry with quote a key in a part that is not dedicated to any specific metrics.","commit_id":"4960df905f8eff38cc390838aa890e9b796be482"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"45509b096eb79ee0fbfed941df5ae6e2d846566b","unresolved":false,"context_lines":[{"line_number":301,"context_line":"                # HBase. So that\u0027s why it\u0027s needed to find min and max"},{"line_number":302,"context_line":"                # manually"},{"line_number":303,"context_line":"                first_ts \u003d min(meters, key\u003doperator.itemgetter(1))[1]"},{"line_number":304,"context_line":"                last_ts \u003d max(meters, key\u003doperator.itemgetter(1))[1]"},{"line_number":305,"context_line":"                source \u003d hbase_utils.unquote(meters[0][0].split(\u0027:\u0027)[1])"},{"line_number":306,"context_line":"                # If we use QualifierFilter then HBase returnes only"},{"line_number":307,"context_line":"                # qualifiers filtered by. It will not return the whole entry."}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_722cbc4a","line":304,"updated":"2014-07-28 13:12:14.000000000","message":"This unquote may be done inside \u0027deserialize\u0027 method","commit_id":"4960df905f8eff38cc390838aa890e9b796be482"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"dbd3be41d4251791a94bd0b329bb1a9673b78ce2","unresolved":false,"context_lines":[{"line_number":301,"context_line":"                # HBase. So that\u0027s why it\u0027s needed to find min and max"},{"line_number":302,"context_line":"                # manually"},{"line_number":303,"context_line":"                first_ts \u003d min(meters, key\u003doperator.itemgetter(1))[1]"},{"line_number":304,"context_line":"                last_ts \u003d max(meters, key\u003doperator.itemgetter(1))[1]"},{"line_number":305,"context_line":"                source \u003d hbase_utils.unquote(meters[0][0].split(\u0027:\u0027)[1])"},{"line_number":306,"context_line":"                # If we use QualifierFilter then HBase returnes only"},{"line_number":307,"context_line":"                # qualifiers filtered by. It will not return the whole entry."}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_00a32a9e","line":304,"in_reply_to":"baada198_722cbc4a","updated":"2014-07-28 13:46:21.000000000","message":"Unfortunately it can\u0027t. Because if we unquote data in \u0027deserialize\u0027 method we won\u0027t be able to made a right split of the data, just imagine that stored data contains columns and after unquote operation all columns will appear in our string, so the split  will be going with mistakes.","commit_id":"4960df905f8eff38cc390838aa890e9b796be482"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"45509b096eb79ee0fbfed941df5ae6e2d846566b","unresolved":false,"context_lines":[{"line_number":352,"context_line":"            for ignored, data in gen:"},{"line_number":353,"context_line":"                flatten_result, s, meters, md \u003d hbase_utils.deserialize_entry("},{"line_number":354,"context_line":"                    data)"},{"line_number":355,"context_line":"                for m in meters:"},{"line_number":356,"context_line":"                    _m_rts, m_source, name, m_type, unit \u003d m[0].split(\":\")"},{"line_number":357,"context_line":"                    meter_dict \u003d {\u0027name\u0027: hbase_utils.unquote(name),"},{"line_number":358,"context_line":"                                  \u0027type\u0027: hbase_utils.unquote(m_type),"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_32c4045f","line":355,"updated":"2014-07-28 13:12:14.000000000","message":"ditto","commit_id":"4960df905f8eff38cc390838aa890e9b796be482"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"dbd3be41d4251791a94bd0b329bb1a9673b78ce2","unresolved":false,"context_lines":[{"line_number":352,"context_line":"            for ignored, data in gen:"},{"line_number":353,"context_line":"                flatten_result, s, meters, md \u003d hbase_utils.deserialize_entry("},{"line_number":354,"context_line":"                    data)"},{"line_number":355,"context_line":"                for m in meters:"},{"line_number":356,"context_line":"                    _m_rts, m_source, name, m_type, unit \u003d m[0].split(\":\")"},{"line_number":357,"context_line":"                    meter_dict \u003d {\u0027name\u0027: hbase_utils.unquote(name),"},{"line_number":358,"context_line":"                                  \u0027type\u0027: hbase_utils.unquote(m_type),"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_a0343efb","line":355,"in_reply_to":"baada198_32c4045f","updated":"2014-07-28 13:46:21.000000000","message":"Answered above.","commit_id":"4960df905f8eff38cc390838aa890e9b796be482"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"45509b096eb79ee0fbfed941df5ae6e2d846566b","unresolved":false,"context_lines":[{"line_number":363,"context_line":"                    frozen_meter \u003d frozenset(meter_dict.items())"},{"line_number":364,"context_line":"                    if frozen_meter in result:"},{"line_number":365,"context_line":"                        continue"},{"line_number":366,"context_line":"                    result.add(frozen_meter)"},{"line_number":367,"context_line":"                    meter_dict.update({\u0027source\u0027: hbase_utils.unquote(m_source)"},{"line_number":368,"context_line":"                                       if m_source else None})"},{"line_number":369,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_1290e04c","line":366,"updated":"2014-07-28 13:12:14.000000000","message":"ditto","commit_id":"4960df905f8eff38cc390838aa890e9b796be482"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"dbd3be41d4251791a94bd0b329bb1a9673b78ce2","unresolved":false,"context_lines":[{"line_number":363,"context_line":"                    frozen_meter \u003d frozenset(meter_dict.items())"},{"line_number":364,"context_line":"                    if frozen_meter in result:"},{"line_number":365,"context_line":"                        continue"},{"line_number":366,"context_line":"                    result.add(frozen_meter)"},{"line_number":367,"context_line":"                    meter_dict.update({\u0027source\u0027: hbase_utils.unquote(m_source)"},{"line_number":368,"context_line":"                                       if m_source else None})"},{"line_number":369,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_c03772fc","line":366,"in_reply_to":"baada198_1290e04c","updated":"2014-07-28 13:46:21.000000000","message":"Answered above.","commit_id":"4960df905f8eff38cc390838aa890e9b796be482"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"45509b096eb79ee0fbfed941df5ae6e2d846566b","unresolved":false,"context_lines":[{"line_number":547,"context_line":"            events_table \u003d conn.table(self.EVENT_TABLE)"},{"line_number":548,"context_line":""},{"line_number":549,"context_line":"            gen \u003d events_table.scan(filter\u003dq, row_start\u003dstart, row_stop\u003dstop)"},{"line_number":550,"context_line":""},{"line_number":551,"context_line":"        for event_id, data in gen:"},{"line_number":552,"context_line":"            traits \u003d []"},{"line_number":553,"context_line":"            events_dict \u003d hbase_utils.deserialize_entry(data)[0]"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_92631040","line":550,"updated":"2014-07-28 13:12:14.000000000","message":"the same for events","commit_id":"4960df905f8eff38cc390838aa890e9b796be482"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"dbd3be41d4251791a94bd0b329bb1a9673b78ce2","unresolved":false,"context_lines":[{"line_number":547,"context_line":"            events_table \u003d conn.table(self.EVENT_TABLE)"},{"line_number":548,"context_line":""},{"line_number":549,"context_line":"            gen \u003d events_table.scan(filter\u003dq, row_start\u003dstart, row_stop\u003dstop)"},{"line_number":550,"context_line":""},{"line_number":551,"context_line":"        for event_id, data in gen:"},{"line_number":552,"context_line":"            traits \u003d []"},{"line_number":553,"context_line":"            events_dict \u003d hbase_utils.deserialize_entry(data)[0]"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_e03ab6e4","line":550,"in_reply_to":"baada198_92631040","updated":"2014-07-28 13:46:21.000000000","message":"Answered above.","commit_id":"4960df905f8eff38cc390838aa890e9b796be482"}]}
