)]}'
{"marconi/queues/storage/redis/claims.py":[{"author":{"_account_id":6944,"name":"Allele Dev","email":"cpp.cabrera@gmail.com","username":"cpp-cabrera"},"change_message_id":"86a928b033c52adcf1427aaddfdb92bb4b20a870","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    \"\"\""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def _exists(self, queue, claim_id, project, delete\u003dTrue):"},{"line_number":51,"context_line":"        # Note : Handle expired claims here."},{"line_number":52,"context_line":"        client \u003d self._client"},{"line_number":53,"context_line":"        qclaims_set_id \u003d utils.scope_claims_set(queue, project,"},{"line_number":54,"context_line":"                                                QUEUE_CLAIMS_SUFFIX)"}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_323c79e2","line":51,"updated":"2014-07-10 20:04:12.000000000","message":"NOTE(name): ...","commit_id":"7406e99330747dc71e40eb32b986bfa8d4ff54bb"},{"author":{"_account_id":6944,"name":"Allele Dev","email":"cpp.cabrera@gmail.com","username":"cpp-cabrera"},"change_message_id":"86a928b033c52adcf1427aaddfdb92bb4b20a870","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            self.delete(queue, claim_id, project)"},{"line_number":67,"context_line":"            return False"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        return True"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def _get_claimed_messages(self, claim_id):"},{"line_number":72,"context_line":"        return self._client.smembers(claim_id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_2d7dfe6e","line":69,"updated":"2014-07-10 20:04:12.000000000","message":"This implementation is a little troubling. It couples the notion of deletion with an existence check. I would prefer for the sake of long-term maintenance that entry deletion and existence checking were separated into two separate methods.\n\nSpecifically, one function (_exists) should strictly check for existence. The other function may leverage said existence function, and then perform the delete (_delete).","commit_id":"7406e99330747dc71e40eb32b986bfa8d4ff54bb"},{"author":{"_account_id":6944,"name":"Allele Dev","email":"cpp.cabrera@gmail.com","username":"cpp-cabrera"},"change_message_id":"86a928b033c52adcf1427aaddfdb92bb4b20a870","unresolved":false,"context_lines":[{"line_number":220,"context_line":""},{"line_number":221,"context_line":"        # delete:False avoids an infinite recursive case."},{"line_number":222,"context_line":"        if not self._exists(queue, claim_id, project, delete\u003dFalse):"},{"line_number":223,"context_line":"            raise errors.ClaimDoesNotExist(claim_id, queue, project)"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"        now \u003d timeutils.utcnow_ts()"},{"line_number":226,"context_line":"        claim_messages \u003d utils.scope_claim_messages(claim_id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_0ded9a25","line":223,"updated":"2014-07-10 20:04:12.000000000","message":"Let me know if decoupling deletion from existence checking eliminates the recursion issue.","commit_id":"7406e99330747dc71e40eb32b986bfa8d4ff54bb"}]}
