)]}'
{"nodepool/config.py":[{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"cf8de37c4a4d7f5fb137a9ca80196bd940b460b4","unresolved":false,"context_lines":[{"line_number":171,"context_line":""},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"class DiskImage(ConfigValue):"},{"line_number":174,"context_line":"    __slots__ \u003d [\u0027name\u0027, \u0027dib_cmd\u0027, \u0027elements\u0027, \u0027env_vars\u0027,"},{"line_number":175,"context_line":"                 \u0027image_types\u0027, \u0027pause\u0027, \u0027python_path\u0027,"},{"line_number":176,"context_line":"                 \u0027rebuild_age\u0027, \u0027release\u0027, \u0027username\u0027]"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    def __init__(self):"},{"line_number":179,"context_line":"        self.name \u003d None"}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_50b3f44d","line":176,"range":{"start_line":174,"start_character":0,"end_line":176,"end_character":54},"updated":"2020-03-18 18:10:12.000000000","message":"I\u0027m not entirely certain how I feel about this yet. We now must keep __slots__ up-to-date with what is in __init__(), which is prone to error. As an example, \u0027build_timeout\u0027 is not present in __slots__, so mostly a -1 for that being missing for the time being.","commit_id":"3c4c0ff0a08cec3f2958a58a2cf0c03b8164fbd9"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"32ee408a9238fccde5e309588b584ed570f0b905","unresolved":false,"context_lines":[{"line_number":171,"context_line":""},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"class DiskImage(ConfigValue):"},{"line_number":174,"context_line":"    __slots__ \u003d [\u0027name\u0027, \u0027dib_cmd\u0027, \u0027elements\u0027, \u0027env_vars\u0027,"},{"line_number":175,"context_line":"                 \u0027image_types\u0027, \u0027pause\u0027, \u0027python_path\u0027,"},{"line_number":176,"context_line":"                 \u0027rebuild_age\u0027, \u0027release\u0027, \u0027username\u0027]"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    def __init__(self):"},{"line_number":179,"context_line":"        self.name \u003d None"}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_763b88d0","line":176,"range":{"start_line":174,"start_character":0,"end_line":176,"end_character":54},"in_reply_to":"1fa4df85_50b3f44d","updated":"2020-03-18 19:46:33.000000000","message":"After thinking about it some more, I think I\u0027m ok with this, but not the missing attribute though. ;)  I don\u0027t suppose it\u0027s more trouble than forgetting to add a new attribute to the __eq__ method, which is what we deal with now.","commit_id":"3c4c0ff0a08cec3f2958a58a2cf0c03b8164fbd9"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"2c4dd72e54cf73099937af40dc02e0f31dc8c5a7","unresolved":false,"context_lines":[{"line_number":171,"context_line":""},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"class DiskImage(ConfigValue):"},{"line_number":174,"context_line":"    __slots__ \u003d [\u0027name\u0027, \u0027dib_cmd\u0027, \u0027elements\u0027, \u0027env_vars\u0027,"},{"line_number":175,"context_line":"                 \u0027image_types\u0027, \u0027pause\u0027, \u0027python_path\u0027,"},{"line_number":176,"context_line":"                 \u0027rebuild_age\u0027, \u0027release\u0027, \u0027username\u0027]"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    def __init__(self):"},{"line_number":179,"context_line":"        self.name \u003d None"}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_ed30060a","line":176,"range":{"start_line":174,"start_character":0,"end_line":176,"end_character":54},"in_reply_to":"1fa4df85_763b88d0","updated":"2020-03-18 22:52:00.000000000","message":"nice catch, fixed","commit_id":"3c4c0ff0a08cec3f2958a58a2cf0c03b8164fbd9"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"0a8d79461926b8f73e38ad3a21455fdd7f1bcd2b","unresolved":false,"context_lines":[{"line_number":193,"context_line":"            for attr in self.__slots__:"},{"line_number":194,"context_line":"                if getattr(self, attr) !\u003d getattr(other, attr):"},{"line_number":195,"context_line":"                    return False"},{"line_number":196,"context_line":"            return True"},{"line_number":197,"context_line":"        return False"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"    def __repr__(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1fa4df85_603bbdd0","line":196,"updated":"2020-03-18 22:59:11.000000000","message":"0: __slots__ is cool, but why not just check if __dict__ is equal here?","commit_id":"b661e885dcfe8e3cecbb001dba4a8a7326b25fea"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"0cb4e2df510a47e78fdc85a86ae8740e36ec5a3f","unresolved":false,"context_lines":[{"line_number":193,"context_line":"            for attr in self.__slots__:"},{"line_number":194,"context_line":"                if getattr(self, attr) !\u003d getattr(other, attr):"},{"line_number":195,"context_line":"                    return False"},{"line_number":196,"context_line":"            return True"},{"line_number":197,"context_line":"        return False"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"    def __repr__(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1fa4df85_8d1f0507","line":196,"updated":"2020-03-19 14:12:40.000000000","message":"But there\u0027s nothing else to compare other than slots; the DiskImage can\u0027t have any attributes that aren\u0027t slots, so it can\u0027t have any private attributes.  If we wanted to set \"_dib_cmd\", we couldn\u0027t unless we added it to slots and then we would be comparing it in __eq__ (unless we filtered it out, which we could also do with __dict__).\n\nAnother option might be to have the ConfigValues construct themselves from a YAML dict, and store the raw YAML dict for comparison.","commit_id":"b661e885dcfe8e3cecbb001dba4a8a7326b25fea"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"75d71127b73df9f923af619eea76c9d13c4984bf","unresolved":false,"context_lines":[{"line_number":193,"context_line":"            for attr in self.__slots__:"},{"line_number":194,"context_line":"                if getattr(self, attr) !\u003d getattr(other, attr):"},{"line_number":195,"context_line":"                    return False"},{"line_number":196,"context_line":"            return True"},{"line_number":197,"context_line":"        return False"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"    def __repr__(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1fa4df85_c01071ab","line":196,"in_reply_to":"1fa4df85_603bbdd0","updated":"2020-03-18 23:59:10.000000000","message":"as in why didn\u0027t the original do that too? i don\u0027t know\n\nmy thinking at least was that comparing the slots is the external/configuration view of the diskimage so that\u0027s the only relevant parts of what might have changed in a comparison.","commit_id":"b661e885dcfe8e3cecbb001dba4a8a7326b25fea"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"0a8d79461926b8f73e38ad3a21455fdd7f1bcd2b","unresolved":false,"context_lines":[{"line_number":201,"context_line":"        for attr in self.__slots__:"},{"line_number":202,"context_line":"            s +\u003d \"%s:%s \" % (attr, getattr(self, attr))"},{"line_number":203,"context_line":"        s +\u003d \"\u003e\""},{"line_number":204,"context_line":"        return s"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"def as_list(item):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1fa4df85_8036f9e6","line":204,"updated":"2020-03-18 22:59:11.000000000","message":"-1: This is going to be really long which will make logs harder to read.  It seems like just knowing the name of the diskimage is usually enough, is there a reason to add anything else?","commit_id":"b661e885dcfe8e3cecbb001dba4a8a7326b25fea"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"ef635df799fc36be92c5d39fc9d6e8fc8e524b93","unresolved":false,"context_lines":[{"line_number":201,"context_line":"        for attr in self.__slots__:"},{"line_number":202,"context_line":"            s +\u003d \"%s:%s \" % (attr, getattr(self, attr))"},{"line_number":203,"context_line":"        s +\u003d \"\u003e\""},{"line_number":204,"context_line":"        return s"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"def as_list(item):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1fa4df85_0da795bf","line":204,"updated":"2020-03-19 14:15:57.000000000","message":"We do seem to usually use diskimage.name in logs.  I could go either way on this, but I still think I would prefer __repr__ to be minimally useful info (ie, a demonstrated need in a log line), and if you want to temporarily dump the whole thing to debug something, why not do this there?  Or rename this to a new method just for that?","commit_id":"b661e885dcfe8e3cecbb001dba4a8a7326b25fea"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"75d71127b73df9f923af619eea76c9d13c4984bf","unresolved":false,"context_lines":[{"line_number":201,"context_line":"        for attr in self.__slots__:"},{"line_number":202,"context_line":"            s +\u003d \"%s:%s \" % (attr, getattr(self, attr))"},{"line_number":203,"context_line":"        s +\u003d \"\u003e\""},{"line_number":204,"context_line":"        return s"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"def as_list(item):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1fa4df85_80f4b988","line":204,"in_reply_to":"1fa4df85_8036f9e6","updated":"2020-03-18 23:59:10.000000000","message":"i found it useful to see what was being merged into the final image; it\u0027s not like a name 1:1 corresponds to a yaml config entry with inheritance any more; if you still feel -1 i can revert it to a name.\n\ni\u0027m also pretty sure it\u0027s never actually printed for now at least; so we could leave it (it\u0027s useful if you\u0027re actively debugging and put in your own print) and if it becomes too verbose, revert it then?","commit_id":"b661e885dcfe8e3cecbb001dba4a8a7326b25fea"}]}
