)]}'
{"zuul/driver/gerrit/gerritmodel.py":[{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"f83353eab04f8f567ad9059f29148988e65ac39f","unresolved":false,"context_lines":[{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    def updateFromDict(self, d):"},{"line_number":176,"context_line":"        super().updateFromDict(d)"},{"line_number":177,"context_line":"        self.approvals \u003d list(d.get(\"approvals\", []))"},{"line_number":178,"context_line":"        self.uuid \u003d d.get(\"uuid\")"},{"line_number":179,"context_line":"        self.scheme \u003d d.get(\"scheme\")"},{"line_number":180,"context_line":"        self.patchsetcomments \u003d d.get(\"patchsetcomments\")"}],"source_content_type":"text/x-python","patch_set":25,"id":"cb67b3ac_a74c7ad0","line":177,"updated":"2021-03-10 22:23:52.000000000","message":"Why the cast to a list?  Is it ever a tuple?","commit_id":"51d802a2e214fd8922330b1e551e5ceac9a3e03e"},{"author":{"_account_id":27582,"name":"Simon Westphahl","email":"simon.westphahl@bmw.de","username":"simon.westphahl"},"change_message_id":"88089eb8f639e81bced23fea312cab006f27d6af","unresolved":false,"context_lines":[{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    def updateFromDict(self, d):"},{"line_number":176,"context_line":"        super().updateFromDict(d)"},{"line_number":177,"context_line":"        self.approvals \u003d list(d.get(\"approvals\", []))"},{"line_number":178,"context_line":"        self.uuid \u003d d.get(\"uuid\")"},{"line_number":179,"context_line":"        self.scheme \u003d d.get(\"scheme\")"},{"line_number":180,"context_line":"        self.patchsetcomments \u003d d.get(\"patchsetcomments\")"}],"source_content_type":"text/x-python","patch_set":25,"id":"6e0178aa_9120dfdd","line":177,"in_reply_to":"cb67b3ac_a74c7ad0","updated":"2021-03-11 07:44:17.000000000","message":"I wanted to create a copy of the list here to avoid issues in case it might be modified later on. However, given the context (deserialization) I think it\u0027s save to assume that the list won\u0027t be modified. Will remove the list()","commit_id":"51d802a2e214fd8922330b1e551e5ceac9a3e03e"}],"zuul/driver/github/githubmodel.py":[{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"f83353eab04f8f567ad9059f29148988e65ac39f","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        self.delivery \u003d d.get(\"delivery\")"},{"line_number":100,"context_line":"        self.check_run \u003d d.get(\"check_run\")"},{"line_number":101,"context_line":"        self.status \u003d d.get(\"status\")"},{"line_number":102,"context_line":"        self.commits \u003d list(d.get(\"commits\", []))"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def isPatchsetCreated(self):"},{"line_number":105,"context_line":"        if self.type \u003d\u003d \u0027pull_request\u0027:"}],"source_content_type":"text/x-python","patch_set":25,"id":"0497bc72_8f28009b","line":102,"updated":"2021-03-10 22:23:52.000000000","message":"Same question re list","commit_id":"51d802a2e214fd8922330b1e551e5ceac9a3e03e"},{"author":{"_account_id":27582,"name":"Simon Westphahl","email":"simon.westphahl@bmw.de","username":"simon.westphahl"},"change_message_id":"88089eb8f639e81bced23fea312cab006f27d6af","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        self.delivery \u003d d.get(\"delivery\")"},{"line_number":100,"context_line":"        self.check_run \u003d d.get(\"check_run\")"},{"line_number":101,"context_line":"        self.status \u003d d.get(\"status\")"},{"line_number":102,"context_line":"        self.commits \u003d list(d.get(\"commits\", []))"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def isPatchsetCreated(self):"},{"line_number":105,"context_line":"        if self.type \u003d\u003d \u0027pull_request\u0027:"}],"source_content_type":"text/x-python","patch_set":25,"id":"43ae4580_c0bab646","line":102,"in_reply_to":"0497bc72_8f28009b","updated":"2021-03-11 07:44:17.000000000","message":"Done","commit_id":"51d802a2e214fd8922330b1e551e5ceac9a3e03e"}],"zuul/driver/pagure/paguremodel.py":[{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"e52b95761fe3b613c4ce558899e4de11135edcce","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def updateFromDict(self, d):"},{"line_number":86,"context_line":"        super().updateFromDict(d)"},{"line_number":87,"context_line":"        self.trigger_name \u003d d.get(\"trigger_name\", \"pagure\")"},{"line_number":88,"context_line":"        self.title \u003d d.get(\"title\")"},{"line_number":89,"context_line":"        self.action \u003d d.get(\"action\")"},{"line_number":90,"context_line":"        self.status \u003d d.get(\"status\")"}],"source_content_type":"text/x-python","patch_set":25,"id":"f1e84045_013b4098","line":87,"updated":"2021-03-12 15:23:52.000000000","message":"I think I\u0027d prefer that, because we should have a high confidence that all fields exist, and this way we don\u0027t have to duplicate initial values.  We will probably have to do this for new fields that we add, but even then, we can eventually remove those.","commit_id":"51d802a2e214fd8922330b1e551e5ceac9a3e03e"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"f83353eab04f8f567ad9059f29148988e65ac39f","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def updateFromDict(self, d):"},{"line_number":86,"context_line":"        super().updateFromDict(d)"},{"line_number":87,"context_line":"        self.trigger_name \u003d d.get(\"trigger_name\", \"pagure\")"},{"line_number":88,"context_line":"        self.title \u003d d.get(\"title\")"},{"line_number":89,"context_line":"        self.action \u003d d.get(\"action\")"},{"line_number":90,"context_line":"        self.status \u003d d.get(\"status\")"}],"source_content_type":"text/x-python","patch_set":25,"id":"5992e207_78769680","line":87,"updated":"2021-03-10 22:23:52.000000000","message":"Why do we need the default here (and gitlab)?","commit_id":"51d802a2e214fd8922330b1e551e5ceac9a3e03e"},{"author":{"_account_id":27582,"name":"Simon Westphahl","email":"simon.westphahl@bmw.de","username":"simon.westphahl"},"change_message_id":"88089eb8f639e81bced23fea312cab006f27d6af","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def updateFromDict(self, d):"},{"line_number":86,"context_line":"        super().updateFromDict(d)"},{"line_number":87,"context_line":"        self.trigger_name \u003d d.get(\"trigger_name\", \"pagure\")"},{"line_number":88,"context_line":"        self.title \u003d d.get(\"title\")"},{"line_number":89,"context_line":"        self.action \u003d d.get(\"action\")"},{"line_number":90,"context_line":"        self.status \u003d d.get(\"status\")"}],"source_content_type":"text/x-python","patch_set":25,"id":"b4a6617b_f936af93","line":87,"in_reply_to":"5992e207_78769680","updated":"2021-03-11 07:44:17.000000000","message":"The way I wrote the updateFromDict (see also models.py) is that I don\u0027t require the field to be present in the given dict and will use the same default as in the __init__.\n\nAgain, given the context we could simplify the updateFromDict methods to directly access the keys since it\u0027s probably safe to assume that the given dict contains all fields:\n\n    def updateFromDict(self, d):\n        super().updateFromDict(d)\n        self.trigger_name \u003d d[\"trigger_name\"]\n        self.title \u003d d[\"title\"]\n        ...\n\nWhat do you think?","commit_id":"51d802a2e214fd8922330b1e551e5ceac9a3e03e"},{"author":{"_account_id":27582,"name":"Simon Westphahl","email":"simon.westphahl@bmw.de","username":"simon.westphahl"},"change_message_id":"ba74302651d0f63e6b864767ee9226c7ab1201a2","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def updateFromDict(self, d):"},{"line_number":86,"context_line":"        super().updateFromDict(d)"},{"line_number":87,"context_line":"        self.trigger_name \u003d d.get(\"trigger_name\", \"pagure\")"},{"line_number":88,"context_line":"        self.title \u003d d.get(\"title\")"},{"line_number":89,"context_line":"        self.action \u003d d.get(\"action\")"},{"line_number":90,"context_line":"        self.status \u003d d.get(\"status\")"}],"source_content_type":"text/x-python","patch_set":25,"id":"c20e9212_9f9cc1dd","line":87,"in_reply_to":"f1e84045_013b4098","updated":"2021-03-15 13:35:36.000000000","message":"Done with the next PS","commit_id":"51d802a2e214fd8922330b1e551e5ceac9a3e03e"}]}
