)]}'
{"oslo_utils/funcutils.py":[{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"4ca946343eccf5af3c663fe08dcde226c6feb07f","unresolved":false,"context_lines":[{"line_number":127,"context_line":"    WARN \u003d \u0027warn\u0027"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    def __init__(self, max_positional_args\u003dNone, enforcement\u003dEXCEPT):"},{"line_number":130,"context_line":"        self._max_positional_args \u003d max_positional_args"},{"line_number":131,"context_line":"        self._enforcement \u003d enforcement"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_d987280e","line":130,"updated":"2015-02-01 19:03:04.000000000","message":"It\u0027d be nice to be able to pass a logger in here; thus letting the user provide there own logger for warnings; instead of always using this modules one which may not be the most useful logger to use...","commit_id":"f7961fd953693375e23a9e8bd7708da7831adaf8"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"4421820cafb10f17b4f58b6cee8197796fef72b3","unresolved":false,"context_lines":[{"line_number":127,"context_line":"    WARN \u003d \u0027warn\u0027"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    def __init__(self, max_positional_args\u003dNone, enforcement\u003dEXCEPT):"},{"line_number":130,"context_line":"        self._max_positional_args \u003d max_positional_args"},{"line_number":131,"context_line":"        self._enforcement \u003d enforcement"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_f44a3326","line":130,"in_reply_to":"da86d52c_d987280e","updated":"2015-02-01 21:48:29.000000000","message":"Done","commit_id":"f7961fd953693375e23a9e8bd7708da7831adaf8"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"4ca946343eccf5af3c663fe08dcde226c6feb07f","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            self._max_positional_args \u003d len(spec.args) - len(spec.defaults)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        plural \u003d \u0027\u0027 if self._max_positional_args \u003d\u003d 1 else \u0027s\u0027"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"        @functools.wraps(func)"},{"line_number":156,"context_line":"        def inner(*args, **kwargs):"},{"line_number":157,"context_line":"            if len(args) \u003e self._max_positional_args:"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_1992a057","line":154,"updated":"2015-02-01 19:03:04.000000000","message":"Use six.wraps; as it helps smooth over some py2/py3 changes.","commit_id":"f7961fd953693375e23a9e8bd7708da7831adaf8"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"4421820cafb10f17b4f58b6cee8197796fef72b3","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            self._max_positional_args \u003d len(spec.args) - len(spec.defaults)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        plural \u003d \u0027\u0027 if self._max_positional_args \u003d\u003d 1 else \u0027s\u0027"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"        @functools.wraps(func)"},{"line_number":156,"context_line":"        def inner(*args, **kwargs):"},{"line_number":157,"context_line":"            if len(args) \u003e self._max_positional_args:"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_f4c31388","line":154,"in_reply_to":"da86d52c_1992a057","updated":"2015-02-01 21:48:29.000000000","message":"Done","commit_id":"f7961fd953693375e23a9e8bd7708da7831adaf8"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"4ca946343eccf5af3c663fe08dcde226c6feb07f","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        @functools.wraps(func)"},{"line_number":156,"context_line":"        def inner(*args, **kwargs):"},{"line_number":157,"context_line":"            if len(args) \u003e self._max_positional_args:"},{"line_number":158,"context_line":"                message \u003d (\u0027%(name)s takes at most %(max)d positional \u0027"},{"line_number":159,"context_line":"                           \u0027argument%(plural)s (%(given)d given)\u0027 %"},{"line_number":160,"context_line":"                           {\u0027name\u0027: func.__name__,"},{"line_number":161,"context_line":"                            \u0027max\u0027: self._max_positional_args,"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_599c186a","line":158,"updated":"2015-02-01 19:03:04.000000000","message":"Is there anyway we can defer this interpolation until later (especially in the LOG usage; where the warning level might not even be enabled and the message discarded...)?","commit_id":"f7961fd953693375e23a9e8bd7708da7831adaf8"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"4421820cafb10f17b4f58b6cee8197796fef72b3","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        @functools.wraps(func)"},{"line_number":156,"context_line":"        def inner(*args, **kwargs):"},{"line_number":157,"context_line":"            if len(args) \u003e self._max_positional_args:"},{"line_number":158,"context_line":"                message \u003d (\u0027%(name)s takes at most %(max)d positional \u0027"},{"line_number":159,"context_line":"                           \u0027argument%(plural)s (%(given)d given)\u0027 %"},{"line_number":160,"context_line":"                           {\u0027name\u0027: func.__name__,"},{"line_number":161,"context_line":"                            \u0027max\u0027: self._max_positional_args,"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_d4460f23","line":158,"in_reply_to":"da86d52c_599c186a","updated":"2015-02-01 21:48:29.000000000","message":"Done","commit_id":"f7961fd953693375e23a9e8bd7708da7831adaf8"}]}
