)]}'
{"openstack/network/v2/security_group.py":[{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"eb74e19baa8e50e2446e18b99d612b7b5b321b59","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    name \u003d resource.prop(\u0027name\u0027)"},{"line_number":34,"context_line":"    project_id \u003d resource.prop(\u0027tenant_id\u0027)"},{"line_number":35,"context_line":"    security_group_rules \u003d resource.prop(\u0027security_group_rules\u0027)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    @classmethod"},{"line_number":38,"context_line":"    def existing(cls, **kwargs):"},{"line_number":39,"context_line":"        group \u003d super(SecurityGroup, cls).existing(**kwargs)"}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_53853a57","line":36,"updated":"2014-08-01 16:44:09.000000000","message":"Jamie, just wanted you to look at this:","commit_id":"4ccdad752166eff3b749e46f98eb1e60b1265f31"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"794a7960884a242557b61b559da5824b0aff11ac","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    name \u003d resource.prop(\u0027name\u0027)"},{"line_number":34,"context_line":"    project_id \u003d resource.prop(\u0027tenant_id\u0027)"},{"line_number":35,"context_line":"    security_group_rules \u003d resource.prop(\u0027security_group_rules\u0027)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    @classmethod"},{"line_number":38,"context_line":"    def existing(cls, **kwargs):"},{"line_number":39,"context_line":"        group \u003d super(SecurityGroup, cls).existing(**kwargs)"}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_b8e62aad","line":36,"in_reply_to":"baada198_53853a57","updated":"2014-08-04 21:58:30.000000000","message":"I kind of feel now this should just be in the constructor, but I haven\u0027t had a chance to try it out yet.","commit_id":"4ccdad752166eff3b749e46f98eb1e60b1265f31"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"67f03574a2f3382ac5dbcc8b8c4ee9dc0ff32537","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    project_id \u003d resource.prop(\u0027tenant_id\u0027)"},{"line_number":35,"context_line":"    security_group_rules \u003d resource.prop(\u0027security_group_rules\u0027)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def __init__(self, attrs\u003dNone, loaded\u003dFalse):"},{"line_number":38,"context_line":"        super(SecurityGroup, self).__init__(attrs\u003dattrs, loaded\u003dloaded)"},{"line_number":39,"context_line":"        try:"},{"line_number":40,"context_line":"            self.security_group_rules \u003d ["}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_c7c84850","line":37,"updated":"2014-08-05 11:30:07.000000000","message":"I\u0027m not entirely thrilled with this, but it covers more cases than just overriding existing","commit_id":"ed2c3b0b9bd0e8e6b5647efaee80f24db299656b"},{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"2f4a74dad7e3b39044e2a865f21baf06fa418a43","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    def __init__(self, attrs\u003dNone, loaded\u003dFalse):"},{"line_number":38,"context_line":"        super(SecurityGroup, self).__init__(attrs\u003dattrs, loaded\u003dloaded)"},{"line_number":39,"context_line":"        try:"},{"line_number":40,"context_line":"            self.security_group_rules \u003d ["},{"line_number":41,"context_line":"                security_group_rule.SecurityGroupRule.existing(**rule)"},{"line_number":42,"context_line":"                for rule in self.security_group_rules"},{"line_number":43,"context_line":"            ]"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_5d2be47b","line":40,"updated":"2014-08-06 22:07:20.000000000","message":"I think this would be better just doing a for loop and building up a rules list, then assigning it to self.security_group_rules. Otherwise you have to read the lines backwards, so it loses the allure of a list comprehension.","commit_id":"241f073088f03625235b537b4d7467bf15655fd8"}]}
