)]}'
{"openstack/_meta/_proxy_templates.py":[{"author":{"_account_id":986,"name":"Rosario Di Somma","email":"rosario.disomma@gmail.com","username":"mr-rods"},"change_message_id":"d844f1dc295b87ac39a2ec937beeae79e52e7daa","unresolved":false,"context_lines":[{"line_number":91,"context_line":":rtype: :class:`~{resource_class}`"},{"line_number":92,"context_line":"\"\"\""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"_TEMPLATES \u003d {"},{"line_number":95,"context_line":"    \u0027create\u0027: _CREATE_TEMPLATE,"},{"line_number":96,"context_line":"    \u0027delete\u0027: _DELETE_TEMPLATE,"},{"line_number":97,"context_line":"    \u0027find\u0027: _FIND_TEMPLATE,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_9a6837f5","line":94,"range":{"start_line":94,"start_character":0,"end_line":94,"end_character":10},"updated":"2018-02-02 15:31:08.000000000","message":"Should we make it more clear that this dict contains docstring templates? like calling it _DOC_TEMPLATES","commit_id":"fc0496cc5043456ebdc1a559146485c7da79d65a"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"30d89f1809992227b20c671bb7673694e642e0c7","unresolved":false,"context_lines":[{"line_number":91,"context_line":":rtype: :class:`~{resource_class}`"},{"line_number":92,"context_line":"\"\"\""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"_TEMPLATES \u003d {"},{"line_number":95,"context_line":"    \u0027create\u0027: _CREATE_TEMPLATE,"},{"line_number":96,"context_line":"    \u0027delete\u0027: _DELETE_TEMPLATE,"},{"line_number":97,"context_line":"    \u0027find\u0027: _FIND_TEMPLATE,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_bd616dd5","line":94,"range":{"start_line":94,"start_character":0,"end_line":94,"end_character":10},"in_reply_to":"5f93b717_9a6837f5","updated":"2018-02-02 15:37:59.000000000","message":"Yes - that\u0027s a great idea.","commit_id":"fc0496cc5043456ebdc1a559146485c7da79d65a"},{"author":{"_account_id":986,"name":"Rosario Di Somma","email":"rosario.disomma@gmail.com","username":"mr-rods"},"change_message_id":"d844f1dc295b87ac39a2ec937beeae79e52e7daa","unresolved":false,"context_lines":[{"line_number":132,"context_line":"    return self._update(self.{resource_name}, {name}, **attrs)"},{"line_number":133,"context_line":"\"\"\""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"_SOURCES \u003d {"},{"line_number":136,"context_line":"    \u0027create\u0027: _CREATE_SOURCE,"},{"line_number":137,"context_line":"    \u0027delete\u0027: _DELETE_SOURCE,"},{"line_number":138,"context_line":"    \u0027find\u0027: _FIND_SOURCE,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_9a511739","line":135,"range":{"start_line":135,"start_character":0,"end_line":135,"end_character":8},"updated":"2018-02-02 15:31:08.000000000","message":"could this be _SOURCE_TEMPLATES?","commit_id":"fc0496cc5043456ebdc1a559146485c7da79d65a"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"30d89f1809992227b20c671bb7673694e642e0c7","unresolved":false,"context_lines":[{"line_number":132,"context_line":"    return self._update(self.{resource_name}, {name}, **attrs)"},{"line_number":133,"context_line":"\"\"\""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"_SOURCES \u003d {"},{"line_number":136,"context_line":"    \u0027create\u0027: _CREATE_SOURCE,"},{"line_number":137,"context_line":"    \u0027delete\u0027: _DELETE_SOURCE,"},{"line_number":138,"context_line":"    \u0027find\u0027: _FIND_SOURCE,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_7d9d25ba","line":135,"range":{"start_line":135,"start_character":0,"end_line":135,"end_character":8},"in_reply_to":"5f93b717_9a511739","updated":"2018-02-02 15:37:59.000000000","message":"Yes. Also a great idea.","commit_id":"fc0496cc5043456ebdc1a559146485c7da79d65a"}],"openstack/_meta/proxy.py":[{"author":{"_account_id":986,"name":"Rosario Di Somma","email":"rosario.disomma@gmail.com","username":"mr-rods"},"change_message_id":"d844f1dc295b87ac39a2ec937beeae79e52e7daa","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        for resource_name, res in resources.items():"},{"line_number":81,"context_line":"            # Skip Detail classes. They are handled as a special case when"},{"line_number":82,"context_line":"            # processing the non-detail version of the class."},{"line_number":83,"context_line":"            if resource_name.endswith(\u0027Detail\u0027):"},{"line_number":84,"context_line":"                continue"},{"line_number":85,"context_line":"            resource_class \u003d \u0027{module}.{resource_name}\u0027.format("},{"line_number":86,"context_line":"                module\u003dres.__module__, resource_name\u003dresource_name)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_bd33adf5","line":83,"range":{"start_line":83,"start_character":12,"end_line":83,"end_character":48},"updated":"2018-02-02 15:31:08.000000000","message":"Relying on the class name seems a little weak, should we add an attribute on the Resource class that defaults to false and override it in the class \u0027Detail\u0027 classes?","commit_id":"fc0496cc5043456ebdc1a559146485c7da79d65a"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"30d89f1809992227b20c671bb7673694e642e0c7","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        for resource_name, res in resources.items():"},{"line_number":81,"context_line":"            # Skip Detail classes. They are handled as a special case when"},{"line_number":82,"context_line":"            # processing the non-detail version of the class."},{"line_number":83,"context_line":"            if resource_name.endswith(\u0027Detail\u0027):"},{"line_number":84,"context_line":"                continue"},{"line_number":85,"context_line":"            resource_class \u003d \u0027{module}.{resource_name}\u0027.format("},{"line_number":86,"context_line":"                module\u003dres.__module__, resource_name\u003dresource_name)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_7d0765cb","line":83,"range":{"start_line":83,"start_character":12,"end_line":83,"end_character":48},"in_reply_to":"5f93b717_bd33adf5","updated":"2018-02-02 15:37:59.000000000","message":"YES! That\u0027s an excellent idea.","commit_id":"fc0496cc5043456ebdc1a559146485c7da79d65a"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"895e96f3456ba7b9c21769e640805953fb7bce9f","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            # be done in the context of the class the methods will be attached"},{"line_number":113,"context_line":"            # to. This allows name resolution to work properly."},{"line_number":114,"context_line":"            for action in (\u0027create\u0027, \u0027get\u0027, \u0027update\u0027, \u0027delete\u0027):"},{"line_number":115,"context_line":"                if getattr(res, \u0027allow_{action}\u0027.format(action\u003daction)):"},{"line_number":116,"context_line":"                    func \u003d compile_function(dct.copy(), action, **args)"},{"line_number":117,"context_line":"                    add_function(dct, func, action, args)"},{"line_number":118,"context_line":"            if res.allow_list:"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f93b717_808f6128","line":115,"range":{"start_line":115,"start_character":16,"end_line":115,"end_character":72},"updated":"2018-02-02 20:18:39.000000000","message":"Should we not also check the value of this attribute to see if it is True?","commit_id":"2e797f0d39b4a47c31654292a2e32ac400fbb5f0"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"dd26aaff37ca7d6d55e7e72ef7ca4151191275b9","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            # be done in the context of the class the methods will be attached"},{"line_number":113,"context_line":"            # to. This allows name resolution to work properly."},{"line_number":114,"context_line":"            for action in (\u0027create\u0027, \u0027get\u0027, \u0027update\u0027, \u0027delete\u0027):"},{"line_number":115,"context_line":"                if getattr(res, \u0027allow_{action}\u0027.format(action\u003daction)):"},{"line_number":116,"context_line":"                    func \u003d compile_function(dct.copy(), action, **args)"},{"line_number":117,"context_line":"                    add_function(dct, func, action, args)"},{"line_number":118,"context_line":"            if res.allow_list:"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f93b717_80944138","line":115,"range":{"start_line":115,"start_character":16,"end_line":115,"end_character":72},"in_reply_to":"5f93b717_808f6128","updated":"2018-02-02 20:22:30.000000000","message":"NM. Dumb comment.","commit_id":"2e797f0d39b4a47c31654292a2e32ac400fbb5f0"}]}
