)]}'
{"gnocchi/rest/__init__.py":[{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"e3d6c4a4b14d3b42d568b9f6e8630447312db5b4","unresolved":false,"context_lines":[{"line_number":109,"context_line":"    def __init__(self, granularity\u003dNone, points\u003dNone, timespan\u003dNone):"},{"line_number":110,"context_line":"        if ((granularity is None and points is None)"},{"line_number":111,"context_line":"           or (granularity is None and timespan is None)"},{"line_number":112,"context_line":"           or (timespan is None and points is None)):"},{"line_number":113,"context_line":"            raise ValueError("},{"line_number":114,"context_line":"                \"At least two of granularity/points/timespan must be provided\")"},{"line_number":115,"context_line":"        self._granularity \u003d granularity"}],"source_content_type":"text/x-python","patch_set":3,"id":"baa201ad_b26fff90","line":112,"updated":"2014-10-09 09:56:02.000000000","message":"More concise as:\n\n  unset \u003d [i for i in [granularity, points, timespan] if i is None]\n  if len(unset) \u003e 1:\n      raise ValueError(...)\n\n(see next comment for justification)","commit_id":"6b47fc2ca4866e0732f7b61a39c4faddbdddf92b"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"f9fe5f11b7a1809276f7e480f729726712d0516a","unresolved":false,"context_lines":[{"line_number":109,"context_line":"    def __init__(self, granularity\u003dNone, points\u003dNone, timespan\u003dNone):"},{"line_number":110,"context_line":"        if ((granularity is None and points is None)"},{"line_number":111,"context_line":"           or (granularity is None and timespan is None)"},{"line_number":112,"context_line":"           or (timespan is None and points is None)):"},{"line_number":113,"context_line":"            raise ValueError("},{"line_number":114,"context_line":"                \"At least two of granularity/points/timespan must be provided\")"},{"line_number":115,"context_line":"        self._granularity \u003d granularity"}],"source_content_type":"text/x-python","patch_set":3,"id":"baa201ad_932577b0","line":112,"in_reply_to":"baa201ad_b26fff90","updated":"2014-10-10 15:58:19.000000000","message":"Done","commit_id":"6b47fc2ca4866e0732f7b61a39c4faddbdddf92b"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"e3d6c4a4b14d3b42d568b9f6e8630447312db5b4","unresolved":false,"context_lines":[{"line_number":111,"context_line":"           or (granularity is None and timespan is None)"},{"line_number":112,"context_line":"           or (timespan is None and points is None)):"},{"line_number":113,"context_line":"            raise ValueError("},{"line_number":114,"context_line":"                \"At least two of granularity/points/timespan must be provided\")"},{"line_number":115,"context_line":"        self._granularity \u003d granularity"},{"line_number":116,"context_line":"        self._points \u003d points"},{"line_number":117,"context_line":"        self._timespan \u003d timespan"}],"source_content_type":"text/x-python","patch_set":3,"id":"baa201ad_927e7b17","line":114,"updated":"2014-10-09 09:56:02.000000000","message":"If all 3 are provided, should validate also that the values are internally consistent, e.g:\n\n  elif len(unset) \u003d\u003d 0 and timespan !\u003d granularity * points:\n      raise ValueError(\"inconsistent granularity/points/timespan\")","commit_id":"6b47fc2ca4866e0732f7b61a39c4faddbdddf92b"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"f9fe5f11b7a1809276f7e480f729726712d0516a","unresolved":false,"context_lines":[{"line_number":111,"context_line":"           or (granularity is None and timespan is None)"},{"line_number":112,"context_line":"           or (timespan is None and points is None)):"},{"line_number":113,"context_line":"            raise ValueError("},{"line_number":114,"context_line":"                \"At least two of granularity/points/timespan must be provided\")"},{"line_number":115,"context_line":"        self._granularity \u003d granularity"},{"line_number":116,"context_line":"        self._points \u003d points"},{"line_number":117,"context_line":"        self._timespan \u003d timespan"}],"source_content_type":"text/x-python","patch_set":3,"id":"baa201ad_b32a7b7c","line":114,"in_reply_to":"baa201ad_927e7b17","updated":"2014-10-10 15:58:19.000000000","message":"Done","commit_id":"6b47fc2ca4866e0732f7b61a39c4faddbdddf92b"}]}
