)]}'
{"keystoneclient/v3/services.py":[{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"5a52f84bed79f2f9ff8502b355a48450d4f0b36a","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        else:"},{"line_number":79,"context_line":"            service_id \u003d id"},{"line_number":80,"context_line":"        return super(ServiceManager, self).delete("},{"line_number":81,"context_line":"            service_id\u003dbase.getid(service))"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a8ffd7b_df4810cf","line":81,"updated":"2015-12-01 11:30:52.000000000","message":"forgot to use service_id.\n\nreplace base.getid(service) with service_id here","commit_id":"726a8af0039d277d52dba9ae3b949a4ab7cf9a83"},{"author":{"_account_id":17026,"name":"Sean Perry","email":"sean.perry@hpe.com","username":"sean_perry"},"change_message_id":"77ffc1fd251bc742cd81014c980763299127b189","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    key \u003d \u0027service\u0027"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @utils.positional(1, enforcement\u003dutils.positional.WARN)"},{"line_number":41,"context_line":"    def create(self, name, type\u003dNone, service_type\u003dNone,"},{"line_number":42,"context_line":"               enabled\u003dTrue, description\u003dNone, **kwargs):"},{"line_number":43,"context_line":"        type_arg \u003d type or service_type"},{"line_number":44,"context_line":"        return super(ServiceManager, self).create("}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_7d99c36d","line":41,"updated":"2015-12-01 23:23:09.000000000","message":"Perhaps it would be better to inspect kwargs for service_type, use it, and then pop it instead of changing the expected parameters. This will avoid confusing new readers of the code.","commit_id":"a2d2e84b0e60be6d9e9704a16b3fa37f696e6ecd"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"10a4a38b2e56ef0bff40aa136d1fa34c3262769d","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    key \u003d \u0027service\u0027"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @utils.positional(1, enforcement\u003dutils.positional.WARN)"},{"line_number":41,"context_line":"    def create(self, name, type\u003dNone, service_type\u003dNone,"},{"line_number":42,"context_line":"               enabled\u003dTrue, description\u003dNone, **kwargs):"},{"line_number":43,"context_line":"        type_arg \u003d type or service_type"},{"line_number":44,"context_line":"        return super(ServiceManager, self).create("}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_dd61cfa9","line":41,"updated":"2015-12-01 23:12:16.000000000","message":"move service_type to after description, so we don\u0027t break folks using it in the following manner:\n\n  create(\u0027myname\u0027, mytype, True)","commit_id":"a2d2e84b0e60be6d9e9704a16b3fa37f696e6ecd"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"7799a7f683955c2c3a5466ac6cee9aa5a6c0e1dd","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    key \u003d \u0027service\u0027"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @utils.positional(1, enforcement\u003dutils.positional.WARN)"},{"line_number":41,"context_line":"    def create(self, name, type\u003dNone, service_type\u003dNone,"},{"line_number":42,"context_line":"               enabled\u003dTrue, description\u003dNone, **kwargs):"},{"line_number":43,"context_line":"        type_arg \u003d type or service_type"},{"line_number":44,"context_line":"        return super(ServiceManager, self).create("}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_0b605000","line":41,"in_reply_to":"9a8ffd7b_7d99c36d","updated":"2015-12-02 14:01:11.000000000","message":"Done","commit_id":"a2d2e84b0e60be6d9e9704a16b3fa37f696e6ecd"},{"author":{"_account_id":17026,"name":"Sean Perry","email":"sean.perry@hpe.com","username":"sean_perry"},"change_message_id":"77ffc1fd251bc742cd81014c980763299127b189","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    @utils.positional(enforcement\u003dutils.positional.WARN)"},{"line_number":56,"context_line":"    def list(self, name\u003dNone, type\u003dNone, service_type\u003dNone, **kwargs):"},{"line_number":57,"context_line":"        type_arg \u003d type or service_type"},{"line_number":58,"context_line":"        return super(ServiceManager, self).list("},{"line_number":59,"context_line":"            name\u003dname,"},{"line_number":60,"context_line":"            type\u003dtype_arg,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_1dee77b4","line":57,"updated":"2015-12-01 23:23:09.000000000","message":"Same as above.","commit_id":"a2d2e84b0e60be6d9e9704a16b3fa37f696e6ecd"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"7799a7f683955c2c3a5466ac6cee9aa5a6c0e1dd","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    @utils.positional(enforcement\u003dutils.positional.WARN)"},{"line_number":56,"context_line":"    def list(self, name\u003dNone, type\u003dNone, service_type\u003dNone, **kwargs):"},{"line_number":57,"context_line":"        type_arg \u003d type or service_type"},{"line_number":58,"context_line":"        return super(ServiceManager, self).list("},{"line_number":59,"context_line":"            name\u003dname,"},{"line_number":60,"context_line":"            type\u003dtype_arg,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_6b46bc7c","line":57,"in_reply_to":"9a8ffd7b_1dee77b4","updated":"2015-12-02 14:01:11.000000000","message":"Done","commit_id":"a2d2e84b0e60be6d9e9704a16b3fa37f696e6ecd"},{"author":{"_account_id":17026,"name":"Sean Perry","email":"sean.perry@hpe.com","username":"sean_perry"},"change_message_id":"77ffc1fd251bc742cd81014c980763299127b189","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    @utils.positional(enforcement\u003dutils.positional.WARN)"},{"line_number":64,"context_line":"    def update(self, service, name\u003dNone, type\u003dNone, service_type\u003dNone,"},{"line_number":65,"context_line":"               enabled\u003dNone, description\u003dNone, **kwargs):"},{"line_number":66,"context_line":"        type_arg \u003d type or service_type"},{"line_number":67,"context_line":"        return super(ServiceManager, self).update("},{"line_number":68,"context_line":"            service_id\u003dbase.getid(service),"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_7db0e3dd","line":65,"updated":"2015-12-01 23:23:09.000000000","message":"Same.","commit_id":"a2d2e84b0e60be6d9e9704a16b3fa37f696e6ecd"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"7799a7f683955c2c3a5466ac6cee9aa5a6c0e1dd","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    @utils.positional(enforcement\u003dutils.positional.WARN)"},{"line_number":64,"context_line":"    def update(self, service, name\u003dNone, type\u003dNone, service_type\u003dNone,"},{"line_number":65,"context_line":"               enabled\u003dNone, description\u003dNone, **kwargs):"},{"line_number":66,"context_line":"        type_arg \u003d type or service_type"},{"line_number":67,"context_line":"        return super(ServiceManager, self).update("},{"line_number":68,"context_line":"            service_id\u003dbase.getid(service),"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_4b417862","line":65,"in_reply_to":"9a8ffd7b_7db0e3dd","updated":"2015-12-02 14:01:11.000000000","message":"Done","commit_id":"a2d2e84b0e60be6d9e9704a16b3fa37f696e6ecd"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"6237c2be6b3bcc07774f1137aacd794dfbb8a8c9","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    @utils.positional(enforcement\u003dutils.positional.WARN)"},{"line_number":56,"context_line":"    def list(self, name\u003dNone, type\u003dNone, **kwargs):"},{"line_number":57,"context_line":"        type_arg \u003d type or kwargs.pop(\u0027service_type\u0027, None)"},{"line_number":58,"context_line":"        return super(ServiceManager, self).list("},{"line_number":59,"context_line":"            name\u003dname,"},{"line_number":60,"context_line":"            type\u003dtype_arg,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_d21755ec","line":57,"updated":"2015-12-02 14:59:49.000000000","message":"I want to go on record saying I dislike inspection of **kwargs for things like this. However, I am not willing to say this is worth a rework/re-review/re-check.\n\nIn general we should declare all args we accept and document via docstrings if there are arguments that mean the same thing. **kwargs tends to require extra code and does not clearly prevent easy-to-make typos (I would remove all **kwargs from this code if possible vs leaning more on it).","commit_id":"7035376978c6664b8107c3cfd958853344ecdef2"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"8ebe64a8b90b730a1ed6861ecc311637b23d70e0","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    @utils.positional(enforcement\u003dutils.positional.WARN)"},{"line_number":56,"context_line":"    def list(self, name\u003dNone, type\u003dNone, **kwargs):"},{"line_number":57,"context_line":"        type_arg \u003d type or kwargs.pop(\u0027service_type\u0027, None)"},{"line_number":58,"context_line":"        return super(ServiceManager, self).list("},{"line_number":59,"context_line":"            name\u003dname,"},{"line_number":60,"context_line":"            type\u003dtype_arg,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_d13752fd","line":57,"in_reply_to":"9a8ffd7b_d21755ec","updated":"2015-12-02 15:32:58.000000000","message":"I agree with Morgan on this one. Using **kwargs to shove in the service_type would mean we\u0027re having a un-documented feature that only people that knows the internal would be able to use.\n\nI prefer to have the service_type explicitly in the argument, and have it documented that type/service_type works for usability perspectives.","commit_id":"7035376978c6664b8107c3cfd958853344ecdef2"}]}
