)]}'
{"rally/cli/cliutils.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"3118e3cb0263356e53feeb01d1d1288b8d087f5f","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    MissingArgs: Missing argument(s): b, d"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    :param fn: the function to check"},{"line_number":82,"context_line":"    :param arg: the positional arguments supplied"},{"line_number":83,"context_line":"    :param kwargs: the keyword arguments supplied"},{"line_number":84,"context_line":"    \"\"\""},{"line_number":85,"context_line":"    argspec \u003d inspect.getargspec(fn)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1af94dfe_9d847b0b","line":82,"updated":"2016-03-18 14:08:50.000000000","message":"here should be argS","commit_id":"ada46a01702ea078435bc688216c57148f67f258"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"3118e3cb0263356e53feeb01d1d1288b8d087f5f","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    argspec \u003d inspect.getargspec(fn)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    num_defaults \u003d len(argspec.defaults or [])"},{"line_number":88,"context_line":"    num_args \u003d len(argspec.args or [])"},{"line_number":89,"context_line":"    required_args \u003d argspec.args[:num_args - num_defaults]"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    if getattr(fn, \"__self__\", None):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1af94dfe_52882271","line":88,"updated":"2016-03-18 14:08:50.000000000","message":"argspec.args is always a list. So we don;t need `or []` as in case of defaults. Thus we don\u0027t need this line","commit_id":"ada46a01702ea078435bc688216c57148f67f258"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"3118e3cb0263356e53feeb01d1d1288b8d087f5f","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    missing_required_args \u003d required_args[len(args):]"},{"line_number":95,"context_line":"    missing \u003d [arg for arg in missing_required_args if arg not in kwargs]"},{"line_number":96,"context_line":"    if len(missing) \u003e 0:"},{"line_number":97,"context_line":"        raise MissingArgs(missing)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1af94dfe_379f4860","line":96,"updated":"2016-03-18 14:08:50.000000000","message":"Please use more pythonic way here http://stackoverflow.com/questions/53513/best-way-to-check-if-a-list-is-empty\n\nif missing:\n  raise ..","commit_id":"ada46a01702ea078435bc688216c57148f67f258"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"60392cef588cf981c5e959edcbd47bccbb9adb0a","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    argspec \u003d inspect.getargspec(fn)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    num_defaults \u003d len(argspec.defaults or [])"},{"line_number":88,"context_line":"    num_args \u003d len(argspec.args)"},{"line_number":89,"context_line":"    required_args \u003d argspec.args[:num_args - num_defaults]"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    if getattr(fn, \"__self__\", None):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1af94dfe_f71ae9c4","line":88,"updated":"2016-03-18 19:41:57.000000000","message":"Sorry you not delete this redundant line. This local variable used only once","commit_id":"75407826f2ce1a097dc00a6a8a1296cff4440c3b"}],"tests/unit/cli/test_cliutils.py":[{"author":{"_account_id":7369,"name":"Sergey Skripnick","email":"sskripnick@mirantis.com","username":"redixin"},"change_message_id":"3383f634e032b4b404448e0b1c26bf42e83062dd","unresolved":false,"context_lines":[{"line_number":422,"context_line":"                          self._test_lambda_with_args, y\u003d2)"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"    def test_lambda_missing_args4(self):"},{"line_number":425,"context_line":"        self.assertRaises(cliutils.MissingArgs,"},{"line_number":426,"context_line":"                          self._test_lambda_with_args, 1, x\u003d2)"},{"line_number":427,"context_line":""},{"line_number":428,"context_line":"    def _test_lambda_with_default(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1af94dfe_7713d566","line":425,"updated":"2016-03-17 11:24:59.000000000","message":"Yes, in this case we got missing argument for y, but we also have multiple values for x.\n\nWhat if we have no missing arguments but multiple values? Like _test_lambda_with_args(1,2,x\u003d3)?","commit_id":"ada46a01702ea078435bc688216c57148f67f258"}]}
